From: SooChan Lim Date: Fri, 25 Apr 2025 01:58:25 +0000 (+0900) Subject: e_view_client: add e_view_client_external_view_image_set X-Git-Tag: accepted/tizen/unified/20250429.071401~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F01%2F323401%2F1;p=platform%2Fupstream%2Fenlightenment.git e_view_client: add e_view_client_external_view_image_set This function sets the external view_image to e_view_client Change-Id: I1949102f8084ee07e4e541198c484efec4995f9b --- diff --git a/src/bin/core/e_view_client.c b/src/bin/core/e_view_client.c index 001371b000..96c60af554 100644 --- a/src/bin/core/e_view_client.c +++ b/src/bin/core/e_view_client.c @@ -24,6 +24,9 @@ static const E_View_Impl view_client_impl = { struct _E_View_Client { E_View view; + E_View_Image *external_view_image; + E_View *external_view; + E_View_Client_External_View_Type external_view_type; E_View *content; E_View *effect; struct wl_list mirror; @@ -340,6 +343,26 @@ e_view_client_color_visible_get(E_View_Client *client) return e_comp_object_color_visible_get(client->view.eo); } +E_API bool +e_view_client_external_view_image_set(E_View_Client *client, E_View_Image *view_image) +{ + E_View *view; + + if (client == NULL) return false; + if (view_image == NULL) return false; + + view = e_view_image_view_get(view_image); + if (view->type != E_VIEW_TYPE_IMAGE) return false; + + if (!e_comp_object_content_set(client->view.eo, view->eo, E_COMP_OBJECT_CONTENT_TYPE_EXT_IMAGE)) + return false; + + client->external_view_image = view_image; + client->external_view = e_view_image_view_get(view_image); + client->external_view_type = E_VIEW_CLIENT_EXTERNAL_VIEW_TYPE_IMAGE; + + return true; +} EINTERN E_View * e_view_client_content_get(E_View_Client *client) diff --git a/src/include/e_view_client.h b/src/include/e_view_client.h index 086d54abe9..5e75c41bca 100644 --- a/src/include/e_view_client.h +++ b/src/include/e_view_client.h @@ -6,6 +6,7 @@ extern "C" { #endif #include +#include #include typedef enum @@ -24,6 +25,7 @@ void e_view_client_alpha_set(E_View_Client *client, bool alpha); void e_view_client_color_get(E_View_Client *client, int *r, int *g, int *b, int *a); bool e_view_client_content_set(E_View_Client *client, E_View *content, E_Comp_Object_Content_Type type); E_Comp_Object_Content_Type e_view_client_content_type_get(E_View_Client *client); +bool e_view_client_external_view_image_set(E_View_Client *client, E_View_Image *view_image); void e_view_client_damage(E_View_Client *client, int x, int y, int width, int height); void e_view_client_dirty(E_View_Client *client); E_View *e_view_client_effect_object_get(E_View_Client *client);