Enlightenment CVS committal

Author  : kiwi
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_confirm_dialog.c e_confirm_dialog.h 


Log Message:
confirm dialogs can now be deleted via e_object_del() call

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_confirm_dialog.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_confirm_dialog.c  30 Oct 2006 10:42:23 -0000      1.3
+++ e_confirm_dialog.c  30 Apr 2007 22:23:00 -0000      1.4
@@ -3,47 +3,25 @@
  */
 #include "e.h"
 
-typedef struct _E_Confirm_Dialog E_Confirm_Dialog;
-
-struct _E_Confirm_Dialog
-{
-   struct 
-     {
-       void *data;
-       void (*func)(void *data);
-     } yes;
-
-   struct
-     {
-       void *data;
-       void (*func)(void *data);
-     } no;
-
-   struct
-     {
-       void *data;
-       void (*func)(void *data);
-     } del;
-   E_Dialog *dia;
-};
-
-
 /******** private function definitions **********/
+static void _e_confirm_dialog_free(E_Confirm_Dialog *cd);
 static void _e_confirm_dialog_delete(E_Win *win);
 static void _e_confirm_dialog_yes(void *data, E_Dialog *dia);
 static void _e_confirm_dialog_no(void *data, E_Dialog *dia);
 
 
 /********** externally accesible functions ****************/
-EAPI void 
+EAPI E_Confirm_Dialog *
 e_confirm_dialog_show(const char *title, const char *icon, const char *text,
-                     const char *button_text, const char *button2_text, void 
(*func)(void *data),
-                     void (*func2)(void *data), void *data, void *data2, void 
(*del_func)(void *data), void *del_data)
+                     const char *button_text, const char *button2_text,
+                      void (*func)(void *data), void (*func2)(void *data),
+                      void *data, void *data2,
+                      void (*del_func)(void *data), void *del_data)
 {
    E_Confirm_Dialog *cd; 
    E_Dialog *dia;
 
-   cd = E_NEW(E_Confirm_Dialog, 1);
+   cd = E_OBJECT_ALLOC(E_Confirm_Dialog, E_CONFIRM_DIALOG_TYPE, 
_e_confirm_dialog_free);
    cd->yes.func = func;
    cd->yes.data = data;
    cd->no.func = func2;
@@ -72,10 +50,23 @@
    e_dialog_button_focus_num(dia, 1);
    e_win_centered_set(dia->win, 1);
    e_dialog_show(dia);
+
+   return cd;
 }
 
 /********* private function bodies ************/
 static void
+_e_confirm_dialog_free(E_Confirm_Dialog *cd)
+{
+   E_Dialog *dia;
+   E_Win *win;
+
+   dia = cd->dia;
+   win = dia->win;
+   _e_confirm_dialog_delete(win);
+}
+
+static void
 _e_confirm_dialog_yes(void *data, E_Dialog *dia)
 {
    E_Confirm_Dialog *cd;
@@ -84,6 +75,7 @@
    if (cd->yes.func) cd->yes.func(cd->yes.data);
    _e_confirm_dialog_delete(cd->dia->win);
 }
+
 static void
 _e_confirm_dialog_no(void *data, E_Dialog *dia)
 {
@@ -93,6 +85,7 @@
    if (cd->no.func) cd->no.func(cd->no.data);
    _e_confirm_dialog_delete(cd->dia->win);
 }
+
 static void
 _e_confirm_dialog_delete(E_Win *win)
 {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_confirm_dialog.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_confirm_dialog.h  14 Jan 2007 16:48:20 -0000      1.3
+++ e_confirm_dialog.h  30 Apr 2007 22:23:00 -0000      1.4
@@ -1,12 +1,39 @@
 /*
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
-#ifdef E_TYPEDEF
+#ifdef E_TYPEDEFS
+
+typedef struct _E_Confirm_Dialog E_Confirm_Dialog;
 
 #else
 #ifndef E_CONFIRM_DIALOG_H
 #define E_CONFIRM_DIALOG_H
 
+#define E_CONFIRM_DIALOG_TYPE 0x16f5904e
+
+struct _E_Confirm_Dialog
+{
+   E_Object  e_obj_inherit;
+   
+   E_Dialog *dia;
+
+   struct 
+     {
+       void *data;
+       void (*func)(void *data);
+     } yes;
+   struct
+     {
+       void *data;
+       void (*func)(void *data);
+     } no;
+   struct
+     {
+       void *data;
+       void (*func)(void *data);
+     } del;
+};
+
 /*
  * @title - dialog title
  * @icon  - dialog icon
@@ -17,8 +44,10 @@
  * func2 - the function to call if no is pressed
  * data - the pointer passed to func
  * data2 - the pointer passed to func2
+ * del_func - the function to call before dialog is deleted
+ * del_data - the pointer passer to del_func
  */
-EAPI void e_confirm_dialog_show(const char *title, const char *icon, const 
char *text, const char *button_text, const char *button2_text, void 
(*func)(void *data), void (*func2)(void *data), void *data, void *data2, void 
(*del_func)(void *data), void * del_data);
+EAPI E_Confirm_Dialog *e_confirm_dialog_show(const char *title, const char 
*icon, const char *text, const char *button_text, const char *button2_text, 
void (*func)(void *data), void (*func2)(void *data), void *data, void *data2, 
void (*del_func)(void *data), void * del_data);
 
 #endif
 #endif



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to