summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-06-04 17:25:36 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-06-04 23:21:23 +0300
commitfeb4aa9352d9a03c8c31dc01eefb913c6b206d4d (patch)
tree1e347d39aad59cff527ea7674c2287576d625eed
parente53b77d6ce9848bdb274b428c33e6848c8620443 (diff)
downloadefl-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.c2
-rw-r--r--src/lib/elementary/efl_ui_button_internal_part.eo2
-rw-r--r--src/lib/elementary/elm_layout.c2
-rw-r--r--src/lib/elementary/elm_layout_internal_part.eo3
-rw-r--r--src/lib/elementary/elm_part_helper.h33
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