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