forked from enlightenment/enlightenment
add ilist headers - much easier to organise things now
SVN revision: 21513
This commit is contained in:
parent
2485636164
commit
f96980dbe8
|
@ -935,3 +935,78 @@ group {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,24 +63,35 @@ e_configure_show(E_Container *con)
|
|||
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/mouse", _("Cursor Settings"), e_int_config_cursor);
|
||||
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/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/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", _("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", _("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
|
||||
|
@ -122,6 +133,16 @@ e_configure_standard_item_add(E_Configure *eco, char *icon, char *label, E_Confi
|
|||
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)
|
||||
|
|
|
@ -24,6 +24,7 @@ struct _E_Configure
|
|||
|
||||
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
|
||||
|
|
|
@ -30,6 +30,7 @@ struct _E_Smart_Item
|
|||
void (*func_hilight) (void *data, void *data2);
|
||||
void *data;
|
||||
void *data2;
|
||||
unsigned char header : 1;
|
||||
};
|
||||
|
||||
/* local subsystem functions */
|
||||
|
@ -92,7 +93,7 @@ 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)
|
||||
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 @@ e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (v
|
|||
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 @@ e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (v
|
|||
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 @@ _e_smart_event_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
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")))
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -443,39 +443,43 @@ _e_test_internal(E_Container *con)
|
|||
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);
|
||||
|
|
|
@ -73,7 +73,17 @@ e_widget_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*f
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue