#ifndef E_COMP_OBJECT_INTERN_H
#define E_COMP_OBJECT_INTERN_H
+#include "e_intern.h"
+#include "e_comp_object.h"
+#include "e_object.h"
+
#include <wayland-server.h>
//#ifdef REFACTOR_DESK_AREA
struct
{
Eina_Bool set;
+ Eina_Bool setting;
int user_r;
int user_g;
int user_b;
struct
{
struct wl_signal lower;
+ struct wl_signal lower_done;
struct wl_signal raise;
struct wl_signal show;
struct wl_signal hide;
+ struct wl_signal hiding;
struct wl_signal set_layer;
struct wl_signal stack_above;
struct wl_signal stack_below;
+ struct wl_signal image_filter_set;
+ struct wl_signal render_op_set;
+ struct wl_signal content_type_set;
+ struct wl_signal color_set;
+ struct wl_signal color_visible_set;
+ struct wl_signal resize;
} events;
+
+ Eina_Bool color_visible;
};
//#endif
E_Comp_Object *cw;
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_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
+
+//#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);
+//#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);
EINTERN void e_comp_object_raise_listener_add(Evas_Object *obj, struct wl_listener *listener);
//#endif
EINTERN void e_comp_object_show_listener_add(Evas_Object *obj, struct wl_listener *listener);
EINTERN void e_comp_object_hide_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_hiding_listener_add(Evas_Object *obj, struct wl_listener *listener);
//#ifdef REFACTOR_DESK_AREA
EINTERN void e_comp_object_set_layer_listener_add(Evas_Object *obj, struct wl_listener *listener);
EINTERN void e_comp_object_stack_above_listener_add(Evas_Object *obj, struct wl_listener *listener);
EINTERN void e_comp_object_stack_below_listener_add(Evas_Object *obj, struct wl_listener *listener);
//#endif
+EINTERN void e_comp_object_image_filter_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_render_op_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_content_type_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_color_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_color_visible_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+EINTERN void e_comp_object_resize_listener_add(Evas_Object *obj, struct wl_listener *listener);
+
#endif