Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_button.c ewl_calendar.c ewl_filelist.c ewl_filelist.h 
        ewl_filelist_column.c ewl_filelist_icon.c ewl_icon_theme.h 


Log Message:
- hook the icon theme into the stock icons
- add a few different images to the file dialog based on file extension

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_button.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- ewl_button.c        10 Jul 2006 09:12:24 -0000      1.36
+++ ewl_button.c        6 Sep 2006 15:16:11 -0000       1.37
@@ -12,22 +12,22 @@
        char *label;
        char *image_key;
 } ewl_stock_items[] = {
-               {"Apply",       "/stock/apply"},
-               {/*Arrow*/"Down",       "/stock/arrow/down"},
-               {/*Arrow*/"Left",       "/stock/arrow/left"},
-               {/*Arrow*/"Right",      "/stock/arrow/right"},
-               {/*Arrow*/"Up", "/stock/arrow/up"},
-               {"Cancel",      "/stock/cancel"},
-               {"FF",          "/stock/ff"},
-               {"Home",        "/stock/home"},
-               {"Ok",          "/stock/ok"},
-               {"Open",        "/stock/open"},
-               {"Pause",       "/stock/pause"},
-               {"Play",        "/stock/play"},
-               {"Quit",        "/stock/quit"},
-               {"Rewind",      "/stock/rewind"},
-               {"Save",        "/stock/save"},
-               {"Stop",        "/stock/stop"}
+               {"Apply",       EWL_ICON_DIALOG_APPLY},
+               {/*Arrow*/"Down",       EWL_ICON_GO_DOWN},
+               {/*Arrow*/"Left",       EWL_ICON_GO_PREVIOUS},
+               {/*Arrow*/"Right",      EWL_ICON_GO_NEXT},
+               {/*Arrow*/"Up",         EWL_ICON_GO_UP},
+               {"Cancel",              EWL_ICON_DIALOG_CANCEL},
+               {"FF",                  EWL_ICON_MEDIA_SEEK_FORWARD},
+               {"Home",        EWL_ICON_GO_HOME},
+               {"Ok",          EWL_ICON_DIALOG_OK},
+               {"Open",        EWL_ICON_DOCUMENT_OPEN},
+               {"Pause",       EWL_ICON_MEDIA_PLAYBACK_PAUSE},
+               {"Play",        EWL_ICON_MEDIA_PLAYBACK_START},
+               {"Quit",        EWL_ICON_SYSTEM_LOG_OUT},
+               {"Rewind",      EWL_ICON_MEDIA_SEEK_BACKWARD},
+               {"Save",        EWL_ICON_DOCUMENT_SAVE},
+               {"Stop",        EWL_ICON_MEDIA_PLAYBACK_STOP}
        };
 
 /**
@@ -190,15 +190,13 @@
        ewl_button_label_set(b, ewl_stock_items[b->stock_type].label);
 
        /* check for an image key */
-       data = ewl_theme_data_str_get(EWL_WIDGET(b), 
-                               ewl_stock_items[b->stock_type].image_key);
-       if (data) {
-               char *theme;
-
-               theme = ewl_theme_path_get();
-               ewl_button_image_set(b, theme, data);
-               FREE(theme);
-       }
+       data = ewl_icon_theme_icon_path_get(
+                               ewl_stock_items[b->stock_type].image_key,
+                               EWL_ICON_SIZE_MEDIUM);
+
+       if (data) 
+               ewl_button_image_set(b, data, 
+                    ewl_stock_items[b->stock_type].image_key);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_calendar.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- ewl_calendar.c      11 Jul 2006 01:52:25 -0000      1.19
+++ ewl_calendar.c      6 Sep 2006 15:16:11 -0000       1.20
@@ -87,7 +87,10 @@
 
        prev_button = ewl_button_new();
        ewl_container_child_append(EWL_CONTAINER(top_hbox), prev_button);
-       ewl_button_label_set(EWL_BUTTON(prev_button), "<");
+       ewl_button_image_set(EWL_BUTTON(prev_button), 
+                               
ewl_icon_theme_icon_path_get(EWL_ICON_GO_PREVIOUS, 
+                                                               
EWL_ICON_SIZE_SMALL), 
+                               EWL_ICON_GO_PREVIOUS);
        ewl_object_maximum_size_set(EWL_OBJECT(prev_button), 20,10);
        ewl_callback_append(prev_button, EWL_CALLBACK_MOUSE_DOWN, 
ewl_calendar_prev_month_cb, ib);
        ewl_widget_show(prev_button);
@@ -100,9 +103,13 @@
 
        next_button = ewl_button_new();
        ewl_container_child_append(EWL_CONTAINER(top_hbox), next_button);       
-       ewl_button_label_set(EWL_BUTTON(next_button), ">");
+       ewl_button_image_set(EWL_BUTTON(next_button), 
+                               ewl_icon_theme_icon_path_get(EWL_ICON_GO_NEXT, 
+                                                       EWL_ICON_SIZE_SMALL), 
+                               EWL_ICON_GO_NEXT);
        ewl_object_maximum_size_set(EWL_OBJECT(next_button), 20,10);
-       ewl_callback_append(next_button, EWL_CALLBACK_MOUSE_DOWN, 
ewl_calendar_next_month_cb, ib);
+       ewl_callback_append(next_button, EWL_CALLBACK_MOUSE_DOWN, 
+                                       ewl_calendar_next_month_cb, ib);
        ewl_widget_show(next_button);
 
        ib->grid = ewl_grid_new();
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- ewl_filelist.c      26 May 2006 17:25:59 -0000      1.17
+++ ewl_filelist.c      6 Sep 2006 15:16:11 -0000       1.18
@@ -3,6 +3,9 @@
 #include "ewl_macros.h"
 #include "ewl_private.h"
 
+static Ecore_Hash *ewl_filelist_ext_icon = NULL;
+
+static int ewl_filelist_strcasecompare(const void *key1, const void *key2);
 static void ewl_filelist_signal_between(Ewl_Filelist *fl, Ewl_Container *c,
                                                int add, const char *signal, 
                                                int a_idx, Ewl_Widget *a, 
@@ -18,6 +21,32 @@
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET("fl", fl, FALSE);
 
+       if (!ewl_filelist_ext_icon)
+       {
+               ewl_filelist_ext_icon = ecore_hash_new(ecore_str_hash, 
+                                                       
ewl_filelist_strcasecompare);
+
+               ecore_hash_set(ewl_filelist_ext_icon, ".png", 
EWL_ICON_IMAGE_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".jpg", 
EWL_ICON_IMAGE_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".gif", 
EWL_ICON_IMAGE_X_GENERIC);
+
+               ecore_hash_set(ewl_filelist_ext_icon, ".wmv", 
EWL_ICON_VIDEO_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".mpg", 
EWL_ICON_VIDEO_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".mpeg", 
EWL_ICON_VIDEO_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".avi", 
EWL_ICON_VIDEO_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".mov", 
EWL_ICON_VIDEO_X_GENERIC);
+               ecore_hash_set(ewl_filelist_ext_icon, ".asf", 
EWL_ICON_VIDEO_X_GENERIC);
+
+               ecore_hash_set(ewl_filelist_ext_icon, ".mp3", 
EWL_ICON_AUDIO_X_GENERIC);
+
+               ecore_hash_set(ewl_filelist_ext_icon, ".html", 
EWL_ICON_TEXT_HTML);
+               ecore_hash_set(ewl_filelist_ext_icon, ".htm", 
EWL_ICON_TEXT_HTML);
+
+               ecore_hash_set(ewl_filelist_ext_icon, ".pl", 
EWL_ICON_TEXT_X_SCRIPT);
+               ecore_hash_set(ewl_filelist_ext_icon, ".sh", 
EWL_ICON_TEXT_X_SCRIPT);
+               ecore_hash_set(ewl_filelist_ext_icon, ".ksh", 
EWL_ICON_TEXT_X_SCRIPT);
+       }
+
        if (!ewl_box_init(EWL_BOX(fl)))
                DRETURN_INT(FALSE, DLEVEL_STABLE);
 
@@ -605,6 +634,31 @@
        DRETURN_INT(fl->scroll_flags.h, DLEVEL_STABLE);
 }
 
+char *
+ewl_filelist_stock_icon_get(Ewl_Filelist *fl, const char *path)
+{
+       char *ret = NULL, *ptr = NULL;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR_RET("fl", fl, NULL);
+       DCHECK_PARAM_PTR_RET("path", path, NULL);
+       DCHECK_TYPE_RET("fl", fl, EWL_FILELIST_TYPE, NULL);
+
+       if (ecore_file_is_dir(path))
+               DRETURN_PTR(EWL_ICON_FOLDER, DLEVEL_STABLE);
+
+       ptr = strrchr(path, '.');
+       ret = ecore_hash_get(ewl_filelist_ext_icon, ptr);
+       if (ret) DRETURN_PTR(ret, DLEVEL_STABLE);
+
+       if (ecore_file_can_exec(path))
+               ret = EWL_ICON_APPLICATION_X_EXECUTABLE;
+       else
+               ret = EWL_ICON_TEXT_X_GENERIC;
+
+       DRETURN_PTR(ret, DLEVEL_STABLE);
+}
+
 /**
  * @param fl: The filelist to get the path from
  * @param dir: The dir name to append to the path
@@ -1025,4 +1079,23 @@
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
+
+static int
+ewl_filelist_strcasecompare(const void *key1, const void *key2)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       if (!key1 || !key2)
+       {
+               DRETURN_INT(ecore_direct_compare(key1, key2), DLEVEL_STABLE);
+       }
+       else if (key1 == key2)
+       {
+               DRETURN_INT(0, DLEVEL_STABLE);
+       }
+
+       DRETURN_INT(strcasecmp((const char *)key1, 
+                               (const char *)key2), DLEVEL_STABLE);
+}
+
 
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ewl_filelist.h      11 May 2006 04:01:20 -0000      1.9
+++ ewl_filelist.h      6 Sep 2006 15:16:11 -0000       1.10
@@ -119,6 +119,8 @@
                                                Ewl_Scrollpane_Flags h);
 Ewl_Scrollpane_Flags ewl_filelist_hscroll_flag_get(Ewl_Filelist *fl);
 
+char           *ewl_filelist_stock_icon_get(Ewl_Filelist *fl, const char 
*path);
+
 char           *ewl_filelist_expand_path(Ewl_Filelist *fl, const char *dir);
 void            ewl_filelist_directory_read(Ewl_Filelist *fl, 
                                        const char *dir,
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist_column.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- ewl_filelist_column.c       24 May 2006 02:55:15 -0000      1.14
+++ ewl_filelist_column.c       6 Sep 2006 15:16:11 -0000       1.15
@@ -434,6 +434,7 @@
        Ewl_Filelist_Column *list;
        Ewl_Widget *icon;
        char *stock, path[PATH_MAX];
+       const char *img;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("fl", fl);
@@ -452,20 +453,15 @@
 
        snprintf(path, PATH_MAX, "%s/%s", dir, file);
        if (ecore_file_is_dir(path))
-       {
-               stock = "/stock/open";
                ewl_callback_append(icon, EWL_CALLBACK_CLICKED,
                                ewl_filelist_column_cb_dir_clicked, fl);
-       }
        else
-       {
-               stock = "/stock/arrow/right";
                ewl_callback_append(icon, EWL_CALLBACK_CLICKED,
                                ewl_filelist_column_cb_file_clicked, fl);
-       }
 
-       ewl_icon_image_set(EWL_ICON(icon), ewl_theme_path_get(),
-                       ewl_theme_data_str_get(EWL_WIDGET(icon), stock));
+       stock = ewl_filelist_stock_icon_get(fl, path);
+       img = ewl_icon_theme_icon_path_get(stock, EWL_ICON_SIZE_MEDIUM);
+       ewl_icon_image_set(EWL_ICON(icon), img, stock); 
 
        ewl_container_child_append(EWL_CONTAINER(data), icon);
        ewl_widget_show(icon);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist_icon.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- ewl_filelist_icon.c 24 May 2006 02:55:15 -0000      1.8
+++ ewl_filelist_icon.c 6 Sep 2006 15:16:11 -0000       1.9
@@ -243,6 +243,7 @@
        Ewl_Filelist_Icon *list;
        Ewl_Widget *icon;
        char *stock, path[PATH_MAX];
+       const char *img;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("fl", fl);
@@ -259,20 +260,15 @@
 
        snprintf(path, PATH_MAX, "%s/%s", dir, file);
        if (ecore_file_is_dir(path))
-       {
-               stock = "/stock/open";
                ewl_callback_append(icon, EWL_CALLBACK_CLICKED,
                                ewl_filelist_icon_cb_dir_clicked, fl);
-       }
        else
-       {
-               stock = "/stock/arrow/right";
                ewl_callback_append(icon, EWL_CALLBACK_CLICKED,
                                ewl_filelist_icon_cb_icon_clicked, fl);
-       }
 
-       ewl_icon_image_set(EWL_ICON(icon), ewl_theme_path_get(),
-                       ewl_theme_data_str_get(EWL_WIDGET(icon), stock));
+       stock = ewl_filelist_stock_icon_get(fl, path);
+       img = ewl_icon_theme_icon_path_get(stock, EWL_ICON_SIZE_MEDIUM);
+       ewl_icon_image_set(EWL_ICON(icon), img, stock); 
 
        ewl_container_child_append(EWL_CONTAINER(list->freebox), icon);
        ewl_widget_show(icon);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_icon_theme.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ewl_icon_theme.h    20 Aug 2006 18:59:35 -0000      1.2
+++ ewl_icon_theme.h    6 Sep 2006 15:16:11 -0000       1.3
@@ -21,6 +21,7 @@
 #define EWL_ICON_APPLICATION_EXIT "application-exit"   /**< */
 #define EWL_ICON_APPOINTMENT_NEW "appointment-new"     /**< */
 #define EWL_ICON_CONTACT_NEW "contact-new"     /**< */
+#define EWL_ICON_DIALOG_APPLY "dialog-apply"   /**< */
 #define EWL_ICON_DIALOG_CANCEL "dialog-cancel" /**< */
 #define EWL_ICON_DIALOG_CLOSE "dialog-close"   /**< */
 #define EWL_ICON_DIALOG_OK "dialog-ok" /**< */



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