Enlightenment CVS committal

Author  : shorne
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


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


Log Message:
Code cleanups for font config dialog
 * Move sndev's code into ilist so it can be reused

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ilist.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_ilist.c   4 Apr 2006 14:00:19 -0000       1.18
+++ e_ilist.c   13 Apr 2006 00:01:15 -0000      1.19
@@ -187,6 +187,18 @@
    return NULL;
 }
 
+EAPI Evas_Object *
+e_ilist_selected_icon_get(Evas_Object *obj)
+{
+   E_Smart_Item *si;
+   
+   API_ENTRY return NULL;
+   if (!sd->items) return NULL;
+   si = evas_list_nth(sd->items, sd->selected);
+   if (si) return si->icon_obj;
+   return NULL;
+}
+
 EAPI void *
 e_ilist_selected_data_get(Evas_Object *obj)
 {
@@ -317,6 +329,45 @@
    if (!sd->items) return;
    si = evas_list_nth(sd->items, n);
    if (si) edje_object_part_text_set(si->base_obj, "label", label);
+}
+
+EAPI Evas_Object *
+e_ilist_nth_icon_get(Evas_Object *obj, int n)
+{ 
+   E_Smart_Item *si;
+   
+   API_ENTRY return NULL;
+   if (!sd->items) return NULL;
+   si = evas_list_nth(sd->items, n);
+   if (si) return si->icon_obj;
+   return NULL;
+}
+
+EAPI void
+e_ilist_nth_icon_set(Evas_Object *obj, int n, Evas_Object *icon)
+{ 
+   E_Smart_Item *si;
+   
+   API_ENTRY return;
+   if (!sd->items) return;
+   si = evas_list_nth(sd->items, n);
+   if (si) 
+     { 
+       if (si->icon_obj) 
+         {
+            edje_object_part_unswallow(si->base_obj, si->icon_obj);
+            evas_object_hide(si->icon_obj);
+            evas_object_del(si->icon_obj);
+         }
+
+       si->icon_obj = icon;
+       if (si->icon_obj)
+         {
+            edje_extern_object_min_size_set(si->icon_obj, sd->icon_w, 
sd->icon_h);
+            edje_object_part_swallow(si->base_obj, "icon_swallow", 
si->icon_obj);
+            evas_object_show(si->icon_obj);
+         }
+     }
 }
 
 EAPI int
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ilist.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- e_ilist.h   4 Apr 2006 14:00:19 -0000       1.11
+++ e_ilist.h   13 Apr 2006 00:01:15 -0000      1.12
@@ -22,6 +22,9 @@
 EAPI void         e_ilist_remove_label          (Evas_Object *obj, const char 
*label);
 EAPI const char  *e_ilist_nth_label_get                (Evas_Object *obj, int 
n);
 EAPI void        e_ilist_nth_label_set         (Evas_Object *obj, int n, const 
char *label);
+EAPI void        e_ilist_nth_icon_set          (Evas_Object *obj, int n, 
Evas_Object *icon);
+EAPI Evas_Object *e_ilist_nth_icon_get         (Evas_Object *obj, int n);
+EAPI Evas_Object *e_ilist_selected_icon_get    (Evas_Object *obj);
 EAPI int          e_ilist_count                 (Evas_Object *obj);
 EAPI void         e_ilist_clear                 (Evas_Object *obj);
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_fonts.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_int_config_fonts.c        12 Apr 2006 14:45:10 -0000      1.6
+++ e_int_config_fonts.c        13 Apr 2006 00:01:15 -0000      1.7
@@ -20,40 +20,6 @@
 
 static void _enabled_fallback_cb_change(void *data, Evas_Object *obj);
 
-typedef struct _E_Smart_Item       E_Smart_Item;
-typedef struct _E_Smart_Data       E_Smart_Data;
-typedef struct _E_Widget_IList_Data E_Widget_IList_Data;
-
-struct _E_Widget_IList_Data
-{
-   Evas_Object *o_widget, *o_scrollframe, *o_ilist;
-   Evas_List *callbacks;
-   char **value;
-};
-
-struct _E_Smart_Data
-{ 
-   Evas_Coord   x, y, w, h;
-   
-   Evas_Object   *smart_obj;
-   Evas_Object   *box_obj;
-   Evas_List     *items;
-   int            selected;
-   Evas_Coord     icon_w, icon_h;
-   unsigned char  selector : 1;
-};
-
-struct _E_Smart_Item
-{
-   E_Smart_Data  *sd;
-   Evas_Object   *base_obj;
-   Evas_Object   *icon_obj;
-   void         (*func) (void *data, void *data2);
-   void         (*func_hilight) (void *data, void *data2);
-   void          *data;
-   void          *data2;
-};
-
 struct _E_Text_Class_Pair
 {
    const char  *class_name;
@@ -102,6 +68,7 @@
 struct _E_Config_Dialog_Data
 {
    E_Config_Dialog *cfd;
+   Evas *evas;
 
    /* Text Classes */
    Evas_List   *text_classes;
@@ -301,6 +268,7 @@
    int i;
 
    cfdata->cur_index = -1;
+   cfdata->evas = evas;
    o = e_widget_list_add(evas, 0, 0);
   
    /* Create Font Class Widgets */ 
@@ -318,11 +286,15 @@
        tc = evas_list_nth(cfdata->text_classes, i);
        if (tc)
          {
-            ic = edje_object_add(evas);
             if (tc->enabled)
-              e_util_edje_icon_set(ic, ILIST_ICON_WITH_DEFINED_FONT);
+              {
+                 ic = edje_object_add(evas);
+                 e_util_edje_icon_set(ic, ILIST_ICON_WITH_DEFINED_FONT);
+              }
             else
-              e_util_edje_icon_set(ic, "");
+              {
+                 ic = NULL;
+              }
             e_widget_ilist_append(cfdata->gui.class_list, ic, 
tc->class_description, NULL, NULL, NULL);
          }
      }
@@ -467,21 +439,27 @@
 _enabled_font_cb_change(void *data, Evas_Object *obj)
 {
    E_Config_Dialog_Data *cfdata;
+   Evas_Object *icon;
+   int n;
+   
    cfdata = data;   
    if (!cfdata) return;
    
+   n = e_widget_ilist_selected_get(cfdata->gui.class_list);
    if (cfdata->cur_enabled)
      {
        e_widget_disabled_set(cfdata->gui.font, 0);
        e_widget_disabled_set(cfdata->gui.size, 0);
+       icon = edje_object_add(cfdata->evas);
+       e_util_edje_icon_set(icon, ILIST_ICON_WITH_DEFINED_FONT);
      }
    else
      {
        e_widget_disabled_set(cfdata->gui.font, 1);
        e_widget_disabled_set(cfdata->gui.size, 1);
+       icon = NULL;
      }
-
-   _update_font_class_ilist_icon(cfdata);
+   e_widget_ilist_nth_icon_set(cfdata->gui.class_list, n, icon);
 }
 
 /* Private Font Fallback Functions */
@@ -493,52 +471,5 @@
    if (!cfdata) return;
   
    e_widget_disabled_set(cfdata->gui.fallback_list, 
!cfdata->cur_fallbacks_enabled); 
-}
-
-/* Just to have nice icon change in fontclass list */
-static void _update_font_class_ilist_icon(void *data)
-{
-  E_Smart_Item *si;
-  E_Smart_Data *sd;
-  E_Widget_IList_Data *wd;
-  Evas_Object *obj;
-
-  E_Config_Dialog_Data *cfdata;
-
-  if (!(cfdata = data))
-    return;
-
-  if (!(wd = e_widget_data_get(cfdata->gui.class_list)))
-      return;
-
-  obj = wd->o_ilist;
-
-  sd = evas_object_smart_data_get(obj);
-
-  if ((!obj) || (!sd) ||
-      (evas_object_type_get(obj) && strcmp(evas_object_type_get(obj), 
"e_ilist")))
-    return;
-
-  si = evas_list_nth(sd->items, sd->selected);
-  if (si)
-    {
-      edje_object_part_unswallow(si->base_obj, si->icon_obj);
-      evas_object_hide(si->icon_obj);
-      if (cfdata->cur_enabled)
-       {
-         if (si->icon_obj == NULL)
-           si->icon_obj = edje_object_add(evas_object_evas_get(sd->smart_obj));
-         e_util_edje_icon_set(si->icon_obj, ILIST_ICON_WITH_DEFINED_FONT);
-       }
-      else
-       si->icon_obj = NULL;
-
-      if (si->icon_obj)
-       {
-         edje_extern_object_min_size_set(si->icon_obj, sd->icon_w, sd->icon_h);
-         edje_object_part_swallow(si->base_obj, "icon_swallow", si->icon_obj);
-         evas_object_show(si->icon_obj);
-       }
-    }
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_ilist.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_widget_ilist.c    4 Apr 2006 14:00:19 -0000       1.15
+++ e_widget_ilist.c    13 Apr 2006 00:01:15 -0000      1.16
@@ -184,6 +184,33 @@
    e_ilist_nth_label_set(wd->o_ilist, n, label);
 }
 
+EAPI void
+e_widget_ilist_nth_icon_set(Evas_Object *obj, int n, Evas_Object *icon)
+{
+    E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   e_ilist_nth_icon_set(wd->o_ilist, n, icon);
+}
+
+EAPI Evas_Object *
+e_widget_ilist_nth_icon_get(Evas_Object *obj, int n)
+{
+    E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   return e_ilist_nth_icon_get(wd->o_ilist, n);
+}
+
+EAPI Evas_Object *
+e_widget_ilist_selected_icon_get(Evas_Object *obj)
+{
+    E_Widget_Data *wd;
+   
+   wd = e_widget_data_get(obj);
+   return e_ilist_selected_icon_get(wd->o_ilist);
+}
+
 EAPI int
 e_widget_ilist_count(Evas_Object *obj)
 {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_ilist.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_widget_ilist.h    4 Apr 2006 14:00:19 -0000       1.9
+++ e_widget_ilist.h    13 Apr 2006 00:01:15 -0000      1.10
@@ -18,6 +18,9 @@
 EAPI void e_widget_ilist_remove_label(Evas_Object *obj, const char *label);
 EAPI const char *e_widget_ilist_nth_label_get(Evas_Object *obj, int n);
 EAPI void e_widget_ilist_nth_label_set(Evas_Object *obj, int n, const char 
*label);
+EAPI void e_widget_ilist_nth_icon_set(Evas_Object *obj, int n, Evas_Object 
*icon);
+EAPI Evas_Object *e_widget_ilist_nth_icon_get(Evas_Object *obj, int n);
+EAPI Evas_Object *e_widget_ilist_selected_icon_get(Evas_Object *obj);
 EAPI int e_widget_ilist_count(Evas_Object *obj);
 EAPI void e_widget_ilist_clear(Evas_Object *obj);
 




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to