Set client list to fit better with rasters master plan, now client menu can be at any depth :)

demonstrated by putting a clone where it was origionally entered


SVN revision: 12549
This commit is contained in:
handyande 2004-12-22 10:41:03 +00:00 committed by handyande
parent b5c40c9f5a
commit 4f7683b206
3 changed files with 25 additions and 2 deletions

View File

@ -49,6 +49,11 @@ e_int_menus_about_new(void)
e_menu_item_label_set(mi, "Modules");
e_menu_item_submenu_set(mi, subm);
subm = e_int_menus_clients_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, "Clients");
e_menu_item_submenu_set(mi, subm);
mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1);
@ -210,6 +215,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
{
E_Menu_Item *mi;
Evas_List *l, *borders = NULL;
E_Menu *root;
if (m->realized) return;
@ -225,10 +231,11 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
}
root = e_menu_root_get(m);
/* get the current containers clients */
if (m->con)
if (root && root->con)
{
for (l = e_container_clients_list_get(m->con); l; l = l->next)
for (l = e_container_clients_list_get(root->con); l; l = l->next)
{
borders = evas_list_append(borders, l->data);
}

View File

@ -240,6 +240,20 @@ e_menu_post_deactivate_callback_set(E_Menu *m, void (*func) (void *data, E_Menu
m->post_deactivate_cb.data = data;
}
E_Menu *
e_menu_root_get(E_Menu *m)
{
E_Menu *ret;
E_OBJECT_CHECK_RETURN(m, NULL);
ret = m;
while (ret->parent_item && ret->parent_item->menu)
{
ret = ret->parent_item->menu;
}
return ret;
}
E_Menu_Item *
e_menu_item_new(E_Menu *m)

View File

@ -119,6 +119,8 @@ EAPI void e_menu_icon_file_set(E_Menu *m, char *icon);
EAPI void e_menu_pre_activate_callback_set(E_Menu *m, void (*func) (void *data, E_Menu *m), void *data);
EAPI void e_menu_post_deactivate_callback_set(E_Menu *m, void (*func) (void *data, E_Menu *m), void *data);
EAPI E_Menu *e_menu_root_get(E_Menu *m);
EAPI E_Menu_Item *e_menu_item_new(E_Menu *m);
EAPI E_Menu_Item *e_menu_item_nth(E_Menu *m, int n);
EAPI int e_menu_item_num_get(E_Menu_Item *mi);