Enlightenment CVS committal Author : handyande Project : misc Module : engage
Dir : misc/engage/src Modified Files: Makefile.am config_menu.c Log Message: Hook up Edit/Keep/Remove icon actions =================================================================== RCS file: /cvs/e/misc/engage/src/Makefile.am,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- Makefile.am 7 Sep 2006 22:33:08 -0000 1.21 +++ Makefile.am 12 Sep 2006 17:50:17 -0000 1.22 @@ -25,9 +25,11 @@ e_user.h \ e_utils.h \ engage.h \ +order.h \ engage_element.h \ battery.h \ main.c \ +order.c \ config.c \ config_menu.c \ dock.c \ =================================================================== RCS file: /cvs/e/misc/engage/src/config_menu.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- config_menu.c 10 Sep 2006 18:38:23 -0000 1.2 +++ config_menu.c 12 Sep 2006 17:50:17 -0000 1.3 @@ -1,13 +1,74 @@ #include "engage.h" +#include "order.h" #include "config.h" +#include <string.h> #ifdef HAVE_ETK #include <Etk.h> +OD_Icon *_od_config_menu_icon; + Etk_Widget *_od_config_menu = NULL; Etk_Widget *_od_config_menu_app; Etk_Widget *_od_config_menu_app_keep, *_od_config_menu_app_remove; +OD_Icon *_od_icon_at_x_get(int x) { + Evas_List *l; + Evas_Coord minx, maxx; + + minx = x - options.size / 2; + maxx = x + options.size / 2; + + l = dock.icons; + while (l) { + OD_Icon *icon; + icon = l->data; + if (icon->x >= minx && icon->x <= maxx) + return icon; + + l = l->next; + } + + return NULL; +} + +void _od_config_menu_app_edit_cb(Etk_Object *object, void *data) { + int len; + char *cmd; + + if (!_od_config_menu_icon) + return; + + len = strlen(_od_config_menu_icon->a->path) + 8 + 2; + cmd = malloc(len * sizeof(char)); + snprintf(cmd, len, "eap_edit %s", _od_config_menu_icon->a->path); + printf("running \"%s\"\n", cmd); + ecore_exe_run(cmd, NULL); + free(cmd); +} + +void _od_config_menu_app_keep_cb(Etk_Object *object, void *data) { + const char *file; + + if (!_od_config_menu_icon) + return; + + _od_config_menu_icon->launcher = 1; + file = ecore_file_get_file(_od_config_menu_icon->a->path); + _od_dotorder_app_add(file); +} + +void _od_config_menu_app_remove_cb(Etk_Object *object, void *data) { + const char *file; + + if (!_od_config_menu_icon) + return; + + _od_config_menu_icon->launcher = 0; + file = ecore_file_get_file(_od_config_menu_icon->a->path); + _od_dotorder_app_del(file); +} + void _od_config_menu_zoom_none_cb(Etk_Object *object, void *data) { ecore_config_int_set("engage.options.zoom", 0); ecore_config_int_set("engage.options.stretch", 0); @@ -45,15 +106,15 @@ menu_item = etk_menu_item_new_with_label("Edit Icon"); etk_menu_shell_append(ETK_MENU_SHELL(sub_menu), ETK_MENU_ITEM(menu_item)); -// etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_edit_cb), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_edit_cb), NULL); menu_item = etk_menu_item_new_with_label("Keep Icon"); etk_menu_shell_append(ETK_MENU_SHELL(sub_menu), ETK_MENU_ITEM(menu_item)); -// etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_keep_cb), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_keep_cb), NULL); _od_config_menu_app_keep = menu_item; menu_item = etk_menu_item_new_with_label("Remove Icon"); etk_menu_shell_append(ETK_MENU_SHELL(sub_menu), ETK_MENU_ITEM(menu_item)); -// etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_remove_cb), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_od_config_menu_app_remove_cb), NULL); _od_config_menu_app_remove = menu_item; menu_item = etk_menu_item_image_new_with_label("Zoom Mode"); @@ -89,44 +150,33 @@ } void od_config_menu_draw(Evas_Coord x, Evas_Coord y) { - Evas_List *l; - Evas_Coord minx, maxx; - char *label; - + OD_Icon *icon; + const char *label; + Etk_Widget *image; + + image = NULL; if (_od_config_menu == NULL) od_config_menu_init(); - minx = x - options.size / 2; - maxx = x + options.size / 2; label = "Not over icon"; etk_widget_hide(_od_config_menu_app); - l = dock.icons; - while (l) { - OD_Icon *icon; - icon = l->data; - if (icon->x >= minx && icon->x <= maxx) { - int len; - char *full; - Etk_Image *image; - - label = icon->a->name; - etk_widget_show(_od_config_menu_app); - image = NULL; - if (icon->a->path) { - image = etk_image_new_from_edje(icon->a->path, "icon"); - } - etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(_od_config_menu_app), image); - if (icon->launcher) { - etk_widget_hide(_od_config_menu_app_keep); - etk_widget_show(_od_config_menu_app_remove); - } else { - etk_widget_show(_od_config_menu_app_keep); - etk_widget_hide(_od_config_menu_app_remove); - } - break; + icon = _od_icon_at_x_get(x); + _od_config_menu_icon = icon; + if (icon) { + label = icon->a->name; + etk_widget_show(_od_config_menu_app); + if (icon->a->path) { + image = etk_image_new_from_edje(icon->a->path, "icon"); + } + etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(_od_config_menu_app), ETK_IMAGE(image)); + if (icon->launcher) { + etk_widget_hide(_od_config_menu_app_keep); + etk_widget_show(_od_config_menu_app_remove); + } else { + etk_widget_show(_od_config_menu_app_keep); + etk_widget_hide(_od_config_menu_app_remove); } - l = l->next; } etk_menu_item_label_set(ETK_MENU_ITEM(_od_config_menu_app), label); ------------------------------------------------------------------------- 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