Format that giant mess.

SVN revision: 34612
This commit is contained in:
Christopher Michael 2008-05-19 09:21:44 +00:00
parent 0a8ffffa5f
commit ada4c17fa2
4 changed files with 462 additions and 457 deletions

View File

@ -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__)
{
@ -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);
}

View File

@ -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;
@ -76,12 +76,17 @@ 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;
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;
E_Config_Gadcon_Client *cf_gcc;
if(!(cf_gcc = l->data)) continue;
gadman_gadget_place(cf_gcc, 1);
}
}
@ -124,13 +129,13 @@ 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;
Evas_List *l = NULL;
if (!cf->name) return NULL;
if (ontop) gc = Man->gc_top;
else gc = Man->gc;
if (!cf->name) return NULL;
/* Find provider */
for (l = e_gadcon_provider_list(); l; l = l->next)
{
@ -154,14 +159,14 @@ 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))
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");
/* 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);
@ -182,6 +187,7 @@ 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;
else
@ -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);
@ -280,17 +282,18 @@ gadman_gadgets_show(void)
for (l = Man->gadgets; l; l = l->next)
{
E_Gadcon_Client *gcc = l->data;
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;
@ -298,13 +301,14 @@ gadman_gadgets_hide(void)
for (l = Man->gadgets; l; l = l->next)
{
E_Gadcon_Client *gcc = l->data;
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)
{
@ -314,13 +318,12 @@ gadman_gadgets_toggle(void)
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);
@ -333,8 +336,8 @@ _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,
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)
@ -343,12 +346,11 @@ _gadman_gadcon_new(const char* name, int ontop)
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);
(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); //??
@ -363,7 +365,8 @@ _gadman_gadcon_new(const char* name, int ontop)
/* 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");
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",
@ -371,7 +374,6 @@ _gadman_gadcon_new(const char* name, int ontop)
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
@ -398,13 +400,16 @@ _gadman_gadcon_new(const char* name, int ontop)
gc->cf = NULL;
for (l = e_config->gadcons; l; l=l->next)
{
E_Config_Gadcon *cg = l->data;
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)
{
@ -472,8 +477,8 @@ 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);
@ -599,38 +602,38 @@ _attach_menu(void *data, E_Gadcon_Client *gcc, E_Menu *menu)
static char *
_get_bind_text(const char* action)
{
char b[256] = "";
E_Binding_Key *bind;
bind = e_bindings_key_get(action);
char b[256] = "";
if (bind && bind->key)
bind = e_bindings_key_get(action);
if ((bind) && (bind->key))
{
if (bind->mod & E_BINDING_MODIFIER_CTRL)
if ((bind->mod) & (E_BINDING_MODIFIER_CTRL))
strcat(b, _("CTRL"));
if (bind->mod & E_BINDING_MODIFIER_ALT)
if ((bind->mod) & (E_BINDING_MODIFIER_ALT))
{
if (b[0]) strcat(b, " + ");
strcat(b, _("ALT"));
}
if (bind->mod & E_BINDING_MODIFIER_SHIFT)
if ((bind->mod) & (E_BINDING_MODIFIER_SHIFT))
{
if (b[0]) strcat(b, " + ");
strcat(b, _("SHIFT"));
}
if (bind->mod & E_BINDING_MODIFIER_WIN)
if ((bind->mod) & (E_BINDING_MODIFIER_WIN))
{
if (b[0]) strcat(b, " + ");
strcat(b, _("WIN"));
}
if (bind->key && bind->key[0])
if ((bind->key) && (bind->key[0]))
{
char *l;
if (b[0]) strcat(b, " + ");
if (b[0]) strcat(b, " + ");
l = strdup(bind->key);
l[0] = (char)toupper(bind->key[0]);
strcat(b, l);
@ -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;
@ -665,15 +669,21 @@ on_shape_change(void *data, E_Container_Shape *es, E_Container_Shape_Change ch)
e_gadcon_unpopulate(Man->gc_top);
for (l = Man->gc->cf->clients; l; l = l->next)
{
E_Config_Gadcon_Client *cf_gcc = l->data;
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;
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)
{
@ -761,6 +769,7 @@ on_menu_add(void *data, E_Menu *m, E_Menu_Item *mi)
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,6 +817,7 @@ 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)
@ -831,6 +835,7 @@ on_top(void *data, Evas_Object *o, const char *em, const char *src)
else if (action == DRAG_MOVE)
{
int w, h;
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
h = (oy + oh) - my - 15;
@ -847,12 +852,14 @@ on_top(void *data, Evas_Object *o, const char *em, const char *src)
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);
@ -868,6 +875,7 @@ on_right(void *data, Evas_Object *o, const char *em, const char *src)
else if (action == DRAG_MOVE)
{
int w, h;
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
w = mx - ox - 15;
@ -881,10 +889,12 @@ on_right(void *data, Evas_Object *o, const char *em, const char *src)
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)
@ -902,6 +912,7 @@ on_down(void *data, Evas_Object *o, const char *em, const char *src)
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;
@ -914,10 +925,12 @@ on_down(void *data, Evas_Object *o, const char *em, const char *src)
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)
@ -935,6 +948,7 @@ on_left(void *data, Evas_Object *o, const char *em, const char *src)
else if (action == DRAG_MOVE)
{
int w, h;
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
w = (ox + ow) - mx - 15;
@ -948,17 +962,17 @@ on_left(void *data, Evas_Object *o, const char *em, const char *src)
}
}
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 */

View File

@ -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,