1 #ifndef E_COMP_OBJECT_INTERN_H
2 #define E_COMP_OBJECT_INTERN_H
4 #include <wayland-server.h>
6 //#ifdef REFACTOR_DESK_AREA
7 typedef struct _E_Comp_Object E_Comp_Object;
12 int x, y, w, h; // geometry
16 E_Comp_Object_Frame client_inset;
26 Eina_Stringshare *frame_theme;
27 Eina_Stringshare *frame_name;
28 Eina_Stringshare *visibility_effect; //effect when toggling visibility
30 E_Comp_Object_Content_Type content_type; // type of e.swallow.content
32 Evas_Object *smart_obj; // smart object
33 Evas_Object *clip; // clipper over effect object
34 Evas_Object *input_obj; // input smart object
35 Evas_Object *obj; // composite object
36 Evas_Object *frame_object; // for client frames
37 Evas_Object *shobj; // shadow object
38 Evas_Object *effect_obj; // effects object
39 Evas_Object *transform_bg_obj; // transform backgroung with keep_ratio option
44 Evas_Object *transform_tranp_obj;// transform transp rect obj
45 Evas_Object *default_input_obj; // default input object
46 unsigned int layer; //e_comp_canvas_layer_map(cw->ec->layer)
47 Eina_List *obj_mirror; // extra mirror objects
48 Eina_Tiler *updates; //render update regions
49 Eina_Tiler *pending_updates; //render update regions which are about to render
51 Evas_Native_Surface *ns; //for custom gl rendering
53 struct wl_listener buffer_destroy_listener;
55 unsigned int update_count; // how many updates have happened to this obj
57 unsigned int opacity; // opacity set with _NET_WM_WINDOW_OPACITY
59 unsigned int animating; // it's busy animating
60 unsigned int failures; //number of consecutive e_pixmap_image_draw() failures
61 unsigned int force_visible; //number of visible obj_mirror objects
62 Eina_Bool delete_pending : 1; // delete pending
63 Eina_Bool defer_hide : 1; // flag to get hide to work on deferred hide
64 Eina_Bool showing : 1; // object is currently in "show" animation
65 Eina_Bool hiding : 1; // object is currently in "hide" animation
66 Eina_Bool visible : 1; // is visible
68 Eina_Bool shaped : 1; // is shaped
69 Eina_Bool update : 1; // has updates to fetch
70 Eina_Bool redirected : 1; // has updates to fetch
71 Eina_Bool native : 1; // native
73 Eina_Bool nocomp : 1; // nocomp applied
74 Eina_Bool hwc_need_update : 1; // this window updated while on e_plane to do hw composite
75 Eina_Bool real_hid : 1; // last hide was a real window unmap
77 Eina_Bool effect_set : 1; //effect_obj has a valid group
78 Eina_Bool effect_running : 1; //effect_obj is playing an animation
79 Eina_Bool effect_clip : 1; //effect_obj is clipped
80 Eina_Bool effect_clip_able : 1; //effect_obj will be clipped for effects
82 Eina_Bool updates_exist : 1;
83 Eina_Bool updates_full : 1; // entire object will be updated
85 Eina_Bool force_move : 1;
86 Eina_Bool frame_extends : 1; //frame may extend beyond object size
87 Eina_Bool blanked : 1; //window is rendering blank content (externally composited)
88 Eina_Bool external_content : 1; // e.swallow.content(obj) is set by external evas object
89 Eina_Bool user_alpha_set : 1;
90 Eina_Bool user_alpha : 1;
94 Evas_Object *obj; // mask object: transparent parts of this comp object allow to copy the alpha to current H/W plane.
95 Evas_Render_Op saved_render_op; // saved render operation value to restore when clear a mask.
102 } indicator; //indicator object for internal client
106 Evas_Object *mask_obj;
109 int mask_x, mask_y, mask_w, mask_h;
112 Eina_Bool render_trace : 1; // trace co->obj rendering on canvas
114 tbm_surface_h tbm_surface;
115 E_Comp_Image_Filter image_filter;
116 Eina_Bool set_mouse_callbacks;
121 E_Comp_Wl_Buffer_Ref buffer_ref;
122 Eina_Bool pending_move_set;
123 int pending_move_x, pending_move_y;
124 Eina_Bool pending_resize_set;
125 int pending_resize_w, pending_resize_h;
126 } render_update_lock;
139 struct wl_signal lower;
140 struct wl_signal raise;
141 struct wl_signal show;
142 struct wl_signal hide;
143 struct wl_signal set_layer;
144 struct wl_signal stack_above;
145 struct wl_signal stack_below;
150 typedef struct _E_Comp_Object_Data_Set_Layer
154 } E_Comp_Object_Data_Set_Layer;
156 typedef struct _E_Comp_Object_Data_Stack_Above
159 Evas_Object *above_obj; // above_obj
160 } E_Comp_Object_Data_Stack_Above;
162 typedef struct _E_Comp_Object_Data_Stack_Below
165 Evas_Object *below_obj; // below_obj
166 } E_Comp_Object_Data_Stack_Below;
167 EINTERN void e_comp_object_lower_listener_add(Evas_Object *obj, struct wl_listener *listener);
168 //#ifdef REFACTOR_DESK_AREA
169 EINTERN void e_comp_object_raise_listener_add(Evas_Object *obj, struct wl_listener *listener);
171 EINTERN void e_comp_object_show_listener_add(Evas_Object *obj, struct wl_listener *listener);
172 EINTERN void e_comp_object_hide_listener_add(Evas_Object *obj, struct wl_listener *listener);
173 //#ifdef REFACTOR_DESK_AREA
174 EINTERN void e_comp_object_set_layer_listener_add(Evas_Object *obj, struct wl_listener *listener);
175 EINTERN void e_comp_object_stack_above_listener_add(Evas_Object *obj, struct wl_listener *listener);
176 EINTERN void e_comp_object_stack_below_listener_add(Evas_Object *obj, struct wl_listener *listener);