- remove deprecated e_util_menu_item_edje_icon_set
authorHannes Janetzek <hannes.janetzek@gmail.com>
Wed, 16 Feb 2011 23:47:06 +0000 (23:47 +0000)
committerHannes Janetzek <hannes.janetzek@gmail.com>
Wed, 16 Feb 2011 23:47:06 +0000 (23:47 +0000)
- change default icon lookup order from
  user theme > default theme > fdo theme to
  user theme > fdo theme > default theme

SVN revision: 57105

src/bin/e_theme.c
src/bin/e_theme.h
src/bin/e_utils.c
src/bin/e_utils.h

index 2cf8719..4bb12bb 100644 (file)
@@ -165,8 +165,8 @@ e_theme_edje_object_set(Evas_Object *o, const char *category, const char *group)
    return e_theme_edje_object_set(o, buf, group);
 }
 
-EAPI const char *
-e_theme_edje_file_get(const char *category, const char *group)
+const char *
+_e_theme_edje_file_get(const char *category, const char *group, Eina_Bool fallback_icon)
 {
    E_Theme_Result *res;
    char buf[4096];
@@ -176,6 +176,13 @@ e_theme_edje_file_get(const char *category, const char *group)
    /* find category -> edje mapping */
    _e_theme_category_register(category);
    res = eina_hash_find(mappings, category);
+
+   if (e_config->icon_theme &&
+       (!fallback_icon) &&
+       (!strcmp(category, "base")) &&
+       (!strncmp(group, "e/icons", 7)))
+     return "";
+
    if (res)
      {
        const char *str;
@@ -208,8 +215,9 @@ e_theme_edje_file_get(const char *category, const char *group)
                       const char *col;
 
                       res->quickfind = eina_hash_string_superfast_new(NULL);
-                      /* great a quick find hash of all group entires */
+                      /* create a quick find hash of all group entries */
                       coll = edje_file_collection_list(str);
+
                       EINA_LIST_FOREACH(coll, l, col)
                         {
                            q = eina_stringshare_add(col);
@@ -247,6 +255,18 @@ e_theme_edje_file_get(const char *category, const char *group)
    return e_theme_edje_file_get(buf, group);
 }
 
+EAPI const char *
+e_theme_edje_file_get(const char *category, const char *group)
+{
+   return _e_theme_edje_file_get(category, group, EINA_FALSE);
+}
+
+EAPI const char *
+e_theme_edje_icon_fallback_file_get(const char *group)
+{
+   return _e_theme_edje_file_get("base", group, EINA_TRUE);
+}
+
 /*
  * this is used to set the theme for a CATEGORY of E17. "base" is always set
  * to the default theme - because if a selected theme wants "base/theme", but
index 1a469ce..5f48b1d 100644 (file)
@@ -8,6 +8,7 @@ EINTERN int         e_theme_shutdown(void);
 
 EAPI int         e_theme_edje_object_set(Evas_Object *o, const char *category, const char *group);
 EAPI const char *e_theme_edje_file_get(const char *category, const char *group);
+EAPI const char *e_theme_edje_icon_fallback_file_get(const char *group);
 EAPI void        e_theme_file_set(const char *category, const char *file);
 
 EAPI int             e_theme_config_set(const char *category, const char *file);
index 4374d52..3081a72 100644 (file)
@@ -418,19 +418,25 @@ e_util_edje_icon_set(Evas_Object *obj, const char *name)
 }
 
 static int
-_e_util_icon_theme_set(Evas_Object *obj, const char *icon)
+_e_util_icon_theme_set(Evas_Object *obj, const char *icon, Eina_Bool fallback)
 {
    const char *file;
    char buf[PATH_MAX];
 
    if ((!icon) || (!icon[0])) return 0;
    snprintf(buf, sizeof(buf), "e/icons/%s", icon);
-   file = e_theme_edje_file_get("base/theme/icons", buf);
+
+   if (fallback)
+     file = e_theme_edje_icon_fallback_file_get(buf);
+   else
+     file = e_theme_edje_file_get("base/theme/icons", buf);
+
    if (file[0])
      {
        e_icon_file_edje_set(obj, file, buf);
        return 1;
      }
+
    return 0;
 }
 
@@ -455,33 +461,40 @@ e_util_icon_theme_set(Evas_Object *obj, const char *icon)
      {
        if (_e_util_icon_fdo_set(obj, icon))
          return 1;
-       return _e_util_icon_theme_set(obj, icon);
+       if (_e_util_icon_theme_set(obj, icon, EINA_FALSE))
+         return 1;
+       return _e_util_icon_theme_set(obj, icon, EINA_TRUE);
      }
    else
      {
-       if (_e_util_icon_theme_set(obj, icon))
+       if (_e_util_icon_theme_set(obj, icon, EINA_FALSE))
+         return 1;
+       if (_e_util_icon_fdo_set(obj, icon))
          return 1;
-       return _e_util_icon_fdo_set(obj, icon);
+       return _e_util_icon_theme_set(obj, icon, EINA_TRUE);
      }
 }
 
-/* WARNING This function is deprecated, You should
- * use e_util_menu_item_theme_icon_set() instead.
- * It provide fallback (e theme <-> fdo theme) in both direction */
-EAPI int
-e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name)
+int
+_e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name, Eina_Bool fallback)
 {
    const char *file;
    char buf[PATH_MAX];
 
    if ((!name) || (!name[0])) return 0;
-   if (name[0]=='/' && ecore_file_exists(name))
+
+   if ((!fallback) && (name[0]=='/') && ecore_file_exists(name))
      {
        e_menu_item_icon_edje_set(mi, name, "icon");
        return 1;
      }
    snprintf(buf, sizeof(buf), "e/icons/%s", name);
-   file = e_theme_edje_file_get("base/theme/icons", buf);
+
+   if (fallback)
+     file = e_theme_edje_icon_fallback_file_get(buf);
+   else
+     file = e_theme_edje_file_get("base/theme/icons", buf);
+
    if (file[0])
      {
        e_menu_item_icon_edje_set(mi, file, buf);
@@ -526,13 +539,17 @@ e_util_menu_item_theme_icon_set(E_Menu_Item *mi, const char *icon)
      {
        if (_e_util_menu_item_fdo_icon_set(mi, icon))
          return 1;
-       return e_util_menu_item_edje_icon_set(mi, icon);
+       if (_e_util_menu_item_edje_icon_set(mi, icon, EINA_FALSE))
+         return 1;
+       return _e_util_menu_item_edje_icon_set(mi, icon, EINA_TRUE);
      }
    else
      {
-       if (e_util_menu_item_edje_icon_set(mi, icon))
+       if (_e_util_menu_item_edje_icon_set(mi, icon, EINA_FALSE))
+         return 1;
+       if (_e_util_menu_item_fdo_icon_set(mi, icon))
          return 1;
-       return _e_util_menu_item_fdo_icon_set(mi, icon);
+       return _e_util_menu_item_edje_icon_set(mi, icon, EINA_TRUE);
      }
 }
 
index 2c7af36..07d96b7 100644 (file)
@@ -44,7 +44,6 @@ EAPI int          e_util_menu_item_edje_icon_list_set(E_Menu_Item *mi, const cha
 EAPI int          e_util_edje_icon_check(const char *name);
 EAPI int          e_util_edje_icon_set(Evas_Object *obj, const char *name);
 EAPI int          e_util_icon_theme_set(Evas_Object *obj, const char *icon);
-EAPI int          e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name);
 EAPI unsigned int e_util_icon_size_normalize(unsigned int desired);
 EAPI int          e_util_menu_item_theme_icon_set(E_Menu_Item *mi, const char *icon);
 EAPI E_Container *e_util_container_window_find(Ecore_X_Window win);