Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_fwin.c e_fwin.h e_ilist.c e_widget_ilist.c 


Log Message:


double click on open - with items in ilist or fm2 list and e will auto-open

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fwin.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- e_fwin.c    27 Oct 2006 15:24:13 -0000      1.11
+++ e_fwin.c    28 Oct 2006 03:53:22 -0000      1.12
@@ -19,7 +19,14 @@
 static void _e_fwin_parent(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_fwin_file_open_app(E_Fwin *fwin, E_App *a, const char *file);
 
-static void _e_fwin_cb_ilist_change(void *data, Evas_Object *obj);
+static void _e_fwin_cb_ilist_change(void *data);
+static void _e_fwin_cb_ilist_selected(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_fwin_cb_fm_selection_change(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_fwin_cb_fm_selected(void *data, Evas_Object *obj, void 
*event_info);
+static void _e_fwin_cb_open(void *data, E_Dialog *dia);
+static void _e_fwin_cb_close(void *data, E_Dialog *dia);
+static void _e_fwin_cb_dialog_free(void *obj);
+static Evas_Bool _e_fwin_cb_hash_foreach(Evas_Hash *hash, const char *key, 
void *data, void *fdata);
 static void _e_fwin_file_open_dialog(E_Fwin *fwin, Evas_List *files);
 
 /* local subsystem globals */
@@ -145,6 +152,11 @@
 static void
 _e_fwin_free(E_Fwin *fwin)
 {
+   if (fwin->fad)
+     {
+       e_object_del(E_OBJECT(fwin->fad->dia));
+       fwin->fad = NULL;
+     }
    e_object_del(E_OBJECT(fwin->win));
    fwins = evas_list_remove(fwins, fwin);
    free(fwin);
@@ -229,7 +241,8 @@
    e_fm2_parent_go(data);
 }
 
-
+/* KILL: this func will die as soon as ecore_desktops's cmd thing works
+ * perfectly */
 static void
 _e_fwin_file_open_app(E_Fwin *fwin, E_App *a, const char *file)
 {
@@ -291,24 +304,8 @@
    e_zone_exec(fwin->win->border->zone, buf);
 }
 
-
-
-
-
-
-
-typedef struct _E_Fwin_Apps_Dialog E_Fwin_Apps_Dialog;
-
-struct _E_Fwin_Apps_Dialog
-{
-   E_Dialog *dia;
-   E_Fwin *fwin;
-   char *app1, *app2;
-   Evas_Object *o_ilist, *o_fm;
-};
-
 static void
-_e_fwin_cb_ilist_change(void *data, Evas_Object *obj)
+_e_fwin_cb_ilist_change(void *data)
 {
    E_Fwin_Apps_Dialog *fad;
    
@@ -318,6 +315,15 @@
 }
 
 static void
+_e_fwin_cb_ilist_selected(void *data, Evas_Object *obj, void *event_info)
+{
+   E_Fwin_Apps_Dialog *fad;
+   
+   fad = data;
+   _e_fwin_cb_open(fad, fad->dia);
+}
+
+static void
 _e_fwin_cb_fm_selection_change(void *data, Evas_Object *obj, void *event_info)
 {
    E_Fwin_Apps_Dialog *fad;
@@ -338,6 +344,15 @@
 }
 
 static void
+_e_fwin_cb_fm_selected(void *data, Evas_Object *obj, void *event_info)
+{
+   E_Fwin_Apps_Dialog *fad;
+   
+   fad = data;
+   _e_fwin_cb_open(fad, fad->dia);
+}
+
+static void
 _e_fwin_cb_open(void *data, E_Dialog *dia)
 {
    E_Fwin_Apps_Dialog *fad;
@@ -366,6 +381,10 @@
             for (l = selected; l; l = l->next)
               {
                  ici = l->data;
+                 /* this snprintf is silly - but it's here in case i really do
+                  * need to provide full paths (seems silly since we chdir
+                  * into the dir)
+                  */
                  buf[0] = 0;
                  if (!((ici->link) && (ici->mount)))
                    {
@@ -401,7 +420,7 @@
          }
        chdir(pcwd);
      }
-   e_object_del(fad->dia);
+   e_object_del(E_OBJECT(fad->dia));
 }
     
 static void
@@ -410,7 +429,7 @@
    E_Fwin_Apps_Dialog *fad;
    
    fad = data;
-   e_object_del(fad->dia);
+   e_object_del(E_OBJECT(fad->dia));
 }
 
 static void
@@ -423,6 +442,7 @@
    fad = dia->data;
    E_FREE(fad->app1);
    E_FREE(fad->app2);
+   fad->fwin->fad = NULL;
    free(fad);
 }
 
@@ -453,7 +473,12 @@
    int need_dia = 0;
    Evas_Hash *mimes = NULL;
    Evas_List *mlist = NULL;
-   
+
+   if (fwin->fad)
+     {
+       e_object_del(E_OBJECT(fwin->fad->dia));
+       fwin->fad = NULL;
+     }
    for (l = files; l; l = l->next)
      {
        ici = l->data;
@@ -523,10 +548,6 @@
     * are multiple or no previously used app for this mime - then open
     * dialog
     */
-   /* FIXME: double click on fm2 or ilist entry shoudl implicitly be
-    * open. need to add callback for fm2 and make ilist handle double
-    * click stuff
-    */
    
    fad = E_NEW(E_Fwin_Apps_Dialog, 1);
    dia = e_dialog_new(fwin->win->border->zone->container, 
@@ -540,6 +561,7 @@
 
    fad->dia = dia;
    fad->fwin = fwin;
+   fwin->fad = fad;
    dia->data = fad;
    e_object_free_attach_func_set(E_OBJECT(dia), _e_fwin_cb_dialog_free);
    
@@ -566,6 +588,8 @@
        e_widget_min_size_set(o, 160, 240);
        e_widget_framelist_object_append(of, o);
        e_widget_list_object_append(ocon, of, 1, 1, 0.5);
+       evas_object_smart_callback_add(o, "selected",
+                                      _e_fwin_cb_ilist_selected, fad);
      }
    
    of = e_widget_framelist_add(evas, _("All Applications"), 0);
@@ -592,6 +616,8 @@
    e_fm2_config_set(mt, &fmc);
    evas_object_smart_callback_add(mt, "selection_change",
                                  _e_fwin_cb_fm_selection_change, fad);
+   evas_object_smart_callback_add(mt, "selected",
+                                 _e_fwin_cb_fm_selected, fad);
    snprintf(buf, sizeof(buf), "%s/.e/e/applications/all", 
e_user_homedir_get());
    e_fm2_path_set(mt, buf, "/");
    o = e_widget_scrollframe_pan_add(evas, mt,
@@ -606,6 +632,5 @@
    e_widget_min_size_get(ocon, &mw, &mh);
    e_dialog_content_set(dia, ocon, mw, mh);
    
-   /* FIXME: store fad in fwin (on fwin delete close fad. on fad close, delete 
from fwin) */
    e_dialog_show(dia);
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fwin.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_fwin.h    29 Sep 2006 06:49:35 -0000      1.1
+++ e_fwin.h    28 Oct 2006 03:53:22 -0000      1.2
@@ -4,6 +4,7 @@
 #ifdef E_TYPEDEFS
 
 typedef struct _E_Fwin E_Fwin;
+typedef struct _E_Fwin_Apps_Dialog E_Fwin_Apps_Dialog;
 
 #else
 #ifndef E_FWIN_H
@@ -19,6 +20,15 @@
    Evas_Object         *scrollframe_obj;
    Evas_Object         *fm_obj;
    Evas_Object         *bg_obj;
+   E_Fwin_Apps_Dialog  *fad;
+};
+
+struct _E_Fwin_Apps_Dialog
+{
+   E_Dialog           *dia;
+   E_Fwin             *fwin;
+   char               *app1, *app2;
+   Evas_Object        *o_ilist, *o_fm;
 };
 
 EAPI int     e_fwin_init             (void);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ilist.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- e_ilist.c   3 Sep 2006 08:51:31 -0000       1.25
+++ e_ilist.c   28 Oct 2006 03:53:22 -0000      1.26
@@ -440,6 +440,8 @@
             break;
          }
      }
+   if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
+     evas_object_smart_callback_call(si->sd->smart_obj, "selected", NULL);
 }
 
 static void 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_ilist.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_widget_ilist.c    3 Sep 2006 08:51:32 -0000       1.21
+++ e_widget_ilist.c    28 Oct 2006 03:53:22 -0000      1.22
@@ -23,6 +23,7 @@
 static void _e_wid_cb_scrollframe_resize(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
 static void _e_wid_cb_item_sel(void *data, void *data2);
 static void _e_wid_cb_item_hilight(void *data, void *data2);
+static void _e_wid_cb_selected(void *data, Evas_Object *obj, void *event_info);
 static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
 
 /* externally accessible functions */
@@ -55,6 +56,8 @@
    e_scrollframe_child_set(wd->o_scrollframe, o);
    e_widget_sub_object_add(obj, o);
    evas_object_show(o);
+   evas_object_smart_callback_add(o, "selected", _e_wid_cb_selected, obj);
+   
    
    evas_object_resize(obj, 32, 32);
    e_widget_min_size_set(obj, 32, 32);
@@ -350,6 +353,12 @@
    wcb = data2;
    e_ilist_selected_geometry_get(wd->o_ilist, &x, &y, &w, &h);
    e_scrollframe_child_region_show(wd->o_scrollframe, x, y, w, h);
+}
+
+static void
+_e_wid_cb_selected(void *data, Evas_Object *obj, void *event_info)
+{
+   evas_object_smart_callback_call(data, "selected", event_info);
 }
 
 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