implement icon in hoversel - clean up todo's a bit.
authorCarsten Haitzler <raster@rasterman.com>
Thu, 18 Dec 2008 02:01:36 +0000 (02:01 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 18 Dec 2008 02:01:36 +0000 (02:01 +0000)
SVN revision: 38202

src/lib/Elementary.h
src/lib/elc_hoversel.c

index bf26e43..926080f 100644 (file)
@@ -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
index d863121..d182519 100644 (file)
@@ -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
 }