multibuttonentry : fix box indicated item correctly in item_insert_before and item_in...
authorJEONGHYUN YUN <jh0506.yun@samsung.com>
Thu, 9 Mar 2017 07:11:33 +0000 (16:11 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 9 Mar 2017 07:11:34 +0000 (16:11 +0900)
Summary:
If user added item with item_insert_before and item_insert_after, item was not displayed.
For this reason, fixed box indicated item correctly from reference->button to VIEW(reference).
Additionally, remove the unused variable button in _Multibuttonentry_Item struct.

Reviewers: woohyun, CHAN, cedric, jpeg

Reviewed By: CHAN

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4708

src/bin/elementary/test_multibuttonentry.c
src/lib/elementary/elc_multibuttonentry.c
src/lib/elementary/elm_widget_multibuttonentry.h

index e9738f3..cea77e8 100644 (file)
@@ -184,6 +184,7 @@ _add_multibuttonentry(Evas_Object *parent)
    Evas_Object *scr = NULL;
    Evas_Object *mbe = NULL;
    Evas_Object *btn = NULL;
+   Elm_Object_Item *item = NULL;
    void *data = NULL;
 
    scr = elm_scroller_add(parent);
@@ -197,7 +198,10 @@ _add_multibuttonentry(Evas_Object *parent)
    evas_object_size_hint_weight_set(mbe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(mbe, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_object_content_set(scr, mbe);
-   elm_multibuttonentry_item_append(mbe, "mbe", _select_cb, NULL);
+   item = elm_multibuttonentry_item_append(mbe, "mbe3", _select_cb, NULL);
+   elm_multibuttonentry_item_prepend(mbe, "mbe1", _select_cb, NULL);
+   elm_multibuttonentry_item_insert_before(mbe, item, "mbe2", _select_cb, NULL);
+   elm_multibuttonentry_item_insert_after(mbe, item, "mbe4", _select_cb, NULL);
 
    // Add item verify callback to Multibuttonentry
    elm_multibuttonentry_item_filter_append(mbe, _item_filter_cb, data);
index 729fa41..29a4c1e 100644 (file)
@@ -891,7 +891,7 @@ _item_new(Elm_Multibuttonentry_Data *sd,
         else
           {
              if (efl_reference)
-               elm_box_pack_before(sd->box, VIEW(item), reference->button);
+               elm_box_pack_before(sd->box, VIEW(item), VIEW(reference));
              else
                {
                   if (sd->view_state == MULTIBUTTONENTRY_VIEW_GUIDETEXT)
@@ -919,7 +919,7 @@ _item_new(Elm_Multibuttonentry_Data *sd,
         else
           {
              if (efl_reference)
-               elm_box_pack_after(sd->box, VIEW(item), reference->button);
+               elm_box_pack_after(sd->box, VIEW(item), VIEW(reference));
              else
                {
                   if (sd->view_state == MULTIBUTTONENTRY_VIEW_GUIDETEXT)
index d996a43..87b90d6 100644 (file)
@@ -59,7 +59,6 @@ struct _Multibuttonentry_Item
 {
    Elm_Widget_Item_Data *base;
 
-   Evas_Object  *button;
    Evas_Coord    vw, rw; // vw: visual width, real width
    Eina_Bool     visible : 1;
    Evas_Smart_Cb func;