ibox now has an option which allows it to expand freely on the desktop
ticket #718 SVN revision: 76914
This commit is contained in:
parent
e5ff736fc7
commit
5519096a0e
|
@ -7,6 +7,7 @@ struct _E_Config_Dialog_Data
|
|||
int zone_policy;
|
||||
int desk_policy;
|
||||
int icon_label;
|
||||
int expand_on_desktop;
|
||||
struct
|
||||
{
|
||||
Evas_Object *o_desk_show_all;
|
||||
|
@ -94,6 +95,9 @@ _basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dial
|
|||
o = e_widget_list_add(evas, 0, 0);
|
||||
|
||||
of = e_widget_framelist_add(evas, _("General Settings"), 0);
|
||||
ob = e_widget_check_add(evas, _("Expand When On Desktop"), &(cfdata->expand_on_desktop));
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
show_check = e_widget_check_add(evas, _("Show Icon Label"), &(cfdata->show_label));
|
||||
e_widget_framelist_object_append(of, show_check);
|
||||
rg = e_widget_radio_group_new(&(cfdata->icon_label));
|
||||
|
@ -187,6 +191,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
ci->icon_label = cfdata->icon_label;
|
||||
ci->show_zone = cfdata->zone_policy;
|
||||
ci->show_desk = cfdata->desk_policy;
|
||||
ci->expand_on_desktop = cfdata->expand_on_desktop;
|
||||
|
||||
_ibox_config_update(ci);
|
||||
e_config_save_queue();
|
||||
|
|
|
@ -141,6 +141,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
o = b->o_box;
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc->data = inst;
|
||||
ci->gcc = gcc;
|
||||
|
||||
inst->gcc = gcc;
|
||||
inst->o_ibox = o;
|
||||
|
@ -166,6 +167,7 @@ _gc_shutdown(E_Gadcon_Client *gcc)
|
|||
Instance *inst;
|
||||
|
||||
inst = gcc->data;
|
||||
inst->ci->gcc = NULL;
|
||||
ibox_config->instances = eina_list_remove(ibox_config->instances, inst);
|
||||
e_drop_handler_del(inst->drop_handler);
|
||||
_ibox_free(inst->ibox);
|
||||
|
@ -355,6 +357,7 @@ _ibox_fill(IBox *b)
|
|||
E_Border_List *bl;
|
||||
E_Border *bd;
|
||||
int ok;
|
||||
int mw, mh, h;
|
||||
|
||||
bl = e_container_border_list_first(b->zone->container);
|
||||
while ((bd = e_container_border_list_next(bl)))
|
||||
|
@ -392,16 +395,18 @@ _ibox_fill(IBox *b)
|
|||
|
||||
_ibox_empty_handle(b);
|
||||
_ibox_resize_handle(b);
|
||||
if (!b->inst->gcc) return;
|
||||
if (!b->inst->ci->expand_on_desktop) return;
|
||||
if (!e_gadcon_site_is_desktop(b->inst->gcc->gadcon->location->site)) return;
|
||||
e_box_size_min_get(b->o_box, &mw, &mh);
|
||||
evas_object_geometry_get(b->inst->gcc->o_frame, NULL, NULL, NULL, &h);
|
||||
evas_object_resize(b->inst->gcc->o_frame, MIN(mw, b->inst->gcc->gadcon->zone->w), MAX(h, mh));
|
||||
}
|
||||
|
||||
static void
|
||||
_ibox_empty(IBox *b)
|
||||
{
|
||||
while (b->icons)
|
||||
{
|
||||
_ibox_icon_free(b->icons->data);
|
||||
b->icons = eina_list_remove_list(b->icons, b->icons);
|
||||
}
|
||||
E_FREE_LIST(b->icons, _ibox_icon_free);
|
||||
_ibox_empty_handle(b);
|
||||
}
|
||||
|
||||
|
@ -417,7 +422,7 @@ _ibox_resize_handle(IBox *b)
|
|||
{
|
||||
Eina_List *l;
|
||||
IBox_Icon *ic;
|
||||
Evas_Coord w, h;
|
||||
int w, h;
|
||||
|
||||
evas_object_geometry_get(b->o_box, NULL, NULL, &w, &h);
|
||||
if (e_box_orientation_get(b->o_box))
|
||||
|
@ -1047,6 +1052,7 @@ _ibox_cb_event_border_iconify(void *data __UNUSED__, int type __UNUSED__, void *
|
|||
ibox = _ibox_zone_find(ev->border->zone);
|
||||
EINA_LIST_FREE(ibox, b)
|
||||
{
|
||||
int h, mw, mh;
|
||||
if (_ibox_icon_find(b, ev->border)) continue;
|
||||
if ((b->inst->ci->show_desk) && (ev->border->desk != desk) && (!ev->border->sticky)) continue;
|
||||
ic = _ibox_icon_new(b, ev->border);
|
||||
|
@ -1056,6 +1062,11 @@ _ibox_cb_event_border_iconify(void *data __UNUSED__, int type __UNUSED__, void *
|
|||
_ibox_empty_handle(b);
|
||||
_ibox_resize_handle(b);
|
||||
_gc_orient(b->inst->gcc, -1);
|
||||
if (!b->inst->ci->expand_on_desktop) continue;
|
||||
if (!e_gadcon_site_is_desktop(b->inst->gcc->gadcon->location->site)) continue;
|
||||
e_box_size_min_get(b->o_box, &mw, &mh);
|
||||
evas_object_geometry_get(b->inst->gcc->o_frame, NULL, NULL, NULL, &h);
|
||||
evas_object_resize(b->inst->gcc->o_frame, MIN(mw, b->inst->gcc->gadcon->zone->w), MAX(h, mh));
|
||||
}
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
@ -1074,6 +1085,7 @@ _ibox_cb_event_border_uniconify(void *data __UNUSED__, int type __UNUSED__, void
|
|||
ibox = _ibox_zone_find(ev->border->zone);
|
||||
EINA_LIST_FREE(ibox, b)
|
||||
{
|
||||
int mw, mh, h;
|
||||
ic = _ibox_icon_find(b, ev->border);
|
||||
if (!ic) continue;
|
||||
_ibox_icon_free(ic);
|
||||
|
@ -1081,6 +1093,11 @@ _ibox_cb_event_border_uniconify(void *data __UNUSED__, int type __UNUSED__, void
|
|||
_ibox_empty_handle(b);
|
||||
_ibox_resize_handle(b);
|
||||
_gc_orient(b->inst->gcc, -1);
|
||||
if (!b->inst->ci->expand_on_desktop) continue;
|
||||
if (!e_gadcon_site_is_desktop(b->inst->gcc->gadcon->location->site)) continue;
|
||||
e_box_size_min_get(b->o_box, &mw, &mh);
|
||||
evas_object_geometry_get(b->inst->gcc->o_frame, NULL, NULL, NULL, &h);
|
||||
evas_object_resize(b->inst->gcc->o_frame, MIN(mw, b->inst->gcc->gadcon->zone->w), MAX(h, mh));
|
||||
}
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
|
@ -1248,6 +1265,7 @@ e_modapi_init(E_Module *m)
|
|||
#define T Config_Item
|
||||
#define D conf_item_edd
|
||||
E_CONFIG_VAL(D, T, id, STR);
|
||||
E_CONFIG_VAL(D, T, expand_on_desktop, INT);
|
||||
E_CONFIG_VAL(D, T, show_label, INT);
|
||||
E_CONFIG_VAL(D, T, show_zone, INT);
|
||||
E_CONFIG_VAL(D, T, show_desk, INT);
|
||||
|
|
|
@ -21,6 +21,8 @@ struct _Config_Item
|
|||
int show_zone;
|
||||
int show_desk;
|
||||
int icon_label;
|
||||
int expand_on_desktop;
|
||||
E_Gadcon_Client *gcc;
|
||||
};
|
||||
|
||||
EAPI extern E_Module_Api e_modapi;
|
||||
|
|
Loading…
Reference in New Issue