e_view_client: add e_view_client_external_view_edje_set 03/323403/1
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 25 Apr 2025 02:06:01 +0000 (11:06 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 28 Apr 2025 06:28:31 +0000 (15:28 +0900)
This function sets the external e_view_edje to e_view_client.

Change-Id: Iaf18f1898a6a0d08176d7634880aee56f9f8212f

src/bin/core/e_view_client.c
src/bin/core/e_view_client_intern.h

index 7327321de9d9166ef9e315fb1e2249a4ae140540..6a554b727e1386cadd8fea14af3d0682b64a9945 100644 (file)
@@ -25,6 +25,7 @@ struct _E_View_Client
 {
    E_View view;
    E_View_Image *external_view_image;
+   E_View_Edje *external_view_edje;
    E_View *external_view;
    E_View_Client_External_View_Type external_view_type;
    E_View *content;
@@ -373,6 +374,27 @@ e_view_client_content_get(E_View_Client *client)
    return client->content;
 }
 
+EINTERN bool
+e_view_client_external_view_edje_set(E_View_Client *client, E_View_Edje *view_edje)
+{
+   E_View *view;
+
+   if (client == NULL) return false;
+   if (view_edje == NULL) return false;
+
+   view = e_view_edje_view_get(view_edje);
+   if (view->type != E_VIEW_TYPE_EDJE) return false;
+
+   if (!e_comp_object_content_set(client->view.eo, view->eo, E_COMP_OBJECT_CONTENT_TYPE_EXT_EDJE))
+     return false;
+
+   client->external_view_edje = view_edje;
+   client->external_view = e_view_edje_view_get(view_edje);;
+   client->external_view_type = E_VIEW_CLIENT_EXTERNAL_VIEW_TYPE_EDJE;
+
+   return true;
+}
+
 E_API bool
 e_view_client_content_set(E_View_Client *client, E_View *content, E_Comp_Object_Content_Type type)
 {
index f40d96d00ef491ef61ea01f80c796b53943f00fc..7e4b0b09f45878275e6fa5c929a1d786c627a139 100644 (file)
@@ -6,12 +6,14 @@ extern "C" {
 #endif
 
 #include "e_view_client.h"
+#include "e_view_edje_intern.h"
 
 E_View_Client *e_view_client_create(E_Client *ec, E_View_Tree *parent);
 E_View_Client *e_view_client_from_view(E_View *view);
 void e_view_client_render_update_del(E_View_Client *view_client);
 bool e_view_client_alpha_get(E_View_Client *client);
 bool e_view_client_color_visible_get(E_View_Client *client);
+bool e_view_client_external_view_edje_set(E_View_Client *client, E_View_Edje *view_edje);
 E_View *e_view_client_content_get(E_View_Client *client);
 bool e_view_client_content_unset(E_View_Client *client);
 bool e_view_client_damage_exists(E_View_Client *client);