}
}
}
+
+group {
+ name: "widgets/ilist_header";
+ parts {
+ part {
+ name: "base";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 64 64 64 255;
+ image {
+ normal: "e17_ilist_bg0.png";
+ border: 3 3 3 3;
+ }
+ }
+ }
+ part {
+ name: "icon_swallow";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.5;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+// fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 4 4;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 4 -5;
+ }
+ }
+ }
+ part {
+ name: "label";
+ type: TEXT;
+ effect: SOFT_SHADOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 16 16;
+ rel1 {
+ to_x: "icon_swallow";
+ relative: 1.0 0.0;
+ offset: 16 4;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -5 -5;
+ }
+ color: 255 255 255 255;
+ color2: 0 0 0 64;
+ text {
+ text: "Item Label";
+ font: "Edje-Vera-Bold";
+ size: 16;
+ min: 1 1;
+ align: 0.0 0.5;
+ text_class: "ilist_item";
+ }
+ }
+ }
+ part {
+ name: "event";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
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
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 */
static void
_e_configure_free(E_Configure *eco)
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
void (*func_hilight) (void *data, void *data2);
void *data;
void *data2;
+ unsigned char header : 1;
};
/* local subsystem functions */
}
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;
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;
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);
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")))
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);
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);
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);
}
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);