forked from enlightenment/enlightenment
parent
0a8ffffa5f
commit
ada4c17fa2
|
@ -4,14 +4,12 @@
|
|||
#include "e_mod_config.h"
|
||||
#include "config.h"
|
||||
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
Evas_Object *o_avail; //List of available gadgets
|
||||
Evas_Object *o_add; //Add button
|
||||
};
|
||||
|
||||
|
||||
/* Local protos */
|
||||
static void *_create_data(E_Config_Dialog *cfd);
|
||||
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
|
@ -21,7 +19,6 @@ static void _fill_gadgets_list(Evas_Object *ilist);
|
|||
static void _cb_add(void *data, void *data2);
|
||||
static void _avail_list_cb_change(void *data, Evas_Object *obj);
|
||||
|
||||
|
||||
EAPI E_Config_Dialog *
|
||||
e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
||||
{
|
||||
|
@ -31,7 +28,7 @@ e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
|||
|
||||
/* check if config dialog exists ... */
|
||||
if (e_config_dialog_find("E", "_e_modules_gadman_config_dialog"))
|
||||
return NULL;
|
||||
return NULL;
|
||||
|
||||
/* ... else create it */
|
||||
v = E_NEW(E_Config_Dialog_View, 1);
|
||||
|
@ -39,12 +36,9 @@ e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
|||
v->free_cfdata = _free_data;
|
||||
v->basic.apply_cfdata = _basic_apply_data;
|
||||
v->basic.create_widgets = _basic_create_widgets;
|
||||
v->advanced.apply_cfdata = NULL;
|
||||
v->advanced.create_widgets = NULL;
|
||||
v->override_auto_apply = 0; //TODO this should remove the ok/apply buttons ... but doesnt work :(
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj",
|
||||
Man->module->dir);
|
||||
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", Man->module->dir);
|
||||
cfd = e_config_dialog_new(con, _("Gadgets Manager"),
|
||||
"E", "_e_modules_gadman_config_dialog",
|
||||
buf, 0, v, Man);
|
||||
|
@ -58,6 +52,7 @@ static void *
|
|||
_create_data(E_Config_Dialog *cfd)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||
return cfdata;
|
||||
}
|
||||
|
@ -66,8 +61,7 @@ static void
|
|||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Man->config_dialog = NULL;
|
||||
free(cfdata);
|
||||
cfdata = NULL;
|
||||
E_FREE(cfdata);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
|
@ -105,8 +99,6 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/********************************************************************/
|
||||
|
||||
static void
|
||||
_fill_gadgets_list(Evas_Object *ilist)
|
||||
{
|
||||
|
@ -126,8 +118,7 @@ _fill_gadgets_list(Evas_Object *ilist)
|
|||
if (cc->func.label) lbl = cc->func.label();
|
||||
if (!lbl) lbl = cc->name;
|
||||
if (cc->func.icon) icon = cc->func.icon(Man->gc->evas);
|
||||
e_widget_ilist_append(ilist, icon, lbl, NULL,
|
||||
(void *)cc, NULL);
|
||||
e_widget_ilist_append(ilist, icon, lbl, NULL, (void *)cc, NULL);
|
||||
}
|
||||
|
||||
e_widget_ilist_go(ilist);
|
||||
|
@ -140,12 +131,12 @@ _fill_gadgets_list(Evas_Object *ilist)
|
|||
static void
|
||||
_cb_add(void *data, void *data2)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
Evas_List *l;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
Evas_List *l = NULL;
|
||||
Evas_List *selected;
|
||||
int i;
|
||||
|
||||
if (!cfdata) return;
|
||||
if (!(cfdata = data)) return;
|
||||
|
||||
for (i = 0, l = e_widget_ilist_items_get(cfdata->o_avail); l; l = l->next, i++)
|
||||
{
|
||||
|
@ -163,14 +154,15 @@ _cb_add(void *data, void *data2)
|
|||
gcc = gadman_gadget_add(cc, 0);
|
||||
gadman_gadget_edit_start(gcc);
|
||||
}
|
||||
|
||||
if (l) evas_list_free(l);
|
||||
}
|
||||
|
||||
static void
|
||||
_avail_list_cb_change(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
if (!cfdata) return;
|
||||
if (!(cfdata = data)) return;
|
||||
e_widget_disabled_set(cfdata->o_add, 0);
|
||||
}
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
|
||||
EAPI E_Config_Dialog *e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__);
|
||||
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -36,7 +36,6 @@ static void on_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi);
|
|||
static void on_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void on_menu_add(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
|
||||
|
||||
E_Gadcon_Client *current;
|
||||
|
||||
/* Implementation */
|
||||
|
@ -48,6 +47,7 @@ gadman_init(E_Module *m)
|
|||
/* Create Manager */
|
||||
Man = calloc(1, sizeof(Manager));
|
||||
if (!Man) return;
|
||||
|
||||
Man->module = m;
|
||||
Man->container = e_container_current_get(e_manager_current_get());
|
||||
Man->width = Man->container->w;
|
||||
|
@ -58,9 +58,9 @@ gadman_init(E_Module *m)
|
|||
|
||||
/* Check if composite is enable */
|
||||
if (ecore_x_screen_is_composited(0) || e_config->use_composite)
|
||||
Man->use_composite = 1;
|
||||
Man->use_composite = 1;
|
||||
else
|
||||
Man->use_composite = 0;
|
||||
Man->use_composite = 0;
|
||||
|
||||
/* with this we can trap screen resolution change (a better way?)*/
|
||||
e_container_shape_change_callback_add(Man->container, on_shape_change, NULL);
|
||||
|
@ -75,24 +75,29 @@ gadman_init(E_Module *m)
|
|||
|
||||
/* Start existing gadgets */
|
||||
for (l = Man->gc->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc = l->data;
|
||||
gadman_gadget_place(cf_gcc, 0);
|
||||
}
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if (!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 0);
|
||||
}
|
||||
|
||||
for (l = Man->gc_top->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc = l->data;
|
||||
gadman_gadget_place(cf_gcc, 1);
|
||||
}
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if(!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gadman_shutdown(void)
|
||||
{
|
||||
e_container_shape_change_callback_del(Man->container, on_shape_change, NULL);
|
||||
printf("++++++++ UNPOPULATE BG\n");
|
||||
printf("++++++++ UNPOPULATE BG\n");
|
||||
e_gadcon_unpopulate(Man->gc); // TODO FIX ME !!
|
||||
printf("++++++++ UNPOPULATE TOP\n");
|
||||
printf("++++++++ UNPOPULATE TOP\n");
|
||||
e_gadcon_unpopulate(Man->gc_top);
|
||||
|
||||
/* free gadcons */
|
||||
|
@ -110,10 +115,10 @@ printf("++++++++ UNPOPULATE TOP\n");
|
|||
evas_object_del(Man->mover_top);
|
||||
evas_list_free(Man->gadgets);
|
||||
if (Man->top_ee)
|
||||
{
|
||||
e_canvas_del(Man->top_ee);
|
||||
//ecore_evas_free(Man->top_ee);
|
||||
}
|
||||
{
|
||||
e_canvas_del(Man->top_ee);
|
||||
//ecore_evas_free(Man->top_ee);
|
||||
}
|
||||
free(Man);
|
||||
Man = NULL;
|
||||
}
|
||||
|
@ -124,21 +129,21 @@ gadman_gadget_place(E_Config_Gadcon_Client *cf, int ontop)
|
|||
E_Gadcon *gc;
|
||||
E_Gadcon_Client *gcc;
|
||||
E_Gadcon_Client_Class *cc = NULL;
|
||||
Evas_List *l;
|
||||
|
||||
if (ontop) gc = Man->gc_top;
|
||||
else gc = Man->gc;
|
||||
Evas_List *l = NULL;
|
||||
|
||||
if (!cf->name) return NULL;
|
||||
|
||||
if (ontop) gc = Man->gc_top;
|
||||
else gc = Man->gc;
|
||||
|
||||
/* Find provider */
|
||||
for (l = e_gadcon_provider_list(); l; l = l->next)
|
||||
{
|
||||
cc = l->data;
|
||||
if (!strcmp(cc->name, cf->name))
|
||||
break;
|
||||
break;
|
||||
else
|
||||
cc = NULL;
|
||||
cc = NULL;
|
||||
}
|
||||
if (!cc) return NULL;
|
||||
|
||||
|
@ -154,21 +159,21 @@ gadman_gadget_place(E_Config_Gadcon_Client *cf, int ontop)
|
|||
/* create frame */
|
||||
gcc->o_frame = edje_object_add(gc->evas);
|
||||
e_theme_edje_object_set(gcc->o_frame, "base/theme/gadman", "e/gadman/frame");
|
||||
if ((cf->style) && !strcmp(cf->style, E_GADCON_CLIENT_STYLE_INSET))
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,inset", "e");
|
||||
|
||||
if ((cf->style) && (!strcmp(cf->style, E_GADCON_CLIENT_STYLE_INSET)))
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,inset", "e");
|
||||
else
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,plain", "e");
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,plain", "e");
|
||||
|
||||
/* swallow the client inside the frame */
|
||||
edje_object_part_swallow(gcc->o_frame, "e.swallow.content", gcc->o_base);
|
||||
|
||||
evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOUSE_DOWN,
|
||||
on_frame_click, gcc);
|
||||
|
||||
_apply_widget_position(gcc);
|
||||
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,hide", "e");
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,hide", "e");
|
||||
|
||||
evas_object_show(gcc->o_frame);
|
||||
|
||||
|
@ -182,10 +187,11 @@ gadman_gadget_add(E_Gadcon_Client_Class *cc, int ontop)
|
|||
E_Gadcon_Client *gcc;
|
||||
E_Gadcon *gc;
|
||||
char *id;
|
||||
|
||||
if (ontop)
|
||||
gc = Man->gc_top;
|
||||
gc = Man->gc_top;
|
||||
else
|
||||
gc = Man->gc;
|
||||
gc = Man->gc;
|
||||
|
||||
/* Create Config_Gadcon_Client */
|
||||
cf = e_gadcon_client_config_new(gc, cc->name);
|
||||
|
@ -204,7 +210,6 @@ gadman_gadget_add(E_Gadcon_Client_Class *cc, int ontop)
|
|||
void
|
||||
gadman_gadget_remove(E_Gadcon_Client *gcc)
|
||||
{
|
||||
|
||||
Man->gadgets = evas_list_remove(Man->gadgets, gcc);
|
||||
|
||||
edje_object_part_unswallow(gcc->o_frame, gcc->o_base);
|
||||
|
@ -219,7 +224,6 @@ gadman_gadget_remove(E_Gadcon_Client *gcc)
|
|||
void
|
||||
gadman_gadget_del(E_Gadcon_Client *gcc)
|
||||
{
|
||||
|
||||
Man->gadgets = evas_list_remove(Man->gadgets, gcc);
|
||||
|
||||
edje_object_part_unswallow(gcc->o_frame, gcc->o_base);
|
||||
|
@ -236,6 +240,8 @@ void
|
|||
gadman_gadget_edit_start(E_Gadcon_Client *gcc)
|
||||
{
|
||||
E_Gadcon *gc;
|
||||
Evas_Object *mover;
|
||||
int x, y, w, h;
|
||||
|
||||
current = gcc;
|
||||
|
||||
|
@ -243,9 +249,6 @@ gadman_gadget_edit_start(E_Gadcon_Client *gcc)
|
|||
gc->editing = 1;
|
||||
|
||||
/* Move/resize the correct mover */
|
||||
int x, y, w, h;
|
||||
Evas_Object *mover;
|
||||
|
||||
evas_object_geometry_get(gcc->o_frame, &x, &y, &w, &h);
|
||||
mover = _get_mover(gcc);
|
||||
|
||||
|
@ -267,11 +270,10 @@ gadman_gadget_edit_end(void)
|
|||
_save_widget_position(current);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gadman_gadgets_show(void)
|
||||
{
|
||||
Evas_List *l;
|
||||
Evas_List *l = NULL;
|
||||
|
||||
Man->visible = 1;
|
||||
ecore_evas_show(Man->top_ee);
|
||||
|
@ -279,48 +281,49 @@ gadman_gadgets_show(void)
|
|||
edje_object_signal_emit(Man->full_bg, "e,state,visibility,show", "e");
|
||||
|
||||
for (l = Man->gadgets; l; l = l->next)
|
||||
{
|
||||
E_Gadcon_Client *gcc = l->data;
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,show", "e");
|
||||
}
|
||||
}
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
if (!(gcc = l->data)) continue;
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,show", "e");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gadman_gadgets_hide(void)
|
||||
{
|
||||
Evas_List *l;
|
||||
Evas_List *l = NULL;
|
||||
|
||||
Man->visible = 0;
|
||||
|
||||
edje_object_signal_emit(Man->full_bg, "e,state,visibility,hide", "e");
|
||||
|
||||
for (l = Man->gadgets; l; l = l->next)
|
||||
{
|
||||
E_Gadcon_Client *gcc = l->data;
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,hide", "e");
|
||||
}
|
||||
}
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
if (!(gcc = l->data)) continue;
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,hide", "e");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gadman_gadgets_toggle(void)
|
||||
{
|
||||
if (Man->visible)
|
||||
gadman_gadgets_hide();
|
||||
gadman_gadgets_hide();
|
||||
else
|
||||
gadman_gadgets_show();
|
||||
gadman_gadgets_show();
|
||||
}
|
||||
|
||||
|
||||
/* Internals */
|
||||
static E_Gadcon*
|
||||
_gadman_gadcon_new(const char* name, int ontop)
|
||||
{
|
||||
E_Gadcon *gc;
|
||||
Evas_List *l;
|
||||
Evas_List *l = NULL;
|
||||
|
||||
/* Create Gadcon */
|
||||
gc = E_OBJECT_ALLOC(E_Gadcon, E_GADCON_TYPE, NULL);
|
||||
|
@ -332,53 +335,52 @@ _gadman_gadcon_new(const char* name, int ontop)
|
|||
|
||||
/* Create ecore fullscreen window */
|
||||
if (ontop)
|
||||
{
|
||||
Man->top_ee = e_canvas_new(e_config->evas_engine_popups,
|
||||
Man->container->win,
|
||||
0, 0, 0, 0, 1, 1, &(Man->top_win), NULL);
|
||||
{
|
||||
Man->top_ee =
|
||||
e_canvas_new(e_config->evas_engine_popups, Man->container->win,
|
||||
0, 0, 0, 0, 1, 1, &(Man->top_win), NULL);
|
||||
|
||||
if (Man->use_composite)
|
||||
{
|
||||
ecore_evas_alpha_set(Man->top_ee, 1);
|
||||
Man->top_win = ecore_evas_software_x11_window_get(Man->top_ee);
|
||||
// Leave 1px to switch desktop when mouse is on border
|
||||
ecore_x_window_shape_rectangle_set(Man->top_win, 1, 1,
|
||||
Man->width - 2, Man->height - 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
ecore_evas_shaped_set(Man->top_ee, 1);
|
||||
}
|
||||
if (Man->use_composite)
|
||||
{
|
||||
ecore_evas_alpha_set(Man->top_ee, 1);
|
||||
Man->top_win = ecore_evas_software_x11_window_get(Man->top_ee);
|
||||
// Leave 1px to switch desktop when mouse is on border
|
||||
ecore_x_window_shape_rectangle_set(Man->top_win, 1, 1,
|
||||
(Man->width - 2),
|
||||
(Man->height - 2));
|
||||
}
|
||||
else
|
||||
ecore_evas_shaped_set(Man->top_ee, 1);
|
||||
|
||||
ecore_evas_avoid_damage_set(Man->top_ee, 1); //??
|
||||
e_canvas_add(Man->top_ee); //??
|
||||
ecore_evas_avoid_damage_set(Man->top_ee, 1); //??
|
||||
e_canvas_add(Man->top_ee); //??
|
||||
|
||||
e_container_window_raise(Man->container, Man->top_win, 250);
|
||||
e_container_window_raise(Man->container, Man->top_win, 250);
|
||||
|
||||
ecore_evas_move_resize(Man->top_ee, 0, 0, Man->width, Man->height);
|
||||
ecore_evas_hide(Man->top_ee);
|
||||
ecore_evas_move_resize(Man->top_ee, 0, 0, Man->width, Man->height);
|
||||
ecore_evas_hide(Man->top_ee);
|
||||
|
||||
gc->evas = ecore_evas_get(Man->top_ee);
|
||||
e_gadcon_ecore_evas_set(gc, Man->top_ee);
|
||||
gc->evas = ecore_evas_get(Man->top_ee);
|
||||
e_gadcon_ecore_evas_set(gc, Man->top_ee);
|
||||
|
||||
/* create full background object */
|
||||
Man->full_bg = edje_object_add(gc->evas);
|
||||
e_theme_edje_object_set(Man->full_bg, "base/theme/gadman", "e/gadman/full_bg");
|
||||
edje_object_signal_callback_add(Man->full_bg, "mouse,down,*", "bg",
|
||||
on_bg_click, NULL);
|
||||
edje_object_signal_callback_add(Man->full_bg, "program,stop", "hide",
|
||||
_hide_finished, NULL);
|
||||
evas_object_move(Man->full_bg, 0, 0);
|
||||
evas_object_resize(Man->full_bg, Man->width, Man->height);
|
||||
evas_object_show(Man->full_bg);
|
||||
|
||||
}
|
||||
/* create full background object */
|
||||
Man->full_bg = edje_object_add(gc->evas);
|
||||
e_theme_edje_object_set(Man->full_bg, "base/theme/gadman",
|
||||
"e/gadman/full_bg");
|
||||
edje_object_signal_callback_add(Man->full_bg, "mouse,down,*", "bg",
|
||||
on_bg_click, NULL);
|
||||
edje_object_signal_callback_add(Man->full_bg, "program,stop", "hide",
|
||||
_hide_finished, NULL);
|
||||
evas_object_move(Man->full_bg, 0, 0);
|
||||
evas_object_resize(Man->full_bg, Man->width, Man->height);
|
||||
evas_object_show(Man->full_bg);
|
||||
}
|
||||
/* ... or use the e background window */
|
||||
else
|
||||
{
|
||||
gc->evas = Man->container->bg_evas;
|
||||
e_gadcon_ecore_evas_set(gc, Man->container->bg_ecore_evas);
|
||||
}
|
||||
{
|
||||
gc->evas = Man->container->bg_evas;
|
||||
e_gadcon_ecore_evas_set(gc, Man->container->bg_ecore_evas);
|
||||
}
|
||||
|
||||
e_gadcon_zone_set(gc, e_zone_current_get(Man->container));
|
||||
e_gadcon_util_menu_attach_func_set(gc, _attach_menu, NULL);
|
||||
|
@ -397,29 +399,32 @@ _gadman_gadcon_new(const char* name, int ontop)
|
|||
/* Search for existing gadcon config */
|
||||
gc->cf = NULL;
|
||||
for (l = e_config->gadcons; l; l=l->next)
|
||||
{
|
||||
E_Config_Gadcon *cg = l->data;
|
||||
if (!strcmp(cg->name, name))
|
||||
{
|
||||
gc->cf = cg;
|
||||
break;
|
||||
}
|
||||
}
|
||||
{
|
||||
E_Config_Gadcon *cg;
|
||||
|
||||
if (!(cg = l->data)) continue;
|
||||
if (!strcmp(cg->name, name))
|
||||
{
|
||||
gc->cf = cg;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* ... or create a new one */
|
||||
if (!gc->cf)
|
||||
{
|
||||
gc->cf = E_NEW(E_Config_Gadcon, 1);
|
||||
gc->cf->name = evas_stringshare_add(name);
|
||||
gc->cf->id = gc->id;
|
||||
gc->cf->clients = NULL;
|
||||
e_config->gadcons = evas_list_append(e_config->gadcons, gc->cf);
|
||||
e_config_save_queue();
|
||||
}
|
||||
{
|
||||
gc->cf = E_NEW(E_Config_Gadcon, 1);
|
||||
gc->cf->name = evas_stringshare_add(name);
|
||||
gc->cf->id = gc->id;
|
||||
gc->cf->clients = NULL;
|
||||
e_config->gadcons = evas_list_append(e_config->gadcons, gc->cf);
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
return gc;
|
||||
}
|
||||
|
||||
static Evas_Object*
|
||||
static Evas_Object *
|
||||
_create_mover(E_Gadcon *gc)
|
||||
{
|
||||
Evas_Object *mover;
|
||||
|
@ -463,17 +468,17 @@ static Evas_Object *
|
|||
_get_mover(E_Gadcon_Client *gcc)
|
||||
{
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
return Man->mover_top;
|
||||
return Man->mover_top;
|
||||
else
|
||||
return Man->mover;
|
||||
return Man->mover;
|
||||
}
|
||||
|
||||
static void
|
||||
_save_widget_position(E_Gadcon_Client *gcc)
|
||||
{
|
||||
int x, y, w, h;
|
||||
evas_object_geometry_get(gcc->o_frame, &x, &y, &w, &h);
|
||||
|
||||
evas_object_geometry_get(gcc->o_frame, &x, &y, &w, &h);
|
||||
current->cf->geom.pos_x = (double)x / (double)Man->width;
|
||||
current->cf->geom.pos_y = (double)y / (double)Man->height;
|
||||
current->cf->geom.size_w = (double)w / (double)Man->width;;
|
||||
|
@ -497,19 +502,17 @@ _apply_widget_position(E_Gadcon_Client *gcc)
|
|||
/* Respect min sizes */
|
||||
if (h < gcc->min.h) h = gcc->min.h;
|
||||
if (w < gcc->min.w) w = gcc->min.w;
|
||||
|
||||
if (h < 1) h = 100;
|
||||
if (w < 1) w = 100;
|
||||
|
||||
/* Respect screen margin */
|
||||
if (x < 0) x = 0;
|
||||
if (y < 0) y = 0;
|
||||
|
||||
if (x > Man->width) x = 0;
|
||||
if (y > Man->height) y = 0;
|
||||
|
||||
if ((y + h) > Man->height) h = Man->height - y;
|
||||
if ((x + w) > Man->width) w = Man->width - x;
|
||||
if ((y + h) > Man->height) h = (Man->height - y);
|
||||
if ((x + w) > Man->width) w = (Man->width - x);
|
||||
|
||||
evas_object_move(gcc->o_frame, x, y);
|
||||
evas_object_resize(gcc->o_frame, w, h);
|
||||
|
@ -526,7 +529,7 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
if (!gcc) return;
|
||||
|
||||
if (!gcc->cf->style)
|
||||
gcc->cf->style = evas_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
|
||||
gcc->cf->style = evas_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
|
||||
|
||||
/* plain / inset */
|
||||
mn = e_menu_new();
|
||||
|
@ -535,7 +538,7 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (!strcmp(gcc->cf->style, E_GADCON_CLIENT_STYLE_PLAIN))
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_plain, gcc);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
|
@ -543,7 +546,7 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (!strcmp(gcc->cf->style, E_GADCON_CLIENT_STYLE_INSET))
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_style_inset, gcc);
|
||||
|
||||
mi = e_menu_item_new(menu);
|
||||
|
@ -559,7 +562,7 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 2);
|
||||
if (gcc->gadcon == Man->gc)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_layer_bg, gcc);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
|
@ -569,7 +572,7 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 2);
|
||||
if (gcc->gadcon == Man->gc_top)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, on_menu_layer_top, gcc);
|
||||
|
||||
mi = e_menu_item_new(menu);
|
||||
|
@ -596,48 +599,48 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
|
|||
e_menu_item_callback_set(mi, on_menu_add, gcc);
|
||||
}
|
||||
|
||||
static char*
|
||||
static char *
|
||||
_get_bind_text(const char* action)
|
||||
{
|
||||
char b[256] = "";
|
||||
E_Binding_Key *bind;
|
||||
char b[256] = "";
|
||||
|
||||
bind = e_bindings_key_get(action);
|
||||
if ((bind) && (bind->key))
|
||||
{
|
||||
if ((bind->mod) & (E_BINDING_MODIFIER_CTRL))
|
||||
strcat(b, _("CTRL"));
|
||||
|
||||
if (bind && bind->key)
|
||||
{
|
||||
if (bind->mod & E_BINDING_MODIFIER_CTRL)
|
||||
strcat(b, _("CTRL"));
|
||||
if ((bind->mod) & (E_BINDING_MODIFIER_ALT))
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("ALT"));
|
||||
}
|
||||
|
||||
if (bind->mod & E_BINDING_MODIFIER_ALT)
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("ALT"));
|
||||
}
|
||||
if ((bind->mod) & (E_BINDING_MODIFIER_SHIFT))
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("SHIFT"));
|
||||
}
|
||||
|
||||
if (bind->mod & E_BINDING_MODIFIER_SHIFT)
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("SHIFT"));
|
||||
}
|
||||
if ((bind->mod) & (E_BINDING_MODIFIER_WIN))
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("WIN"));
|
||||
}
|
||||
|
||||
if (bind->mod & E_BINDING_MODIFIER_WIN)
|
||||
{
|
||||
if (b[0]) strcat(b, " + ");
|
||||
strcat(b, _("WIN"));
|
||||
}
|
||||
if ((bind->key) && (bind->key[0]))
|
||||
{
|
||||
char *l;
|
||||
|
||||
if (bind->key && bind->key[0])
|
||||
{
|
||||
char *l;
|
||||
if (b[0]) strcat(b, " + ");
|
||||
|
||||
l = strdup(bind->key);
|
||||
l[0] = (char)toupper(bind->key[0]);
|
||||
strcat(b, l);
|
||||
free(l);
|
||||
}
|
||||
return &b;
|
||||
}
|
||||
if (b[0]) strcat(b, " + ");
|
||||
l = strdup(bind->key);
|
||||
l[0] = (char)toupper(bind->key[0]);
|
||||
strcat(b, l);
|
||||
free(l);
|
||||
}
|
||||
return &b;
|
||||
}
|
||||
return "(You must define a binding)";
|
||||
}
|
||||
|
||||
|
@ -651,10 +654,11 @@ _hide_finished(void *data, Evas_Object *o, const char *em, const char *src)
|
|||
static void
|
||||
on_shape_change(void *data, E_Container_Shape *es, E_Container_Shape_Change ch)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Container *con = e_container_shape_container_get(es);
|
||||
Evas_List *l = NULL;
|
||||
E_Container *con;
|
||||
|
||||
if (con->w == Man->width && con->h == Man->height) return;
|
||||
con = e_container_shape_container_get(es);
|
||||
if ((con->w == Man->width) && (con->h == Man->height)) return;
|
||||
|
||||
/* The screen size is changed */
|
||||
Man->width = con->w;
|
||||
|
@ -664,16 +668,22 @@ on_shape_change(void *data, E_Container_Shape *es, E_Container_Shape_Change ch)
|
|||
e_gadcon_unpopulate(Man->gc);
|
||||
e_gadcon_unpopulate(Man->gc_top);
|
||||
for (l = Man->gc->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc = l->data;
|
||||
gadman_gadget_place(cf_gcc, 0);
|
||||
}
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if (!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 0);
|
||||
}
|
||||
|
||||
for (l = Man->gc_top->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc = l->data;
|
||||
gadman_gadget_place(cf_gcc, 1);
|
||||
}
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if (!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_style_plain(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
|
@ -697,7 +707,7 @@ on_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = current;
|
||||
printf("Inset (%s)\n", gcc->name);
|
||||
// printf("Inset (%s)\n", gcc->name);
|
||||
|
||||
if (gcc->style) evas_stringshare_del(gcc->style);
|
||||
gcc->style = evas_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
|
||||
|
@ -710,8 +720,6 @@ on_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
e_config_save_queue();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
on_menu_layer_bg(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
|
@ -758,9 +766,10 @@ static void
|
|||
on_menu_add(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
if (Man->visible)
|
||||
gadman_gadgets_hide();
|
||||
gadman_gadgets_hide();
|
||||
e_configure_registry_call("extensions/gadman", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
on_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
|
@ -771,14 +780,11 @@ on_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
static void
|
||||
on_frame_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Evas_Event_Mouse_Down *ev;
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
ev = event_info;
|
||||
|
||||
printf("Click\n");
|
||||
|
||||
if (Man->gc->editing) gadman_gadget_edit_end();
|
||||
|
||||
gcc = data;
|
||||
|
@ -793,9 +799,7 @@ on_frame_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
//e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post,
|
||||
// gcc);
|
||||
gcc->menu = mn;
|
||||
|
||||
e_gadcon_client_util_menu_items_append(gcc, mn, 0);
|
||||
|
||||
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
|
||||
e_menu_activate_mouse(mn,
|
||||
e_util_zone_current_get(e_manager_current_get()),
|
||||
|
@ -804,7 +808,6 @@ on_frame_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
e_util_evas_fake_mouse_up_later(gcc->gadcon->evas,
|
||||
ev->button);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -814,197 +817,208 @@ on_top(void *data, Evas_Object *o, const char *em, const char *src)
|
|||
int mx, my; //Mouse coord
|
||||
int action = (int)data;
|
||||
Evas_Object *mover;
|
||||
|
||||
mover = _get_mover(current);
|
||||
|
||||
if (action == DRAG_START)
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "v1",
|
||||
on_top,(void*)DRAG_MOVE);
|
||||
}
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "v1",
|
||||
on_top,(void*)DRAG_MOVE);
|
||||
}
|
||||
else if (action == DRAG_STOP)
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "v1", on_top);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "v1", on_top);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
else if (action == DRAG_MOVE)
|
||||
{
|
||||
int w, h;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
{
|
||||
int w, h;
|
||||
|
||||
h = (oy + oh) - my - 15;
|
||||
if (h < current->min.h) h = current->min.h;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
|
||||
evas_object_resize(mover, ow, h);
|
||||
evas_object_move(mover, ox, my + 15);
|
||||
h = (oy + oh) - my - 15;
|
||||
if (h < current->min.h) h = current->min.h;
|
||||
|
||||
evas_object_resize(current->o_frame, ow, h);
|
||||
evas_object_move(current->o_frame, ox, my + 15);
|
||||
}
|
||||
evas_object_resize(mover, ow, h);
|
||||
evas_object_move(mover, ox, my + 15);
|
||||
|
||||
evas_object_resize(current->o_frame, ow, h);
|
||||
evas_object_move(current->o_frame, ox, my + 15);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_right(void *data, Evas_Object *o, const char *em, const char *src)
|
||||
{
|
||||
Evas_Object *mover;
|
||||
static int ox, oy, ow, oh; //Object coord
|
||||
int mx, my; //Mouse coord
|
||||
int action = (int)data;
|
||||
Evas_Object *mover;
|
||||
int action;
|
||||
|
||||
mover = _get_mover(current);
|
||||
|
||||
action = (int)data;
|
||||
if (action == DRAG_START)
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "h2",
|
||||
on_right,(void*)DRAG_MOVE);
|
||||
}
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "h2",
|
||||
on_right,(void*)DRAG_MOVE);
|
||||
}
|
||||
else if (action == DRAG_STOP)
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "h2", on_right);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "h2", on_right);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
else if (action == DRAG_MOVE)
|
||||
{
|
||||
int w, h;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
{
|
||||
int w, h;
|
||||
|
||||
w = mx - ox - 15;
|
||||
if (w < current->min.w) w = current->min.w;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
|
||||
evas_object_resize(mover, w, oh);
|
||||
evas_object_resize(current->o_frame, w, oh);
|
||||
}
|
||||
w = mx - ox - 15;
|
||||
if (w < current->min.w) w = current->min.w;
|
||||
|
||||
evas_object_resize(mover, w, oh);
|
||||
evas_object_resize(current->o_frame, w, oh);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_down(void *data, Evas_Object *o, const char *em, const char *src)
|
||||
{
|
||||
Evas_Object *mover;
|
||||
static int ox, oy, ow, oh; //Object coord
|
||||
int mx, my; //Mouse coord
|
||||
int action = (int)data;
|
||||
Evas_Object *mover;
|
||||
int action;
|
||||
|
||||
action = (int)data;
|
||||
mover = _get_mover(current);
|
||||
|
||||
if (action == DRAG_START)
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "v2",
|
||||
on_down,(void*)DRAG_MOVE);
|
||||
}
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "v2",
|
||||
on_down,(void*)DRAG_MOVE);
|
||||
}
|
||||
else if (action == DRAG_STOP)
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "v2", on_down);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "v2", on_down);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
else if (action == DRAG_MOVE)
|
||||
{
|
||||
int w, h;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
h = my - oy - 15;
|
||||
if (h < current->min.h) h = current->min.h;
|
||||
{
|
||||
int w, h;
|
||||
|
||||
evas_object_resize(mover, ow, h);
|
||||
evas_object_resize(current->o_frame, ow, h);
|
||||
}
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
h = my - oy - 15;
|
||||
if (h < current->min.h) h = current->min.h;
|
||||
|
||||
evas_object_resize(mover, ow, h);
|
||||
evas_object_resize(current->o_frame, ow, h);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_left(void *data, Evas_Object *o, const char *em, const char *src)
|
||||
{
|
||||
Evas_Object *mover;
|
||||
static int ox, oy, ow, oh; //Object coord
|
||||
int mx, my; //Mouse coord
|
||||
int action = (int)data;
|
||||
Evas_Object *mover;
|
||||
int action;
|
||||
|
||||
action = (int)data;
|
||||
mover = _get_mover(current);
|
||||
|
||||
if (action == DRAG_START)
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "h1",
|
||||
on_left,(void*)DRAG_MOVE);
|
||||
}
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
edje_object_signal_callback_add(o, "mouse,move", "h1",
|
||||
on_left,(void*)DRAG_MOVE);
|
||||
}
|
||||
else if (action == DRAG_STOP)
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "h1", on_left);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "h1", on_left);
|
||||
_save_widget_position(current);
|
||||
}
|
||||
else if (action == DRAG_MOVE)
|
||||
{
|
||||
int w, h;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
{
|
||||
int w, h;
|
||||
|
||||
w = (ox + ow) - mx - 15;
|
||||
if (w < current->min.w) w = current->min.w;
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
|
||||
evas_object_move(mover, mx + 15, oy);
|
||||
evas_object_resize(mover, w, oh);
|
||||
w = (ox + ow) - mx - 15;
|
||||
if (w < current->min.w) w = current->min.w;
|
||||
|
||||
evas_object_move(current->o_frame, mx + 15, oy);
|
||||
evas_object_resize(current->o_frame, w, oh);
|
||||
}
|
||||
evas_object_move(mover, mx + 15, oy);
|
||||
evas_object_resize(mover, w, oh);
|
||||
|
||||
evas_object_move(current->o_frame, mx + 15, oy);
|
||||
evas_object_resize(current->o_frame, w, oh);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
on_move(void *data, Evas_Object *o, const char *em, const char *src)
|
||||
{
|
||||
Evas_Object *mover;
|
||||
static int dx, dy; //Offset of mouse pointer inside the mover
|
||||
static int ox, oy; //Starting object position
|
||||
static int ow, oh; //Starting object size
|
||||
int mx, my; //Mouse coord
|
||||
Evas_Object *mover;
|
||||
int action;
|
||||
|
||||
int action = (int)data;
|
||||
action = (int)data;
|
||||
mover = _get_mover(current);
|
||||
|
||||
/* DRAG_START */
|
||||
if (action == DRAG_START)
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
{
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_object_geometry_get(mover, &ox, &oy, &ow, &oh);
|
||||
|
||||
dx = mx - ox;
|
||||
dy = my - oy;
|
||||
dx = mx - ox;
|
||||
dy = my - oy;
|
||||
|
||||
edje_object_signal_callback_add(o, "mouse,move", "overlay",
|
||||
on_move,(void*)DRAG_MOVE);
|
||||
return;
|
||||
}
|
||||
edje_object_signal_callback_add(o, "mouse,move", "overlay",
|
||||
on_move,(void*)DRAG_MOVE);
|
||||
return;
|
||||
}
|
||||
|
||||
/* DRAG_STOP */
|
||||
if (action == DRAG_STOP)
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "overlay", on_move);
|
||||
dx = dy = 0;
|
||||
_save_widget_position(current);
|
||||
return;
|
||||
}
|
||||
{
|
||||
edje_object_signal_callback_del(o, "mouse,move", "overlay", on_move);
|
||||
dx = dy = 0;
|
||||
_save_widget_position(current);
|
||||
return;
|
||||
}
|
||||
|
||||
/* DRAG_MOVE */
|
||||
if (action == DRAG_MOVE)
|
||||
{
|
||||
int x, y;
|
||||
{
|
||||
int x, y;
|
||||
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||
|
||||
x = mx - dx;
|
||||
y = my - dy;
|
||||
x = mx - dx;
|
||||
y = my - dy;
|
||||
|
||||
/* don't go out of the screen */
|
||||
if (x < 0) x = 0;
|
||||
if (x > (Man->width - ow)) x = Man->width - ow;
|
||||
if (y < 0) y = 0;
|
||||
if (y > (Man->height - oh)) y = Man->height - oh;
|
||||
/* don't go out of the screen */
|
||||
if (x < 0) x = 0;
|
||||
if (x > (Man->width - ow)) x = Man->width - ow;
|
||||
if (y < 0) y = 0;
|
||||
if (y > (Man->height - oh)) y = Man->height - oh;
|
||||
|
||||
evas_object_move(current->o_frame, x , y);
|
||||
evas_object_move(mover, x, y);
|
||||
evas_object_raise(current->o_frame);
|
||||
evas_object_raise(mover);
|
||||
}
|
||||
evas_object_move(current->o_frame, x , y);
|
||||
evas_object_move(mover, x, y);
|
||||
evas_object_raise(current->o_frame);
|
||||
evas_object_raise(mover);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -9,7 +9,6 @@ static void _gadman_maug_cb(void *data, E_Menu *m, E_Menu_Item *mi);
|
|||
static void _gadman_maug_add(void *data, E_Menu *m);
|
||||
static void _gadman_action_cb(E_Object *obj, const char *params);
|
||||
|
||||
|
||||
/* public module routines. all modules must have these */
|
||||
EAPI E_Module_Api e_modapi = {
|
||||
E_MODULE_API_VERSION,
|
||||
|
@ -43,7 +42,7 @@ e_modapi_init(E_Module *m)
|
|||
Man->icon_name = evas_stringshare_add(buf);
|
||||
Man->maug = NULL;
|
||||
Man->maug = e_int_menus_menu_augmentation_add("config/1", _gadman_maug_add,
|
||||
Man->icon_name, NULL, NULL);
|
||||
Man->icon_name, NULL, NULL);
|
||||
/* Create toggle action */
|
||||
Man->action = e_action_add("gadman_toggle");
|
||||
if (Man->action)
|
||||
|
@ -55,14 +54,14 @@ e_modapi_init(E_Module *m)
|
|||
|
||||
/* Create a binding for the action (if not exists) */
|
||||
if (!e_bindings_key_get("gadman_toggle"))
|
||||
{
|
||||
e_managers_keys_ungrab();
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY, "g", E_BINDING_MODIFIER_WIN,
|
||||
0, "gadman_toggle", NULL);
|
||||
{
|
||||
e_managers_keys_ungrab();
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY, "g", E_BINDING_MODIFIER_WIN,
|
||||
0, "gadman_toggle", NULL);
|
||||
|
||||
e_managers_keys_grab();
|
||||
e_config_save_queue();
|
||||
}
|
||||
e_managers_keys_grab();
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
return Man;
|
||||
}
|
||||
|
@ -70,17 +69,17 @@ e_modapi_init(E_Module *m)
|
|||
EAPI int
|
||||
e_modapi_shutdown(E_Module *m)
|
||||
{
|
||||
if(Man->maug)
|
||||
e_int_menus_menu_augmentation_del("config/1", Man->maug);
|
||||
if (Man->maug)
|
||||
e_int_menus_menu_augmentation_del("config/1", Man->maug);
|
||||
|
||||
e_configure_registry_item_del("extensions/deskman");
|
||||
e_configure_registry_category_del("extensions");
|
||||
|
||||
if (Man->config_dialog)
|
||||
{
|
||||
e_object_del(E_OBJECT(Man->config_dialog));
|
||||
Man->config_dialog = NULL;
|
||||
}
|
||||
{
|
||||
e_object_del(E_OBJECT(Man->config_dialog));
|
||||
Man->config_dialog = NULL;
|
||||
}
|
||||
if (Man->action)
|
||||
{
|
||||
e_action_predef_name_del(_("Gadgets"), _("Show/hide gadgets"));
|
||||
|
|
Loading…
Reference in New Issue