From 6b64481c1db17f57f7eac99436bade60e02ee434 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 18 Dec 2008 02:01:36 +0000 Subject: [PATCH] implement icon in hoversel - clean up todo's a bit. SVN revision: 38202 --- src/lib/Elementary.h | 41 ++++++++++++++++++++--------------------- src/lib/elc_hoversel.c | 15 ++++++++++++--- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/lib/Elementary.h b/src/lib/Elementary.h index bf26e43..926080f 100644 --- a/src/lib/Elementary.h +++ b/src/lib/Elementary.h @@ -334,46 +334,45 @@ extern "C" { //// (bugs - high priority) // * scale change for hover doesnt seem to do new size alloc nicely // * left/right arrow broken with password mode for entry + utf8 chars... -// * edje entry selections broke // * entry signal "changed" not called when deleting // * bubble doesnt handle child size changes right // //// (incomplete - medium priority) -// * buttons need a "bigbutton" option +// * entry selection conflicts with finger scroll (make selection start/stop work on signals?) +// * add test for photo widget +// * add test for hoversel // * disabled not supported // * tab widget focusing (not useful for touchscreen tho...) // * on the fly theme changes - test (should work) -// * entry selection conflicts with finger scroll (make selection start/stop work on signals?) // * need a hold-scroll counter in elm_widget // * add fullscreen mode on/off for windows -// * add test for photo widget // //// (more widgets/features - medium priority) -// * need multi-sel (with button + hover + ...) -// * toolbar widget (edje + box + button + separators) -// * in-window dialog container widget -// * listitem widget (simple label + icon) -// * page widget (for pushing/popping pages and going back and forward and flipping) +// * biglist widget (restricted format label + icon intended for massive lists) +// * listitem widget (can contain anything) +// * treeview widget (like biglist - but items can expand to sub-items) // * radio widget + group handling // * checkbox widget (like toggle) -// * need separator widget (h/v) -// * need slide-open "panel" that can hold stuff and optionally scroll -// * need calendar widget (select date) -// * need slider widget -// * need range selector (select range of values from X to Y over an interval) -// * need "dialogbutton" widget (bigger button for bottom of wins) -// * need dialog window widget -// * need a phone-number widget (hilight country dial prefixes, add flags, -// photos of contacts that match etc.) -// * need imageview widget (for large not iconic images) +// * page widget (for pushing/popping pages and going back and forward and flipping) +// * slider widget +// +// * toolbar widget (edje + box + button + separators) +// * in-window dialog container widget +// * separator widget (h/v) +// * slide-open "panel" that can hold stuff and optionally scroll +// * calendar widget (select date) +// * range selector (select range of values from X to Y over an interval) +// * "dialogbutton" widget (bigger button for bottom of wins) +// * dialog window widget +// * phone-number widget (hilight country dial prefixes, add flags, photos of contacts that match etc.) +// * imageview widget (for large not iconic images) // * tiled image + zoom widget (tiled map viewer) // * dialpad widget - need one with a phone dialpad // //// (improvements - low priority) // * return list of toplevel window objects // * widgets should show who is focused (not useful for touchscreen) -// * scroller could do with page up/down/left/right buttons and and idea of -// a page size +// * scroller could do with page up/down/left/right buttons and and idea of a page size // * current sizing tree inefficient // * need a way to filter entry data for entry (eg for phone numbers) // * win should emit signals based on vkbd type - if it gets a message and is a vkbd win diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c index d863121..d182519 100644 --- a/src/lib/elc_hoversel.c +++ b/src/lib/elc_hoversel.c @@ -96,8 +96,17 @@ _button_clicked(void *data, Evas_Object *obj, void *event_info) bt = elm_button_add(wd->hover); elm_button_style_set(bt, "hoversel_vertical_entry"); elm_button_label_set(bt, it->label); -// FIXME: add icon -// elm_button_icon_set(bt, it->icon_file); + if (it->icon_file) + { + ic = elm_icon_add(data); + elm_icon_scale_set(ic, 0, 1); + if (it->icon_type == ELM_ICON_FILE) + elm_icon_file_set(ic, it->icon_file, NULL); + else if (it->icon_type == ELM_ICON_STANDARD) + elm_icon_standard_set(ic, it->icon_file); + elm_button_icon_set(bt, ic); + evas_object_show(ic); + } evas_object_size_hint_weight_set(bt, 1.0, 0.0); evas_object_size_hint_align_set(bt, -1.0, -1.0); elm_box_pack_end(bx, bt); @@ -199,9 +208,9 @@ elm_hoversel_item_del(Elm_Hoversel_Item *item) { Item *it = (Item *)item; Widget_Data *wd = elm_widget_data_get(it->obj); + elm_hoversel_hover_end(it->obj); wd->items = eina_list_remove(wd->items, it); eina_stringshare_del(it->label); eina_stringshare_del(it->icon_file); free(it); - // FIXME: if hover up - this will be bad and break } -- 2.7.4