Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_gadcon.c e_gadcon.h e_int_menus.c e_shelf.c e_shelf.h Log Message: now config comes off a menu as does editing of items =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- e_gadcon.c 23 Apr 2006 06:56:22 -0000 1.20 +++ e_gadcon.c 23 Apr 2006 13:20:57 -0000 1.21 @@ -196,11 +196,9 @@ E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE); ok = 0; e_gadcon_layout_freeze(gc->o_container); - printf("e_config->gadcons = %p\n", e_config->gadcons); for (l = e_config->gadcons; l; l = l->next) { cf_gc = l->data; - printf("%s == %s, %s == %s\n", cf_gc->name, gc->name, cf_gc->id, gc->id); if ((!strcmp(cf_gc->name, gc->name)) && (!strcmp(cf_gc->id, gc->id))) { @@ -371,6 +369,7 @@ E_OBJECT_CHECK(gc); E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE); e_gadcon_layout_freeze(gc->o_container); + gc->editing = 1; for (l = gc->clients; l; l = l->next) { E_Gadcon_Client *gcc; @@ -389,6 +388,7 @@ E_OBJECT_CHECK(gc); E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE); e_gadcon_layout_freeze(gc->o_container); + gc->editing = 0; for (l = gc->clients; l; l = l->next) { E_Gadcon_Client *gcc; @@ -723,7 +723,6 @@ E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); gcc->aspect.w = w; gcc->aspect.h = h; - printf("ASPECt: %i %i\n", w, h); if ((!gcc->autoscroll) && (!gcc->resizable)) { if (gcc->o_frame) @@ -856,6 +855,18 @@ e_gadcon_populate(gc); } +static void +_e_gadcon_client_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Gadcon_Client *gcc; + + gcc = data; + if (gcc->o_control) + e_gadcon_client_edit_end(gcc); + else + e_gadcon_client_edit_begin(gcc); +} + EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int flags) { @@ -884,6 +895,14 @@ e_menu_item_check_set(mi, 1); if (gcc->resizable) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc); + + mi = e_menu_item_new(menu); + if (gcc->o_control) + e_menu_item_label_set(mi, _("Stop editing")); + else + e_menu_item_label_set(mi, _("Begin editing")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/edit"); + e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc); } static void @@ -1196,7 +1215,27 @@ ev = event_info; if (ev->button == 3) { - printf("THREE! %p\n", gcc); + E_Menu *mn; + E_Menu_Item *mi; + int cx, cy, cw, ch; + + mn = e_menu_new(); + e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post, + gcc); + gcc->menu = mn; + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Stop editing")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/edit"); + e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc); + + 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()), + cx + ev->output.x, cy + ev->output.y, 1, 1, + E_MENU_POP_DIRECTION_DOWN, ev->timestamp); + evas_event_feed_mouse_up(gcc->gadcon->evas, ev->button, + EVAS_BUTTON_NONE, ev->timestamp, NULL); } } @@ -1878,7 +1917,6 @@ x = sd->x; y = sd->y; w = sd->w; h = sd->h; min = mino = cur = 0; - printf("HORIZ: %i\n", sd->horizontal); for (l = sd->items; l; l = l->next) { E_Gadcon_Layout_Item *bi; @@ -1943,8 +1981,6 @@ } } - printf("CUR = %i | %i %i\n", cur, min, mino); - if (sd->horizontal) { if (cur <= w) @@ -1958,7 +1994,6 @@ sub = cur - w; /* we need to find "sub" extra pixels */ if (min <= w) { - printf("blum\n"); for (l = sd->items; l; l = l->next) { E_Gadcon_Layout_Item *bi; @@ -1970,13 +2005,11 @@ if (give < sub) give = sub; bi->ask.size2 = bi->ask.size - give; sub -= give; - printf("GIVE: %i\n", give); if (sub <= 0) break; } } else { /* EEK - all items just cant fit at their minimum! what do we do? */ - printf("EEK - nofit!\n"); num = 0; num = evas_list_count(sd->items); give = min - w; // how much give total below minw we need @@ -2016,7 +2049,6 @@ sub = cur - h; /* we need to find "sub" extra pixels */ if (min <= h) { - printf("blum\n"); for (l = sd->items; l; l = l->next) { E_Gadcon_Layout_Item *bi; @@ -2028,13 +2060,11 @@ if (give < sub) give = sub; bi->ask.size2 = bi->ask.size - give; sub -= give; - printf("GIVE: %i\n", give); if (sub <= 0) break; } } else { /* EEK - all items just cant fit at their minimum! what do we do? */ - printf("EEK - nofit!\n"); num = 0; num = evas_list_count(sd->items); give = min - h; // how much give total below minw we need @@ -2429,7 +2459,6 @@ evas_list_free(list_e); evas_list_free(list); - printf("-------------------v\n"); for (l = sd->items; l; l = l->next) { E_Gadcon_Layout_Item *bi; @@ -2449,13 +2478,9 @@ xx = x + ((w - bi->w) / 2); yy = y + bi->y; } - printf("%p -> %i,%i [%i,%i], %ix%i\n", - obj, - xx, yy, bi->x, bi->y, bi->w, bi->h); evas_object_move(obj, xx, yy); evas_object_resize(obj, bi->w, bi->h); } - printf("-------------------^\n"); sd->doing_config = 0; if (sd->redo_config) { =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- e_gadcon.h 20 Apr 2006 11:30:24 -0000 1.14 +++ e_gadcon.h 23 Apr 2006 13:20:57 -0000 1.15 @@ -70,6 +70,8 @@ Evas_Object *(*func) (void *data, E_Gadcon_Client *gcc, const char *style); void *data; } frame_request; + + unsigned char editing : 1; }; #define GADCON_CLIENT_CLASS_VERSION 1 =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.134 retrieving revision 1.135 diff -u -3 -r1.134 -r1.135 --- e_int_menus.c 2 Mar 2006 12:03:48 -0000 1.134 +++ e_int_menus.c 23 Apr 2006 13:20:57 -0000 1.135 @@ -822,12 +822,12 @@ gm = data; if (e_menu_item_toggle_get(mi)) { - e_gadcon_all_edit_begin(); +// e_gadcon_all_edit_begin(); e_gadman_mode_set(gm, E_GADMAN_MODE_EDIT); } else { - e_gadcon_all_edit_end(); +// e_gadcon_all_edit_end(); e_gadman_mode_set(gm, E_GADMAN_MODE_NORMAL); } } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- e_shelf.c 23 Apr 2006 06:56:22 -0000 1.16 +++ e_shelf.c 23 Apr 2006 13:20:57 -0000 1.17 @@ -422,6 +422,12 @@ static void _e_shelf_free(E_Shelf *es) { + if (es->menu) + { + e_menu_post_deactivate_callback_set(es->menu, NULL, NULL); + e_object_del(E_OBJECT(es->menu)); + es->menu = NULL; + } if (es->config_dialog) e_object_del(E_OBJECT(es->config_dialog)); shelves = evas_list_remove(shelves, es); e_object_del(E_OBJECT(es->gadcon)); @@ -509,7 +515,6 @@ nw = es->w; nh = es->h; ww = hh = 0; - printf("req = %i %i\n", w, h); evas_object_geometry_get(gc->o_container, NULL, NULL, &ww, &hh); switch (gc->orient) { @@ -537,10 +542,8 @@ default: break; } - printf("adj min = %i %i\n", w, h); e_gadcon_swallowed_min_size_set(gc, w, h); edje_object_size_min_calc(es->o_base, &nw, &nh); - printf("new w, h = %i %i\n", nw, nh); switch (gc->orient) { case E_GADCON_ORIENT_FLOAT: @@ -688,6 +691,38 @@ } static void +_e_shelf_cb_menu_config(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Shelf *es; + + es = data; + if (!es->config_dialog) e_int_shelf_config(es); +} + +static void +_e_shelf_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Shelf *es; + + es = data; + if (es->gadcon->editing) + e_gadcon_edit_end(es->gadcon); + else + e_gadcon_edit_begin(es->gadcon); +} + +static void +_e_shelf_cb_menu_post(void *data, E_Menu *m) +{ + E_Shelf *es; + + es = data; + if (!es->menu) return; + e_object_del(E_OBJECT(es->menu)); + es->menu = NULL; +} + +static void _e_shelf_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Down *ev; @@ -697,7 +732,34 @@ ev = event_info; if (ev->button == 3) { - if (!es->config_dialog) e_int_shelf_config(es); + E_Menu *mn; + E_Menu_Item *mi; + int cx, cy, cw, ch; + + mn = e_menu_new(); + e_menu_post_deactivate_callback_set(mn, _e_shelf_cb_menu_post, es); + es->menu = mn; + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Configuration")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/config"); + e_menu_item_callback_set(mi, _e_shelf_cb_menu_config, es); + + mi = e_menu_item_new(mn); + if (es->gadcon->editing) + e_menu_item_label_set(mi, _("Stop editing items")); + else + e_menu_item_label_set(mi, _("Begin editing items")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/edit"); + e_menu_item_callback_set(mi, _e_shelf_cb_menu_edit, es); + + e_gadcon_canvas_zone_geometry_get(es->gadcon, &cx, &cy, &cw, &ch); + e_menu_activate_mouse(mn, + e_util_zone_current_get(e_manager_current_get()), + cx + ev->output.x, cy + ev->output.y, 1, 1, + E_MENU_POP_DIRECTION_DOWN, ev->timestamp); + evas_event_feed_mouse_up(es->gadcon->evas, ev->button, + EVAS_BUTTON_NONE, ev->timestamp, NULL); } } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_shelf.h 23 Apr 2006 06:56:22 -0000 1.12 +++ e_shelf.h 23 Apr 2006 13:20:57 -0000 1.13 @@ -31,6 +31,7 @@ unsigned char fit_size : 1; int size; E_Config_Dialog *config_dialog; + E_Menu *menu; }; EAPI int e_shelf_init(void); ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs