Le 7 oct. 2015 21:11, "Davide Andreoli" <[email protected]> a écrit : > > 2015-10-04 16:02 GMT+02:00 Jee-Yong Um <[email protected]>: > > > cedric pushed a commit to branch master. > > > > > > http://git.enlightenment.org/core/elementary.git/commit/?id=49ec1ec570561a260b94eb98c1a73a217822ba8d > > > > commit 49ec1ec570561a260b94eb98c1a73a217822ba8d > > Author: Jee-Yong Um <[email protected]> > > Date: Sun Oct 4 15:09:22 2015 +0200 > > > > elm_hoversel: add elm_hoversel_label_auto_changed_set/get() API > > > > This new API name sound really bad to me. First of all the behaviour change > also the icon of the widget, thus the "label" in the name is wrong. > Secondly "auto changed" seem quite wrong english (but I'm not sure as > I'm not a native speaker) > > I suggest to change it to: elm_hoversel_auto_update_set/get() > ... or something else if you have a better idea.
Your suggestion is clearly better than current one. If no one purpose in the coming day, we should apply this change before any release. > > Summary: > > Hoversel can be used like dropdown or pulldown menu. > > In that case, changing hoversel label into selected item lable can be > > considered as common usage of hoversel. > > This API automatizes changing label. > > > > Reviewers: SanghyeonLee, Hermet, cedric > > > > Reviewed By: cedric > > > > Subscribers: cedric > > > > Differential Revision: https://phab.enlightenment.org/D2963 > > > > Signed-off-by: Cedric BAIL <[email protected]> > > --- > > src/bin/test_hoversel.c | 1 + > > src/lib/elc_hoversel.c | 37 +++++++++++++++++++++++++++++++++++++ > > src/lib/elm_hoversel.eo | 10 ++++++++++ > > src/lib/elm_widget_hoversel.h | 1 + > > 4 files changed, 49 insertions(+) > > > > diff --git a/src/bin/test_hoversel.c b/src/bin/test_hoversel.c > > index 87f9e55..e65efd9 100644 > > --- a/src/bin/test_hoversel.c > > +++ b/src/bin/test_hoversel.c > > @@ -182,6 +182,7 @@ test_hoversel(void *data EINA_UNUSED, Evas_Object *obj > > EINA_UNUSED, void *event_ > > > > hoversel = elm_hoversel_add(win); > > elm_hoversel_scrollable_set(hoversel, EINA_TRUE); > > + elm_hoversel_label_auto_changed_set(hoversel, EINA_TRUE); > > elm_hoversel_hover_parent_set(hoversel, win); > > elm_object_text_set(hoversel, "Some Icons"); > > elm_hoversel_item_add(hoversel, "Item 1", NULL, ELM_ICON_NONE, NULL, > > NULL); > > diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c > > index 5f7d0a8..6628bf5 100644 > > --- a/src/lib/elc_hoversel.c > > +++ b/src/lib/elc_hoversel.c > > @@ -110,8 +110,33 @@ _on_item_clicked(void *data EINA_UNUSED, > > Evas_Object *obj2 = WIDGET(item); > > Elm_Object_Item *eo_it = EO_OBJ(item); > > > > + ELM_HOVERSEL_DATA_GET(obj2, sd); > > + > > if (item->func) item->func((void *)WIDGET_ITEM_DATA_GET(eo_it), obj2, > > eo_it); > > eo_do(obj2, > > eo_event_callback_call(EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, eo_it)); > > + > > + if (sd->auto_changed) > > + { > > + Evas_Object *ic; > > + > > + ic = elm_object_part_content_unset(obj2, "icon"); > > + ELM_SAFE_FREE(ic, evas_object_del); > > + > > + if (item->icon_file) > > + { > > + ic = elm_icon_add(obj2); > > + elm_image_resizable_set(ic, EINA_FALSE, EINA_TRUE); > > + if (item->icon_type == ELM_ICON_FILE) > > + elm_image_file_set(ic, item->icon_file, item->icon_group); > > + else if (item->icon_type == ELM_ICON_STANDARD) > > + elm_icon_standard_set(ic, item->icon_file); > > + elm_object_part_content_set(obj2, "icon", ic); > > + } > > + > > + if(item->label) > > + elm_object_text_set(obj2, item->label); > > + } > > + > > elm_hoversel_hover_end(obj2); > > > > return EINA_TRUE; > > @@ -901,5 +926,17 @@ _elm_hoversel_scrollable_get(Eo *obj EINA_UNUSED, > > Elm_Hoversel_Data *sd) > > return sd->scroll_enabled; > > } > > > > +EOLIAN void > > +_elm_hoversel_label_auto_changed_set(Eo *obj EINA_UNUSED, > > Elm_Hoversel_Data *sd, Eina_Bool auto_changed) > > +{ > > + sd->auto_changed = !!auto_changed; > > +} > > + > > +EOLIAN Eina_Bool > > +_elm_hoversel_label_auto_changed_get(Eo *obj EINA_UNUSED, > > Elm_Hoversel_Data *sd) > > +{ > > + return sd->auto_changed; > > +} > > + > > #include "elm_hoversel_item.eo.c" > > #include "elm_hoversel.eo.c" > > diff --git a/src/lib/elm_hoversel.eo b/src/lib/elm_hoversel.eo > > index 878b454..ca24396 100644 > > --- a/src/lib/elm_hoversel.eo > > +++ b/src/lib/elm_hoversel.eo > > @@ -57,6 +57,16 @@ class Elm.Hoversel (Elm.Button, > > Evas.Selectable_Interface, > > scrollable: bool; [[$true if scrollable $false otherwise.]] > > } > > } > > + @property label_auto_changed { > > + [[Change the label of hoversel to that of selected item > > automatically.]] > > + get{ > > + } > > + set{ > > + } > > + values { > > + auto_changed: bool; [[$true if the label is changed > > automatically or $false otherwise]] > > + } > > + } > > hover_begin { > > [[This triggers the hoversel popup from code, the same as if the > > user had clicked the button.]] > > } > > diff --git a/src/lib/elm_widget_hoversel.h b/src/lib/elm_widget_hoversel.h > > index ff62512..2b97728 100644 > > --- a/src/lib/elm_widget_hoversel.h > > +++ b/src/lib/elm_widget_hoversel.h > > @@ -42,6 +42,7 @@ struct _Elm_Hoversel_Data > > Eina_Bool horizontal : 1; > > Eina_Bool expanded : 1; > > Eina_Bool scroll_enabled: 1; > > + Eina_Bool auto_changed : 1; > > }; > > > > typedef struct _Elm_Hoversel_Item_Data Elm_Hoversel_Item_Data; > > > > -- > > > > > > > ------------------------------------------------------------------------------ > Full-scale, agent-less Infrastructure Monitoring from a single dashboard > Integrate with 40+ ManageEngine ITSM Solutions for complete visibility > Physical-Virtual-Cloud Infrastructure monitoring from one console > Real user monitoring with APM Insights and performance trend reports > Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911&iu=/4140 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ Full-scale, agent-less Infrastructure Monitoring from a single dashboard Integrate with 40+ ManageEngine ITSM Solutions for complete visibility Physical-Virtual-Cloud Infrastructure monitoring from one console Real user monitoring with APM Insights and performance trend reports Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911&iu=/4140 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
