forked from enlightenment/enlightenment
e17/comp: add function to get Comp_Source for window.
- make part of comp source struct public, better than having all modules using Comp_Source copying E_Comp_Win private struct. SVN revision: 63963
This commit is contained in:
parent
d1caae1da8
commit
b59bdf6761
|
@ -566,6 +566,12 @@ e_manager_comp_src_list(E_Manager *man)
|
|||
return man->comp->func.src_list_get(man->comp->data, man);
|
||||
}
|
||||
|
||||
EAPI E_Manager_Comp_Source*
|
||||
e_manager_comp_src_get(E_Manager *man, Ecore_X_Window win)
|
||||
{
|
||||
return man->comp->func.src_get(man->comp->data, man, win);
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
e_manager_comp_src_image_get(E_Manager *man, E_Manager_Comp_Source *src)
|
||||
{
|
||||
|
|
|
@ -9,23 +9,7 @@ typedef struct _E_Manager_Comp_Source E_Manager_Comp_Source;
|
|||
#define E_MANAGER_H
|
||||
|
||||
#define E_MANAGER_TYPE (int) 0xE0b01008
|
||||
|
||||
struct _E_Manager_Comp
|
||||
{
|
||||
struct {
|
||||
Evas * (*evas_get) (void *data, E_Manager *man);
|
||||
void (*update) (void *data, E_Manager *man);
|
||||
const Eina_List * (*src_list_get) (void *data, E_Manager *man);
|
||||
Evas_Object * (*src_image_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Evas_Object * (*src_shadow_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Evas_Object * (*src_image_mirror_add) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Eina_Bool (*src_visible_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
void (*src_hidden_set) (void *data, E_Manager *man, E_Manager_Comp_Source *src, Eina_Bool hidden);
|
||||
Eina_Bool (*src_hidden_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
} func;
|
||||
void *data;
|
||||
};
|
||||
|
||||
|
||||
struct _E_Manager
|
||||
{
|
||||
E_Object e_obj_inherit;
|
||||
|
@ -44,6 +28,35 @@ struct _E_Manager
|
|||
E_Manager_Comp *comp;
|
||||
};
|
||||
|
||||
struct _E_Manager_Comp
|
||||
{
|
||||
struct {
|
||||
Evas * (*evas_get) (void *data, E_Manager *man);
|
||||
void (*update) (void *data, E_Manager *man);
|
||||
const Eina_List * (*src_list_get) (void *data, E_Manager *man);
|
||||
Evas_Object * (*src_image_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Evas_Object * (*src_shadow_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Evas_Object * (*src_image_mirror_add) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
Eina_Bool (*src_visible_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
void (*src_hidden_set) (void *data, E_Manager *man, E_Manager_Comp_Source *src, Eina_Bool hidden);
|
||||
Eina_Bool (*src_hidden_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
|
||||
E_Manager_Comp_Source * (*src_get) (void *data, E_Manager *man, Ecore_X_Window win);
|
||||
} func;
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct _E_Manager_Comp_Source
|
||||
{
|
||||
EINA_INLIST;
|
||||
|
||||
void *__c; // parent compositor
|
||||
Ecore_X_Window win; // raw window - for menus etc.
|
||||
E_Border *bd; // if its a border - later
|
||||
E_Popup *pop; // if its a popup - later
|
||||
E_Menu *menu; // if it is a menu - later
|
||||
int x, y, w, h; // geometry
|
||||
};
|
||||
|
||||
EINTERN int e_manager_init(void);
|
||||
EINTERN int e_manager_shutdown(void);
|
||||
EAPI Eina_List *e_manager_list(void);
|
||||
|
@ -120,6 +133,7 @@ EAPI void e_manager_comp_event_src_add_send(E_Manager *man, E_Manage
|
|||
EAPI void e_manager_comp_event_src_del_send(E_Manager *man, E_Manager_Comp_Source *src, void (*afterfunc) (void *data, E_Manager *man, E_Manager_Comp_Source *src), void *data);
|
||||
EAPI void e_manager_comp_event_src_config_send(E_Manager *man, E_Manager_Comp_Source *src, void (*afterfunc) (void *data, E_Manager *man, E_Manager_Comp_Source *src), void *data);
|
||||
EAPI void e_manager_comp_event_src_visibility_send(E_Manager *man, E_Manager_Comp_Source *src, void (*afterfunc) (void *data, E_Manager *man, E_Manager_Comp_Source *src), void *data);
|
||||
EAPI E_Manager_Comp_Source *e_manager_comp_src_get(E_Manager *man, Ecore_X_Window win);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -2915,6 +2915,14 @@ _e_mod_comp_update_func(void *data,
|
|||
_e_mod_comp_render_queue(c);
|
||||
}
|
||||
|
||||
static E_Manager_Comp_Source *
|
||||
_e_mod_comp_src_get_func(void *data __UNUSED__,
|
||||
E_Manager *man __UNUSED__,
|
||||
Ecore_X_Window win)
|
||||
{
|
||||
return (E_Manager_Comp_Source *) _e_mod_comp_win_find(win);
|
||||
}
|
||||
|
||||
static const Eina_List *
|
||||
_e_mod_comp_src_list_get_func(void *data,
|
||||
E_Manager *man __UNUSED__)
|
||||
|
@ -3176,6 +3184,7 @@ _e_mod_comp_add(E_Manager *man)
|
|||
c->comp.data = c;
|
||||
c->comp.func.evas_get = _e_mod_comp_evas_get_func;
|
||||
c->comp.func.update = _e_mod_comp_update_func;
|
||||
c->comp.func.src_get = _e_mod_comp_src_get_func;
|
||||
c->comp.func.src_list_get = _e_mod_comp_src_list_get_func;
|
||||
c->comp.func.src_image_get = _e_mod_comp_src_image_get_func;
|
||||
c->comp.func.src_shadow_get = _e_mod_comp_src_shadow_get_func;
|
||||
|
|
Loading…
Reference in New Issue