Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_eap_editor.c e_file_dialog.c e_file_dialog.h 
        e_fileman_smart.c e_icon_layout.c e_includes.h 
        e_widget_fileman.c e_widget_fileman.h e_widget_iconsel.c 
        e_widget_iconsel.h 


Log Message:
- add callbacks for file fetching
- integrate new e_file_dialog

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_eap_editor.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_eap_editor.c      28 Oct 2005 13:44:41 -0000      1.7
+++ e_eap_editor.c      28 Oct 2005 23:37:13 -0000      1.8
@@ -48,7 +48,7 @@
 static int            _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, 
void *data);
 static Evas_Object   *_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, 
Evas *evas, void *data);
 static Evas_Object   *_e_eap_edit_advanced_create_widgets(E_Config_Dialog 
*cfd, Evas *evas, void *data);
-    
+static void           _e_eap_edit_select_cb(Evas_Object *obj, char *file, void 
*data);
 
 #define IFDUP(src, dst) if(src) dst = strdup(src); else dst = NULL
 
@@ -217,7 +217,7 @@
    
    editor->img_widget = e_widget_iconsel_add(evas, editor->img, 48, 48, 
                                             &cfdata->image);
-
+   e_widget_iconsel_select_callback_add(editor->img_widget, 
_e_eap_edit_select_cb, editor);
    e_widget_frametable_object_append(o, editor->img_widget,
                                0, 0, 1, 1,
                                1, 1, 1, 1);
@@ -368,3 +368,13 @@
       
    return ol;
 }
+
+void
+_e_eap_edit_select_cb(Evas_Object *obj, char *file, void *data)
+{
+   E_App_Edit *editor;
+   
+   editor = data;
+   printf("selected: %s\n", file);
+   
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_dialog.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_file_dialog.c     28 Oct 2005 13:44:41 -0000      1.1
+++ e_file_dialog.c     28 Oct 2005 23:37:13 -0000      1.2
@@ -9,6 +9,7 @@
 static void _e_file_dialog_button1_click(void *data, E_Dialog *dia);
 static void _e_file_dialog_button2_click(void *data, E_Dialog *dia);    
 static void _e_file_dialog_free(E_File_Dialog *dia);
+static void _e_file_dialog_file_select_cb(Evas_Object *obj, char *file, void 
*data);
 
 E_File_Dialog *
 e_file_dialog_new(E_Container *con)
@@ -17,7 +18,7 @@
    Evas_Coord     w, h, ew, eh;
    E_Manager     *man;
    Evas          *evas;
-   Evas_Object   *table, *ol;
+   Evas_Object   *table, *ol, *fm;
    
    if (!con)
      {
@@ -39,30 +40,35 @@
    
    dia->con = con;
    dia->file = NULL;
+   dia->select_func = NULL;
+   dia->select_data = NULL;
    evas = dia->dia->win->evas;
    
    ol = e_widget_list_add(evas, 0, 1);
    
    table = e_widget_frametable_add(evas, "Places", 0);
    
-   e_widget_frametable_object_append(table, e_widget_button_add(evas, "Home", 
"fileman/home", NULL,
+   e_widget_frametable_object_append(table, e_widget_button_add(evas, 
strdup("Home"), "fileman/home", NULL,
                                                                NULL, NULL),
                                     0, 0, 1, 1, 1, 0, 1, 0);
    
-   e_widget_frametable_object_append(table, e_widget_button_add(evas, " 
Desktop", "fileman/desktop", NULL,
+   e_widget_frametable_object_append(table, e_widget_button_add(evas, 
strdup("Desktop"), "fileman/desktop", NULL,
                                                                NULL, NULL),
                                     0, 1, 1, 1, 1, 0, 1, 0);
    
-   e_widget_frametable_object_append(table, e_widget_button_add(evas, " 
Icons", "fileman/folder", NULL,
+   e_widget_frametable_object_append(table, e_widget_button_add(evas, 
strdup("Icons"), "fileman/folder", NULL,
                                                                NULL, NULL),
                                     0, 2, 1, 1, 1, 0, 1, 0);
+
    
    e_widget_list_object_append(ol, table, 1, 1, 0.0);
    
-   table = e_widget_frametable_add(evas, "Select File", 0);
+   table = e_widget_table_add(evas, "Select File", 0);
+   
+   fm = e_widget_fileman_add(evas, dia->file);
+   e_widget_table_object_append(table, fm, 0, 0, 4, 4, 1, 1, 1, 1);
    
-   e_widget_frametable_object_append(table, e_widget_fileman_add(evas, 
dia->file),
-                                    0, 0, 4, 4, 1, 1, 1, 1);
+   e_widget_fileman_select_callback_add(fm, _e_file_dialog_file_select_cb, 
dia);
    
    e_widget_list_object_append(ol, table, 1, 1, 0.0);
    
@@ -87,13 +93,24 @@
    e_dialog_title_set(dia->dia, title);
 }
 
+void
+e_file_dialog_select_callback_add(E_File_Dialog *dia, void 
(*func)(E_File_Dialog *dia, char *file, void *data), void *data)
+{    
+   dia->select_func = func;
+   dia->select_data = data;
+}
 
 /* local subsystem functions */
 
 static void
-_e_file_dialog_button1_click(void *data, E_Dialog *dia)
+_e_file_dialog_button1_click(void *data, E_Dialog *edia)
 {
-   // TODO: Save or Ok ... clicked. Call user cb.
+   E_File_Dialog *dia;
+   
+   dia = data;
+   if(dia->select_func && dia->file)
+     dia->select_func(dia, dia->file, dia->select_data);
+   _e_file_dialog_free(dia);   
 }
 
 static void
@@ -103,8 +120,23 @@
 }
 
 static void
+_e_file_dialog_file_select_cb(Evas_Object *obj, char *file, void *data)
+{
+   E_File_Dialog *dia;
+   
+   dia = data;
+   if(dia->select_func)
+     dia->select_func(dia, file, dia->select_data);
+   
+   printf("e_file_dialog: %s\n", file);
+   
+   _e_file_dialog_free(dia);
+}
+
+static void
 _e_file_dialog_free(E_File_Dialog *dia)
 {
    e_object_del(E_OBJECT(dia->dia));
+   E_FREE(dia->file);
    free(dia);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_dialog.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_file_dialog.h     28 Oct 2005 13:44:41 -0000      1.1
+++ e_file_dialog.h     28 Oct 2005 23:37:13 -0000      1.2
@@ -19,11 +19,15 @@
    E_Dialog            *dia;
    
    char                *file;
+   
+   void (*select_func)(E_File_Dialog *dia, char *file, void *data);
+   void  *select_data;
 };
 
 EAPI E_File_Dialog  *e_file_dialog_new               (E_Container *con);
 EAPI void            e_file_dialog_show              (E_File_Dialog *dia);
 EAPI void            e_file_dialog_title_set         (E_File_Dialog *dia, 
const char *title);
-    
+EAPI void            e_file_dialog_select_callback_add(E_File_Dialog *dia, 
void (*func)(E_File_Dialog *dia, char *file, void *data), void *data);
+
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -3 -r1.63 -r1.64
--- e_fileman_smart.c   27 Oct 2005 10:19:43 -0000      1.63
+++ e_fileman_smart.c   28 Oct 2005 23:37:13 -0000      1.64
@@ -181,6 +181,8 @@
 
 static void                _e_fm_smart_add(Evas_Object *object);
 static void                _e_fm_smart_del(Evas_Object *object);
+static void                _e_fm_smart_show(Evas_Object *object);
+static void                _e_fm_smart_hide(Evas_Object *object);
 static void                _e_fm_smart_move(Evas_Object *object, Evas_Coord x, 
Evas_Coord y);
 static void                _e_fm_smart_resize(Evas_Object *object, Evas_Coord 
w, Evas_Coord h);
 
@@ -252,8 +254,8 @@
                               NULL, NULL, NULL, NULL, NULL,
                               _e_fm_smart_move, /* move */
                               _e_fm_smart_resize, /* resize */
-                              NULL,/* show */
-                              NULL,/* hide */
+                              _e_fm_smart_show,/* show */
+                              _e_fm_smart_hide,/* hide */
                               NULL, /* color_set */
                               NULL, /* clip_set */
                               NULL, /* clip_unset */
@@ -444,6 +446,30 @@
 /* local subsystem functions */
 
 static void
+_e_fm_smart_show(Evas_Object *object)
+{
+   E_Fm_Smart_Data *sd;
+   
+   if ((!object) || !(sd = evas_object_smart_data_get(object)))
+     return;
+   
+   evas_object_show(sd->bg);
+   evas_object_show(sd->layout);
+   evas_object_show(sd->clip);
+}
+
+static void
+_e_fm_smart_hide(Evas_Object *object)
+{
+   E_Fm_Smart_Data *sd;
+   
+   if ((!object) || !(sd = evas_object_smart_data_get(object)))
+     return;
+   
+   evas_object_hide(sd->clip);
+}
+
+static void
 _e_fm_smart_add(Evas_Object *object)
 {
    char dir[PATH_MAX];
@@ -476,6 +502,7 @@
 
 
    sd->layout = e_icon_layout_add(sd->evas);
+   evas_object_repeat_events_set(sd->layout, 1);
    evas_object_smart_member_add(sd->layout, object);   
    e_icon_layout_spacing_set(sd->layout, sd->icon_info.x_space, 
sd->icon_info.y_space);
    evas_object_stack_above(sd->layout, sd->bg);
@@ -1611,7 +1638,7 @@
    E_Menu      *mn;
    E_Menu_Item *mi;
    int x, y, w, h;
-
+   
    ev = event_info;
    sd = data;
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_icon_layout.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_icon_layout.c     27 Oct 2005 10:19:43 -0000      1.9
+++ e_icon_layout.c     28 Oct 2005 23:37:14 -0000      1.10
@@ -39,6 +39,8 @@
 
 static void _e_icon_layout_smart_init(void);
 static void _e_icon_layout_smart_add(Evas_Object *obj);
+static void _e_icon_layout_smart_show(Evas_Object *obj);
+static void _e_icon_layout_smart_hide(Evas_Object *obj);
 static void _e_icon_layout_smart_del(Evas_Object *obj);
 static void _e_icon_layout_smart_move(Evas_Object *obj, Evas_Coord x, 
Evas_Coord y);
 static void _e_icon_layout_smart_resize(Evas_Object *obj, Evas_Coord w, 
Evas_Coord h);
@@ -396,8 +398,8 @@
                             NULL, NULL, NULL, NULL, NULL,
                             _e_icon_layout_smart_move,
                             _e_icon_layout_smart_resize,
-                            NULL,
-                            NULL,
+                            _e_icon_layout_smart_show,
+                            _e_icon_layout_smart_hide,
                             _e_icon_layout_smart_color_set,
                             _e_icon_layout_smart_clip_set,
                             _e_icon_layout_smart_clip_unset,
@@ -405,6 +407,28 @@
 }
 
 static void
+_e_icon_layout_smart_show(Evas_Object *obj)
+{
+   E_Smart_Data *sd;
+   
+   sd = evas_object_smart_data_get(obj);
+   
+   evas_object_show(sd->clip);
+}
+
+static void
+_e_icon_layout_smart_hide(Evas_Object *obj)
+{
+   E_Smart_Data *sd;
+   
+   sd = evas_object_smart_data_get(obj);
+   
+   evas_object_hide(sd->clip);
+}
+   
+
+
+static void
 _e_icon_layout_smart_add(Evas_Object *obj)
 {
    E_Smart_Data *sd;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -3 -r1.55 -r1.56
--- e_includes.h        28 Oct 2005 13:44:41 -0000      1.55
+++ e_includes.h        28 Oct 2005 23:37:14 -0000      1.56
@@ -86,3 +86,4 @@
 #include "e_eap_editor.h"
 #include "e_file_selector.h"
 #include "e_file_dialog.h"
+#include "e_widget_fileman.h"
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_fileman.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_widget_fileman.c  28 Oct 2005 13:44:41 -0000      1.2
+++ e_widget_fileman.c  28 Oct 2005 23:37:14 -0000      1.3
@@ -11,8 +11,11 @@
 typedef struct _E_Widget_Data E_Widget_Data;
 struct _E_Widget_Data
 {
+   Evas_Object *wid;
    Evas_Object *o_fm;
    char **valptr;
+   void (*select_func) (Evas_Object *obj, char *file, void *data);
+   void  *select_data;
 };
 
 static void _e_wid_del_hook(Evas_Object *obj);
@@ -43,11 +46,21 @@
    int size;
    
    wd = data;
+
+/* this is crashing, see why */
+#if 0
+   if(*(wd->valptr) != NULL)
+     E_FREE(*(wd->valptr));
    
-   E_FREE(*(wd->valptr));
    size = (strlen(file) + 1) * sizeof(char);
    *(wd->valptr) = E_NEW(char *, size);
-   snprintf(*(wd->valptr), size, "%s", file);      
+   snprintf(*(wd->valptr), size, "%s", file);
+#endif   
+   if(wd->select_func)
+     wd->select_func(wd->wid, file, wd->select_data);
+   
+   
+   printf("e_widget_fileman: %s\n", file);
 }
 
 /* externally accessible functions */
@@ -64,6 +77,8 @@
 
    wd = calloc(1, sizeof(E_Widget_Data));
    wd->valptr = val;
+   wd->select_func = NULL;
+   wd->select_data = NULL;
    e_widget_data_set(obj, wd);
    
    wd->o_fm = e_file_selector_add(evas);
@@ -76,5 +91,16 @@
    evas_object_event_callback_add(wd->o_fm, EVAS_CALLBACK_MOUSE_DOWN, 
_e_wid_focus_steal, obj);
    e_widget_resize_object_set(obj, wd->o_fm);
    
+   wd->wid = obj;
    return obj;         
 }
+
+void
+e_widget_fileman_select_callback_add(Evas_Object *obj, void (*func) 
(Evas_Object *obj, char *file, void *data), void *data)
+{
+   E_Widget_Data *wd;   
+   
+   wd = e_widget_data_get(obj);
+   wd->select_func = func;
+   wd->select_data = data;
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_fileman.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_widget_fileman.h  27 Oct 2005 10:19:43 -0000      1.1
+++ e_widget_fileman.h  28 Oct 2005 23:37:14 -0000      1.2
@@ -7,6 +7,7 @@
 #define E_WIDGET_FM_H
 
 EAPI Evas_Object     *e_widget_fileman_add(Evas *evas, char **val);
+EAPI void             e_widget_fileman_select_callback_add(Evas_Object *obj, 
void (*func) (Evas_Object *obj, char *file, void *data), void *data);
 
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_iconsel.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_widget_iconsel.c  28 Oct 2005 13:44:41 -0000      1.2
+++ e_widget_iconsel.c  28 Oct 2005 23:37:14 -0000      1.3
@@ -7,9 +7,13 @@
 struct _E_Widget_Data
 {
    E_Container *con;
+   Evas_Object *obj;
    Evas_Object *o_button;
    Evas_Object *o_icon;
    char **valptr;
+   
+   void (*select_func) (Evas_Object *obj, char *file, void *data);
+   void  *select_data;
 };
 
 static void _e_wid_del_hook(Evas_Object *obj);
@@ -19,6 +23,8 @@
 static void _e_wid_disable_hook(Evas_Object *obj);
 static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char 
*emission, const char *source);
 static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void _e_wid_select_cb(E_File_Dialog *dia, char *file, void *data);
+    
 /* local subsystem functions */
 
 /* externally accessible functions */
@@ -38,6 +44,9 @@
    e_widget_disable_hook_set(obj, _e_wid_disable_hook);
    wd = calloc(1, sizeof(E_Widget_Data));
    wd->valptr = file;
+   wd->select_func = NULL;
+   wd->select_data = NULL;
+   wd->obj = obj;
    e_widget_data_set(obj, wd);
    
    man = e_manager_current_get();
@@ -91,6 +100,9 @@
    e_widget_disable_hook_set(obj, _e_wid_disable_hook);
    wd = calloc(1, sizeof(E_Widget_Data));
    wd->valptr = file;
+   wd->select_func = NULL;
+   wd->select_data = NULL;   
+   wd->obj = obj;
    e_widget_data_set(obj, wd);
    
    o = edje_object_add(evas);
@@ -124,6 +136,16 @@
    return obj;
 }
 
+void
+e_widget_iconsel_select_callback_add(Evas_Object *obj, void 
(*func)(Evas_Object *obj, char *file, void *data), void *data)
+{    
+   E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   wd->select_func = func;
+   wd->select_data = data;     
+}
+
 static void
 _e_wid_del_hook(Evas_Object *obj)
 {
@@ -162,6 +184,7 @@
    dia = e_file_dialog_new(wd->con);
    if(!dia) return;
    e_file_dialog_title_set(dia, "Select File");
+   e_file_dialog_select_callback_add(dia, _e_wid_select_cb, wd);
    e_file_dialog_show(dia);
 }
 
@@ -214,3 +237,27 @@
 {
    e_widget_focus_steal(data);
 }
+
+static void
+_e_wid_select_cb(E_File_Dialog *dia, char *file, void *data)
+{
+   E_Widget_Data *wd;
+   char *ext;
+   
+   wd = data;
+   
+   ext = strrchr(file, '.');
+   if(!ext)
+     return;
+   if(strcasecmp(ext, ".png") && strcasecmp(ext, ".jpg") &&
+        strcasecmp(ext, ".jpeg"))
+     return;   
+   
+   if(wd->select_func)
+     wd->select_func(wd->obj, file, wd->select_data);
+      
+   e_icon_file_set(wd->o_icon, file);
+   E_FREE(*(wd->valptr));
+   *(wd->valptr) = strdup(file);
+   e_object_del(dia);
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_iconsel.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_widget_iconsel.h  27 Oct 2005 10:19:43 -0000      1.1
+++ e_widget_iconsel.h  28 Oct 2005 23:37:14 -0000      1.2
@@ -8,6 +8,7 @@
 
 EAPI Evas_Object *e_widget_iconsel_add(Evas *evas, Evas_Object *icon, 
Evas_Coord minw, Evas_Coord minh, void (*func) (void *data, void *data2), void 
*data, void *data2);
 EAPI Evas_Object *e_widget_iconsel_add_from_file(Evas *evas, char *icon, 
Evas_Coord minw, Evas_Coord minh, void (*func) (void *data, void *data2), void 
*data, void *data2);
+EAPI void         e_widget_iconsel_select_callback_add(Evas_Object *obj, void 
(*func)(Evas_Object *obj, char *file, void *data), void *data);
 
 #endif
 #endif




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to