Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_eap_editor.c e_fm.c e_widget_button.c e_widget_button.h 


Log Message:
Eap editor now uses new fileselector. Please test it :)

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_eap_editor.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- e_eap_editor.c      20 Jul 2006 11:19:08 -0000      1.33
+++ e_eap_editor.c      28 Jul 2006 13:42:03 -0000      1.34
@@ -8,12 +8,13 @@
 struct _E_App_Edit
 {
    E_App       *eap;
+   Evas        *evas;
 
    Evas_Object *img;
    Evas_Object *img_widget;
    int          img_set;
 
-   E_Config_Dialog_Data *cfdata;
+   E_Config_Dialog *cfd;
 };
 
 struct _E_Config_Dialog_Data
@@ -47,8 +48,12 @@
 static int            _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, 
E_Config_Dialog_Data *data);
 static Evas_Object   *_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, 
Evas *evas, E_Config_Dialog_Data *data);
 static Evas_Object   *_e_eap_edit_advanced_create_widgets(E_Config_Dialog 
*cfd, Evas *evas, E_Config_Dialog_Data *data);
-static void           _e_eap_edit_select_cb(Evas_Object *obj, char *file, void 
*data);
-static void           _e_eap_edit_hilite_cb(Evas_Object *obj, char *file, void 
*data);
+static void           _e_eap_editor_cb_icon_select(void *data1, void *data2);
+static void           _e_eap_edit_select_cb(void *data, Evas_Object *obj);
+static void           _e_eap_edit_change_cb(void *data, Evas_Object *obj);
+static void           _e_eap_edit_cb_icon_select_del(void *obj);
+static void           _e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia);
+static void           _e_eap_edit_cb_icon_select_cancel(void *data, E_Dialog 
*dia);
 
 #define IFDUP(src, dst) if (src) dst = strdup(src); else dst = NULL
 
@@ -57,7 +62,6 @@
 EAPI void
 e_eap_edit_show(E_Container *con, E_App *a)
 {
-   E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    E_App_Edit *editor;
 
@@ -65,24 +69,26 @@
 
    editor = E_NEW(E_App_Edit, 1);
    if (!editor) return;
+   v = E_NEW(E_Config_Dialog_View, 1);
+   if (!v)
+     {
+       free(editor);
+       return;
+     }
 
-   editor->eap = a;
    editor->img = NULL;
+   editor->eap = a;
    e_object_ref(E_OBJECT(editor->eap));
 
-   v = E_NEW(E_Config_Dialog_View, 1);
-   if (v)
-     {
-       /* methods */
-       v->create_cfdata           = _e_eap_edit_create_data;
-       v->free_cfdata             = _e_eap_edit_free_data;
-       v->basic.apply_cfdata      = _e_eap_edit_basic_apply_data;
-       v->basic.create_widgets    = _e_eap_edit_basic_create_widgets;
-       v->advanced.apply_cfdata   = _e_eap_edit_advanced_apply_data;
-       v->advanced.create_widgets = _e_eap_edit_advanced_create_widgets;
-       /* create config diaolg for NULL object/data */
-       cfd = e_config_dialog_new(con, _("Eap Editor"), NULL, 0, v, editor);
-     }
+   /* methods */
+   v->create_cfdata           = _e_eap_edit_create_data;
+   v->free_cfdata             = _e_eap_edit_free_data;
+   v->basic.apply_cfdata      = _e_eap_edit_basic_apply_data;
+   v->basic.create_widgets    = _e_eap_edit_basic_create_widgets;
+   v->advanced.apply_cfdata   = _e_eap_edit_advanced_apply_data;
+   v->advanced.create_widgets = _e_eap_edit_advanced_create_widgets;
+   /* create config diaolg for NULL object/data */
+   editor->cfd = e_config_dialog_new(con, _("Eap Editor"), NULL, 0, v, editor);
 }
 
 /* local subsystem functions */
@@ -242,6 +248,7 @@
    Evas_Object *entry;
 
    editor = data->editor;
+   editor->evas = evas;
    eap = editor->eap;
 
    ol = e_widget_table_add(evas, 0);
@@ -251,7 +258,7 @@
    if ((editor->img_set) && (data->image))
      {
        if (editor->img) evas_object_del(editor->img);
-        editor->img = e_icon_add(evas);
+       editor->img = e_icon_add(evas);
        e_icon_file_set(editor->img, data->image);
        e_icon_fill_inside_set(editor->img, 1);
      }
@@ -266,10 +273,10 @@
      }
 
    if (editor->img_widget) evas_object_del(editor->img_widget);
-   editor->img_widget = e_widget_iconsel_add(evas, editor->img, 48, 48,
-                                            &(data->image));
-   e_widget_iconsel_select_callback_add(editor->img_widget, 
_e_eap_edit_select_cb, editor);
-   e_widget_iconsel_hilite_callback_add(editor->img_widget, 
_e_eap_edit_hilite_cb, editor);
+   editor->img_widget = e_widget_button_add(evas, "", NULL,
+                                           _e_eap_editor_cb_icon_select, data, 
NULL);
+   e_widget_button_icon_set(editor->img_widget, editor->img);
+   e_widget_min_size_set(editor->img_widget, 48, 48);
    e_widget_frametable_object_append(o, editor->img_widget,
                                     0, 0, 1, 1,
                                     1, 1, 1, 1);
@@ -392,22 +399,102 @@
    return ol;
 }
 
-void
-_e_eap_edit_select_cb(Evas_Object *obj, char *file, void *data)
+static void
+_e_eap_editor_cb_icon_select(void *data1, void *data2)
 {
-   E_App_Edit *editor;
+   /* FIXME: Only one icon selection dialog! */
+   E_Config_Dialog_Data *cfdata;
+   E_Dialog *dia;
+   Evas_Object *o;
+   Evas_Coord mw, mh;
+
+   cfdata = data1;
+   dia = e_dialog_new(cfdata->editor->cfd->con);
+   if (!dia) return;
+   e_dialog_title_set(dia, _("Select An Icon"));
+   dia->data = cfdata;
+   e_object_del_attach_func_set(E_OBJECT(dia), _e_eap_edit_cb_icon_select_del);
+
+   o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL,
+                        _e_eap_edit_select_cb, cfdata,
+                        _e_eap_edit_change_cb, cfdata);
+   evas_object_show(o);
+   e_widget_min_size_get(o, &mw, &mh);
+   e_dialog_content_set(dia, o, mw, mh);
+
+   /* buttons at the bottom */
+   e_dialog_button_add(dia, "OK", NULL, _e_eap_edit_cb_icon_select_ok, cfdata);
+   e_dialog_button_add(dia, "Cancel", NULL, _e_eap_edit_cb_icon_select_cancel, 
cfdata);
+   e_dialog_resizable_set(dia, 1);
+   e_win_centered_set(dia->win, 1);
+   e_dialog_show(dia);
+   e_win_resize(dia->win, 400, 300);
+}
 
-   editor = data;
-   editor->img_set = 1;
-   printf("selected: %s\n", file);
+static void
+_e_eap_edit_select_cb(void *data, Evas_Object *obj)
+{
+   E_Config_Dialog_Data *cfdata;
+
+   cfdata = data;
 }
 
-void
-_e_eap_edit_hilite_cb(Evas_Object *obj, char *file, void *data)
+static void
+_e_eap_edit_change_cb(void *data, Evas_Object *obj)
 {
-   E_App_Edit *editor;
+   E_Config_Dialog_Data *cfdata;
+   const char *file;
+
+   cfdata = data;
+   file = e_widget_fsel_selection_path_get(obj);
+
+   E_FREE(cfdata->image);
+   if (file) cfdata->image = strdup(file);
+}
+
+static void
+_e_eap_edit_cb_icon_select_del(void *obj)
+{
+   E_Dialog *dia;
+   E_Config_Dialog_Data *cfdata;
+
+   dia = obj;
+   cfdata = dia->data;
+   cfdata->editor->img_set = 0;
+   e_widget_focused_object_clear(cfdata->editor->img_widget);
+}
+
+static void
+_e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia)
+{
+   E_Config_Dialog_Data *cfdata;
+
+   cfdata = data;
+   if (cfdata->image)
+     {
+       cfdata->editor->img_set = 1;
+       if (cfdata->editor->img) evas_object_del(cfdata->editor->img);
+       cfdata->editor->img = e_icon_add(cfdata->editor->evas);
+       e_icon_file_set(cfdata->editor->img, cfdata->image);
+       e_icon_fill_inside_set(cfdata->editor->img, 1);
+       e_widget_button_icon_set(cfdata->editor->img_widget, 
cfdata->editor->img);
+     }
+   else
+     cfdata->editor->img_set = 0;
+
+   e_widget_focused_object_clear(cfdata->editor->img_widget);
+   e_object_del_attach_func_set(E_OBJECT(dia), NULL);
+   e_object_del(E_OBJECT(dia));
+}
+
+static void
+_e_eap_edit_cb_icon_select_cancel(void *data, E_Dialog *dia)
+{
+   E_Config_Dialog_Data *cfdata;
 
-   editor = data;
-   editor->img_set = 1;
-   printf("hilited: %s\n", file);
+   cfdata = data;
+   cfdata->editor->img_set = 0;
+   e_widget_focused_object_clear(cfdata->editor->img_widget);
+   e_object_del_attach_func_set(E_OBJECT(dia), NULL);
+   e_object_del(E_OBJECT(dia));
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_fm.c      28 Jul 2006 11:44:23 -0000      1.18
+++ e_fm.c      28 Jul 2006 13:42:03 -0000      1.19
@@ -1525,10 +1525,10 @@
    
    ic = data;
    ev = event_info;
-   if ((ev->button == 1) &&(ev->flags & EVAS_BUTTON_TRIPLE_CLICK))
+   if ((ev->button == 1) && (ev->flags & EVAS_BUTTON_TRIPLE_CLICK))
      {
      }
-   else if ((ev->button == 1) &&(ev->flags & EVAS_BUTTON_DOUBLE_CLICK))
+   else if ((ev->button == 1) && (ev->flags & EVAS_BUTTON_DOUBLE_CLICK))
      {
        /* if its a directory && open dirs in-place is set then change the dir
         * to be the dir + file */
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_button.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_widget_button.c   6 May 2006 09:35:05 -0000       1.9
+++ e_widget_button.c   28 Jul 2006 13:42:03 -0000      1.10
@@ -80,6 +80,20 @@
    edje_object_part_text_set(wd->o_button, "label", label);
 }
 
+EAPI void
+e_widget_button_icon_set(Evas_Object *obj, Evas_Object *icon)
+{
+   E_Widget_Data *wd;
+
+   wd = e_widget_data_get(obj);
+   wd->o_icon = icon;
+   edje_object_part_swallow(wd->o_button, "icon_swallow", icon);
+   edje_object_signal_emit(wd->o_button, "icon_visible", "");
+   edje_object_message_signal_process(wd->o_button);
+   evas_object_show(icon);
+   e_widget_sub_object_add(obj, icon);
+}
+
 static void
 _e_wid_del_hook(Evas_Object *obj)
 {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_button.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_widget_button.h   6 May 2006 09:35:05 -0000       1.3
+++ e_widget_button.h   28 Jul 2006 13:42:03 -0000      1.4
@@ -8,6 +8,7 @@
 
 EAPI Evas_Object *e_widget_button_add(Evas *evas, const char *label, const 
char *icon, void (*func) (void *data, void *data2), void *data, void *data2);
 EAPI void e_widget_button_label_set(Evas_Object *obj, const char *label);
+EAPI void e_widget_button_icon_set(Evas_Object *obj, Evas_Object *icon);
 
 #endif
 #endif



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to