diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2018-11-12 18:57:24 +0200 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2018-11-15 10:59:41 +0200 |
commit | 9d0c93d2342b192fc4873331954da9cc34515844 (patch) | |
tree | a97ec94eb06e94b7751681a950b54ffe9d2b28ed | |
parent | 32ead1e63efc419cad67d93339e6f8e85963d018 (diff) | |
download | efl-9d0c93d2342b192fc4873331954da9cc34515844.tar.gz |
Ui text: WIP implement efl_part and part_text API to text_set
-rw-r--r-- | src/Makefile_Elementary.am | 1 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_text.c | 51 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_text.eo | 1 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_text_part.eo | 8 | ||||
-rw-r--r-- | src/lib/elementary/meson.build | 3 |
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 |