Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_configure.c e_configure.h e_ilist.c e_ilist.h e_test.c e_widget_ilist.c e_widget_ilist.h Log Message: add ilist headers - much easier to organise things now =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- e_configure.c 27 Feb 2006 18:39:20 -0000 1.40 +++ e_configure.c 27 Mar 2006 14:46:26 -0000 1.41 @@ -63,24 +63,35 @@ edje_object_part_text_set(eco->edje, "title", _("Configuration Panel")); /* add items here */ + e_configure_header_item_add(eco, "enlightenment/appearance", _("Appearance")); e_configure_standard_item_add(eco, "enlightenment/desktops", _("Background Settings"), e_int_config_background); e_configure_standard_item_add(eco, "enlightenment/themes", _("Theme Selector"), e_int_config_theme); - e_configure_standard_item_add(eco, "enlightenment/modules", _("Module Settings"), e_int_config_modules); - e_configure_standard_item_add(eco, "enlightenment/configuration", _("Config Dialog Settings"), e_int_config_cfgdialogs); + e_configure_standard_item_add(eco, "enlightenment/e", _("Font Display Hinting"), e_int_config_hinting); e_configure_standard_item_add(eco, "enlightenment/mouse", _("Cursor Settings"), e_int_config_cursor); + e_configure_standard_item_add(eco, "enlightenment/windows", _("Window Display Settings"), e_int_config_window_display); + + e_configure_header_item_add(eco, "enlightenment/extensions", _("Extensions")); + e_configure_standard_item_add(eco, "enlightenment/modules", _("Module Settings"), e_int_config_modules); + + e_configure_header_item_add(eco, "enlightenment/screen_setup", _("Screen")); e_configure_standard_item_add(eco, "enlightenment/desktops", _("Desktop Settings"), e_int_config_desks); - e_configure_standard_item_add(eco, "enlightenment/desktops", _("Desktop Lock Settings"), e_int_config_desklock); e_configure_standard_item_add(eco, "enlightenment/desktops", _("Display Settings"), e_int_config_display); + e_configure_standard_item_add(eco, "enlightenment/desktops", _("Desktop Lock Settings"), e_int_config_desklock); + + e_configure_header_item_add(eco, "enlightenment/behavior", _("Behavior")); e_configure_standard_item_add(eco, "enlightenment/e", _("Focus Settings"), e_int_config_focus); - e_configure_standard_item_add(eco, "enlightenment/e", _("Font Display Hinting"), e_int_config_hinting); e_configure_standard_item_add(eco, "enlightenment/e", _("Key Binding Settings"), e_int_config_keybindings); e_configure_standard_item_add(eco, "enlightenment/favorites", _("Menu Settings"), e_int_config_menus); + + e_configure_header_item_add(eco, "enlightenment/misc", _("Miscellaneous")); e_configure_standard_item_add(eco, "enlightenment/configuration", _("Performance Settings"), e_int_config_performance); - e_configure_standard_item_add(eco, "enlightenment/run", _("Run Command Settings"), e_int_config_exebuf); + e_configure_standard_item_add(eco, "enlightenment/configuration", _("Config Dialog Settings"), e_int_config_cfgdialogs); + + e_configure_header_item_add(eco, "enlightenment/advanced", _("Advanced")); e_configure_standard_item_add(eco, "enlightenment/run", _("Startup Settings"), e_int_config_startup); e_configure_standard_item_add(eco, "enlightenment/windows", _("Window List Settings"), e_int_config_winlist); - e_configure_standard_item_add(eco, "enlightenment/windows", _("Window Display Settings"), e_int_config_window_display); e_configure_standard_item_add(eco, "enlightenment/windows", _("Window Manipulation Settings"), e_int_config_window_manipulation); + e_configure_standard_item_add(eco, "enlightenment/run", _("Run Command Settings"), e_int_config_exebuf); /* FIXME: we should have a way for modules to hook in here and add their * own entries @@ -120,6 +131,16 @@ ecocb->func = func; eco->cblist = evas_list_append(eco->cblist, ecocb); e_widget_ilist_append(eco->ilist, o, label, _e_configure_cb_standard, ecocb, NULL); +} + +EAPI void +e_configure_header_item_add(E_Configure *eco, char *icon, char *label) +{ + Evas_Object *o; + + o = edje_object_add(eco->evas); + e_util_edje_icon_set(o, icon); + e_widget_ilist_header_append(eco->ilist, o, label); } /* local subsystem functions */ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_configure.h 21 Dec 2005 06:38:50 -0000 1.5 +++ e_configure.h 27 Mar 2006 14:46:26 -0000 1.6 @@ -24,6 +24,7 @@ EAPI E_Configure *e_configure_show(E_Container *con); EAPI void e_configure_standard_item_add(E_Configure *eco, char *icon, char *label, E_Config_Dialog *(*func) (E_Container *con)); +EAPI void e_configure_header_item_add(E_Configure *eco, char *icon, char *label); #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_ilist.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_ilist.c 3 Mar 2006 10:04:59 -0000 1.15 +++ e_ilist.c 27 Mar 2006 14:46:26 -0000 1.16 @@ -30,6 +30,7 @@ void (*func_hilight) (void *data, void *data2); void *data; void *data2; + unsigned char header : 1; }; /* local subsystem functions */ @@ -92,7 +93,7 @@ } EAPI void -e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2) +e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, int header, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2) { E_Smart_Item *si; Evas_Coord mw = 0, mh = 0; @@ -101,12 +102,15 @@ si = E_NEW(E_Smart_Item, 1); si->sd = sd; si->base_obj = edje_object_add(evas_object_evas_get(sd->smart_obj)); - - if (evas_list_count(sd->items) & 0x1) - e_theme_edje_object_set(si->base_obj, "base/theme/widgets", + + if (header) + e_theme_edje_object_set(si->base_obj, "base/theme/widgets", + "widgets/ilist_header"); + else if (evas_list_count(sd->items) & 0x1) + e_theme_edje_object_set(si->base_obj, "base/theme/widgets", "widgets/ilist_odd"); else - e_theme_edje_object_set(si->base_obj, "base/theme/widgets", + e_theme_edje_object_set(si->base_obj, "base/theme/widgets", "widgets/ilist"); edje_object_part_text_set(si->base_obj, "label", label); si->icon_obj = icon; @@ -120,6 +124,7 @@ si->func_hilight = func_hilight; si->data = data; si->data2 = data2; + si->header = header; sd->items = evas_list_append(sd->items, si); edje_object_size_min_calc(si->base_obj, &mw, &mh); e_box_pack_end(sd->box_obj, si->base_obj); @@ -364,17 +369,41 @@ ev = event_info; if (!strcmp(ev->keyname, "Up")) { - int n; - - n = e_ilist_selected_get(sd->smart_obj); - e_ilist_selected_set(sd->smart_obj, n - 1); + int n, ns; + E_Smart_Item *si; + + ns = e_ilist_selected_get(sd->smart_obj); + do + { + n = e_ilist_selected_get(sd->smart_obj); + if (n == 0) + { + e_ilist_selected_set(sd->smart_obj, ns); + break; + } + e_ilist_selected_set(sd->smart_obj, n - 1); + si = evas_list_nth(sd->items, sd->selected); + } + while ((si) && (si->header)); } else if (!strcmp(ev->keyname, "Down")) { - int n; + int n, ns; + E_Smart_Item *si; - n = e_ilist_selected_get(sd->smart_obj); - e_ilist_selected_set(sd->smart_obj, n + 1); + ns = e_ilist_selected_get(sd->smart_obj); + do + { + n = e_ilist_selected_get(sd->smart_obj); + if (n == (evas_list_count(sd->items) - 1)) + { + e_ilist_selected_set(sd->smart_obj, ns); + break; + } + e_ilist_selected_set(sd->smart_obj, n + 1); + si = evas_list_nth(sd->items, sd->selected); + } + while ((si) && (si->header)); } else if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "space"))) =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_ilist.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_ilist.h 25 Jan 2006 04:06:51 -0000 1.8 +++ e_ilist.h 27 Mar 2006 14:46:26 -0000 1.9 @@ -8,7 +8,7 @@ EAPI Evas_Object *e_ilist_add (Evas *evas); EAPI void e_ilist_icon_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_ilist_append (Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2); +EAPI void e_ilist_append (Evas_Object *obj, Evas_Object *icon, char *label, int header, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2); EAPI void e_ilist_selected_set (Evas_Object *obj, int n); EAPI int e_ilist_selected_get (Evas_Object *obj); EAPI const char *e_ilist_selected_label_get (Evas_Object *obj); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_test.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- e_test.c 25 Jan 2006 10:20:02 -0000 1.46 +++ e_test.c 27 Mar 2006 14:46:26 -0000 1.47 @@ -443,39 +443,43 @@ e_theme_edje_object_set(o4, "base/theme/borders", "widgets/border/default/border"); e_livethumb_thumb_set(o3, o4); - e_ilist_append(o, o3, "Item 1", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Item 1", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/palette.png"); - e_ilist_append(o, o3, "Item 2 (Some really long text goes here for testing)", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Item 2 (Some really long text goes here for testing)", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/mozilla.png"); - e_ilist_append(o, o3, "Item 3 (Medium length)", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Item 3 (Medium length)", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/trash_open.png"); - e_ilist_append(o, o3, "Item POOP", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Item POOP", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/watch.png"); - e_ilist_append(o, o3, "Item BLING BLING", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Item BLING BLING", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/quake3.png"); - e_ilist_append(o, o3, "Sukebelinth", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Sukebelinth", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/opera6.png"); - e_ilist_append(o, o3, "Panties", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "A header", 1, NULL, NULL, NULL, NULL); + + o3 = e_icon_add(dia->win->evas); + e_icon_file_set(o3, "/home/raster/C/stuff/icons/opera6.png"); + e_ilist_append(o, o3, "Panties", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/drawer_open.png"); - e_ilist_append(o, o3, "Flimbert the cagey", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Flimbert the cagey", 0, _e_test_sel, NULL, NULL, NULL); o3 = e_icon_add(dia->win->evas); e_icon_file_set(o3, "/home/raster/C/stuff/icons/cd.png"); - e_ilist_append(o, o3, "Norbert", _e_test_sel, NULL, NULL); + e_ilist_append(o, o3, "Norbert", 0, _e_test_sel, NULL, NULL, NULL); e_ilist_min_size_get(o, &mw, &mh); evas_object_resize(o, mw, mh); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_ilist.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_widget_ilist.c 18 Mar 2006 17:00:27 -0000 1.12 +++ e_widget_ilist.c 27 Mar 2006 14:46:26 -0000 1.13 @@ -73,7 +73,17 @@ wcb->data = data; if (val) wcb->value = strdup(val); wd->callbacks = evas_list_append(wd->callbacks, wcb); - e_ilist_append(wd->o_ilist, icon, label, _e_wid_cb_item_sel, _e_wid_cb_item_hilight, wd, wcb); + e_ilist_append(wd->o_ilist, icon, label, 0, _e_wid_cb_item_sel, _e_wid_cb_item_hilight, wd, wcb); + if (icon) evas_object_show(icon); +} + +EAPI void +e_widget_ilist_header_append(Evas_Object *obj, Evas_Object *icon, char *label) +{ + E_Widget_Data *wd; + + wd = e_widget_data_get(obj); + e_ilist_append(wd->o_ilist, icon, label, 1, NULL, NULL, NULL, NULL); if (icon) evas_object_show(icon); } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_ilist.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_widget_ilist.h 25 Jan 2006 04:06:51 -0000 1.6 +++ e_widget_ilist.h 27 Mar 2006 14:46:26 -0000 1.7 @@ -8,6 +8,7 @@ EAPI Evas_Object *e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, char **value); EAPI void e_widget_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data), void *data, char *val); +EAPI void e_widget_ilist_header_append(Evas_Object *obj, Evas_Object *icon, char *label); EAPI void e_widget_ilist_selected_set(Evas_Object *obj, int n); EAPI void e_widget_ilist_selector_set(Evas_Object *obj, int selector); EAPI void e_widget_ilist_go(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