diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-04 17:25:36 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-04 23:21:23 +0300 |
commit | feb4aa9352d9a03c8c31dc01eefb913c6b206d4d (patch) | |
tree | 1e347d39aad59cff527ea7674c2287576d625eed | |
parent | e53b77d6ce9848bdb274b428c33e6848c8620443 (diff) | |
download | efl-feb4aa9352d9a03c8c31dc01eefb913c6b206d4d.tar.gz |
Elm layout: implement Efl.Text.text with efl_part
Also add default efl_text_set/get to efl_ui_button.
-rw-r--r-- | src/lib/elementary/efl_ui_button.c | 2 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_button_internal_part.eo | 2 | ||||
-rw-r--r-- | src/lib/elementary/elm_layout.c | 2 | ||||
-rw-r--r-- | src/lib/elementary/elm_layout_internal_part.eo | 3 | ||||
-rw-r--r-- | src/lib/elementary/elm_part_helper.h | 33 |
5 files changed, 34 insertions, 8 deletions
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index 5303386313..f8b68d51d6 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -445,7 +445,7 @@ _efl_ui_button_class_constructor(Efl_Class *klass) evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -EFL_TEXT_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data) +EFL_TEXT_PART_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data) /* Efl.Part begin */ diff --git a/src/lib/elementary/efl_ui_button_internal_part.eo b/src/lib/elementary/efl_ui_button_internal_part.eo index fde79c863d..ae23c954d6 100644 --- a/src/lib/elementary/efl_ui_button_internal_part.eo +++ b/src/lib/elementary/efl_ui_button_internal_part.eo @@ -1,4 +1,4 @@ -class Efl.Ui.Button.Internal.Part (Elm.Layout.Internal.Part) +class Efl.Ui.Button.Internal.Part (Elm.Layout.Internal.Part, Efl.Text) { [[Elementary button internal part class]] data: null; diff --git a/src/lib/elementary/elm_layout.c b/src/lib/elementary/elm_layout.c index d63b015305..957d8f608d 100644 --- a/src/lib/elementary/elm_layout.c +++ b/src/lib/elementary/elm_layout.c @@ -2354,6 +2354,8 @@ ELM_PART_IMPLEMENT_DESTRUCTOR(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm ELM_PART_IMPLEMENT_CONTENT_SET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_Part_Data) ELM_PART_IMPLEMENT_CONTENT_GET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_Part_Data) ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_Part_Data) +ELM_PART_IMPLEMENT_TEXT_SET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_Part_Data) +ELM_PART_IMPLEMENT_TEXT_GET(elm_layout, ELM_LAYOUT, Elm_Layout_Smart_Data, Elm_Part_Data) #include "elm_layout_internal_part.eo.c" /* Efl.Part end */ diff --git a/src/lib/elementary/elm_layout_internal_part.eo b/src/lib/elementary/elm_layout_internal_part.eo index 4ce15a3432..d790cd49f3 100644 --- a/src/lib/elementary/elm_layout_internal_part.eo +++ b/src/lib/elementary/elm_layout_internal_part.eo @@ -1,4 +1,4 @@ -class Elm.Layout.Internal.Part (Efl.Object, Efl.Container) +class Elm.Layout.Internal.Part (Efl.Object, Efl.Container, Efl.Text) { [[Elementary layout internal part class]] data: Elm_Part_Data; @@ -6,5 +6,6 @@ class Elm.Layout.Internal.Part (Efl.Object, Efl.Container) Efl.Object.destructor; Efl.Container.content { get; set; } Efl.Container.content_unset; + Efl.Text.text { set; get; } } } diff --git a/src/lib/elementary/elm_part_helper.h b/src/lib/elementary/elm_part_helper.h index 36c7888406..31f30f98aa 100644 --- a/src/lib/elementary/elm_part_helper.h +++ b/src/lib/elementary/elm_part_helper.h @@ -77,6 +77,21 @@ _ ## type ## _internal_part_efl_container_content_unset(Eo *obj, partdata *pd) \ ELM_PART_RETURN_VAL(_ ## type ## _content_unset(pd->obj, pd->sd, pd->part)); \ } +#define ELM_PART_IMPLEMENT_TEXT_SET(type, TYPE, typedata, partdata) \ +static EOLIAN void \ +_ ## type ## _internal_part_efl_text_text_set(Eo *obj EINA_UNUSED, partdata *pd, const char *text) \ +{ \ + _ ## type ## _text_set(pd->obj, pd->sd, pd->part, text); \ +} + +#define ELM_PART_IMPLEMENT_TEXT_GET(type, TYPE, typedata, partdata) \ +static EOLIAN const char * \ +_ ## type ## _internal_part_efl_text_text_get(Eo *obj, partdata *pd) \ +{ \ + ELM_PART_RETURN_VAL(_ ## type ## _text_get(pd->obj, pd->sd, pd->part)); \ +} + + // For widgets that inherit from something with parts (eg. from Elm.Layout) #define ELM_PART_OVERRIDE(type, TYPE, SUPER, typedata, partdata) \ static EOLIAN Efl_Object * \ @@ -125,17 +140,25 @@ _ ## type ## _internal_part_efl_container_content_unset(Eo *obj, void *_pd EINA_ ELM_PART_RETURN_VAL(_ ## type ## _content_unset(pd->obj, sd, pd->part)); \ } -#define EFL_TEXT_DEFAULT_IMPLEMENT(type, Type) \ +#define ELM_PART_OVERRIDE_TEXT_SET(type, TYPE, SUPER, typedata, partdata) \ +static EOLIAN void \ +_ ## type ## _internal_part_efl_text_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *text) \ +{ \ + partdata *pd = efl_data_scope_get(obj, SUPER ## _INTERNAL_PART_CLASS); \ + typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ + ELM_PART_RETURN_VAL(_ ## type ## _text_set(pd->obj, sd, pd->part, text)); \ +} + +#define EFL_TEXT_PART_DEFAULT_IMPLEMENT(type, Type) \ EOLIAN static void \ _ ## type ## _efl_text_text_set(Eo *obj, Type *pd EINA_UNUSED, const char *text) \ { \ - elm_layout_text_set(obj, NULL, text); \ + efl_text_set(efl_part(efl_super(obj, MY_CLASS), "elm.text"), text); \ } \ -\ EOLIAN static const char * \ -_ ## type ## _efl_text_text_get(Eo *obj, Efl_Ui_Button_Data *pd EINA_UNUSED) \ +_ ## type ## _efl_text_text_get(Eo *obj, Type *pd EINA_UNUSED) \ { \ - return elm_layout_text_get(obj, NULL); \ + return efl_text_get(efl_part(efl_super(obj, MY_CLASS), "elm.text")); \ } #endif |