forked from enlightenment/enlightenment
* Add in the gadman right-click menu the ability to choose the orientation of the gadget
* Fix Ibar to handle new orient param SVN revision: 37464
This commit is contained in:
parent
3dbf7c1d30
commit
2699ee7a4c
|
@ -410,6 +410,7 @@ struct _E_Config_Gadcon_Client
|
|||
int seq, flags;
|
||||
} state_info;
|
||||
const char *style;
|
||||
int orient;
|
||||
unsigned char autoscroll;
|
||||
unsigned char resizable;
|
||||
};
|
||||
|
|
|
@ -29,6 +29,9 @@ static void on_hide_stop(void *data __UNUSED__, Evas_Object *o __UNUSED__,
|
|||
|
||||
static void on_menu_style_plain(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_style_float(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_style_horiz(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_style_vert(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_layer_bg(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_layer_top(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
|
@ -179,7 +182,7 @@ gadman_gadget_place(E_Config_Gadcon_Client *cf, int ontop)
|
|||
|
||||
/* Call the client orientation function */
|
||||
if (cc->func.orient)
|
||||
cc->func.orient(gcc, E_GADCON_ORIENT_FLOAT); //TODO make this configurable per instance
|
||||
cc->func.orient(gcc, gcc->cf->orient);
|
||||
return gcc;
|
||||
}
|
||||
|
||||
|
@ -661,6 +664,34 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_inset, gcc);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
|
||||
/* orient */
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Free"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 2);
|
||||
if (gcc->cf->orient == E_GADCON_ORIENT_FLOAT)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_float, gcc);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Horizontal"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 2);
|
||||
if (gcc->cf->orient == E_GADCON_ORIENT_HORIZ)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_horiz, gcc);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Vertical"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 2);
|
||||
if (gcc->cf->orient == E_GADCON_ORIENT_VERT)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_vert, gcc);
|
||||
|
||||
mi = e_menu_item_new(menu);
|
||||
e_menu_item_label_set(mi, _("Appearance"));
|
||||
e_util_menu_item_edje_icon_set(mi, "enlightenment/appearance");
|
||||
|
@ -828,6 +859,48 @@ on_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
e_config_save_queue();
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_style_float(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = data;
|
||||
gcc->cf->orient = E_GADCON_ORIENT_FLOAT;
|
||||
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc, E_GADCON_ORIENT_FLOAT);
|
||||
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_style_horiz(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = data;
|
||||
gcc->cf->orient = E_GADCON_ORIENT_HORIZ;
|
||||
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc, E_GADCON_ORIENT_HORIZ);
|
||||
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_style_vert(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = data;
|
||||
gcc->cf->orient = E_GADCON_ORIENT_VERT;
|
||||
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc, E_GADCON_ORIENT_VERT);
|
||||
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_layer_bg(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
|
|
|
@ -174,9 +174,13 @@ static void
|
|||
_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient)
|
||||
{
|
||||
Instance *inst;
|
||||
|
||||
static last = E_GADCON_ORIENT_HORIZ;
|
||||
|
||||
if (orient != -1)
|
||||
last = orient;
|
||||
|
||||
inst = gcc->data;
|
||||
switch (orient)
|
||||
switch (last)
|
||||
{
|
||||
case E_GADCON_ORIENT_FLOAT:
|
||||
case E_GADCON_ORIENT_HORIZ:
|
||||
|
@ -510,7 +514,7 @@ _ibar_config_update(Config_Item *ci)
|
|||
inst->ibar->apps = e_order_new(buf);
|
||||
_ibar_fill(inst->ibar);
|
||||
_ibar_resize_handle(inst->ibar);
|
||||
_gc_orient(inst->gcc, inst->gcc->gadcon->orient);
|
||||
_gc_orient(inst->gcc, -1);
|
||||
|
||||
for (i = inst->ibar->icons; i; i = i->next)
|
||||
{
|
||||
|
@ -666,7 +670,7 @@ _ibar_cb_app_change(void *data, E_Order *eo)
|
|||
_ibar_fill(b);
|
||||
_ibar_resize_handle(b);
|
||||
if (b->inst)
|
||||
_gc_orient(b->inst->gcc, b->inst->gcc->gadcon->orient);
|
||||
_gc_orient(b->inst->gcc, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -719,7 +723,7 @@ _ibar_cb_menu_icon_remove(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
ic->ibar->icons = eina_list_remove(ic->ibar->icons, ic);
|
||||
_ibar_resize_handle(ic->ibar);
|
||||
gc = ic->ibar->inst->gcc;
|
||||
_gc_orient(gc, gc->gadcon->orient);
|
||||
_gc_orient(gc, -1);
|
||||
e_order_remove(ic->ibar->apps, ic->app);
|
||||
_ibar_icon_free(ic);
|
||||
}
|
||||
|
@ -933,7 +937,7 @@ _ibar_cb_icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info
|
|||
ic->ibar->icons = eina_list_remove(ic->ibar->icons, ic);
|
||||
_ibar_resize_handle(ic->ibar);
|
||||
gc = ic->ibar->inst->gcc;
|
||||
_gc_orient(gc, gc->gadcon->orient);
|
||||
_gc_orient(gc, -1);
|
||||
e_order_remove(ic->ibar->apps, ic->app);
|
||||
_ibar_icon_free(ic);
|
||||
}
|
||||
|
@ -1062,7 +1066,7 @@ _ibar_drop_position_update(Instance *inst, Evas_Coord x, Evas_Coord y)
|
|||
-1, -1 /* max */
|
||||
);
|
||||
_ibar_resize_handle(inst->ibar);
|
||||
_gc_orient(inst->gcc, inst->gcc->gadcon->orient);
|
||||
_gc_orient(inst->gcc, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1121,7 +1125,7 @@ _ibar_inst_cb_leave(void *data, const char *type, void *event_info)
|
|||
inst->ibar->o_drop_over = NULL;
|
||||
_ibar_resize_handle(inst->ibar);
|
||||
e_gadcon_client_autoscroll_cb_set(inst->gcc, NULL, NULL);
|
||||
_gc_orient(inst->gcc, inst->gcc->gadcon->orient);
|
||||
_gc_orient(inst->gcc, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1201,7 +1205,7 @@ _ibar_inst_cb_drop(void *data, const char *type, void *event_info)
|
|||
e_gadcon_client_autoscroll_cb_set(inst->gcc, NULL, NULL);
|
||||
_ibar_empty_handle(inst->ibar);
|
||||
_ibar_resize_handle(inst->ibar);
|
||||
_gc_orient(inst->gcc, inst->gcc->gadcon->orient);
|
||||
_gc_orient(inst->gcc, -1);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue