summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile_Elementary.am1
-rw-r--r--src/bin/elementary/test_popup.c6
-rw-r--r--src/lib/elementary/efl_ui_popup_alert.c77
-rw-r--r--src/lib/elementary/efl_ui_popup_alert.eo12
-rw-r--r--src/lib/elementary/efl_ui_popup_alert_part.eo10
5 files changed, 76 insertions, 30 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index f62e9f2d9d..b6602554c2 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -35,6 +35,7 @@ elm_public_eolian_files = \
35 lib/elementary/efl_ui_text.eo \ 35 lib/elementary/efl_ui_text.eo \
36 lib/elementary/efl_ui_popup.eo \ 36 lib/elementary/efl_ui_popup.eo \
37 lib/elementary/efl_ui_popup_alert.eo \ 37 lib/elementary/efl_ui_popup_alert.eo \
38 lib/elementary/efl_ui_popup_alert_part.eo \
38 lib/elementary/efl_ui_popup_alert_scroll.eo \ 39 lib/elementary/efl_ui_popup_alert_scroll.eo \
39 lib/elementary/efl_ui_popup_alert_scroll_part.eo \ 40 lib/elementary/efl_ui_popup_alert_scroll_part.eo \
40 lib/elementary/efl_ui_popup_alert_text.eo \ 41 lib/elementary/efl_ui_popup_alert_text.eo \
diff --git a/src/bin/elementary/test_popup.c b/src/bin/elementary/test_popup.c
index 1f85961f8a..4975a0f6f1 100644
--- a/src/bin/elementary/test_popup.c
+++ b/src/bin/elementary/test_popup.c
@@ -1136,7 +1136,7 @@ test_efl_ui_popup_alert(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo
1136 1136
1137 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_CLASS, win); 1137 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_CLASS, win);
1138 1138
1139 efl_ui_popup_alert_title_set(efl_ui_popup, "title"); 1139 efl_text_set(efl_part(efl_ui_popup, "title"), "title");
1140 1140
1141 evas_object_resize(efl_ui_popup, 160, 160); 1141 evas_object_resize(efl_ui_popup, 160, 160);
1142 evas_object_show(efl_ui_popup); 1142 evas_object_show(efl_ui_popup);
@@ -1168,7 +1168,7 @@ test_efl_ui_popup_alert_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNU
1168 1168
1169 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_SCROLL_CLASS, win); 1169 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_SCROLL_CLASS, win);
1170 1170
1171 efl_ui_popup_alert_title_set(efl_ui_popup, "title"); 1171 efl_text_set(efl_part(efl_ui_popup, "title"), "title");
1172 1172
1173 evas_object_resize(efl_ui_popup, 160, 160); 1173 evas_object_resize(efl_ui_popup, 160, 160);
1174 evas_object_show(efl_ui_popup); 1174 evas_object_show(efl_ui_popup);
@@ -1203,7 +1203,7 @@ test_efl_ui_popup_alert_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE
1203 1203
1204 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win); 1204 Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
1205 1205
1206 efl_ui_popup_alert_title_set(efl_ui_popup, "title"); 1206 efl_text_set(efl_part(efl_ui_popup, "title"), "title");
1207 1207
1208 evas_object_resize(efl_ui_popup, 160, 160); 1208 evas_object_resize(efl_ui_popup, 160, 160);
1209 evas_object_show(efl_ui_popup); 1209 evas_object_show(efl_ui_popup);
diff --git a/src/lib/elementary/efl_ui_popup_alert.c b/src/lib/elementary/efl_ui_popup_alert.c
index 6c7a9a57a1..2b38d34ba3 100644
--- a/src/lib/elementary/efl_ui_popup_alert.c
+++ b/src/lib/elementary/efl_ui_popup_alert.c
@@ -6,6 +6,8 @@
6 6
7#include "elm_priv.h" 7#include "elm_priv.h"
8#include "efl_ui_popup_alert_private.h" 8#include "efl_ui_popup_alert_private.h"
9#include "efl_ui_popup_alert_part.eo.h"
10#include "elm_part_helper.h"
9 11
10#define MY_CLASS EFL_UI_POPUP_ALERT_CLASS 12#define MY_CLASS EFL_UI_POPUP_ALERT_CLASS
11#define MY_CLASS_NAME "Efl.Ui.Popup.Alert" 13#define MY_CLASS_NAME "Efl.Ui.Popup.Alert"
@@ -27,30 +29,61 @@ _efl_ui_popup_alert_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Data *pd
27 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 29 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
28} 30}
29 31
30EOLIAN static void 32static Eina_Bool
31_efl_ui_popup_alert_title_set(Eo *obj, Efl_Ui_Popup_Alert_Data *pd, const char *text) 33_efl_ui_popup_alert_text_set(Eo *obj, Efl_Ui_Popup_Alert_Data *pd, const char *part, const char *label)
32{ 34{
33 if (pd->title_text) 35 if (part && !strcmp(part, "title"))
34 { 36 {
35 eina_stringshare_del(pd->title_text); 37 if (pd->title_text)
36 pd->title_text = NULL; 38 {
39 eina_stringshare_del(pd->title_text);
40 pd->title_text = NULL;
41 }
42
43 pd->title_text = eina_stringshare_add(label);
44 elm_object_part_text_set(obj, "elm.text.title", label);
45 elm_layout_signal_emit(obj, "elm,title,show", "elm");
46
47 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
48 edje_object_message_signal_process(wd->resize_obj);
49 elm_layout_sizing_eval(obj);
37 } 50 }
51 else
52 efl_text_set(efl_part(efl_super(obj, MY_CLASS), part), label);
38 53
39 pd->title_text = eina_stringshare_add(text); 54 return EINA_TRUE;
40 elm_object_part_text_set(obj, "elm.text.title", text); 55}
41 elm_layout_signal_emit(obj, "elm,title,show", "elm");
42 56
43 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); 57const char *
44 edje_object_message_signal_process(wd->resize_obj); 58_efl_ui_popup_alert_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Popup_Alert_Data *pd, const char *part)
45 elm_layout_sizing_eval(obj); 59{
60 if (part && !strcmp(part, "title"))
61 {
62 if (pd->title_text)
63 return pd->title_text;
64
65 return NULL;
66 }
67
68 return efl_text_get(efl_part(efl_super(obj, MY_CLASS), part));
46} 69}
47 70
48EOLIAN static const char * 71static Eina_Bool
49_efl_ui_popup_alert_title_get(Eo *obj EINA_UNUSED, Efl_Ui_Popup_Alert_Data *pd) 72_efl_ui_popup_alert_content_set(Eo *obj, Efl_Ui_Popup_Alert_Data *pd EINA_UNUSED, const char *part, Evas_Object *content)
50{ 73{
51 if (pd->title_text) 74 return efl_content_set(efl_part(efl_super(obj, MY_CLASS), part), content);
52 return pd->title_text; 75}
53 return NULL; 76
77Evas_Object *
78_efl_ui_popup_alert_content_get(Eo *obj, Efl_Ui_Popup_Alert_Data *pd EINA_UNUSED, const char *part)
79{
80 return efl_content_get(efl_part(efl_super(obj, MY_CLASS), part));
81}
82
83static Evas_Object *
84_efl_ui_popup_alert_content_unset(Eo *obj, Efl_Ui_Popup_Alert_Data *pd EINA_UNUSED, const char *part)
85{
86 return efl_content_unset(efl_part(efl_super(obj, MY_CLASS), part));
54} 87}
55 88
56static void 89static void
@@ -211,6 +244,18 @@ _efl_ui_popup_alert_class_constructor(Efl_Class *klass)
211 evas_smart_legacy_type_register(MY_CLASS_NAME, klass); 244 evas_smart_legacy_type_register(MY_CLASS_NAME, klass);
212} 245}
213 246
247/* Efl.Part begin */
248
249ELM_PART_OVERRIDE(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
250ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
251ELM_PART_OVERRIDE_CONTENT_GET(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
252ELM_PART_OVERRIDE_CONTENT_UNSET(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
253ELM_PART_OVERRIDE_TEXT_SET(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
254ELM_PART_OVERRIDE_TEXT_GET(efl_ui_popup_alert, EFL_UI_POPUP_ALERT, Efl_Ui_Popup_Alert_Data)
255#include "efl_ui_popup_alert_part.eo.c"
256
257/* Efl.Part end */
258
214#define EFL_UI_POPUP_ALERT_EXTRA_OPS \ 259#define EFL_UI_POPUP_ALERT_EXTRA_OPS \
215 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_popup_alert), \ 260 EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_popup_alert), \
216 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_popup_alert) 261 ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_popup_alert)
diff --git a/src/lib/elementary/efl_ui_popup_alert.eo b/src/lib/elementary/efl_ui_popup_alert.eo
index 8ac37993a7..27c9cc3828 100644
--- a/src/lib/elementary/efl_ui_popup_alert.eo
+++ b/src/lib/elementary/efl_ui_popup_alert.eo
@@ -8,17 +8,6 @@ enum Efl.Ui.Popup.Alert.Button {
8class Efl.Ui.Popup.Alert(Efl.Ui.Popup) 8class Efl.Ui.Popup.Alert(Efl.Ui.Popup)
9{ 9{
10 methods { 10 methods {
11 @property title {
12 set {
13 [[Set the title of popup.]]
14 }
15 get {
16 [[Get the title of popup.]]
17 }
18 values {
19 text: string;
20 }
21 }
22 @property button { 11 @property button {
23 set { 12 set {
24 [[Set popup buttons.]] 13 [[Set popup buttons.]]
@@ -33,6 +22,7 @@ class Efl.Ui.Popup.Alert(Efl.Ui.Popup)
33 } 22 }
34 implements { 23 implements {
35 class.constructor; 24 class.constructor;
25 Efl.Part.part;
36 } 26 }
37 events { 27 events {
38 clicked; 28 clicked;
diff --git a/src/lib/elementary/efl_ui_popup_alert_part.eo b/src/lib/elementary/efl_ui_popup_alert_part.eo
new file mode 100644
index 0000000000..3fc255d602
--- /dev/null
+++ b/src/lib/elementary/efl_ui_popup_alert_part.eo
@@ -0,0 +1,10 @@
1class Efl.Ui.Popup.Alert.Part (Efl.Ui.Layout.Part_Content, Efl.Ui.Layout.Part_Text)
2{
3 [[Efl UI Popup Alert internal part class]]
4 data: null;
5 implements {
6 Efl.Container.content { get; set; }
7 Efl.Container.content_unset;
8 Efl.Text.text { get; set; }
9 }
10}