summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2018-11-12 18:57:24 +0200
committerDaniel Hirt <hirt.danny@gmail.com>2018-11-15 10:59:41 +0200
commit9d0c93d2342b192fc4873331954da9cc34515844 (patch)
treea97ec94eb06e94b7751681a950b54ffe9d2b28ed
parent32ead1e63efc419cad67d93339e6f8e85963d018 (diff)
downloadefl-9d0c93d2342b192fc4873331954da9cc34515844.tar.gz
Ui text: WIP implement efl_part and part_text API to text_set
-rw-r--r--src/Makefile_Elementary.am1
-rw-r--r--src/lib/elementary/efl_ui_text.c51
-rw-r--r--src/lib/elementary/efl_ui_text.eo1
-rw-r--r--src/lib/elementary/efl_ui_text_part.eo8
-rw-r--r--src/lib/elementary/meson.build3
5 files changed, 57 insertions, 7 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 7c147f21fd..9c547d8584 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -127,6 +127,7 @@ elm_public_eolian_files = \
lib/elementary/efl_ui_tab_page.eo \
lib/elementary/efl_ui_tab_page_part_tab.eo \
lib/elementary/efl_ui_widget_focus_manager.eo \
+ lib/elementary/efl_ui_text_part.eo \
$(NULL)
# More public files -- FIXME
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 28eae39662..fa2833fdab 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -6,6 +6,7 @@
#define EFL_ACCESS_TEXT_PROTECTED
#define EFL_ACCESS_EDITABLE_TEXT_PROTECTED
#define ELM_LAYOUT_PROTECTED
+#define EFL_PART_PROTECTED
#include <Elementary.h>
#include <Elementary_Cursor.h>
@@ -15,6 +16,8 @@
#include "elm_widget_entry.h"
#include "efl_ui_text.eo.h"
#include "elm_hoversel.eo.h"
+#include "efl_ui_text_part.eo.h"
+#include "elm_part_helper.h"
typedef struct _Efl_Ui_Text_Data Efl_Ui_Text_Data;
typedef struct _Efl_Ui_Text_Rectangle Efl_Ui_Text_Rectangle;
@@ -3996,16 +3999,52 @@ _efl_ui_text_item_factory_get(const Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *pd)
return pd->item_factory;
}
-#if 0
/* Efl.Part begin */
-ELM_PART_OVERRIDE(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
-ELM_PART_OVERRIDE_CONTENT_SET(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
-ELM_PART_OVERRIDE_CONTENT_UNSET(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
-#include "elm_entry_part.eo.c"
+#define STRCMP(X, Y) strncmp((X), (Y), strlen(X))
+
+EOLIAN static Eina_Bool
+_efl_ui_text_text_set(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *pd,
+ const char *part, const char *text)
+{
+ if (!STRCMP("efl.text_guide", part))
+ {
+ efl_text_set(pd->text_guide_obj, text);
+ return EINA_TRUE;
+ }
+ else if (!STRCMP("efl.text", part))
+ {
+ efl_text_set(pd->text_obj, text);
+ return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
+EOLIAN static const char *
+_efl_ui_text_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *pd,
+ const char *part)
+{
+ if (!STRCMP("efl.text_guide", part))
+ {
+ return efl_text_get(pd->text_guide_obj);
+ }
+ else if (!STRCMP("efl.text", part))
+ {
+ return efl_text_get(pd->text_obj);
+ }
+
+ return NULL;
+}
+
+#undef STRCMP
+
+ELM_PART_OVERRIDE(efl_ui_text, EFL_UI_TEXT, Efl_Ui_Text_Data)
+ELM_PART_OVERRIDE_TEXT_SET(efl_ui_text, EFL_UI_TEXT, Efl_Ui_Text_Data)
+ELM_PART_OVERRIDE_TEXT_GET(efl_ui_text, EFL_UI_TEXT, Efl_Ui_Text_Data)
+#include "efl_ui_text_part.eo.c"
/* Efl.Part end */
-#endif
/* Internal EO APIs and hidden overrides */
diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo
index af47765f56..0e3cfaaf4a 100644
--- a/src/lib/elementary/efl_ui_text.eo
+++ b/src/lib/elementary/efl_ui_text.eo
@@ -364,6 +364,7 @@ class Efl.Ui.Text (Efl.Ui.Layout.Object, Efl.Ui.Clickable,
Efl.Access.Editable.Text.paste;
Efl.File.file { get; set; }
Efl.Text_Interactive.editable { set; }
+ Efl.Part.part_get;
}
events {
changed: void; [[Called when entry changes]]
diff --git a/src/lib/elementary/efl_ui_text_part.eo b/src/lib/elementary/efl_ui_text_part.eo
new file mode 100644
index 0000000000..112733068e
--- /dev/null
+++ b/src/lib/elementary/efl_ui_text_part.eo
@@ -0,0 +1,8 @@
+class Efl.Ui.Text_Part (Efl.Ui.Layout.Part_Text)
+{
+ [[Efl UI Text internal part class]]
+ data: null;
+ implements {
+ Efl.Text.text { set; get; }
+ }
+}
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index 64071a5d18..f66184e770 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -273,7 +273,8 @@ pub_eo_files = [
'elm_view_list.eo',
'elm_view_form.eo',
'elm_web.eo',
- 'elm_widget_item.eo'
+ 'elm_widget_item.eo',
+ 'efl_ui_text_part.eo'
]
foreach eo_file : pub_eo_files