forked from enlightenment/efl
Improve elm standard icons test
* use a genlist to speedup and make use of group ability * manually list the icons (otherwise old and deprecated icons show up) NOTE: as always this expose a new genlist bug: just change the size of the icons (with the radio button) and scroll the list...new realized items get a wrong size.
This commit is contained in:
parent
4da0722a8d
commit
3787d33992
|
@ -145,40 +145,298 @@ test_icon_transparent(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
}
|
||||
|
||||
/* Test: Icon Standard */
|
||||
static void
|
||||
_standard_list_populate(Evas_Object *list, int size)
|
||||
static char *
|
||||
_gl_group_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED)
|
||||
{
|
||||
return strdup(data);
|
||||
}
|
||||
|
||||
static char *
|
||||
_gl_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED)
|
||||
{
|
||||
return strdup(data);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_gl_content_get(void *data, Evas_Object *obj, const char *part)
|
||||
{
|
||||
Evas_Object *ic;
|
||||
Eina_List *l;
|
||||
const char *group;
|
||||
char name[128], *p;
|
||||
const char *name = data;
|
||||
int size = elm_radio_value_get(evas_object_data_get(obj, "size_rdg"));
|
||||
|
||||
elm_list_clear(list);
|
||||
l = elm_theme_group_base_list(NULL, "elm/icon/");
|
||||
EINA_LIST_FREE(l, group)
|
||||
if (!strcmp(part, "elm.swallow.icon"))
|
||||
{
|
||||
// group = "/elm/icon/standard-name/style/maybe_another_style??"
|
||||
snprintf(name, sizeof(name), "%s", group + 9);
|
||||
if ((p = strrchr(name, '/')))
|
||||
*p = '\0';
|
||||
// printf("Found group:%s Name:%s\n", group, name);
|
||||
|
||||
// quick hack to show only standard-compliant icons
|
||||
// apart from the "folder" one, all the others have "-" in the name
|
||||
// ...also do not show deprecated arrow-* icons
|
||||
if (((strrchr(name, '-') != NULL) || !strcmp(name, "folder")|| !strcmp(name, "starred"))
|
||||
&& (strncmp(name, "arrow-", 6)))
|
||||
{
|
||||
ic = elm_icon_add(list);
|
||||
elm_icon_standard_set(ic, name);
|
||||
if (size)
|
||||
evas_object_size_hint_min_set(ic, size, size);
|
||||
elm_list_item_append(list, name, ic, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
eina_stringshare_del(group);
|
||||
ic = elm_icon_add(obj);
|
||||
// evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_icon_standard_set(ic, name);
|
||||
if (size)
|
||||
evas_object_size_hint_min_set(ic, size, size);
|
||||
return ic;
|
||||
}
|
||||
elm_list_go(list);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_standard_genlist_populate(Evas_Object *gl)
|
||||
{
|
||||
Elm_Genlist_Item_Class *itc, *itc_g;
|
||||
Elm_Object_Item *git;
|
||||
|
||||
itc_g = elm_genlist_item_class_new();
|
||||
itc_g->item_style = "group_index";
|
||||
itc_g->func.text_get = _gl_group_text_get;
|
||||
|
||||
itc = elm_genlist_item_class_new();
|
||||
itc->item_style = "default";
|
||||
itc->func.text_get = _gl_text_get;
|
||||
itc->func.content_get = _gl_content_get;
|
||||
|
||||
#define CONTEXT(NAME) \
|
||||
git = elm_genlist_item_append(gl, itc_g, NAME, NULL, \
|
||||
ELM_GENLIST_ITEM_GROUP, NULL, NULL);
|
||||
|
||||
#define IC(NAME) \
|
||||
elm_genlist_item_append(gl, itc, NAME, git, \
|
||||
ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
|
||||
CONTEXT("Places")
|
||||
IC("user-home")
|
||||
IC("user-bookmarks")
|
||||
IC("user-desktop")
|
||||
IC("user-trash")
|
||||
IC("folder")
|
||||
IC("folder-remote")
|
||||
IC("folder-open")
|
||||
IC("folder-home")
|
||||
IC("folder-download")
|
||||
IC("folder-recent")
|
||||
IC("folder-documents")
|
||||
IC("folder-pictures")
|
||||
IC("folder-music")
|
||||
IC("folder-videos")
|
||||
IC("network-server")
|
||||
IC("network-workgroup")
|
||||
IC("start-here")
|
||||
|
||||
CONTEXT("Emblems")
|
||||
IC("emblem-default")
|
||||
IC("emblem-downloads")
|
||||
IC("emblem-favorite")
|
||||
IC("emblem-important")
|
||||
IC("emblem-readonly")
|
||||
IC("emblem-shared")
|
||||
IC("emblem-symbolic-link")
|
||||
IC("emblem-unreadable")
|
||||
IC("emblem-system")
|
||||
IC("emblem-synchronized")
|
||||
IC("emblem-synchronizing")
|
||||
|
||||
CONTEXT("Actions")
|
||||
IC("application-exit")
|
||||
IC("call-start")
|
||||
IC("call-stop")
|
||||
IC("document-open")
|
||||
IC("document-page-setup")
|
||||
IC("document-properties")
|
||||
IC("document-save")
|
||||
IC("document-save-as")
|
||||
IC("document-send")
|
||||
IC("document-close")
|
||||
IC("document-new")
|
||||
IC("document-print")
|
||||
IC("document-print-preview")
|
||||
IC("document-revert")
|
||||
IC("document-export")
|
||||
IC("document-import")
|
||||
IC("edit-clear")
|
||||
IC("edit-copy")
|
||||
IC("edit-cut")
|
||||
IC("edit-delete")
|
||||
IC("edit-find")
|
||||
IC("edit-find-replace")
|
||||
IC("edit-paste")
|
||||
IC("edit-redo")
|
||||
IC("edit-undo")
|
||||
IC("edit-select-all")
|
||||
IC("folder-copy")
|
||||
IC("folder-move")
|
||||
IC("folder-new")
|
||||
IC("format-indent-less")
|
||||
IC("format-indent-more")
|
||||
IC("format-justify-center")
|
||||
IC("format-justify-fill")
|
||||
IC("format-justify-left")
|
||||
IC("format-justify-right")
|
||||
IC("format-text-direction-ltr")
|
||||
IC("format-text-direction-rtl")
|
||||
IC("format-text-bold")
|
||||
IC("format-text-italic")
|
||||
IC("format-text-underline")
|
||||
IC("format-text-strikethrough")
|
||||
IC("go-home")
|
||||
IC("go-bottom")
|
||||
IC("go-down")
|
||||
IC("go-first")
|
||||
IC("go-jump")
|
||||
IC("go-last")
|
||||
IC("go-next")
|
||||
IC("go-previous")
|
||||
IC("go-top")
|
||||
IC("go-up")
|
||||
IC("insert-image")
|
||||
IC("insert-link")
|
||||
IC("insert-object")
|
||||
IC("insert-text")
|
||||
IC("list-add")
|
||||
IC("list-remove")
|
||||
IC("media-eject")
|
||||
IC("media-playback-pause")
|
||||
IC("media-playback-start")
|
||||
IC("media-playback-stop")
|
||||
IC("media-record")
|
||||
IC("media-seek-backward")
|
||||
IC("media-seek-forward")
|
||||
IC("media-skip-backward")
|
||||
IC("media-skip-forward")
|
||||
IC("object-flip-horizontal")
|
||||
IC("object-flip-vertical")
|
||||
IC("object-rotate-left")
|
||||
IC("object-rotate-right")
|
||||
IC("process-stop")
|
||||
IC("tools-check-spelling")
|
||||
IC("view-list-compact")
|
||||
IC("view-list-details")
|
||||
IC("view-list-icons")
|
||||
IC("view-fullscreen")
|
||||
IC("view-refresh")
|
||||
IC("view-restore")
|
||||
IC("view-sort-ascending")
|
||||
IC("view-sort-descending")
|
||||
IC("view-close")
|
||||
IC("window-close")
|
||||
IC("window-new")
|
||||
IC("system-run")
|
||||
IC("system-shutdown")
|
||||
IC("system-reboot")
|
||||
IC("system-log-out")
|
||||
IC("system-search")
|
||||
IC("help-about")
|
||||
IC("help-contents")
|
||||
IC("zoom-fit-best")
|
||||
IC("zoom-fit")
|
||||
IC("zoom-in")
|
||||
IC("zoom-original")
|
||||
IC("zoom-out")
|
||||
|
||||
CONTEXT("Status")
|
||||
IC("audio-volume-high")
|
||||
IC("audio-volume-low")
|
||||
IC("audio-volume-medium")
|
||||
IC("audio-volume-muted")
|
||||
IC("audio-volume")
|
||||
IC("battery-caution")
|
||||
IC("battery-empty")
|
||||
IC("battery-low")
|
||||
IC("battery-good")
|
||||
IC("battery-full")
|
||||
IC("battery-caution-charging")
|
||||
IC("battery-empty-charging")
|
||||
IC("battery-low-charging")
|
||||
IC("battery-good-charging")
|
||||
IC("battery-full-charging")
|
||||
IC("bluetooth-active")
|
||||
IC("bluetooth-disabled")
|
||||
IC("changes-allow")
|
||||
IC("changes-prevent")
|
||||
IC("dialog-error")
|
||||
IC("dialog-information")
|
||||
IC("dialog-password")
|
||||
IC("dialog-question")
|
||||
IC("dialog-warning")
|
||||
IC("media-playlist-repeat")
|
||||
IC("media-playlist-shuffle")
|
||||
IC("network-cellular-3g")
|
||||
IC("network-cellular-4g")
|
||||
IC("network-cellular-edge")
|
||||
IC("network-cellular-gprs")
|
||||
IC("network-cellular-umts")
|
||||
IC("network-cellular-connected")
|
||||
IC("network-cellular-signal-excellent")
|
||||
IC("network-cellular-signal-good")
|
||||
IC("network-cellular-signal-none")
|
||||
IC("network-cellular-signal-ok")
|
||||
IC("network-cellular-signal-weak")
|
||||
IC("network-cellular-signal-acquiring")
|
||||
IC("network-error")
|
||||
IC("network-offline")
|
||||
IC("network-receive")
|
||||
IC("network-transmit-receive")
|
||||
IC("network-transmit")
|
||||
IC("network-idle")
|
||||
IC("network-vpn")
|
||||
IC("network-vpn-acquiring")
|
||||
IC("network-wireless-acquiring")
|
||||
IC("network-wireless-encrypted")
|
||||
IC("network-wireless-signal-excellent")
|
||||
IC("network-wireless-signal-good")
|
||||
IC("network-wireless-signal-none")
|
||||
IC("network-wireless-signal-ok")
|
||||
IC("network-wireless-signal-weak")
|
||||
IC("printer-error")
|
||||
IC("printer-printing")
|
||||
IC("printer-warning")
|
||||
IC("security-high")
|
||||
IC("security-medium")
|
||||
IC("security-low")
|
||||
IC("software-update-available")
|
||||
IC("software-update-urgent")
|
||||
IC("user-available")
|
||||
IC("user-away")
|
||||
IC("user-busy")
|
||||
IC("user-invisible")
|
||||
IC("user-idle")
|
||||
IC("user-offline")
|
||||
IC("weather-clear-night")
|
||||
IC("weather-clear")
|
||||
IC("weather-clouds-night")
|
||||
IC("weather-clouds")
|
||||
IC("weather-few-clouds-night")
|
||||
IC("weather-few-clouds")
|
||||
IC("weather-fog")
|
||||
IC("weather-overcast")
|
||||
IC("weather-severe-alert")
|
||||
IC("weather-showers-scattered")
|
||||
IC("weather-showers")
|
||||
IC("weather-snow")
|
||||
IC("weather-storm")
|
||||
IC("mail-attachment")
|
||||
IC("mail-unread")
|
||||
IC("mail-read")
|
||||
IC("starred")
|
||||
IC("non-starred")
|
||||
|
||||
CONTEXT("Categories")
|
||||
IC("applications-accessories")
|
||||
IC("applications-development")
|
||||
IC("applications-games")
|
||||
IC("applications-graphics")
|
||||
IC("applications-internet")
|
||||
IC("applications-multimedia")
|
||||
IC("applications-office")
|
||||
IC("applications-other")
|
||||
IC("applications-science")
|
||||
IC("applications-system")
|
||||
IC("applications-utilities")
|
||||
IC("preferences-desktop")
|
||||
IC("preferences-system")
|
||||
IC("preferences-other")
|
||||
|
||||
#undef CONTEXT
|
||||
#undef IC
|
||||
|
||||
elm_genlist_item_class_free(itc);
|
||||
elm_genlist_item_class_free(itc_g);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -186,9 +444,8 @@ _rdg_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Evas_Object *li = data;
|
||||
Evas_Object *size_rdg = evas_object_data_get(li, "size_rdg");
|
||||
|
||||
_standard_list_populate(li, elm_radio_value_get(size_rdg));
|
||||
elm_genlist_realized_items_update(li);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -257,11 +514,10 @@ test_icon_standard(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
elm_win_resize_object_add(win, box);
|
||||
evas_object_show(box);
|
||||
|
||||
li = elm_list_add(box);
|
||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
li = elm_genlist_add(box);
|
||||
evas_object_size_hint_expand_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(li, "selected", _list_selected_cb, NULL);
|
||||
_standard_list_populate(li, 0);
|
||||
evas_object_show(li);
|
||||
|
||||
// lookup order
|
||||
|
@ -357,7 +613,8 @@ test_icon_standard(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
evas_object_show(rd);
|
||||
evas_object_smart_callback_add(rd, "changed", _rdg_changed_cb, li);
|
||||
|
||||
// pack the list
|
||||
// populate and pack the list
|
||||
_standard_genlist_populate(li);
|
||||
elm_box_pack_end(box, li);
|
||||
|
||||
// live resize
|
||||
|
@ -398,6 +655,6 @@ test_icon_standard(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
evas_object_show(bt);
|
||||
|
||||
// show the win
|
||||
evas_object_resize(win, 300, 400);
|
||||
evas_object_resize(win, 300, 500);
|
||||
evas_object_show(win);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue