Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_entry_dialog.c e_entry_dialog.h e_fm.c e_fm.h 
        e_int_config_wallpaper_import.c e_int_menus.c 
        e_widget_framelist.c e_widget_frametable.c e_widget_fsel.c 
        e_widget_slider.c 


Log Message:


* border property patch - dont generate on moves
* entry dialog becomes object - supports initial text contents of the entry
* fm2 gets menu patch (heavily worked so its safe) so u can delete and rename
files (and dirs) that you have permission to do so with.
* picutre importing disables or enables the scale and encoding stuff
depending on what is selected
* more widgets support enable/disable
* importer detects duaplicate destination target filenames and tries
alternate names.
* fsel widget displays extensions by default.
* test filemanager menu gone
* pants on!

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.521
retrieving revision 1.522
diff -u -3 -r1.521 -r1.522
--- e_border.c  7 Aug 2006 20:25:34 -0000       1.521
+++ e_border.c  12 Aug 2006 12:49:52 -0000      1.522
@@ -4663,10 +4663,12 @@
 
 static void
 _e_border_eval(E_Border *bd)
-{
+{      
    E_Event_Border_Property *event;
    int change_urgent = 0;
    int rem_change = 0;
+   int send_event = 1;
+   
    
    /* fetch any info queued to be fetched */
    if (bd->client.icccm.fetch.client_leader)
@@ -5834,6 +5836,7 @@
        e_container_shape_move(bd->shape, bd->x, bd->y);
        bd->changes.pos = 0;
        rem_change = 1;
+       send_event = 0;
      }
    else if (bd->changes.size)
      {
@@ -6223,11 +6226,13 @@
    if ((bd->remember) && (rem_change))
      e_remember_update(bd->remember, bd);
 
-
-   event = calloc(1, sizeof(E_Event_Border_Property));
-   event->border = bd;
-   e_object_ref(E_OBJECT(bd));
-   ecore_event_add(E_EVENT_BORDER_PROPERTY, event, 
_e_border_event_border_property_free, NULL);
+   if(send_event)
+   {
+       event = calloc(1, sizeof(E_Event_Border_Property));
+       event->border = bd;
+       e_object_ref(E_OBJECT(bd));
+       ecore_event_add(E_EVENT_BORDER_PROPERTY, event, 
_e_border_event_border_property_free, NULL);
+   }
 }
 
 static void
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_entry_dialog.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_entry_dialog.c    2 Jun 2006 19:07:50 -0000       1.1
+++ e_entry_dialog.c    12 Aug 2006 12:49:52 -0000      1.2
@@ -1,32 +1,16 @@
 #include "e.h"
 
-typedef struct _E_Entry_Dialog E_Entry_Dialog;
-struct _E_Entry_Dialog 
-{
-   struct 
-     {
-       void *data;
-       void (*func)(char *text, void *data);
-     } ok;
-   struct 
-     {
-       void *data;
-       void (*func)(void *data);
-     } cancel;
-   E_Dialog *dia;
-   Evas_Object *entry;
-   char *text;
-};
-
 /* Private function definitions */
-static void _e_entry_dialog_delete(E_Win *win);
+static void _e_entry_dialog_free(E_Entry_Dialog *dia);
 static void _e_entry_dialog_ok(void *data, E_Dialog *dia);
 static void _e_entry_dialog_cancel(void *data, E_Dialog *dia);
+static void _e_entry_dialog_delete(E_Win *win);
 
 /* Externally accesible functions */
-EAPI void
-e_entry_dialog_show(const char *title, const char *icon, const char *text, 
-                   const char *button_text, const char *button2_text, 
+EAPI E_Entry_Dialog *
+e_entry_dialog_show(const char *title, const char *icon, const char *text,
+                   const char *initial_text,
+                   const char *button_text, const char *button2_text,
                    void (*func)(char *text, void *data), 
                    void (*func2)(void *data), void *data) 
 {
@@ -34,12 +18,13 @@
    E_Dialog *dia;
    Evas_Object *o, *ob;
    int w, h;
-   
-   ed = E_NEW(E_Entry_Dialog, 1);
+
+   ed = E_OBJECT_ALLOC(E_Entry_Dialog, E_ENTRY_DIALOG_TYPE, 
_e_entry_dialog_free);
    ed->ok.func = func;
    ed->ok.data = data;
    ed->cancel.func = func2;
    ed->cancel.data = data;
+   ed->text = strdup(initial_text);
    
    dia = e_dialog_new(e_container_current_get(e_manager_current_get()));
    if (!dia) 
@@ -72,17 +57,27 @@
    
    e_win_centered_set(dia->win, 1);
    e_dialog_show(dia);
+   return ed;
 }
 
 /* Private Function Bodies */
 static void
+_e_entry_dialog_free(E_Entry_Dialog *ed)
+{
+   e_object_del(E_OBJECT(ed->dia));
+   free(ed);
+}
+    
+static void
 _e_entry_dialog_ok(void *data, E_Dialog *dia) 
 {
    E_Entry_Dialog *ed;
    
    ed = data;
+   e_object_ref(E_OBJECT(ed));
    if (ed->ok.func) ed->ok.func(ed->text, ed->ok.data);
-   _e_entry_dialog_delete(ed->dia->win);
+   e_object_del(E_OBJECT(ed));
+   e_object_unref(E_OBJECT(ed));
 }
 
 static void
@@ -91,8 +86,10 @@
    E_Entry_Dialog *ed;
    
    ed = data;
+   e_object_ref(E_OBJECT(ed));
    if (ed->cancel.func) ed->cancel.func(ed->cancel.data);
-   _e_entry_dialog_delete(ed->dia->win);   
+   e_object_del(E_OBJECT(ed));
+   e_object_unref(E_OBJECT(ed));
 }
 
 static void
@@ -103,7 +100,5 @@
    
    dia = win->data;
    ed = dia->data;
-   
-   e_object_del(E_OBJECT(dia));
-   free(ed);
+   e_object_del(E_OBJECT(ed));
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_entry_dialog.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_entry_dialog.h    9 Jul 2006 18:35:56 -0000       1.2
+++ e_entry_dialog.h    12 Aug 2006 12:49:52 -0000      1.3
@@ -1,24 +1,42 @@
-#ifdef E_TYPEDEF
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
+#ifdef E_TYPEDEFS
+
+typedef struct _E_Entry_Dialog E_Entry_Dialog;
 
 #else
 #ifndef E_ENTRY_DIALOG_H
 #define E_ENTRY_DIALOG_H
 
-/*
- * @title - dialog title
- * @icon - dialog icon
- * @text - the text shown in the dialog
- * @button_text - "Ok" button text
- * @button2_text - "Cancel" button text
- * @func - the function to call if ok is pressed
- * @func2 - the function to call if cancel is pressed
- * @data - the pointer passed to func
-*/
+#define E_ENTRY_DIALOG_TYPE 0xE0b01025
+
+struct _E_Entry_Dialog
+{
+   E_Object e_obj_inherit;
+   
+   E_Dialog *dia;
+   Evas_Object *entry;
+   char *text;
+   struct {
+      void (*func) (char *text, void *data);
+      void *data;
+   } ok;
+   struct {
+      void (*func) (void *data);
+      void *data;
+   } cancel;
+};
 
-EAPI void e_entry_dialog_show(const char *title, const char *icon, const char 
*text, 
-                             const char *button_text, const char 
*button2_text, 
-                             void (*func)(char *text, void *data), 
-                             void (*func2)(void *data), void *data);
+EAPI E_Entry_Dialog *e_entry_dialog_show(const char *title,
+                                        const char *icon,
+                                        const char *text,
+                                        const char *initial_text,
+                                        const char *button_text,
+                                        const char *button2_text, 
+                                        void (*func) (char *text, void *data), 
+                                        void (*func2) (void *data),
+                                        void *data);
 
 #endif
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- e_fm.c      8 Aug 2006 11:16:19 -0000       1.25
+++ e_fm.c      12 Aug 2006 12:49:52 -0000      1.26
@@ -72,6 +72,9 @@
    Evas_Object      *obj, *obj_icon;
    int               saved_x, saved_y;
    int               saved_rel;
+   E_Menu           *menu;
+   E_Entry_Dialog   *entry_dialog;
+   E_Dialog         *dialog;
 
    E_Fm2_Icon_Info   info;
    
@@ -137,6 +140,17 @@
 static void _e_fm2_smart_clip_set(Evas_Object *obj, Evas_Object * clip);
 static void _e_fm2_smart_clip_unset(Evas_Object *obj);
 
+static void _e_fm2_menu_action_display(E_Fm2_Icon *ic, Evas_Object *obj, 
unsigned int timestamp);
+static void _e_fm2_menu_post_cb(void *data, E_Menu *m);
+static void _e_fm2_file_rename(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_fm2_file_rename_delete_cb(void *obj);
+static void _e_fm2_file_rename_yes_cb(char *text, void *data);
+static void _e_fm2_file_rename_no_cb(char *text, void *data);
+static void _e_fm2_file_delete(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_fm2_file_delete_delete_cb(void *obj);
+static void _e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog);
+static void _e_fm2_file_delete_no_cb(void *data, E_Dialog *dialog);
+
 static char *_meta_path = NULL;
 static Evas_Smart *_e_fm2_smart = NULL;
 
@@ -228,10 +242,6 @@
        sd->config->theme.fixed = 0;
      }
    
-   _e_fm2_scan_stop(obj);
-   _e_fm2_queue_free(obj);
-   _e_fm2_regions_free(obj);
-   _e_fm2_icons_free(obj);
    if (sd->dev) evas_stringshare_del(sd->dev);
    if (sd->path) evas_stringshare_del(sd->path);
    if (sd->realpath) evas_stringshare_del(sd->realpath);
@@ -239,6 +249,12 @@
    if (dev) sd->dev = evas_stringshare_add(dev);
    sd->path = evas_stringshare_add(path);
    sd->realpath = _e_fm2_dev_path_map(sd->dev, sd->path);
+   
+   _e_fm2_scan_stop(obj);
+   _e_fm2_queue_free(obj);
+   _e_fm2_regions_free(obj);
+   _e_fm2_icons_free(obj);
+   
    _e_fm2_scan_start(obj);
    evas_object_smart_callback_call(obj, "dir_changed", NULL);
    sd->tmp.iter = 0;
@@ -259,6 +275,26 @@
    if (path) *path = sd->path;
 }
 
+EAPI void
+e_fm2_refresh(Evas_Object *obj)
+{
+   E_Fm2_Smart_Data *sd;
+
+   sd = evas_object_smart_data_get(obj);
+   if (!sd) return; // safety
+   if (!evas_object_type_get(obj)) return; // safety
+   if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
+
+   _e_fm2_scan_stop(obj);
+   _e_fm2_queue_free(obj);
+   _e_fm2_regions_free(obj);
+   _e_fm2_icons_free(obj);
+   
+   _e_fm2_scan_start(obj);
+//   evas_object_smart_callback_call(obj, "dir_changed", NULL);
+   sd->tmp.iter = 0;
+}
+
 EAPI int
 e_fm2_has_parent_get(Evas_Object *obj)
 {
@@ -1248,6 +1284,22 @@
 {
    /* free icon, object data etc. etc. */
    _e_fm2_icon_unrealize(ic);
+   if (ic->menu)
+     {
+       e_menu_post_deactivate_callback_set(ic->menu, NULL, NULL);
+       e_object_del(E_OBJECT(ic->menu));
+       ic->menu = NULL;
+     }
+   if (ic->dialog)
+     {
+       e_object_del(E_OBJECT(ic->dialog));
+       ic->dialog = NULL;
+     }
+   if (ic->entry_dialog)
+     {
+       e_object_del(E_OBJECT(ic->entry_dialog));
+       ic->entry_dialog = NULL;
+     }
    if (ic->info.file) evas_stringshare_del(ic->info.file);
    if (ic->info.mime) evas_stringshare_del(ic->info.mime);
    if (ic->info.label) evas_stringshare_del(ic->info.label);
@@ -1809,6 +1861,15 @@
      }
    else if (ev->button == 3)
      {
+       char buf[4096];
+       
+       snprintf(buf, sizeof(buf), "%s/%s", ic->sd->realpath, ic->info.file);
+       if (ecore_file_can_write(buf))
+         {
+            _e_fm2_menu_action_display(ic, obj, ev->timestamp);
+            evas_event_feed_mouse_up(evas_object_evas_get(obj), ev->button,
+                                     EVAS_BUTTON_NONE, ev->timestamp, NULL);
+         }
      }
 }
     
@@ -1821,13 +1882,13 @@
    ic = data;
    ev = event_info;
 }
-    
+
 static void
 _e_fm2_cb_icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
 {
    Evas_Event_Mouse_Move *ev;
    E_Fm2_Icon *ic;
-   
+  
    ic = data;
    ev = event_info;
 }
@@ -2226,4 +2287,251 @@
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
    evas_object_clip_unset(sd->clip);
+}
+
+static void
+_e_fm2_menu_action_display(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int 
timestamp)
+{
+   E_Fm2_Smart_Data *sd;
+   E_Menu *mn;
+   E_Menu_Item *mi;
+   E_Manager *man;
+   E_Container *con;
+   E_Zone *zone;
+   int x, y;
+   
+   sd = ic->sd;
+
+   mn = e_menu_new();
+   e_menu_category_set(mn, "fileman/action");
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, _("Delete"));
+   e_menu_item_icon_edje_set(mi,
+                            (char *)e_theme_edje_file_get("base/theme/fileman",
+                                                          
"fileman/button/delete"),
+                            "fileman/button/delete");
+   e_menu_item_callback_set(mi, _e_fm2_file_delete, ic);
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, _("Rename"));
+   e_menu_item_icon_edje_set(mi,
+                            (char *)e_theme_edje_file_get("base/theme/fileman",
+                                                          
"fileman/button/rename"),
+                            "fileman/button/rename");
+   e_menu_item_callback_set(mi, _e_fm2_file_rename, ic);
+   
+   man = e_manager_current_get();
+   if (!man)
+     {
+       e_object_del(E_OBJECT(mn));
+       return;
+     }
+   con = e_container_current_get(man);
+   if (!con)
+     {
+       e_object_del(E_OBJECT(mn));
+       return;
+     }
+   ecore_x_pointer_xy_get(con->win, &x, &y);
+   zone = e_util_zone_current_get(man);
+   if (!zone)
+     {
+       e_object_del(E_OBJECT(mn));
+       return;
+     }
+   ic->menu = mn;
+   e_menu_post_deactivate_callback_set(mn, _e_fm2_menu_post_cb, ic);
+   e_menu_activate_mouse(mn, zone, 
+                        x, y, 1, 1, 
+                        E_MENU_POP_DIRECTION_DOWN, timestamp);
+}
+
+static void
+_e_fm2_menu_post_cb(void *data, E_Menu *m)
+{
+   E_Fm2_Icon *ic;
+   
+   ic = data;
+   ic->menu = NULL;
+}
+    
+static void
+_e_fm2_file_rename(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Fm2_Icon *ic;
+   E_Manager *man;
+   E_Container *con;
+   char *old_path;
+   char text[PATH_MAX + 256];
+   
+   ic = data;
+   if (ic->entry_dialog) return;
+   
+   man = e_manager_current_get();
+   if (!man) return;
+   con = e_container_current_get(man);
+   if (!con) return;
+   
+   snprintf(text, PATH_MAX + 256,
+           _("Rename %s to"),
+           ic->info.file);
+   ic->entry_dialog = e_entry_dialog_show(_("Rename File"), "enlightenment/e",
+                                         text, ic->info.file, NULL, NULL, 
+                                         _e_fm2_file_rename_yes_cb, 
+                                         _e_fm2_file_rename_no_cb, ic);
+   E_OBJECT(ic->entry_dialog)->data = ic;
+   e_object_del_attach_func_set(E_OBJECT(ic->entry_dialog), 
_e_fm2_file_rename_delete_cb);
+}
+
+static void
+_e_fm2_file_rename_delete_cb(void *obj)
+{
+   E_Fm2_Icon *ic;
+   
+   ic = E_OBJECT(obj)->data;
+   ic->entry_dialog = NULL;
+}
+
+static void
+_e_fm2_file_rename_yes_cb(char *text, void *data)
+{
+   E_Fm2_Icon *ic;
+   E_Dialog *dialog;
+   E_Manager *man;
+   E_Container *con;
+   char newpath[PATH_MAX];
+   char oldpath[PATH_MAX];
+   char error[PATH_MAX + 256];
+   
+   ic = data;
+   ic->dialog = NULL;
+   if ((text) && (strcmp(text, ic->info.file)))
+     {
+       snprintf(newpath, PATH_MAX, "%s/%s", ic->sd->realpath, text);
+       snprintf(oldpath, PATH_MAX, "%s/%s", ic->sd->realpath, ic->info.file);
+       
+       if (!ecore_file_mv(oldpath, newpath))
+         {
+            man = e_manager_current_get();
+            if (!man) return;
+            con = e_container_current_get(man);
+            if (!con) return;
+            
+            dialog = e_dialog_new(con);
+            e_dialog_button_add(dialog, _("OK"), NULL, NULL, NULL);
+            e_dialog_button_focus_num(dialog, 1);
+            e_dialog_title_set(dialog, _("Error"));
+            snprintf(error, PATH_MAX + 256,
+                     _("Could not rename from <b>%s</b> to <b>%s</b>"),
+                     ic->info.file, text);
+            e_dialog_text_set(dialog, error);
+            e_win_centered_set(dialog->win, 1);
+            e_dialog_show(dialog);
+            return;
+         }
+       e_fm2_refresh(ic->sd->obj);
+     }
+}
+
+static void
+_e_fm2_file_rename_no_cb(char *text, void *data)
+{
+   E_Fm2_Icon *ic;
+   
+   ic = data;
+   ic->dialog = NULL;
+}
+
+static void
+_e_fm2_file_delete(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Manager *man;
+   E_Container *con;
+   E_Dialog *dialog;
+   E_Fm2_Icon *ic;
+   char text[PATH_MAX + 256];
+   
+   man = e_manager_current_get();
+   if (!man) return;
+   con = e_container_current_get(man);
+   if (!con) return;
+   
+   ic = data;
+   if (ic->dialog) return;
+   dialog = e_dialog_new(con);
+   ic->dialog = dialog;
+   E_OBJECT(dialog)->data = ic;
+   e_object_del_attach_func_set(E_OBJECT(dialog), 
_e_fm2_file_delete_delete_cb);
+   e_dialog_button_add(dialog, _("Yes"), NULL, _e_fm2_file_delete_yes_cb, ic);
+   e_dialog_button_add(dialog, _("No"), NULL, _e_fm2_file_delete_no_cb, ic);
+   e_dialog_button_focus_num(dialog, 1);
+   e_dialog_title_set(dialog, _("Confirm Delete"));
+   snprintf(text, PATH_MAX + 256, 
+           _("Are you sure you want to delete <br>"
+             "<b>%s/%s</b> ?"),
+           ic->sd->realpath, ic->info.file);
+   e_dialog_text_set(dialog, text);
+   e_win_centered_set(dialog->win, 1);
+   e_dialog_show(dialog);
+}
+
+static void
+_e_fm2_file_delete_delete_cb(void *obj)
+{
+   E_Fm2_Icon *ic;
+   
+   ic = E_OBJECT(obj)->data;
+   ic->dialog = NULL;
+}
+
+static void
+_e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog)
+{
+   E_Manager *man;
+   E_Container *con;
+   E_Fm2_Icon *ic;
+   Evas_Object *obj;
+   char path[PATH_MAX];
+   int ret;
+   
+   ic = data;
+   ic->dialog = NULL;
+   
+   snprintf(path, PATH_MAX, "%s/%s", ic->sd->realpath, ic->info.file);
+   
+   if (!(ecore_file_recursive_rm(path)))
+     {
+       char text[PATH_MAX + 256];
+       
+       man = e_manager_current_get();
+       if (!man) return;
+       con = e_container_current_get(man);
+       if (!con) return;
+       
+       e_object_del(E_OBJECT(dialog));
+       dialog = e_dialog_new(con);
+       e_dialog_button_add(dialog, _("OK"), NULL, NULL, NULL);
+       e_dialog_button_focus_num(dialog, 1);
+       e_dialog_title_set(dialog, _("Error"));
+       snprintf(text, PATH_MAX + 256,
+                _("Could not delete <br><b>%s</b>"), path);
+       e_dialog_text_set(dialog, text);
+       e_win_centered_set(dialog->win, 1);
+       e_dialog_show(dialog);
+       e_object_del(E_OBJECT(dialog));
+       return;
+     }
+   e_object_del(E_OBJECT(dialog));
+   e_fm2_refresh(ic->sd->obj);
+}
+
+static void
+_e_fm2_file_delete_no_cb(void *data, E_Dialog *dialog)
+{
+   E_Fm2_Icon *ic;
+   
+   ic = data;
+   ic->dialog = NULL;
+   e_object_del(E_OBJECT(dialog));
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_fm.h      7 Aug 2006 20:25:34 -0000       1.9
+++ e_fm.h      12 Aug 2006 12:49:52 -0000      1.10
@@ -100,6 +100,7 @@
 EAPI Evas_Object          *e_fm2_add(Evas *evas);
 EAPI void                  e_fm2_path_set(Evas_Object *obj, char *dev, char 
*path);
 EAPI void                  e_fm2_path_get(Evas_Object *obj, const char **dev, 
const char **path);
+EAPI void                  e_fm2_refresh(Evas_Object *obj);
 EAPI const char           *e_fm2_real_path_get(Evas_Object *obj);
 EAPI int                   e_fm2_has_parent_get(Evas_Object *obj);
 EAPI void                  e_fm2_parent_go(Evas_Object *obj);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_wallpaper_import.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_int_config_wallpaper_import.c     8 Aug 2006 20:41:46 -0000       1.3
+++ e_int_config_wallpaper_import.c     12 Aug 2006 12:49:52 -0000      1.4
@@ -21,6 +21,16 @@
    
    Evas_Object *ok_obj;
    Evas_Object *close_obj;
+
+   Evas_Object *fill_stretch_obj;
+   Evas_Object *fill_center_obj;
+   Evas_Object *fill_tile_obj;
+   Evas_Object *fill_within_obj;
+   Evas_Object *fill_fill_obj;
+   Evas_Object *perfect_obj;
+   Evas_Object *quality_obj;
+   Evas_Object *frame_fill_obj;
+   Evas_Object *frame_quality_obj;
    
    E_Win *win;
    
@@ -40,6 +50,7 @@
 
 static Ecore_Event_Handler *_import_edje_cc_exit_handler = NULL;
 
+static void _import_opt_disabled_set(Import *import, int disabled);
 static void _import_cb_sel_change(void *data, Evas_Object *obj);
 static void _import_edj_gen(Import *import);
 static int _import_cb_edje_cc_exit(void *data, int type, void *event);
@@ -101,7 +112,7 @@
    import->box_obj = o;
    edje_object_part_swallow(import->bg_obj, "buttons_swallow", o);
 
-   o = evas_object_rectangle_add(evas);
+  o = evas_object_rectangle_add(evas);
    import->event_obj = o;
    mask = 0;
    evas_object_key_grab(o, "Tab", mask, ~mask, 0);
@@ -129,23 +140,32 @@
    ot = e_widget_table_add(evas, 0);
    
    of = e_widget_frametable_add(evas, _("Fill and Stretch Options"), 1);
+   import->frame_fill_obj = of;
    rg = e_widget_radio_group_new(&cfdata->method);
    ord = e_widget_radio_icon_add(evas, _("Stretch"), 
"enlightenment/wallpaper_stretch", 24, 24, IMPORT_STRETCH, rg);
+   import->fill_stretch_obj = ord;
    e_widget_frametable_object_append(of, ord, 0, 0, 1, 1, 1, 0, 1, 0);
    ord = e_widget_radio_icon_add(evas, _("Center"), 
"enlightenment/wallpaper_center", 24, 24, IMPORT_CENTER, rg);
+   import->fill_center_obj = ord;
    e_widget_frametable_object_append(of, ord, 1, 0, 1, 1, 1, 0, 1, 0);
    ord = e_widget_radio_icon_add(evas, _("Tile"), 
"enlightenment/wallpaper_tile", 24, 24, IMPORT_TILE, rg);
+   import->fill_tile_obj = ord;
    e_widget_frametable_object_append(of, ord, 2, 0, 1, 1, 1, 0, 1, 0);
    ord = e_widget_radio_icon_add(evas, _("Within"), 
"enlightenment/wallpaper_scale_aspect_in", 24, 24, IMPORT_SCALE_ASPECT_IN, rg);
+   import->fill_within_obj = ord;
    e_widget_frametable_object_append(of, ord, 3, 0, 1, 1, 1, 0, 1, 0);
    ord = e_widget_radio_icon_add(evas, _("Fill"), 
"enlightenment/wallpaper_scale_aspect_out", 24, 24, IMPORT_SCALE_ASPECT_OUT, 
rg);
+   import->fill_fill_obj = ord;
    e_widget_frametable_object_append(of, ord, 4, 0, 1, 1, 1, 0, 1, 0);
    e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 0);
    
    of = e_widget_frametable_add(evas, _("File Quality"), 0);
+   import->frame_quality_obj = of;
    ord = e_widget_slider_add(evas, 1, 0, _("%3.0f%%"), 0.0, 100.0, 1.0, 0, 
&(cfdata->quality), NULL, 150);
+   import->quality_obj = ord;
    e_widget_frametable_object_append(of, ord, 0, 0, 1, 1, 1, 0, 1, 0);
    ord = e_widget_check_add(evas, _("Perfect"), &(cfdata->perfect));
+   import->perfect_obj = ord;
    e_widget_frametable_object_append(of, ord, 1, 0, 1, 1, 0, 0, 0, 0);
    e_widget_table_object_append(ot, of, 0, 1, 1, 1, 1, 1, 1, 0);
    
@@ -180,6 +200,8 @@
      e_widget_focus_set(import->box_obj, 1);
    
    win->data = import;
+   
+   _import_opt_disabled_set(import, 1);
    return win;
 }
 
@@ -200,18 +222,35 @@
    if (import) free(import);
 }
 
+static void
+_import_opt_disabled_set(Import *import, int disabled)
+{
+   e_widget_disabled_set(import->fill_stretch_obj, disabled);
+   e_widget_disabled_set(import->fill_center_obj, disabled);
+   e_widget_disabled_set(import->fill_tile_obj, disabled);
+   e_widget_disabled_set(import->fill_within_obj, disabled);
+   e_widget_disabled_set(import->fill_fill_obj, disabled);
+   e_widget_disabled_set(import->perfect_obj, disabled);
+   e_widget_disabled_set(import->quality_obj, disabled);
+   e_widget_disabled_set(import->frame_fill_obj, disabled);
+   e_widget_disabled_set(import->frame_quality_obj, disabled);
+}
+
 static void 
 _import_cb_sel_change(void *data, Evas_Object *obj)
 {
    Import *import;
-   const char *path;
+   const char *path, *p = NULL;
    
    import = data;
    path = e_widget_fsel_selection_path_get(import->fsel_obj);
    E_FREE(import->cfdata->file);
    if (path) import->cfdata->file = strdup(path);
-   /* FIXME: based on selection - disable or enable the scale options ie .edj 
files
-    * do not use the options */
+   if (path) p = strrchr(path, '.');
+   if ((!p) || (!strcasecmp(p, ".edj")))
+     _import_opt_disabled_set(import, 1);
+   else
+     _import_opt_disabled_set(import, 0);
 }
 
 static void 
@@ -219,7 +258,7 @@
 {
    Evas *evas;
    Evas_Object *img;
-   int fd;
+   int fd, num = 1;
    int w = 0, h = 0;
    const char *file;
    char buf[4096], cmd[4096], tmpn[4096], ipart[4096], enc[128];
@@ -237,6 +276,11 @@
        return;
      }
    snprintf(buf, sizeof(buf), "%s/.e/e/backgrounds/%s.edj", homedir, fstrip);
+   while (ecore_file_exists(buf))
+     {
+       snprintf(buf, sizeof(buf), "%s/.e/e/backgrounds/%s-%i.edj", homedir, 
fstrip, num);
+       num++;
+     }
    free(fstrip);
    free(homedir);
    strcpy(tmpn, "/tmp/e_bgdlg_new.edc-tmp-XXXXXX");
@@ -367,8 +411,13 @@
    ev = event;
    import = data;
    if (ev->exe != import->exe) return 1;
-   
-   /* FIXME - error code - handle */
+
+   if (ev->exit_code != 0)
+     {
+       e_util_dialog_show(_("Picture Import Error"),
+                          _("Enlightenment was unable to import the 
picture<br>"
+                            "due to conversion errors."));
+     }
    
    e_int_config_wallpaper_update(import->parent, import->fdest);
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -3 -r1.145 -r1.146
--- e_int_menus.c       9 Aug 2006 15:24:34 -0000       1.145
+++ e_int_menus.c       12 Aug 2006 12:49:52 -0000      1.146
@@ -32,7 +32,6 @@
 static void _e_int_menus_apps_del_hook       (void *obj);
 static void _e_int_menus_apps_free_hook      (void *obj);
 static void _e_int_menus_apps_run            (void *data, E_Menu *m, 
E_Menu_Item *mi);
-static void _e_int_menus_main_fm(void *data, E_Menu *m, E_Menu_Item *mi);  
 static void _e_int_menus_config_pre_cb       (void *data, E_Menu *m);
 static void _e_int_menus_config_free_hook    (void *obj);
 static void _e_int_menus_config_item_cb      (void *data, E_Menu *m, 
E_Menu_Item *mi);
@@ -386,15 +385,6 @@
 }
 
 static void
-_e_int_menus_main_fm(void *data, E_Menu *m, E_Menu_Item *mi)
-{
-   E_Fileman *fileman;
-   
-   fileman = e_fileman_new (m->zone->container);
-   e_fileman_show (fileman);
-}
-
-static void
 _e_int_menus_main_restart(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    E_Action *a;
@@ -632,14 +622,6 @@
    e_util_menu_item_edje_icon_set(mi, "enlightenment/e");
    e_menu_item_callback_set(mi, _e_int_menus_eapedit_item_cb, NULL);   
 
-   mi = e_menu_item_new(m);
-   e_menu_item_separator_set(mi, 1);
-   
-   mi = e_menu_item_new(m);
-   e_menu_item_label_set(mi, _("Test Filemanager"));
-   e_util_menu_item_edje_icon_set(mi, "enlightenment/fileman");
-   e_menu_item_callback_set(mi, _e_int_menus_main_fm, NULL);   
-      
    l = evas_hash_find(_e_int_menus_augmentation, "config");
    if (l)
      {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_framelist.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_widget_framelist.c        23 Jul 2006 11:22:13 -0000      1.8
+++ e_widget_framelist.c        12 Aug 2006 12:49:52 -0000      1.9
@@ -10,6 +10,7 @@
 };
 
 static void _e_wid_del_hook(Evas_Object *obj);
+static void _e_wid_disable_hook(Evas_Object *obj);
 
 /* local subsystem functions */
 
@@ -24,6 +25,7 @@
    obj = e_widget_add(evas);
    
    e_widget_del_hook_set(obj, _e_wid_del_hook);
+   e_widget_disable_hook_set(obj, _e_wid_disable_hook);
    wd = calloc(1, sizeof(E_Widget_Data));
    e_widget_data_set(obj, wd);
    
@@ -93,4 +95,16 @@
    
    wd = e_widget_data_get(obj);
    free(wd);
+}
+
+static void
+_e_wid_disable_hook(Evas_Object *obj)
+{
+   E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   if (e_widget_disabled_get(obj))
+     edje_object_signal_emit(wd->o_frame, "disabled", "");
+   else
+     edje_object_signal_emit(wd->o_frame, "enabled", "");
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_frametable.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_widget_frametable.c       21 Jul 2006 20:16:46 -0000      1.3
+++ e_widget_frametable.c       12 Aug 2006 12:49:52 -0000      1.4
@@ -10,6 +10,7 @@
 };
 
 static void _e_wid_del_hook(Evas_Object *obj);
+static void _e_wid_disable_hook(Evas_Object *obj);
 
 /* local subsystem functions */
 
@@ -24,6 +25,7 @@
    obj = e_widget_add(evas);
    
    e_widget_del_hook_set(obj, _e_wid_del_hook);
+   e_widget_disable_hook_set(obj, _e_wid_disable_hook);
    wd = calloc(1, sizeof(E_Widget_Data));
    e_widget_data_set(obj, wd);
    
@@ -82,4 +84,16 @@
    
    wd = e_widget_data_get(obj);
    free(wd);
+}
+
+static void
+_e_wid_disable_hook(Evas_Object *obj)
+{
+   E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   if (e_widget_disabled_get(obj))
+     edje_object_signal_emit(wd->o_frame, "disabled", "");
+   else
+     edje_object_signal_emit(wd->o_frame, "enabled", "");
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_fsel.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_widget_fsel.c     7 Aug 2006 20:25:34 -0000       1.5
+++ e_widget_fsel.c     12 Aug 2006 12:49:52 -0000      1.6
@@ -255,7 +255,7 @@
    fmc.icon.list.h = 24;
    fmc.icon.fixed.w = 1;
    fmc.icon.fixed.h = 1;
-   fmc.icon.extension.show = 0;
+   fmc.icon.extension.show = 1;
    fmc.list.sort.no_case = 1;
    fmc.list.sort.dirs.first = 1;
    fmc.list.sort.dirs.last = 0;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_slider.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_widget_slider.c   1 Apr 2006 09:24:56 -0000       1.6
+++ e_widget_slider.c   12 Aug 2006 12:49:52 -0000      1.7
@@ -15,6 +15,7 @@
 static void _e_wid_focus_hook(Evas_Object *obj);
 static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
 static void _e_wid_cb_changed(void *data, Evas_Object *obj, void *event_info);
+static void _e_wid_disable_hook(Evas_Object *obj);
 
 /* externally accessible functions */
 EAPI Evas_Object *
@@ -28,6 +29,7 @@
    
    e_widget_del_hook_set(obj, _e_wid_del_hook);
    e_widget_focus_hook_set(obj, _e_wid_focus_hook);
+   e_widget_disable_hook_set(obj, _e_wid_disable_hook);
    wd = calloc(1, sizeof(E_Widget_Data));
    e_widget_data_set(obj, wd);
    wd->o_widget = obj;
@@ -188,4 +190,18 @@
    if (wd->dval) *(wd->dval) = e_slider_value_get(wd->o_slider);
    else if (wd->ival) *(wd->ival) = e_slider_value_get(wd->o_slider);
    e_widget_change(wd->o_widget);
+}
+
+static void
+_e_wid_disable_hook(Evas_Object *obj)
+{
+   E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   if (e_widget_disabled_get(obj))
+     edje_object_signal_emit(e_slider_edje_object_get(wd->o_slider),
+                            "disabled", "");
+   else
+     edje_object_signal_emit(e_slider_edje_object_get(wd->o_slider),
+                            "enabled", "");
 }



-------------------------------------------------------------------------
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