e_comp_object: make an internal header 45/305045/1
authorSooChan Lim <sc1.lim@samsung.com>
Wed, 24 Jan 2024 02:08:39 +0000 (11:08 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 26 Jan 2024 00:59:23 +0000 (09:59 +0900)
Move the internal resources and the function declaration
to the internal header

Change-Id: I971739bbede37ddfcca42231ff86ca3bfa8344bd

25 files changed:
src/bin/e_blender.c
src/bin/e_client.c
src/bin/e_comp.c
src/bin/e_comp_object.c
src/bin/e_comp_object.h
src/bin/e_comp_object_intern.h
src/bin/e_comp_wl.c
src/bin/e_comp_wl_input.c
src/bin/e_comp_wl_rsm.c
src/bin/e_comp_wl_shell.c
src/bin/e_comp_wl_subsurface.c
src/bin/e_desk.c
src/bin/e_desk_area.c
src/bin/e_hwc_planes.c
src/bin/e_hwc_window.c
src/bin/e_hwc_windows.c
src/bin/e_info_server.c
src/bin/e_pixmap.c
src/bin/e_plane.c
src/bin/e_policy_visibility.c
src/bin/e_policy_wl.c
src/bin/e_test_helper.c
src/bin/e_zone.c
src/bin/services/e_service_launcher.c
src/bin/services/e_service_quickpanel.c

index ec6c453..0e4face 100644 (file)
@@ -1,6 +1,7 @@
 #include "e.h"
 #include "e_blender_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <wtz-blender-server-protocol.h>
 
index 6330f67..2bcb20f 100644 (file)
@@ -13,6 +13,7 @@
 #include "e_policy_intern.h"
 #include "e_map_intern.h"
 #include "e_policy_visibility_intern.h"
+#include "e_comp_object_intern.h"
 
 #define PRI(ec) ((E_Client_Private *)e_object_data_get(E_OBJECT(ec)))
 
index 4ead6e3..9e92307 100644 (file)
@@ -12,6 +12,7 @@
 #include "e_hwc_windows_intern.h"
 #include "e_grabinput_intern.h"
 #include "e_focus_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <sys/xattr.h>
 #include "services/e_service_quickpanel.h"
index 9c69015..66d5c96 100644 (file)
@@ -1,7 +1,5 @@
 #include "e.h"
-#ifdef REFACTOR_DESK_AREA
 #include "e_comp_object_intern.h"
-#endif
 #include "e_bindings_intern.h"
 #include "e_utils_intern.h"
 #ifdef REFACTOR_DESK_AREA
 #define RENDER_DEBUG(...)
 #endif
 
-#ifdef REFACTOR_DESK_AREA
-#else
-typedef struct _E_Comp_Object
-{
-   EINA_INLIST;
-
-   int                  x, y, w, h;  // geometry
-
-   E_Client *ec;
-
-   E_Comp_Object_Frame client_inset;
-
-   Eina_Stringshare   *frame_theme;
-   Eina_Stringshare   *frame_name;
-   Eina_Stringshare   *visibility_effect; //effect when toggling visibility
-
-   E_Comp_Object_Content_Type content_type; // type of e.swallow.content
-
-   Evas_Object         *smart_obj;  // smart object
-   Evas_Object         *clip; // clipper over effect object
-   Evas_Object         *input_obj; // input smart object
-   Evas_Object         *obj;  // composite object
-   Evas_Object         *frame_object; // for client frames
-   Evas_Object         *shobj;  // shadow object
-   Evas_Object         *effect_obj; // effects object
-   Evas_Object         *transform_bg_obj;   // transform backgroung with keep_ratio option
-   struct
-     {
-        int r, g, b, a;
-     } transform_bg_color;
-   Evas_Object         *transform_tranp_obj;// transform transp rect obj
-   Evas_Object         *default_input_obj; // default input object
-   unsigned int         layer; //e_comp_canvas_layer_map(cw->ec->layer)
-   Eina_List           *obj_mirror;  // extra mirror objects
-   Eina_Tiler          *updates; //render update regions
-   Eina_Tiler          *pending_updates; //render update regions which are about to render
-
-   Evas_Native_Surface *ns; //for custom gl rendering
-
-   struct wl_listener   buffer_destroy_listener;
-
-   unsigned int         update_count;  // how many updates have happened to this obj
-
-   unsigned int         opacity;  // opacity set with _NET_WM_WINDOW_OPACITY
-
-   unsigned int         animating;  // it's busy animating
-   unsigned int         failures; //number of consecutive e_pixmap_image_draw() failures
-   unsigned int         force_visible; //number of visible obj_mirror objects
-   Eina_Bool            delete_pending : 1;  // delete pending
-   Eina_Bool            defer_hide : 1;  // flag to get hide to work on deferred hide
-   Eina_Bool            showing : 1;  // object is currently in "show" animation
-   Eina_Bool            hiding : 1;   // object is currently in "hide" animation
-   Eina_Bool            visible : 1;  // is visible
-
-   Eina_Bool            shaped : 1;  // is shaped
-   Eina_Bool            update : 1;  // has updates to fetch
-   Eina_Bool            redirected : 1;  // has updates to fetch
-   Eina_Bool            native : 1;  // native
-
-   Eina_Bool            nocomp : 1;  // nocomp applied
-   Eina_Bool            hwc_need_update : 1;  // this window updated while on e_plane to do hw composite
-   Eina_Bool            real_hid : 1;  // last hide was a real window unmap
-
-   Eina_Bool            effect_set : 1; //effect_obj has a valid group
-   Eina_Bool            effect_running : 1; //effect_obj is playing an animation
-   Eina_Bool            effect_clip : 1; //effect_obj is clipped
-   Eina_Bool            effect_clip_able : 1; //effect_obj will be clipped for effects
-
-   Eina_Bool            updates_exist : 1;
-   Eina_Bool            updates_full : 1; // entire object will be updated
-
-   Eina_Bool            force_move : 1;
-   Eina_Bool            frame_extends : 1; //frame may extend beyond object size
-   Eina_Bool            blanked : 1; //window is rendering blank content (externally composited)
-   Eina_Bool            external_content : 1; // e.swallow.content(obj) is set by external evas object
-   Eina_Bool            user_alpha_set : 1;
-   Eina_Bool            user_alpha : 1;
-
-   struct
-     {
-        Evas_Object         *obj; // mask object: transparent parts of this comp object allow to copy the alpha to current H/W plane.
-        Evas_Render_Op       saved_render_op; // saved render operation value to restore when clear a mask.
-     } mask;
-
-   struct
-     {
-        Evas_Object         *obj;
-        int                  w, h;
-     } indicator; //indicator object for internal client
-
-   struct
-     {
-        Evas_Object         *mask_obj;
-        Eina_Bool           enable;
-        Eina_Bool           mask_set;
-        int                 mask_x, mask_y, mask_w, mask_h;
-     } dim;
-
-   Eina_Bool            render_trace : 1; // trace co->obj rendering on canvas
-
-   tbm_surface_h        tbm_surface;
-   E_Comp_Image_Filter  image_filter;
-   Eina_Bool            set_mouse_callbacks;
-
-   struct
-     {
-        int lock;
-        E_Comp_Wl_Buffer_Ref buffer_ref;
-        Eina_Bool            pending_move_set;
-        int                  pending_move_x, pending_move_y;
-        Eina_Bool            pending_resize_set;
-        int                  pending_resize_w, pending_resize_h;
-     } render_update_lock;
-
-   struct
-     {
-        Eina_Bool        set;
-        int              user_r;
-        int              user_g;
-        int              user_b;
-        int              user_a;
-     } transparent;
-
-   struct
-     {
-        struct wl_signal lower;
-//#ifdef REFACTOR_DESK_AREA
-        struct wl_signal raise;
-//#endif
-        struct wl_signal show;
-        struct wl_signal hide;
-//#ifdef REFACTOR_DESK_AREA
-        struct wl_signal set_layer;
-        struct wl_signal stack_above;
-        struct wl_signal stack_below;
-//#endif
-     } events;
-} E_Comp_Object;
-#endif
-
 typedef struct _E_Input_Rect_Data
 {
    Eina_Rectangle rect;
@@ -289,7 +147,12 @@ static void           _e_comp_object_dim_update(E_Comp_Object *cw);
 static void           _e_comp_object_native_surface_set(E_Comp_Object *cw, Evas_Native_Surface *ns, Eina_Bool with_mirror);
 #ifdef REFACTOR_DESK_AREA
 #else
-static void           _e_comp_object_layer_set(Evas_Object *obj, short layer);
+static void _e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj);
+static void _e_comp_object_raise(Evas_Object *obj);
+static void  _e_comp_object_layer_set(Evas_Object *obj, short layer);
+static void _e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target);
+static void _e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target);
+static void _e_comp_object_transform_obj_stack_update(Evas_Object *obj);
 #endif
 
 static E_Client       *dim_client = NULL;
@@ -505,7 +368,7 @@ _e_comp_object_cb_mirror_hide(void *data, Evas *e EINA_UNUSED, Evas_Object *obj
 
 #ifdef REFACTOR_DESK_AREA
 EINTERN void
-_e_comp_object_transform_obj_stack_update(Evas_Object *obj)
+e_comp_object_transform_obj_stack_update(Evas_Object *obj)
 #else
 static void
 _e_comp_object_transform_obj_stack_update(Evas_Object *obj)
@@ -1838,7 +1701,7 @@ _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer)
    if (cw->visible)
      {
         e_comp_render_queue();
-        _e_comp_object_transform_obj_stack_update(obj);
+        e_comp_object_transform_obj_stack_update(obj);
      }
 
 #else
@@ -1958,7 +1821,7 @@ typedef void (*E_Comp_Object_Stack_Func)(Evas_Object *obj, Evas_Object *stack);
 
 #ifdef REFACTOR_DESK_AREA
 EINTERN void
-_e_comp_object_raise(Evas_Object *obj)
+e_comp_object_raise(Evas_Object *obj)
 #else
 static void
 _e_comp_object_raise(Evas_Object *obj)
@@ -1976,7 +1839,7 @@ _e_comp_object_raise(Evas_Object *obj)
 
 #ifdef REFACTOR_DESK_AREA
 EINTERN void
-_e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj)
+e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj)
 #else
 static void
 _e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj)
@@ -2001,7 +1864,7 @@ _e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj)
 
 #ifdef REFACTOR_DESK_AREA
 EINTERN void
-_e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target)
+e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target)
 #else
 static void
 _e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target)
@@ -2019,7 +1882,7 @@ _e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target)
 
 #ifdef REFACTOR_DESK_AREA
 EINTERN void
-_e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target)
+e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target)
 #else
 static void
 _e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target)
@@ -2074,7 +1937,11 @@ _e_comp_intercept_stack_helper(E_Comp_Object *cw, Evas_Object *stack, E_Comp_Obj
    E_Client *ecstack;
    short layer;
    Evas_Object *o = stack;
+#ifdef REFACTOR_DESK_AREA
+   Eina_Bool raising = stack_cb == e_comp_object_stack_above;
+#else
    Eina_Bool raising = stack_cb == _e_comp_object_stack_above;
+#endif
 
    /* We should consider topmost's layer_pending for subsurface */
    if ((cw->ec->layer_block) || _e_comp_object_is_pending(cw->ec))
@@ -2307,7 +2174,11 @@ _e_comp_intercept_lower(void *data, Evas_Object *obj)
         if (cw->ec->layer_pending)
           e_comp_object_layer_update(obj, NULL, obj);
 
+#ifdef REFACTOR_DESK_AREA
+        e_comp_object_lower(cw, obj);
+#else
         _e_comp_object_lower(cw, obj);
+#endif
         goto end;
      }
    if (!EINA_INLIST_GET(cw->ec)->prev) goto end; //already lowest on layer
@@ -2317,11 +2188,19 @@ _e_comp_intercept_lower(void *data, Evas_Object *obj)
    _e_comp_object_layers_add(cw, NULL, NULL, 1);
    if (evas_object_layer_get(o) != evas_object_layer_get(obj)) goto end; //already at bottom!
    evas_object_data_set(obj, "client_restack", (void*)1);
+#ifdef REFACTOR_DESK_AREA
+   e_comp_object_lower(cw, obj);
+#else
    _e_comp_object_lower(cw, obj);
+#endif
    evas_object_data_del(obj, "client_restack");
    if (!cw->visible) goto end;
    e_comp_render_queue();
+#ifdef REFACTOR_DESK_AREA
+   e_comp_object_transform_obj_stack_update(obj);
+#else
    _e_comp_object_transform_obj_stack_update(obj);
+#endif
 
 end:
 #endif
@@ -2351,8 +2230,11 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
              if (cw->ec->layer != obj_layer)
                e_comp_object_layer_update(obj, NULL, NULL);
           }
-
+#ifdef REFACTOR_DESK_AREA
+        e_comp_object_raise(obj);
+#else
         _e_comp_object_raise(obj);
+#endif
         goto end;
      }
    if (!EINA_INLIST_GET(cw->ec)->next) goto end;//already highest on layer
@@ -2372,12 +2254,20 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
              if (ec && (!ec->override)) break;
           }
      }
+#ifdef REFACTOR_DESK_AREA
+   e_comp_object_stack_below(obj, op);
+#else
    _e_comp_object_stack_below(obj, op);
+#endif
    e_client_focus_defer_set(cw->ec);
 
    if (!cw->visible) goto end;
    e_comp_render_queue();
+#ifdef REFACTOR_DESK_AREA
+   e_comp_object_transform_obj_stack_update(obj);
+#else
    _e_comp_object_transform_obj_stack_update(obj);
+#endif
 
 end:
 #endif
@@ -5662,7 +5552,11 @@ e_comp_object_transform_bg_set(Evas_Object *obj, Eina_Bool set)
              cw->transform_bg_obj = o;
              evas_object_name_set(cw->transform_bg_obj, "cw->transform_bg_obj");
           }
+#ifdef REFACTOR_DESK_AREA
+        e_comp_object_transform_obj_stack_update(obj);
+#else
         _e_comp_object_transform_obj_stack_update(obj);
+#endif
      }
    else
      {
@@ -5742,7 +5636,11 @@ e_comp_object_transform_transp_set(Evas_Object *obj, Eina_Bool set)
              ELOGF("TRANSFORM","transform set: TRUE", cw->ec);
              evas_object_name_set(cw->transform_tranp_obj, "cw->transform_trasp_obj");
           }
+#ifdef REFACTOR_DESK_AREA
+        e_comp_object_transform_obj_stack_update(obj);
+#else
         _e_comp_object_transform_obj_stack_update(obj);
+#endif
      }
    else
      {
index 87e9568..ee97bbb 100644 (file)
@@ -81,142 +81,70 @@ struct _E_Comp_Object_Intercept_Hook
 };
 #endif
 
-extern EINTERN int E_EVENT_COMP_OBJECT_ADD;
-extern EINTERN int E_EVENT_COMP_OBJECT_IMG_RENDER;
-extern EINTERN int E_EVENT_COMP_OBJECT_EFFECT_START;
-extern EINTERN int E_EVENT_COMP_OBJECT_EFFECT_END;
+E_API void      e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h);
+E_API void      e_comp_object_dirty(Evas_Object *obj);
+E_API Eina_Bool e_comp_object_render(Evas_Object *obj);
+E_API void      e_comp_object_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a);
+E_API E_Client *e_comp_object_client_get(Evas_Object *obj);
+E_API void      e_comp_object_alpha_set(Evas_Object *obj, Eina_Bool alpha);
+E_API void      e_comp_object_hwc_update_set(Evas_Object *obj, Eina_Bool set);
+E_API Eina_Bool e_comp_object_native_usable_get(Evas_Object *obj);
 
-EINTERN void e_comp_object_init(void);
-EINTERN void e_comp_object_shutdown(void);
+E_API void      e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set);
+E_API Eina_Bool e_comp_object_mask_has(Evas_Object *obj);
 
-EINTERN Eina_Bool e_comp_object_mirror_visibility_check(Evas_Object *obj);
-EINTERN Evas_Object *e_comp_object_client_add(E_Client *ec);
 E_API Evas_Object *e_comp_object_util_mirror_add(Evas_Object *obj);
 E_API Evas_Object *e_comp_object_util_add(Evas_Object *obj);
+
 E_API void e_comp_object_frame_xy_adjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
 E_API void e_comp_object_frame_xy_unadjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
 E_API void e_comp_object_frame_wh_adjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
 E_API void e_comp_object_frame_wh_unadjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
-EINTERN void e_comp_object_frame_extends_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
-E_API E_Client *e_comp_object_client_get(Evas_Object *obj);
-EINTERN E_Zone *e_comp_object_util_zone_get(Evas_Object *obj);
-EINTERN void e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del);
-EINTERN void e_comp_object_util_del_list_remove(Evas_Object *obj, Evas_Object *to_del);
-EINTERN void e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb, E_Comp_Object_Key_Cb cb, const void *data);
-EINTERN void e_comp_object_util_center(Evas_Object *obj);
-EINTERN void e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on);
-EINTERN void e_comp_object_util_center_pos_get(Evas_Object *obj, int *x, int *y);
-EINTERN void e_comp_object_util_fullscreen(Evas_Object *obj);
-EINTERN Eina_Bool e_comp_object_frame_allowed(Evas_Object *obj);
-EINTERN void e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *b);
-EINTERN void e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b);
-EINTERN Eina_Bool e_comp_object_frame_title_set(Evas_Object *obj, const char *name);
-EINTERN Eina_Bool e_comp_object_frame_exists(Evas_Object *obj);
-EINTERN Eina_Bool e_comp_object_frame_theme_set(Evas_Object *obj, const char *name);
+
 E_API void e_comp_object_signal_emit(Evas_Object *obj, const char *sig, const char *src);
 E_API void e_comp_object_signal_callback_add(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
 E_API void e_comp_object_signal_callback_del(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb);
 E_API void e_comp_object_signal_callback_del_full(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
-EINTERN void e_comp_object_input_objs_del(Evas_Object *obj);
+
 E_API void e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h);
 E_API void e_comp_object_input_rect_get(Evas_Object *obj, Eina_List **list);
-E_API void e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h);
-EINTERN Eina_Bool e_comp_object_damage_exists(Evas_Object *obj);
-EINTERN void e_comp_object_render_update_add(Evas_Object *obj);
-EINTERN void e_comp_object_render_update_del(Evas_Object *obj);
-EINTERN void e_comp_object_shape_apply(Evas_Object *obj);
-EINTERN void e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set);
-EINTERN void e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set);
-EINTERN void e_comp_object_native_surface_override(Evas_Object *obj, Evas_Native_Surface *ns);
-EINTERN void e_comp_object_blank(Evas_Object *obj, Eina_Bool set);
-E_API void e_comp_object_dirty(Evas_Object *obj);
-E_API Eina_Bool e_comp_object_render(Evas_Object *obj);
-EINTERN Eina_Bool e_comp_object_effect_allowed_get(Evas_Object *obj);
-E_API Eina_Bool e_comp_object_effect_set(Evas_Object *obj, const char *effect);
-E_API void e_comp_object_effect_params_set(Evas_Object *obj, int id, int *params, unsigned int count);
-EINTERN void e_comp_object_effect_clip(Evas_Object *obj);
-EINTERN void e_comp_object_effect_unclip(Evas_Object *obj);
-E_API Eina_Bool e_comp_object_effect_start(Evas_Object *obj, Edje_Signal_Cb end_cb, const void *end_data);
-E_API Eina_Bool e_comp_object_effect_stop(Evas_Object *obj, Edje_Signal_Cb end_cb);
+
+E_API unsigned int         e_comp_object_is_animating(Evas_Object *obj);
+E_API Eina_Bool            e_comp_object_effect_set(Evas_Object *obj, const char *effect);
+E_API void                 e_comp_object_effect_params_set(Evas_Object *obj, int id, int *params, unsigned int count);
+E_API Eina_Bool            e_comp_object_effect_start(Evas_Object *obj, Edje_Signal_Cb end_cb, const void *end_data);
+E_API Eina_Bool            e_comp_object_effect_stop(Evas_Object *obj, Edje_Signal_Cb end_cb);
 E_API E_Comp_Object_Mover *e_comp_object_effect_mover_add(int pri, const char *sig, E_Comp_Object_Mover_Cb provider, const void *data);
-E_API void e_comp_object_effect_mover_del(E_Comp_Object_Mover *prov);
-E_API Evas_Object *e_comp_object_effect_object_get(Evas_Object *obj);
-E_API E_Comp_Object_Hook *e_comp_object_hook_add(E_Comp_Object_Hook_Point hookpoint, E_Comp_Object_Hook_Cb func, const void *data);
-E_API void e_comp_object_hook_del(E_Comp_Object_Hook *ch);
+E_API void                 e_comp_object_effect_mover_del(E_Comp_Object_Mover *prov);
+E_API Evas_Object         *e_comp_object_effect_object_get(Evas_Object *obj);
+E_API Eina_Bool            e_comp_object_effect_object_part_swallow(Evas_Object *obj, const char *part_name, Evas_Object *swallow_obj);
+E_API Eina_Bool            e_comp_object_effect_hiding_set(Evas_Object *obj, Eina_Bool set);
 
-#ifdef _F_E_COMP_OBJECT_INTERCEPT_HOOK_
-E_API E_Comp_Object_Intercept_Hook *e_comp_object_intercept_hook_add(E_Comp_Object_Intercept_Hook_Point hookpoint, E_Comp_Object_Intercept_Hook_Cb func, const void *data);
-E_API void e_comp_object_intercept_hook_del(E_Comp_Object_Intercept_Hook *ch);
-#endif
-E_API unsigned int e_comp_object_is_animating(Evas_Object *obj);
-E_API void e_comp_object_alpha_set(Evas_Object *obj, Eina_Bool alpha);
-EINTERN Eina_Bool e_comp_object_alpha_get(Evas_Object *obj);
-E_API void e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set);
-E_API Eina_Bool e_comp_object_mask_has(Evas_Object *obj);
-EINTERN void e_comp_object_size_update(Evas_Object *obj, int w, int h);
 E_API void e_comp_object_transform_bg_set(Evas_Object *obj, Eina_Bool set);
 E_API void e_comp_object_transform_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
-
-EINTERN void e_comp_object_transform_bg_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices);
-EINTERN void e_comp_object_transform_bg_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom);
 E_API void e_comp_object_transform_transp_set(Evas_Object *obj, Eina_Bool set);
-EINTERN void e_comp_object_transform_transp_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices);
-EINTERN void e_comp_object_transform_transp_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom);
-
-//#ifdef REFACTOR_DESK_AREA
-//#else
-EINTERN void e_comp_object_layer_update(Evas_Object *obj, Evas_Object *above, Evas_Object *below);
-//#endif
-EINTERN int e_comp_object_layer_get(Evas_Object *obj);
 
 E_API Eina_Bool                  e_comp_object_content_set(Evas_Object* obj, Evas_Object *content, E_Comp_Object_Content_Type type);
-EINTERN Eina_Bool                  e_comp_object_content_unset(Evas_Object* obj);
-EINTERN Evas_Object               *e_comp_object_content_get(Evas_Object* obj);
 E_API E_Comp_Object_Content_Type e_comp_object_content_type_get(Evas_Object* obj);
 
 E_API void e_comp_object_dim_client_set(E_Client *ec);
-EINTERN E_Client *e_comp_object_dim_client_get(void);
 E_API void e_comp_object_dim_mask_update(Evas_Object *obj, Eina_Bool mask_set, int x, int y, int w, int h);
-EINTERN void e_comp_object_dim_mask_set(Evas_Object *obj, Eina_Bool set);
-EINTERN void e_comp_object_clear(Evas_Object *obj);
-
-EINTERN Eina_Bool e_comp_object_hwc_update_exists(Evas_Object *obj);
-E_API void        e_comp_object_hwc_update_set(Evas_Object *obj, Eina_Bool set);
-
-E_API Eina_Bool e_comp_object_effect_object_part_swallow(Evas_Object *obj, const char *part_name, Evas_Object *swallow_obj);
-E_API Eina_Bool e_comp_object_effect_hiding_set(Evas_Object *obj, Eina_Bool set);
-
-EINTERN void e_comp_object_indicator_swallow(Evas_Object *obj, Evas_Object *indicator);
-EINTERN void e_comp_object_indicator_unswallow(Evas_Object *obj, Evas_Object *indicator);
-EINTERN void e_comp_object_indicator_size_set(Evas_Object *obj, int w, int h);
-
-EINTERN void e_comp_object_map_update(Evas_Object *obj);
-
-EINTERN Eina_Bool e_comp_object_render_trace_set(Evas_Object *obj, Eina_Bool set);
-
-E_API Eina_Bool e_comp_object_native_usable_get(Evas_Object *obj);
 
-EINTERN Eina_Bool e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter);
-EINTERN E_Comp_Image_Filter e_comp_object_image_filter_get(Evas_Object *obj);
-
-EINTERN void e_comp_object_damage_trace_debug(Eina_Bool onoff);
-
-EINTERN Eina_Bool e_comp_object_redirected_get(Evas_Object *obj);
-EINTERN Eina_Bool e_comp_object_color_visible_get(Evas_Object *obj);
-
-E_API Eina_Bool        e_comp_object_map_set(Evas_Object *obj, E_Map *em);
-// get E_Map from evas_object. it must be freed after used.
-EINTERN E_Map           *e_comp_object_map_get(const Evas_Object *obj);
-E_API Eina_Bool        e_comp_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled);
+E_API Eina_Bool e_comp_object_map_set(Evas_Object *obj, E_Map *em);
+E_API Eina_Bool e_comp_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled); // get E_Map from evas_object. it must be freed after used.
 
 E_API Eina_Bool e_comp_object_render_update_lock(Evas_Object *obj);
 E_API void      e_comp_object_render_update_unlock(Evas_Object *obj);
 E_API Eina_Bool e_comp_object_render_update_lock_get(Evas_Object *obj);
 
-E_API void e_comp_object_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a);
+E_API E_Comp_Object_Hook *e_comp_object_hook_add(E_Comp_Object_Hook_Point hookpoint, E_Comp_Object_Hook_Cb func, const void *data);
+E_API void                e_comp_object_hook_del(E_Comp_Object_Hook *ch);
+
+#ifdef _F_E_COMP_OBJECT_INTERCEPT_HOOK_
+E_API E_Comp_Object_Intercept_Hook *e_comp_object_intercept_hook_add(E_Comp_Object_Intercept_Hook_Point hookpoint, E_Comp_Object_Intercept_Hook_Cb func, const void *data);
+E_API void                          e_comp_object_intercept_hook_del(E_Comp_Object_Intercept_Hook *ch);
+#endif
 
-EINTERN void e_comp_object_render_op_set(Evas_Object *obj, Evas_Render_Op op);
-EINTERN Evas_Render_Op e_comp_object_render_op_get(Evas_Object *obj);
 #endif
 #endif
 
index 7cac84d..2894d22 100644 (file)
@@ -166,17 +166,102 @@ typedef struct _E_Comp_Object_Data_Stack_Below
    Evas_Object   *below_obj; // below_obj
 } E_Comp_Object_Data_Stack_Below;
 
+extern EINTERN int E_EVENT_COMP_OBJECT_ADD;
+extern EINTERN int E_EVENT_COMP_OBJECT_IMG_RENDER;
+extern EINTERN int E_EVENT_COMP_OBJECT_EFFECT_START;
+extern EINTERN int E_EVENT_COMP_OBJECT_EFFECT_END;
+
+EINTERN void e_comp_object_init(void);
+EINTERN void e_comp_object_shutdown(void);
+
+EINTERN Evas_Object *e_comp_object_client_add(E_Client *ec);
+EINTERN Eina_Bool    e_comp_object_alpha_get(Evas_Object *obj);
+EINTERN Eina_Bool    e_comp_object_color_visible_get(Evas_Object *obj);
+EINTERN void         e_comp_object_clear(Evas_Object *obj);
+EINTERN Eina_Bool    e_comp_object_redirected_get(Evas_Object *obj);
+EINTERN Eina_Bool    e_comp_object_mirror_visibility_check(Evas_Object *obj);
+EINTERN void         e_comp_object_input_objs_del(Evas_Object *obj);
+EINTERN Eina_Bool    e_comp_object_hwc_update_exists(Evas_Object *obj);
+EINTERN void         e_comp_object_damage_trace_debug(Eina_Bool onoff);
+
+EINTERN Eina_Bool e_comp_object_frame_allowed(Evas_Object *obj);
+EINTERN void      e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *b);
+EINTERN void      e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b);
+EINTERN Eina_Bool e_comp_object_frame_title_set(Evas_Object *obj, const char *name);
+EINTERN Eina_Bool e_comp_object_frame_exists(Evas_Object *obj);
+EINTERN Eina_Bool e_comp_object_frame_theme_set(Evas_Object *obj, const char *name);
+EINTERN void      e_comp_object_frame_extends_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
+
+EINTERN E_Zone   *e_comp_object_util_zone_get(Evas_Object *obj);
+EINTERN void      e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del);
+EINTERN void      e_comp_object_util_del_list_remove(Evas_Object *obj, Evas_Object *to_del);
+EINTERN void      e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb, E_Comp_Object_Key_Cb cb, const void *data);
+EINTERN void      e_comp_object_util_center(Evas_Object *obj);
+EINTERN void      e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on);
+EINTERN void      e_comp_object_util_center_pos_get(Evas_Object *obj, int *x, int *y);
+EINTERN void      e_comp_object_util_fullscreen(Evas_Object *obj);
+
+EINTERN Eina_Bool e_comp_object_damage_exists(Evas_Object *obj);
+EINTERN void      e_comp_object_shape_apply(Evas_Object *obj);
+EINTERN void      e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set);
+EINTERN void      e_comp_object_blank(Evas_Object *obj, Eina_Bool set);
+EINTERN void      e_comp_object_size_update(Evas_Object *obj, int w, int h);
+
+EINTERN void      e_comp_object_render_update_add(Evas_Object *obj);
+EINTERN void      e_comp_object_render_update_del(Evas_Object *obj);
+
+EINTERN void      e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set);
+EINTERN void      e_comp_object_native_surface_override(Evas_Object *obj, Evas_Native_Surface *ns);
+
+EINTERN Eina_Bool e_comp_object_effect_allowed_get(Evas_Object *obj);
+EINTERN void      e_comp_object_effect_clip(Evas_Object *obj);
+EINTERN void      e_comp_object_effect_unclip(Evas_Object *obj);
+
+EINTERN void      e_comp_object_transform_bg_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices);
+EINTERN void      e_comp_object_transform_bg_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom);
+EINTERN void      e_comp_object_transform_transp_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices);
+EINTERN void      e_comp_object_transform_transp_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, E_Util_Transform_Zoom zoom);
+
+//#ifdef REFACTOR_DESK_AREA
+//#else
+EINTERN void      e_comp_object_layer_update(Evas_Object *obj, Evas_Object *above, Evas_Object *below);
+//#endif
+EINTERN int       e_comp_object_layer_get(Evas_Object *obj);
+
+EINTERN Eina_Bool    e_comp_object_content_unset(Evas_Object* obj);
+EINTERN Evas_Object *e_comp_object_content_get(Evas_Object* obj);
+
+EINTERN E_Client *e_comp_object_dim_client_get(void);
+EINTERN void      e_comp_object_dim_mask_set(Evas_Object *obj, Eina_Bool set);
+
+EINTERN void e_comp_object_indicator_swallow(Evas_Object *obj, Evas_Object *indicator);
+EINTERN void e_comp_object_indicator_unswallow(Evas_Object *obj, Evas_Object *indicator);
+EINTERN void e_comp_object_indicator_size_set(Evas_Object *obj, int w, int h);
+
+EINTERN Eina_Bool           e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter);
+EINTERN E_Comp_Image_Filter e_comp_object_image_filter_get(Evas_Object *obj);
+
+EINTERN E_Map *e_comp_object_map_get(const Evas_Object *obj);
+EINTERN void   e_comp_object_map_update(Evas_Object *obj);
+
+EINTERN void           e_comp_object_render_op_set(Evas_Object *obj, Evas_Render_Op op);
+EINTERN Evas_Render_Op e_comp_object_render_op_get(Evas_Object *obj);
+EINTERN Eina_Bool      e_comp_object_render_trace_set(Evas_Object *obj, Eina_Bool set);
+
 //#ifdef REFACTOR_DESK_AREA
 typedef void (*E_Comp_Object_Stack_Func)(Evas_Object *obj, Evas_Object *stack);
+//#endif
 
-EINTERN void _e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj);
-EINTERN void _e_comp_object_raise(Evas_Object *obj);
+//#ifdef REFACTOR_DESK_AREA
+EINTERN void e_comp_object_lower(E_Comp_Object *cw, Evas_Object *obj);
+EINTERN void e_comp_object_raise(Evas_Object *obj);
 EINTERN void e_comp_object_layer_set(Evas_Object *obj, short layer);
-EINTERN void _e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target);
-EINTERN void _e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target);
-EINTERN void _e_comp_object_transform_obj_stack_update(Evas_Object *obj);
+EINTERN void e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target);
+EINTERN void e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target);
+EINTERN void e_comp_object_transform_obj_stack_update(Evas_Object *obj);
 //#endif
 
+// listeners
 EINTERN void e_comp_object_lower_listener_add(Evas_Object *obj, struct wl_listener *listener);
 //#ifdef REFACTOR_DESK_AREA
 EINTERN void e_comp_object_lower_done_listener_add(Evas_Object *obj, struct wl_listener *listener);
index a66bfe1..78c1e7e 100644 (file)
@@ -32,6 +32,7 @@
 #include "e_compositor_intern.h"
 #include "e_client_video_intern.h"
 #include "e_comp_wl_video_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <tizen-extension-server-protocol.h>
 #include <relative-pointer-unstable-v1-server-protocol.h>
index ebf1962..0a1a9f5 100644 (file)
@@ -5,6 +5,7 @@
 #include "e_comp_wl_intern.h"
 #include "e_input_intern.h"
 #include "e_pointer_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <sys/mman.h>
 #include <pixman.h>
index ceb01f5..320d388 100644 (file)
@@ -8,6 +8,7 @@
 #include "e_comp_wl_tbm_intern.h"
 #include "e_privilege_intern.h"
 #include "e_policy_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <tizen-remote-surface-server-protocol.h>
 #include <tbm_surface.h>
index 4e7aaff..056605f 100644 (file)
@@ -9,6 +9,7 @@
 #include "e_comp_wl_subsurface_intern.h"
 #include "e_policy_intern.h"
 #include "e_policy_visibility_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <xdg-shell-unstable-v5-server-protocol.h>
 #include <xdg-shell-unstable-v6-server-protocol.h>
index fc80e50..ec6a779 100644 (file)
@@ -7,6 +7,7 @@
 #ifdef REFACTOR_DESK_AREA
 #include "e_client_intern.h"
 #endif
+#include "e_comp_object_intern.h"
 
 #include <tizen-extension-server-protocol.h>
 
index 8186f6b..9cf7b76 100644 (file)
@@ -5,6 +5,7 @@
 #include "e_comp_screen_intern.h"
 #include "e_comp_wl_subsurface_intern.h"
 #include "e_output_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <libds-tizen/screen.h>
 
index a0dbbdd..c229d6f 100644 (file)
@@ -266,7 +266,7 @@ _e_comp_intercept_stack_helper(E_Desk_Area *eda, E_Comp_Object *cw, Evas_Object
    E_Client *ecstack;
    short layer;
    Evas_Object *o = stack;
-   Eina_Bool raising = stack_cb == _e_comp_object_stack_above;
+   Eina_Bool raising = stack_cb == e_comp_object_stack_above;
 
    /* We should consider topmost's layer_pending for subsurface */
    if ((cw->ec->layer_block) || _e_comp_object_is_pending(cw->ec))
@@ -1726,7 +1726,7 @@ _desk_area_cb_comp_object_lower(struct wl_listener *listener, void *data)
         if (cw->ec->layer_pending)
           _e_comp_object_layer_update(eda, obj, NULL, obj);
 
-        _e_comp_object_lower(cw, obj);
+        e_comp_object_lower(cw, obj);
         return;
      }
 
@@ -1739,12 +1739,12 @@ _desk_area_cb_comp_object_lower(struct wl_listener *listener, void *data)
    if (evas_object_layer_get(o) != evas_object_layer_get(obj)) return; //already at bottom!
 
    evas_object_data_set(obj, "client_restack", (void*)1);
-   _e_comp_object_lower(cw, obj);
+   e_comp_object_lower(cw, obj);
    evas_object_data_del(obj, "client_restack");
 
    if (!cw->visible) return;
    e_comp_render_queue();
-   _e_comp_object_transform_obj_stack_update(obj);
+   e_comp_object_transform_obj_stack_update(obj);
 }
 
 static void
@@ -1771,7 +1771,7 @@ _desk_area_cb_comp_object_raise(struct wl_listener *listener, void *data)
                _e_comp_object_layer_update(eda, obj, NULL, NULL);
           }
 
-        _e_comp_object_raise(obj);
+        e_comp_object_raise(obj);
         return;
      }
    if (!EINA_INLIST_GET(cw->ec)->next) return;//already highest on layer
@@ -1791,12 +1791,12 @@ _desk_area_cb_comp_object_raise(struct wl_listener *listener, void *data)
              if (ec && (!ec->override)) break;
           }
      }
-   _e_comp_object_stack_below(obj, op);
+   e_comp_object_stack_below(obj, op);
    e_client_focus_defer_set(cw->ec);
 
    if (!cw->visible) return;
    e_comp_render_queue();
-   _e_comp_object_transform_obj_stack_update(obj);
+   e_comp_object_transform_obj_stack_update(obj);
 }
 
 static void
@@ -1946,10 +1946,10 @@ _desk_area_cb_comp_object_stack_above(struct wl_listener *listener, void *data)
         return;
      }
 
-   _e_comp_intercept_stack_helper(eda, cw, above, _e_comp_object_stack_above);
+   _e_comp_intercept_stack_helper(eda, cw, above, e_comp_object_stack_above);
 
-   _e_comp_object_transform_obj_stack_update(obj);
-   _e_comp_object_transform_obj_stack_update(above);
+   e_comp_object_transform_obj_stack_update(obj);
+   e_comp_object_transform_obj_stack_update(above);
 
 }
 
@@ -1977,12 +1977,12 @@ _desk_area_cb_comp_object_stack_below(struct wl_listener *listener, void *data)
         return;
      }
 
-   _e_comp_intercept_stack_helper(eda, cw, below, _e_comp_object_stack_below);
+   _e_comp_intercept_stack_helper(eda, cw, below, e_comp_object_stack_below);
 
    if (evas_object_smart_smart_get(obj))
-     _e_comp_object_transform_obj_stack_update(obj);
+     e_comp_object_transform_obj_stack_update(obj);
    if (evas_object_smart_smart_get(below))
-     _e_comp_object_transform_obj_stack_update(below);
+     e_comp_object_transform_obj_stack_update(below);
 
 }
 #endif
index 09c150a..a654f4f 100644 (file)
@@ -6,6 +6,7 @@
 #include "e_hwc_intern.h"
 #include "e_policy_private_data.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <wayland-tbm-server.h>
 
index f293860..aa15b23 100644 (file)
@@ -14,6 +14,7 @@
 #include "e_policy_visibility_intern.h"
 #include "e_client_video_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 # include <pixman.h>
 # include <wayland-tbm-server.h>
index a0e84e6..28845e0 100644 (file)
@@ -13,6 +13,7 @@
 #include "e_egl_sync_intern.h"
 #include "e_client_video_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 # include <Evas_Engine_GL_Tbm.h>
 # include <Evas_Engine_Software_Tbm.h>
index 5ecb31b..90bfba5 100644 (file)
@@ -28,6 +28,7 @@
 #include "e_client_video_intern.h"
 #include "e_video_debug_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <tbm_bufmgr.h>
 #include <tbm_surface.h>
index ecdd04f..a89c600 100644 (file)
@@ -4,6 +4,7 @@
 #include "e_comp_wl_tbm_intern.h"
 #include "e_presentation_time_intern.h"
 #include "e_policy_visibility_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <wayland-tbm-server.h>
 #include <tizen-extension-server-protocol.h>
index 86549c6..cf2c298 100644 (file)
@@ -6,6 +6,7 @@
 #include "e_output_intern.h"
 #include "e_comp_wl_video_buffer_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <device/board-internal.h>
 # include <tdm.h>
index 7b72ecb..ba926d9 100644 (file)
@@ -11,6 +11,7 @@
 #include "e_comp_intern.h"
 #include "e_policy_wl_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #ifdef ENABLE_TTRACE
 # include <ttrace.h>
index a192703..a719208 100644 (file)
@@ -25,6 +25,7 @@
 #include "e_privilege_intern.h"
 #include "e_magnifier_intern.h"
 #include "e_hints_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <device/display.h>
 #include <wayland-server.h>
index 99fcb81..ef6db6b 100644 (file)
@@ -7,6 +7,7 @@
 #include "e_pixmap_intern.h"
 #include "e_policy_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #define BUS "org.enlightenment.wm"
 #define PATH "/org/enlightenment/wm"
index 8dfc3bc..1d1bec5 100644 (file)
@@ -14,6 +14,7 @@
 #include "e_maximize_intern.h"
 #include "e_focus_intern.h"
 #include "e_policy_visibility_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <libds-tizen/screen.h>
 
index 9ae76d9..7d9dabb 100644 (file)
@@ -8,6 +8,7 @@
 #include "e_policy_private_data.h"
 #include "e_policy_visibility_intern.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #include <tzsh_server.h>
 #include <wayland-tbm-server.h>
index 1c73edd..9a9dcc8 100644 (file)
@@ -7,6 +7,7 @@
 #include "e_policy_wl_intern.h"
 #include "e_policy_private_data.h"
 #include "e_client_intern.h"
+#include "e_comp_object_intern.h"
 
 #define SMART_NAME            "quickpanel_object"
 #define INTERNAL_ENTRY                       \