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

Reply via email to