e17/comp: ok, dont make Comp_Source public, add functions needed by comp-scale instead

SVN revision: 63965
This commit is contained in:
Hannes Janetzek 2011-10-10 21:09:26 +00:00
parent b59bdf6761
commit 3d1ecd29e5
3 changed files with 60 additions and 13 deletions

View File

@ -608,6 +608,24 @@ e_manager_comp_src_hidden_get(E_Manager *man, E_Manager_Comp_Source *src)
return man->comp->func.src_hidden_get(man->comp->data, man, src);
}
EAPI Ecore_X_Window
e_manager_comp_src_window_get(E_Manager *man, E_Manager_Comp_Source *src)
{
return man->comp->func.src_window_get(man->comp->data, man, src);
}
EAPI E_Popup *
e_manager_comp_src_popup_get(E_Manager *man, E_Manager_Comp_Source *src)
{
return man->comp->func.src_popup_get(man->comp->data, man, src);
}
EAPI E_Border *
e_manager_comp_src_border_get(E_Manager *man, E_Manager_Comp_Source *src)
{
return man->comp->func.src_border_get(man->comp->data, man, src);
}
EAPI void
e_manager_comp_event_resize_send(E_Manager *man)
{

View File

@ -41,22 +41,13 @@ struct _E_Manager_Comp
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);
E_Popup * (*src_popup_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
E_Border * (*src_border_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
Ecore_X_Window (*src_window_get) (void *data, E_Manager *man, E_Manager_Comp_Source *src);
} 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);
@ -134,6 +125,8 @@ EAPI void e_manager_comp_event_src_del_send(E_Manager *man, E_Manage
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);
EAPI E_Popup *e_manager_comp_src_popup_get(E_Manager *man, E_Manager_Comp_Source *src);
EAPI E_Border *e_manager_comp_src_border_get(E_Manager *man, E_Manager_Comp_Source *src);
EAPI Ecore_X_Window e_manager_comp_src_window_get(E_Manager *man, E_Manager_Comp_Source *src);
#endif
#endif

View File

@ -3025,6 +3025,39 @@ _e_mod_comp_src_hidden_get_func(void *data __UNUSED__,
return cw->hidden_override;
}
static E_Popup *
_e_mod_comp_src_popup_get_func(void *data __UNUSED__,
E_Manager *man __UNUSED__,
E_Manager_Comp_Source *src)
{
// E_Comp *c = data;
E_Comp_Win *cw = (E_Comp_Win *)src;
if (!cw->c) return 0;
return cw->pop;
}
static E_Border *
_e_mod_comp_src_border_get_func(void *data __UNUSED__,
E_Manager *man __UNUSED__,
E_Manager_Comp_Source *src)
{
// E_Comp *c = data;
E_Comp_Win *cw = (E_Comp_Win *)src;
if (!cw->c) return 0;
return cw->bd;
}
static Ecore_X_Window
_e_mod_comp_src_window_get_func(void *data __UNUSED__,
E_Manager *man __UNUSED__,
E_Manager_Comp_Source *src)
{
// E_Comp *c = data;
E_Comp_Win *cw = (E_Comp_Win *)src;
if (!cw->c) return 0;
return cw->win;
}
static E_Comp *
_e_mod_comp_add(E_Manager *man)
{
@ -3192,6 +3225,9 @@ _e_mod_comp_add(E_Manager *man)
c->comp.func.src_visible_get = _e_mod_comp_src_visible_get_func;
c->comp.func.src_hidden_set = _e_mod_comp_src_hidden_set_func;
c->comp.func.src_hidden_get = _e_mod_comp_src_hidden_get_func;
c->comp.func.src_window_get = _e_mod_comp_src_window_get_func;
c->comp.func.src_border_get = _e_mod_comp_src_border_get_func;
c->comp.func.src_popup_get = _e_mod_comp_src_popup_get_func;
e_manager_comp_set(c->man, &(c->comp));
return c;