Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: Makefile.am e_border.c e_border.h e_includes.h e_int_config_keybindings.c e_int_config_shelf.c e_shelf.c Added Files: e_confirm_dialog.c e_confirm_dialog.h Log Message: 1. The confirmation dialog on shelf delete is added. Somebody on IRC proposed to have it. Also it is added on Key Binding deletion (see Key Bindings dialog). Code duplicates were moved to a separate function e_confirm_dialog_show. 2. Two new events E_EVENT_BORDER_FOCUS_IN and E_EVENT_BORDER_FOCUS_OUT are added. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.120 retrieving revision 1.121 diff -u -3 -r1.120 -r1.121 --- Makefile.am 5 May 2006 12:20:14 -0000 1.120 +++ Makefile.am 22 May 2006 20:28:32 -0000 1.121 @@ -154,7 +154,8 @@ e_int_config_paths.h \ e_int_shelf_config.h \ e_int_config_shelf.h \ -e_int_gadcon_config.h +e_int_gadcon_config.h \ +e_confirm_dialog.h enlightenment_src = \ e_user.c \ @@ -290,6 +291,7 @@ e_int_shelf_config.c \ e_int_config_shelf.c \ e_int_gadcon_config.c \ +e_confirm_dialog.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.488 retrieving revision 1.489 diff -u -3 -r1.488 -r1.489 --- e_border.c 16 May 2006 07:32:37 -0000 1.488 +++ e_border.c 22 May 2006 20:28:32 -0000 1.489 @@ -67,6 +67,8 @@ static void _e_border_event_border_desk_set_free(void *data, void *ev); static void _e_border_event_border_stack_free(void *data, void *ev); static void _e_border_event_border_icon_change_free(void *data, void *ev); +static void _e_border_event_border_focus_in_free(void *data, void *ev); +static void _e_border_event_border_focus_out_free(void *data, void *ev); static void _e_border_event_border_resize_free(void *data, void *ev); static void _e_border_event_border_move_free(void *data, void *ev); static void _e_border_event_border_show_free(void *data, void *ev); @@ -127,6 +129,8 @@ EAPI int E_EVENT_BORDER_UNSTICK = 0; EAPI int E_EVENT_BORDER_STACK = 0; EAPI int E_EVENT_BORDER_ICON_CHANGE = 0; +EAPI int E_EVENT_BORDER_FOCUS_IN = 0; +EAPI int E_EVENT_BORDER_FOCUS_OUT = 0; #define GRAV_SET(bd, grav) \ ecore_x_window_gravity_set(bd->bg_win, grav); \ @@ -177,6 +181,8 @@ E_EVENT_BORDER_UNSTICK = ecore_event_type_new(); E_EVENT_BORDER_STACK = ecore_event_type_new(); E_EVENT_BORDER_ICON_CHANGE = ecore_event_type_new(); + E_EVENT_BORDER_FOCUS_IN = ecore_event_type_new(); + E_EVENT_BORDER_FOCUS_OUT = ecore_event_type_new(); return 1; } @@ -1280,13 +1286,31 @@ #endif if (bd->focused) { + E_Event_Border_Focus_In *ev; + focused = bd; //printf("set focused to %p\n", focused); + + ev = calloc(1, sizeof(E_Event_Border_Focus_In)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + + ecore_event_add(E_EVENT_BORDER_FOCUS_IN, ev, + _e_border_event_border_focus_in_free, NULL); } else if ((!bd->focused) && (focused == bd)) { + E_Event_Border_Focus_Out *ev; + focused = NULL; //printf("set focused to %p\n", focused); + + ev = calloc(1, sizeof(E_Event_Border_Focus_Out)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + + ecore_event_add(E_EVENT_BORDER_FOCUS_OUT, ev, + _e_border_event_border_focus_out_free, NULL); } } @@ -6307,6 +6331,26 @@ e = ev; // e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event"); + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void +_e_border_event_border_focus_in_free(void *data, void *ev) +{ + E_Event_Border_Focus_In *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void +_e_border_event_border_focus_out_free(void *data, void *ev) +{ + E_Event_Border_Focus_Out *e; + + e = ev; e_object_unref(E_OBJECT(e->border)); free(e); } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.133 retrieving revision 1.134 diff -u -3 -r1.133 -r1.134 --- e_border.h 10 May 2006 14:54:59 -0000 1.133 +++ e_border.h 22 May 2006 20:28:32 -0000 1.134 @@ -84,6 +84,8 @@ typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; typedef struct _E_Event_Border_Stack E_Event_Border_Stack; typedef struct _E_Event_Border_Icon_Change E_Event_Border_Icon_Change; +typedef struct _E_Event_Border_Focus_In E_Event_Border_Focus_In; +typedef struct _E_Event_Border_Focus_Out E_Event_Border_Focus_Out; #else #ifndef E_BORDER_H @@ -484,6 +486,16 @@ E_Border *border; }; +struct _E_Event_Border_Focus_In +{ + E_Border *border; +}; + +struct _E_Event_Border_Focus_Out +{ + E_Border *border; +}; + EAPI int e_border_init(void); EAPI int e_border_shutdown(void); @@ -573,6 +585,8 @@ extern EAPI int E_EVENT_BORDER_DESK_SET; extern EAPI int E_EVENT_BORDER_STACK; extern EAPI int E_EVENT_BORDER_ICON_CHANGE; +extern EAPI int E_EVENT_BORDER_FOCUS_IN; +extern EAPI int E_EVENT_BORDER_FOCUS_OUT; #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_includes.h,v retrieving revision 1.102 retrieving revision 1.103 diff -u -3 -r1.102 -r1.103 --- e_includes.h 5 May 2006 12:20:14 -0000 1.102 +++ e_includes.h 22 May 2006 20:28:32 -0000 1.103 @@ -135,3 +135,4 @@ #include "e_int_shelf_config.h" #include "e_int_config_shelf.h" #include "e_int_gadcon_config.h" +#include "e_confirm_dialog.h" =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_keybindings.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- e_int_config_keybindings.c 12 May 2006 12:25:55 -0000 1.23 +++ e_int_config_keybindings.c 22 May 2006 20:28:32 -0000 1.24 @@ -34,7 +34,7 @@ static void _e_keybinding_default_keybinding_settings(E_Config_Dialog_Data *cfdata); static void _e_keybinding_keybind_cb_del_keybinding(void *data, void *data2); -static void _e_keybinding_keybind_delete_keybinding(E_Config_Dialog_Data *cfdata); +//static void _e_keybinding_keybind_delete_keybinding(E_Config_Dialog_Data *cfdata); static void _e_keybinding_keybind_cb_add_keybinding(void *data, void *data2); @@ -105,6 +105,8 @@ Evas_Object *bind_context[E_BINDING_CONTEXT_NUMBER]; Evas_Object *key_action; Evas_Object *key_params; + + E_Dialog *confirm_dialog; } gui; struct { @@ -1035,15 +1037,24 @@ } static void -_e_keybinding_keybind_cb_del_keybinding(void *data, void *data2) +_e_keybinding_cb_confirm_dialog_yes(void *data) { - E_Config_Dialog_Data *cfdata = data; + E_Config_Binding_Key *eb; + E_Config_Dialog_Data *cfdata; - if (!cfdata) return; - if (!cfdata->current_act && cfdata->current_act_selector < 0) - return; + if (!(cfdata = data)) + if ((!cfdata->current_act) && (cfdata->current_act_selector < 0)) return; + + eb = evas_list_nth(cfdata->current_act->key_bindings, cfdata->current_act_selector); + cfdata->current_act->key_bindings = evas_list_remove(cfdata->current_act->key_bindings, eb); + + if (eb->key) evas_stringshare_del(eb->key); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); + E_FREE(eb); - _e_keybinding_keybind_delete_keybinding(cfdata); + if (cfdata->current_act_selector >= evas_list_count(cfdata->current_act->key_bindings)) + cfdata->current_act_selector = evas_list_count(cfdata->current_act->key_bindings) - 1; _e_keybinding_update_binding_list(cfdata); e_widget_ilist_go(cfdata->gui.binding_ilist); @@ -1060,30 +1071,23 @@ //cfdata->changed = 1; } + static void -_e_keybinding_keybind_delete_keybinding(E_Config_Dialog_Data *cfdata) +_e_keybinding_keybind_cb_del_keybinding(void *data, void *data2) { - E_Config_Binding_Key *eb; + char buf[4096]; + E_Config_Dialog_Data *cfdata = data; if (!cfdata) return; - if (!cfdata->current_act && cfdata->current_act_selector < 0) - return; - eb = evas_list_nth(cfdata->current_act->key_bindings, cfdata->current_act_selector); - cfdata->current_act->key_bindings = evas_list_remove(cfdata->current_act->key_bindings, eb); + snprintf(buf, sizeof(buf), _("You requested to delte \"%s\" keybinding.<br>" + "<br>" + "Are you sure you want to delete it?"), + e_widget_ilist_selected_label_get(cfdata->gui.binding_ilist)); - if (!evas_list_count(cfdata->current_act->key_bindings)) - { - evas_list_free(cfdata->current_act->key_bindings); - cfdata->current_act->key_bindings = NULL; - } - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); + e_confirm_dialog_show(_("Delete?"), "enlightenment/exit", buf, NULL, NULL, + _e_keybinding_cb_confirm_dialog_yes, NULL, cfdata, NULL); - if (cfdata->current_act_selector >= evas_list_count(cfdata->current_act->key_bindings)) - cfdata->current_act_selector = evas_list_count(cfdata->current_act->key_bindings) - 1; } static void _e_keybinding_update_binding_ilist_cur_selection_icon(E_Config_Dialog_Data *cfdata) =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_shelf.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_int_config_shelf.c 22 May 2006 12:01:09 -0000 1.4 +++ e_int_config_shelf.c 22 May 2006 20:28:33 -0000 1.5 @@ -144,7 +144,7 @@ e_widget_ilist_selected_set(cfdata->ilist, e_widget_ilist_count(cfdata->ilist) - 1); } -static void +/*static void _cb_confirm_dialog_no(void *data, E_Dialog *dia) { E_Config_Dialog_Data *cfdata; @@ -185,35 +185,45 @@ E_Config_Dialog_Data *cfdata; cfdata = ((E_Dialog *)win->data)->data; _cb_confirm_dialog_no(cfdata, cfdata->confirm_dialog); -} +}*/ static void +_cb_confirm_dialog_yes(void *data) +{ + E_Shelf *es; + E_Config_Shelf *cfg; + E_Config_Dialog_Data *cfdata; + + cfdata = data; + es = evas_list_nth(e_shelf_list(), e_widget_ilist_selected_get(cfdata->ilist)); + if (es) + { + cfg = es->cfg; + e_object_del(E_OBJECT(es)); + + e_config->shelves = evas_list_remove(e_config->shelves, cfg); + if (cfg->name) evas_stringshare_del(cfg->name); + if (cfg->style) evas_stringshare_del(cfg->style); + E_FREE(cfg); + e_config_save_queue(); + + _ilist_fill(cfdata); + } +} +static void _cb_del(void *data, void *data2) { char buf[4096]; E_Config_Dialog_Data *cfdata; cfdata = data; - if (cfdata->confirm_dialog) e_object_del(E_OBJECT(cfdata->confirm_dialog)); - cfdata->confirm_dialog = e_dialog_new(e_container_current_get(e_manager_current_get())); - if (!cfdata->confirm_dialog) return; - cfdata->confirm_dialog->data = cfdata; - e_win_delete_callback_set(cfdata->confirm_dialog->win, _cb_confirm_dialog_delete); - e_dialog_title_set(cfdata->confirm_dialog, _("Are you sure you want to delete this shelf?")); - snprintf(buf, sizeof(buf), _("You requested to delete \"%s\".<br>" "<br>" "Are you sure you want to delete this shelf?"), e_widget_ilist_selected_label_get(cfdata->ilist)); - e_dialog_text_set(cfdata->confirm_dialog, buf); - e_dialog_icon_set(cfdata->confirm_dialog, "enlightenment/exit", 64); - e_dialog_button_add(cfdata->confirm_dialog, _("Yes"), NULL, _cb_confirm_dialog_yes, cfdata); - e_dialog_button_add(cfdata->confirm_dialog, _("No"), NULL, _cb_confirm_dialog_no, cfdata); - - e_dialog_button_focus_num(cfdata->confirm_dialog, 1); - e_win_centered_set(cfdata->confirm_dialog->win, 1); - e_dialog_show(cfdata->confirm_dialog); + e_confirm_dialog_show(_("Are you sure you want to delete this shelf?"), "enlightenment/exit", + buf, NULL, NULL, _cb_confirm_dialog_yes, NULL, cfdata, NULL); } static void =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- e_shelf.c 18 May 2006 21:33:03 -0000 1.24 +++ e_shelf.c 22 May 2006 20:28:33 -0000 1.25 @@ -735,11 +735,11 @@ } static void -_e_shelf_cb_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi) +_e_shelf_cb_confirm_dialog_yes(void *data) { E_Config_Shelf *cfg; E_Shelf *es; - + es = data; cfg = es->cfg; e_object_del(E_OBJECT(es)); @@ -749,6 +749,17 @@ E_FREE(cfg); e_config_save_queue(); +} + + +static void +_e_shelf_cb_menu_delete(void *data, E_Menu *m, E_Menu_Item *mi) +{ + e_confirm_dialog_show(_("Are you sure you want to delete this shelf?"), "enlightenment/exit", + _("You requested to delete this shelf.<br>" + "<br>" + "Are you sure you want to delete it?"), NULL, NULL, + _e_shelf_cb_confirm_dialog_yes, NULL, data, NULL); } static 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