From 3506aa4fab24983b38534c9b7a3c5f8d27e9973b Mon Sep 17 00:00:00 2001 From: "jinbong.lee" Date: Thu, 8 Aug 2024 17:13:04 +0900 Subject: [PATCH] Add new external & internal interfce of e_view_client - external interface . e_view_client_map_set . e_view_client_map_enable_set . e_view_client_render_update_lock . e_view_client_render_update_unlock . e_view_client_transform_bg_set . e_view_client_transform_bg_color_set . e_view_client_transform_transp_set - internal interface . e_view_client_transform_bg_vertices_set . e_view_client_transform_bg_vertices_set_with_zoom . e_view_client_transform_transp_vertices_set . e_view_client_transform_transp_vertices_set_with_zoom Change-Id: I119d2c56e4e29251745240ec10d2d4952326ea8c --- src/bin/core/e_view_client.c | 184 +++++++++++++++++++++++++++++++++++- src/bin/core/e_view_client_intern.h | 8 ++ src/include/e_view_client.h | 7 ++ 3 files changed, 198 insertions(+), 1 deletion(-) diff --git a/src/bin/core/e_view_client.c b/src/bin/core/e_view_client.c index f3a8978..8f75956 100644 --- a/src/bin/core/e_view_client.c +++ b/src/bin/core/e_view_client.c @@ -80,7 +80,7 @@ e_view_client_create(E_Client *ec, E_View_Tree *parent) { E_View_Client *client; - if (ec == NULL || ec->frame == NULL) + if (ec == NULL || ec->frame == NULL || parent == NULL) return NULL; client = malloc(sizeof(*client)); @@ -351,6 +351,38 @@ e_view_client_render(E_View_Client *client) return e_comp_object_render(client->view.eo); } +EINTERN void +e_view_client_transform_bg_vertices_set(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices) +{ + if (client == NULL) return; + + e_comp_object_transform_bg_vertices_set(client->view.eo, vertices); +} + +EINTERN void +e_view_client_transform_bg_vertices_set_with_zoom(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom) +{ + if (client == NULL) return; + + e_comp_object_transform_bg_vertices_set_with_zoom(client->view.eo, vertices, zoom); +} + +EINTERN void +e_view_client_transform_transp_vertices_set(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices) +{ + if (client == NULL) return; + + e_comp_object_transform_transp_vertices_set(client->view.eo, vertices); +} + +EINTERN void +e_view_client_transform_transp_vertices_set_with_zoom(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom) +{ + if (client == NULL) return; + + e_comp_object_transform_transp_vertices_set_with_zoom(client->view.eo, vertices, zoom); +} + EINTERN E_View_Render_Op e_view_client_render_op_get(E_View_Client *client) { @@ -494,30 +526,56 @@ e_view_client_size_hint_align_get(E_View_Client *client, double *x, double *y) E_API bool e_view_client_visible_get(E_View_Client *client) { + if (client == NULL) return false; + return evas_object_visible_get(client->view.eo); //TODO : change visible get from e_view } E_API unsigned int e_view_client_is_animating(E_View_Client *client) { + if (client == NULL) return 0; + return e_comp_object_is_animating(client->view.eo); } E_API void e_view_client_hwc_update_set(E_View_Client *client, bool set) { + if (client == NULL) return; + e_comp_object_hwc_update_set(client->view.eo, set); } E_API bool +e_view_client_render_update_lock(E_View_Client *client) +{ + if (client == NULL) return false; + + return e_comp_object_render_update_lock(client->view.eo); +} + +E_API void +e_view_client_render_update_unlock(E_View_Client *client) +{ + if (client == NULL) return; + + e_comp_object_render_update_unlock(client->view.eo); +} + +E_API bool e_view_client_render_update_lock_get(E_View_Client *client) { + if (client == NULL) return false; + return e_comp_object_render_update_lock_get(client->view.eo); } E_API void e_view_client_geometry_get(E_View_Client *client, int *x, int *y, int *width, int *height) { + if (client == NULL) return; + if (width) *width = client->width; @@ -530,6 +588,8 @@ e_view_client_geometry_get(E_View_Client *client, int *x, int *y, int *width, in E_API void e_view_client_geometry_set(E_View_Client *client, int x, int y, int width, int height) { + if (client == NULL) return; + e_view_position_set(&client->view, x, y); e_view_client_size_set(client, width, height); } @@ -549,6 +609,30 @@ e_view_client_size_set(E_View_Client *client, int width, int height) } E_API void +e_view_client_transform_bg_set(E_View_Client *client, bool set) +{ + if (client == NULL) return; + + e_comp_object_transform_bg_set(client->view.eo, set); +} + +E_API void +e_view_client_transform_bg_color_set(E_View_Client *client, int r, int g, int b, int a) +{ + if (client == NULL) return; + + e_comp_object_transform_bg_color_set(client->view.eo, r, g, b, a); +} + +E_API void +e_view_client_transform_transp_set(E_View_Client *client, bool set) +{ + if (client == NULL) return; + + e_comp_object_transform_transp_set(client->view.eo, set); +} + +E_API void e_view_client_mask_set(E_View_Client *client, bool set) { if (client == NULL) return; @@ -599,83 +683,127 @@ e_view_client_frame_wh_unadjust(E_View_Client *client, int width, int height, in EINTERN bool e_view_client_hwc_update_exists(E_View_Client *client) { + if (client == NULL) return false; + return e_comp_object_hwc_update_exists(client->view.eo); } EINTERN bool e_view_client_redirected_get(E_View_Client *client) { + if (client == NULL) return false; + return e_comp_object_redirected_get(client->view.eo); } EINTERN void e_view_client_redirected_set(E_View_Client *client, bool set) { + if (client == NULL) return; + e_comp_object_redirected_set(client->view.eo, set); } EINTERN E_Map * e_view_client_map_get(E_View_Client *client) { + if (client == NULL) return NULL; + return e_comp_object_map_get(client->view.eo); } +E_API bool +e_view_client_map_set(E_View_Client *client, E_Map *em) +{ + if (client == NULL) return false; + + return e_comp_object_map_set(client->view.eo, em); +} + +E_API bool +e_view_client_map_enable_set(E_View_Client *client, Eina_Bool enabled) +{ + if (client == NULL) return false; + + return e_comp_object_map_enable_set(client->view.eo, enabled); +} + EINTERN void e_view_client_map_update(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_map_update(client->view.eo); } EINTERN void e_view_client_frame_recalc(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_frame_recalc(client->view.eo); } EINTERN void e_view_client_maximize(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_maximize(client->view.eo); } EINTERN void e_view_client_fullscreen(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_fullscreen(client->view.eo); } EINTERN void e_view_client_unfullscreen(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_unfullscreen(client->view.eo); } EINTERN void e_view_client_lower_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_lower_listener_add(client->view.eo, listener); } EINTERN void e_view_client_lower_done_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_lower_done_listener_add(client->view.eo, listener); } EINTERN void e_view_client_raise_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_raise_listener_add(client->view.eo, listener); } EINTERN void e_view_client_show_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_show_listener_add(client->view.eo, listener); } EINTERN void e_view_client_hide_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_hide_listener_add(client->view.eo, listener); } @@ -683,18 +811,24 @@ e_view_client_hide_listener_add(E_View_Client *client, struct wl_listener *liste EINTERN void e_view_client_set_layer_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_set_layer_listener_add(client->view.eo, listener); } EINTERN void e_view_client_stack_above_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_stack_above_listener_add(client->view.eo, listener); } EINTERN void e_view_client_stack_below_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_stack_below_listener_add(client->view.eo, listener); } #endif @@ -702,36 +836,48 @@ e_view_client_stack_below_listener_add(E_View_Client *client, struct wl_listener EINTERN void e_view_client_image_filter_set_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_image_filter_set_listener_add(client->view.eo, listener); } EINTERN void e_view_client_render_op_set_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_render_op_set_listener_add(client->view.eo, listener); } EINTERN void e_view_client_content_type_set_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_content_type_set_listener_add(client->view.eo, listener); } EINTERN void e_view_client_color_set_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_color_set_listener_add(client->view.eo, listener); } EINTERN void e_view_client_color_visible_set_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + e_comp_object_color_visible_set_listener_add(client->view.eo, listener); } EINTERN void e_view_client_recalc(E_View_Client *client) { + if (client == NULL) return; + //TO DO //evas_object_smart_callback_call(ec->frame, "frame_recalc", NULL); } @@ -739,48 +885,64 @@ e_view_client_recalc(E_View_Client *client) EINTERN E_View_Tree * e_view_client_tree_get(E_View_Client *client) { + if (client == NULL) return NULL; + return &client->tree; } E_API void e_view_client_resize_listener_add(E_View_Client *client, struct wl_listener *listener) { + if (client == NULL) return; + wl_signal_add(&client->events.resize, listener); } E_API void e_view_client_signal_emit(E_View_Client *client, const char *sig, const char *src) { + if (client == NULL) return; + e_comp_object_signal_emit(client->view.eo, sig, src); } E_API void e_view_client_input_area_set(E_View_Client *client, int x, int y, int w, int h) { + if (client == NULL) return; + e_comp_object_input_area_set(client->view.eo, x, y, w, h); } EINTERN void e_view_client_input_objs_del(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_input_objs_del(client->view.eo); } EINTERN void e_view_client_clear(E_View_Client *client) { + if (client == NULL) return; + e_comp_object_clear(client->view.eo); } EINTERN void e_view_client_size_update(E_View_Client *client, int w, int h) { + if (client == NULL) return; + e_comp_object_size_update(client->view.eo, w, h); } EINTERN void e_view_client_layer_set(E_View_Client *client, E_Canvas_Layer layer) { + if (client == NULL) return; + E_View_Tree *layer_tree; layer_tree = e_canvas_layer_view_tree_get(e_view_root_get(&client->view), layer); @@ -791,6 +953,8 @@ e_view_client_layer_set(E_View_Client *client, E_Canvas_Layer layer) EINTERN void e_view_client_show(E_View_Client *client) { + if (client == NULL) return; + if (e_view_visible_get(&client->view)) evas_object_show(client->view.eo); else @@ -801,8 +965,26 @@ e_view_client_show(E_View_Client *client) EINTERN void e_view_client_hide(E_View_Client *client) { + if (client == NULL) return; + if (!e_view_visible_get(&client->view)) evas_object_hide(client->view.eo); else e_view_hide(&client->view); } + +EINTERN void +e_view_client_native_surface_set(E_View_Client *client, bool set) +{ + if (client == NULL) return; + + e_comp_object_native_surface_set(client->view.eo, set); +} + +EINTERN void +e_view_client_input_rect_get(E_View_Client *client, Eina_List **list) +{ + if (client == NULL) return; + + e_comp_object_input_rect_get(client->view.eo, list); +} \ No newline at end of file diff --git a/src/bin/core/e_view_client_intern.h b/src/bin/core/e_view_client_intern.h index 44b6e48..8367080 100644 --- a/src/bin/core/e_view_client_intern.h +++ b/src/bin/core/e_view_client_intern.h @@ -19,6 +19,12 @@ bool e_view_client_damage_exists(E_View_Client *client); void e_view_client_dim_mask_set(E_View_Client *client, bool set); void e_view_client_effect_clip(E_View_Client *client); void e_view_client_effect_unclip(E_View_Client *client); + +void e_view_client_transform_bg_vertices_set(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices); +void e_view_client_transform_bg_vertices_set_with_zoom(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom); +void e_view_client_transform_transp_vertices_set(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices); +void e_view_client_transform_transp_vertices_set_with_zoom(E_View_Client *client, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom); + E_View_Render_Op e_view_client_render_op_get(E_View_Client *client); void e_view_client_render_op_set(E_View_Client *client, E_View_Render_Op op); bool e_view_client_frame_allowed(E_View_Client *client); @@ -54,6 +60,8 @@ void e_view_client_color_visible_set_listener_add(E_View_Client *client, struct void e_view_client_input_objs_del(E_View_Client *client); void e_view_client_clear(E_View_Client *client); void e_view_client_size_update(E_View_Client *client, int w, int h); +void e_view_client_native_surface_set(E_View_Client *client, bool set); +void e_view_client_input_rect_get(E_View_Client *client, Eina_List **list); #ifdef __cplusplus } diff --git a/src/include/e_view_client.h b/src/include/e_view_client.h index 120f30a..b620b99 100644 --- a/src/include/e_view_client.h +++ b/src/include/e_view_client.h @@ -33,10 +33,17 @@ void e_view_client_size_hint_align_get(E_View_Client *client, double *x, double bool e_view_client_visible_get(E_View_Client *client); unsigned int e_view_client_is_animating(E_View_Client *client); void e_view_client_hwc_update_set(E_View_Client *client, bool set); +bool e_view_client_map_set(E_View_Client *client, E_Map *em); +bool e_view_client_map_enable_set(E_View_Client *client, Eina_Bool enabled); +bool e_view_client_render_update_lock(E_View_Client *client); +void e_view_client_render_update_unlock(E_View_Client *client); bool e_view_client_render_update_lock_get(E_View_Client *client); void e_view_client_geometry_get(E_View_Client *client, int *x, int *y, int *width, int *height); void e_view_client_geometry_set(E_View_Client *client, int x, int y, int width, int height); void e_view_client_size_set(E_View_Client *client, int width, int height); +void e_view_client_transform_bg_set(E_View_Client *client, bool set); +void e_view_client_transform_bg_color_set(E_View_Client *client, int r, int g, int b, int a); +void e_view_client_transform_transp_set(E_View_Client *client, bool set); void e_view_client_mask_set(E_View_Client *client, bool set); bool e_view_client_mask_has(E_View_Client *client); -- 2.7.4