From: Davide A. <da...@gu...> - 2014-07-24 18:21:57
|
2014-07-23 21:52 GMT+02:00 Felipe Magno de Almeida < fe...@ex...>: > felipealmeida pushed a commit to branch master. > > > http://git.enlightenment.org/core/elementary.git/commit/?id=1857e0df0b29a19a6aea330c85ffed0482b58041 > > commit 1857e0df0b29a19a6aea330c85ffed0482b58041 > Author: Felipe Magno de Almeida <fe...@ex...> > Date: Wed Jul 23 16:51:01 2014 -0300 > > Fix C++ box_cxx_example_02.cc and removed text_part_{set/get} from > elm_button > > As discussed in IRC, the commit that added text_part_set, > text_part_get functions to elm_button are wrong. The correct functions > to be used are from elm_layout: text_set and text_get. > > Fixed the example to use these functions that are inherited on > elm_button from elm_layout and fixed the cleanup of childrens > in the parent window by using the del event callback. > --- > src/examples/box_cxx_example_02.cc | 44 +++++++++++++++++-------- > src/lib/elm_button.c | 20 ------------ > src/lib/elm_button.eo | 66 > -------------------------------------- > 3 files changed, 30 insertions(+), 100 deletions(-) > Hi, in the example you are using: Button.text_set("elm.text", "Add"); This is wrong, text_set() accept a single argument, the text to set, not the part name. The correct function for setting the text of a "secondary" text part is part_text_set, that accept 2 arguments: the part name and the text. I wonder how this can compile and work :/ Also the first line of the example is wrong (how to compile), thus I'm not able to compile the example to try it. Can you explain me how to compile and why you are passing the part_name argument to the function please? davemds > > diff --git a/src/examples/box_cxx_example_02.cc > b/src/examples/box_cxx_example_02.cc > index 1f57247..d51e4a8 100644 > --- a/src/examples/box_cxx_example_02.cc > +++ b/src/examples/box_cxx_example_02.cc > @@ -66,6 +66,22 @@ _test_box_transition_change(void *data) > } > } > > +struct clean_ref > +{ > + clean_ref(efl::eo::base base) > + : _ref(base._eo_ptr()) > + {} > + > + template <typename T> > + void operator()(T const&, Eo_Event_Description const&, void*) const > + { > + if(_ref) > + eo_unref(_ref); > + } > + > + Eo* _ref; > +}; > + > EAPI_MAIN int > elm_main(int argc, char *argv[]) > { > @@ -79,20 +95,19 @@ elm_main(int argc, char *argv[]) > win.autodel_set(true); > > elm_box bigbox ( efl::eo::parent = win ); > - ::eo_unref(bigbox._eo_ptr()); > bigbox.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); > win.resize_object_add(bigbox); > bigbox.visibility_set(true); > + win.event_del_callback_add(clean_ref(bigbox)); > > elm_box buttons ( efl::eo::parent = win ); > - ::eo_unref(buttons._eo_ptr()); > buttons.horizontal_set(EINA_TRUE); > bigbox.pack_end(buttons); > buttons.visibility_set(true); > + win.event_del_callback_add(clean_ref(buttons)); > > elm_button add ( efl::eo::parent = win ); > - ::eo_unref(add._eo_ptr()); > - add.text_set("Add"); > + add.text_set("elm.text", "Add"); > buttons.pack_end(add); > add.visibility_set(true); > add.event_clicked_callback_add > @@ -101,7 +116,7 @@ elm_main(int argc, char *argv[]) > if(efl::eina::optional<elm_box> box = tdata.box.lock()) > { > elm_button btn ( efl::eo::parent = *box ); > - btn.text_set("I do nothing"); > + btn.text_set("elm.text", "I do nothing"); > efl::eina::list<evas::object> childrens = box->children_get(); > if (!childrens.empty()) > { > @@ -112,20 +127,21 @@ elm_main(int argc, char *argv[]) > btn.visibility_set(true); > } > })); > + win.event_del_callback_add(clean_ref(add)); > > elm_button clear ( efl::eo::parent = win ); > - ::eo_unref(clear._eo_ptr()); > - clear.text_set("Clear"); > + clear.text_set("elm.text", "Clear"); > buttons.pack_end(clear); > clear.visibility_set(true); > clear.event_clicked_callback_add(std::bind([&tdata] { > tdata.box.lock()->clear(); })); > + win.event_del_callback_add(clean_ref(clear)); > > elm_box dynamic ( efl::eo::parent = win ); > - ::eo_unref(dynamic._eo_ptr()); > dynamic.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); > dynamic.size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL); > bigbox.pack_end(dynamic); > dynamic.visibility_set(true); > + win.event_del_callback_add(clean_ref(dynamic)); > > auto unpack = std::bind([&tdata] (evas::clickable_interface obj) > { > @@ -137,29 +153,29 @@ elm_main(int argc, char *argv[]) > ; > > elm_button bt1 ( efl::eo::parent = win ); > - ::eo_unref(bt1._eo_ptr()); > - bt1.text_set("Button 1"); > + bt1.text_set("elm.text", "Button 1"); > bt1.event_clicked_callback_add(unpack); > bt1.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); > bt1.size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL); > dynamic.pack_end(bt1); > bt1.visibility_set(true); > + win.event_del_callback_add(clean_ref(bt1)); > > elm_button bt2 ( efl::eo::parent = win ); > - ::eo_unref(bt2._eo_ptr()); > - bt2.text_set("Button 2"); > + bt2.text_set("elm.text", "Button 2"); > bt2.size_hint_weight_set(EVAS_HINT_EXPAND, 0.0); > bt2.size_hint_align_set(1.0, 0.5); > bt2.event_clicked_callback_add(unpack); > dynamic.pack_end(bt2); > bt2.visibility_set(true); > + win.event_del_callback_add(clean_ref(bt2)); > > elm_button bt3 ( efl::eo::parent = win ); > - ::eo_unref(bt3._eo_ptr()); > - bt3.text_set("Button 3"); > + bt3.text_set("elm.text", "Button 3"); > bt3.event_clicked_callback_add(unpack); > dynamic.pack_end(bt3); > bt3.visibility_set(true); > + win.event_del_callback_add(clean_ref(bt3)); > > tdata.box = dynamic; > tdata.last_layout = evas_object_box_layout_horizontal; > diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c > index 6db3487..d9376c08 100644 > --- a/src/lib/elm_button.c > +++ b/src/lib/elm_button.c > @@ -433,26 +433,6 @@ > _elm_button_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj > EINA_UNUSE > return &key_actions[0]; > } > > -EOLIAN const char* _elm_button_part_text_get(Eo* obj, Elm_Button_Data* pd > EINA_UNUSED, const char* part) > -{ > - return elm_object_part_text_get(obj, part); > -} > - > -EOLIAN void _elm_button_part_text_set(Eo* obj, Elm_Button_Data* pd > EINA_UNUSED, const char* part, const char* text) > -{ > - return elm_object_part_text_set(obj, part, text); > -} > - > -EOLIAN const char* _elm_button_text_get(Eo* obj, Elm_Button_Data* pd > EINA_UNUSED) > -{ > - return _elm_button_part_text_get(obj, pd, NULL); > -} > - > -EOLIAN void _elm_button_text_set(Eo* obj, Elm_Button_Data* pd > EINA_UNUSED, const char* text) > -{ > - return _elm_button_part_text_set(obj, pd, NULL, text); > -} > - > static void > _elm_button_class_constructor(Eo_Class *klass) > { > diff --git a/src/lib/elm_button.eo b/src/lib/elm_button.eo > index 1b40c2d..4e0d567 100644 > --- a/src/lib/elm_button.eo > +++ b/src/lib/elm_button.eo > @@ -96,72 +96,6 @@ class Elm_Button (Elm_Layout, Evas.Clickable_Interface, > } > } > } > - methods { > - part_text_set { > - /** > - * Set a text of an object > - * > - * @param obj The Elementary object > - * @param part The text part name to set (NULL for the default > part) > - * @param text The new text of the part > - * > - * @note Elementary objects may have many text parts (e.g. Action > Slider) > - * > - * @ingroup General > - */ > - params { > - @in const(char)* part; > - @in const(char)* text; > - } > - } > - part_text_get { > - /** > - * Get a text of an object > - * > - * @param obj The Elementary object > - * @param part The text part name to get (NULL for the default > part) > - * @return text of the part or NULL for any error > - * > - * @note Elementary objects may have many text parts (e.g. Action > Slider) > - * > - * @ingroup General > - */ > - params { > - @in const(char)* part; > - } > - return const(char)*; > - } > - text_set { > - /** > - * Set a text of an object > - * > - * @param obj The Elementary object > - * @param part The text part name to set (NULL for the default > part) > - * @param text The new text of the part > - * > - * @note Elementary objects may have many text parts (e.g. Action > Slider) > - * > - * @ingroup General > - */ > - params { > - @in const(char)* text; > - } > - } > - text_get { > - /** > - * Get a text of an object > - * > - * @param obj The Elementary object > - * @param part The text part name to get (NULL for the default > part) > - * @return text of the part or NULL for any error > - * > - * @note Elementary objects may have many text parts (e.g. Action > Slider) > - * > - * @ingroup General > - */ > - return const(char)*; > - } > - } > implements { > class.constructor; > Eo.Base.constructor; > > -- > > > |