aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaehyun Cho <jae_hyun.cho@samsung.com>2017-10-30 20:03:01 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2017-11-21 14:01:48 +0900
commit35486bd3d934acbe76e8250bca71fee24f2453db (patch)
tree31871e5011110d7347331f4bf6d624d93fd6fc2b
parenttest_popup: modify Efl.Ui.Popup Sample Code (diff)
downloadefl-35486bd3d934acbe76e8250bca71fee24f2453db.tar.gz
test_ui_popup: Move code for Efl.Ui.Popup classes from test_popup
Code refactoring to replace legacy APIs and move test code for Efl.Ui.Popup and its sub classes from test_popup to test_ui_popup.
-rw-r--r--src/Makefile_Elementary.am1
-rw-r--r--src/bin/elementary/Makefile.am1
-rw-r--r--src/bin/elementary/test.c20
-rw-r--r--src/bin/elementary/test_popup.c585
-rw-r--r--src/bin/elementary/test_ui_popup.c529
5 files changed, 541 insertions, 595 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 370bb55bf2..39b04c0cc8 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -926,6 +926,7 @@ bin/elementary/test_transit_bezier.c \
bin/elementary/test_ui_box.c \
bin/elementary/test_ui_clock.c \
bin/elementary/test_ui_grid.c \
+bin/elementary/test_ui_popup.c \
bin/elementary/test_ui_textpath.c \
bin/elementary/test_video.c \
bin/elementary/test_weather.c \
diff --git a/src/bin/elementary/Makefile.am b/src/bin/elementary/Makefile.am
index df71027a38..559018aba2 100644
--- a/src/bin/elementary/Makefile.am
+++ b/src/bin/elementary/Makefile.am
@@ -138,6 +138,7 @@ test_tooltip.c \
test_transit.c \
test_transit_bezier.c \
test_ui_clock.c \
+test_ui_popup.c \
test_video.c \
test_weather.c \
test_web.c \
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index f7dc6fa46d..2c9786cea8 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -274,11 +274,11 @@ void test_naviframe_complex(void *data, Evas_Object *obj, void *event_info);
void test_datetime(void *data, Evas_Object *obj, void *event_info);
void test_ui_clock(void *data, Evas_Object *obj, void *event_info);
void test_popup(void *data, Evas_Object *obj, void *event_info);
-void test_efl_ui_popup(void *data, Evas_Object *obj, void *event_info);
-void test_efl_ui_popup_alert(void *data, Evas_Object *obj, void *event_info);
-void test_efl_ui_popup_alert_scroll(void *data, Evas_Object *obj, void *event_info);
-void test_efl_ui_popup_alert_text(void *data, Evas_Object *obj, void *event_info);
-void test_efl_ui_popup_anchor(void *data, Evas_Object *obj, void *event_info);
+void test_ui_popup(void *data, Evas_Object *obj, void *event_info);
+void test_ui_popup_alert(void *data, Evas_Object *obj, void *event_info);
+void test_ui_popup_alert_scroll(void *data, Evas_Object *obj, void *event_info);
+void test_ui_popup_alert_text(void *data, Evas_Object *obj, void *event_info);
+void test_ui_popup_anchor(void *data, Evas_Object *obj, void *event_info);
void test_dayselector(void *data, Evas_Object *obj, void *event_info);
void test_image(void *data, Evas_Object *obj, void *event_info);
void test_image_scale_type(void *data, Evas_Object *obj, void *event_info);
@@ -1011,11 +1011,11 @@ add_tests:
ADD_TEST(NULL, "Popups", "Tooltip 3", test_tooltip3);
ADD_TEST(NULL, "Popups", "Tooltip 4", test_tooltip4);
ADD_TEST(NULL, "Popups", "Popup", test_popup);
- ADD_TEST(NULL, "Popups", "Efl UI Popup", test_efl_ui_popup);
- ADD_TEST(NULL, "Popups", "Efl UI Popup Alert", test_efl_ui_popup_alert);
- ADD_TEST(NULL, "Popups", "Efl UI Popup Alert Scroll", test_efl_ui_popup_alert_scroll);
- ADD_TEST(NULL, "Popups", "Efl UI Popup Alert Text", test_efl_ui_popup_alert_text);
- ADD_TEST(NULL, "Popups", "Efl UI Popup Anchor", test_efl_ui_popup_anchor);
+ ADD_TEST(NULL, "Popups", "UI.Popup", test_ui_popup);
+ ADD_TEST(NULL, "Popups", "UI.Popup.Alert", test_ui_popup_alert);
+ ADD_TEST(NULL, "Popups", "UI.Popup.Alert.Scroll", test_ui_popup_alert_scroll);
+ ADD_TEST(NULL, "Popups", "UI.Popup.Alert.Text", test_ui_popup_alert_text);
+ ADD_TEST(NULL, "Popups", "UI.Popup.Anchor", test_ui_popup_anchor);
//------------------------------//
ADD_TEST(NULL, "Times & Dates", "Calendar", test_calendar);
diff --git a/src/bin/elementary/test_popup.c b/src/bin/elementary/test_popup.c
index 3a16718571..da9bbca934 100644
--- a/src/bin/elementary/test_popup.c
+++ b/src/bin/elementary/test_popup.c
@@ -2,7 +2,6 @@
# include "elementary_config.h"
#endif
-#define EFL_UI_POPUP_ANCHOR_BETA
#include <Elementary.h>
#define POPUP_POINT_MAX 8
@@ -940,587 +939,3 @@ test_popup(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
evas_object_resize(win, 480, 400);
evas_object_show(win);
}
-
-typedef struct
-{
- Evas_Object *win;
- Evas_Object *panel_win;
- Evas_Object *efl_ui_popup;
- Evas_Object *button;
-} efl_ui_popup_data;
-
-static void
-_bg_clicked(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- printf("Popup's background is clicked.\n");
-}
-
-static void
-_timeout_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- p_data->efl_ui_popup = NULL;
- printf("Popup times out and it is deleted.\n");
-}
-
-static void
-_delete_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (p_data->efl_ui_popup)
- {
- evas_object_del(p_data->efl_ui_popup);
- p_data->efl_ui_popup = NULL;
- return;
- }
- printf("Efl.Ui.Popup is not exist.\n");
-}
-
-static Evas_Object*
-_create_popup(efl_ui_popup_data *p_data)
-{
- if (!p_data->win) return NULL;
- if (p_data->efl_ui_popup)
- {
- printf("Efl.Ui.Popup is already created.\n");
- evas_object_show(p_data->efl_ui_popup);
- return p_data->efl_ui_popup;
- }
-
- Evas_Object *efl_ui_popup = efl_add(EFL_UI_POPUP_CLASS, p_data->win);
-
- evas_object_smart_callback_add(efl_ui_popup, "bg,clicked", _bg_clicked, NULL);
- efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_EVENT_TIMEOUT, _timeout_cb, p_data);
- evas_object_resize(efl_ui_popup, 160, 160);
- evas_object_show(efl_ui_popup);
-
- Evas_Object *btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Efl.Ui.Popup");
- evas_object_show(btn);
-
- efl_content_set(efl_ui_popup, btn);
-
- return efl_ui_popup;
-}
-
-static void
-_create_cb(void *data, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- p_data->efl_ui_popup = _create_popup(p_data);
-}
-
-static void
-_bg_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- static int k = 0;
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- if (k == 0)
- {
- char buf[PATH_MAX];
- snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
- efl_ui_popup_bg_set(p_data->efl_ui_popup, buf, NULL);
- elm_object_text_set(obj, "Bg UnSet");
- }
- else
- {
- efl_ui_popup_bg_set(p_data->efl_ui_popup, NULL, NULL);
- elm_object_text_set(obj, "Bg Set");
- }
- k = !k;
-}
-
-static void
-_repeat_event_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- if (!efl_ui_popup_bg_repeat_events_get(p_data->efl_ui_popup))
- {
- efl_ui_popup_bg_repeat_events_set(p_data->efl_ui_popup, EINA_TRUE);
- elm_object_text_set(obj, "Repeat Event UnSet");
- }
- else
- {
- efl_ui_popup_bg_repeat_events_set(p_data->efl_ui_popup, EINA_FALSE);
- elm_object_text_set(obj, "Repeat Event Set");
- }
-}
-
-static void
-_repeat_test_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- printf("Repeat Test Button is Clicked.\n");
-}
-
-static void
-_dummy_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- if (!evas_object_visible_get(p_data->button))
- {
- evas_object_show(p_data->button);
- elm_object_text_set(obj, "Hide Dummy Button");
- }
- else
- {
- evas_object_hide(p_data->button);
- elm_object_text_set(obj, "Show Dummy Button");
- }
-}
-
-static void
-_center_align_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_CENTER);
-}
-
-static void
-_left_align_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_LEFT);
-}
-
-static void
-_right_align_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_RIGHT);
-}
-
-static void
-_top_align_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_TOP);
-}
-
-static void
-_bottom_align_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_BOTTOM);
-}
-
-static void
-_position_set_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- evas_object_move(p_data->efl_ui_popup, 0, 0);
-}
-
-static void
-_timeout_set_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- if (!p_data->efl_ui_popup) return;
- efl_ui_popup_timeout_set(p_data->efl_ui_popup, 3);
- printf("timemout is set to 3 seconds\n");
-}
-
-static void
-_win_del(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- evas_object_del(p_data->panel_win);
- free(p_data);
- printf("window is deleted\n");
-}
-
-static void
-_panel_win_del(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = data;
- evas_object_del(p_data->win);
- free(p_data);
- printf("window is deleted\n");
-}
-
-void
-test_efl_ui_popup(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = (efl_ui_popup_data*)calloc(1, sizeof(efl_ui_popup_data));
-
- Evas_Object *win, *panel_win;
-
- win = elm_win_util_standard_add("Efl UI Popup", "Efl UI Popup");
- elm_win_autodel_set(win, EINA_TRUE);
- evas_object_smart_callback_add(win, "delete,request", _win_del, p_data);
-
- evas_object_resize(win, 500, 500);
- evas_object_show(win);
-
- panel_win = elm_win_util_standard_add("Efl UI Popup Panel", "Efl UI Popup Panel");
- elm_win_autodel_set(panel_win, EINA_TRUE);
- evas_object_smart_callback_add(panel_win, "delete,request", _panel_win_del, p_data);
-
- evas_object_resize(panel_win, 300, 500);
- evas_object_show(panel_win);
-
- Evas_Object *repeat_test_btn;
- repeat_test_btn = elm_button_add(win);
- evas_object_move(repeat_test_btn, 0, 0);
- evas_object_resize(repeat_test_btn, 100, 100);
- elm_object_text_set(repeat_test_btn, "Repeat Event Test");
- evas_object_smart_callback_add(repeat_test_btn, "clicked", _repeat_test_cb, NULL);
- evas_object_hide(repeat_test_btn);
-
- p_data->win = win;
- p_data->panel_win = panel_win;
- p_data->button = repeat_test_btn;
- p_data->efl_ui_popup = _create_popup(p_data);
-
- Evas_Object *create_btn;
- create_btn = elm_button_add(panel_win);
- elm_object_text_set(create_btn, "Create Popup");
- evas_object_move(create_btn, 0, 0);
- evas_object_resize(create_btn, 150, 50);
- evas_object_show(create_btn);
- evas_object_smart_callback_add(create_btn, "clicked", _create_cb, p_data);
-
- Evas_Object *delete_btn;
- delete_btn = elm_button_add(panel_win);
- elm_object_text_set(delete_btn, "Delete Popup");
- evas_object_move(delete_btn, 150, 0);
- evas_object_resize(delete_btn, 150, 50);
- evas_object_show(delete_btn);
- evas_object_smart_callback_add(delete_btn, "clicked", _delete_cb, p_data);
-
- Evas_Object *repeat_event_btn;
- repeat_event_btn = elm_button_add(panel_win);
- elm_object_text_set(repeat_event_btn, "Repeat Event Set");
- evas_object_move(repeat_event_btn, 0, 50);
- evas_object_resize(repeat_event_btn, 150, 50);
- evas_object_show(repeat_event_btn);
- evas_object_smart_callback_add(repeat_event_btn, "clicked", _repeat_event_cb, p_data);
-
- Evas_Object *dummy_btn;
- dummy_btn = elm_button_add(panel_win);
- elm_object_text_set(dummy_btn, "Show Dummy Button");
- evas_object_move(dummy_btn, 150, 50);
- evas_object_resize(dummy_btn, 150, 50);
- evas_object_show(dummy_btn);
- evas_object_smart_callback_add(dummy_btn, "clicked", _dummy_cb, p_data);
-
- Evas_Object *bg_btn;
- bg_btn = elm_button_add(panel_win);
- evas_object_move(bg_btn, 0, 100);
- evas_object_resize(bg_btn, 150, 50);
- elm_object_text_set(bg_btn, "Bg Set");
- evas_object_show(bg_btn);
- evas_object_smart_callback_add(bg_btn, "clicked", _bg_cb, p_data);
-
- Evas_Object *timeout_btn;
- timeout_btn = elm_button_add(panel_win);
- elm_object_text_set(timeout_btn, "Timeout Set");
- evas_object_move(timeout_btn, 150, 100);
- evas_object_resize(timeout_btn, 150, 50);
- evas_object_show(timeout_btn);
- evas_object_smart_callback_add(timeout_btn, "clicked", _timeout_set_cb, p_data);
-
- Evas_Object *center_btn;
- center_btn = elm_button_add(panel_win);
- elm_object_text_set(center_btn, "Center Align");
- evas_object_move(center_btn, 0, 150);
- evas_object_resize(center_btn, 150, 50);
- evas_object_show(center_btn);
- evas_object_smart_callback_add(center_btn, "clicked", _center_align_cb, p_data);
-
- Evas_Object *top_btn;
- top_btn = elm_button_add(panel_win);
- elm_object_text_set(top_btn, "Top Align");
- evas_object_move(top_btn, 150, 150);
- evas_object_resize(top_btn, 150, 50);
- evas_object_show(top_btn);
- evas_object_smart_callback_add(top_btn, "clicked", _top_align_cb, p_data);
-
- Evas_Object *left_btn;
- left_btn = elm_button_add(panel_win);
- elm_object_text_set(left_btn, "Left Align");
- evas_object_move(left_btn, 0, 200);
- evas_object_resize(left_btn, 150, 50);
- evas_object_show(left_btn);
- evas_object_smart_callback_add(left_btn, "clicked", _left_align_cb, p_data);
-
- Evas_Object *right_btn;
- right_btn = elm_button_add(panel_win);
- elm_object_text_set(right_btn, "Right Align");
- evas_object_move(right_btn, 150, 200);
- evas_object_resize(right_btn, 150, 50);
- evas_object_show(right_btn);
- evas_object_smart_callback_add(right_btn, "clicked", _right_align_cb, p_data);
-
- Evas_Object *bottom_btn;
- bottom_btn = elm_button_add(panel_win);
- elm_object_text_set(bottom_btn, "Bottom Align");
- evas_object_move(bottom_btn, 0, 250);
- evas_object_resize(bottom_btn, 150, 50);
- evas_object_show(bottom_btn);
- evas_object_smart_callback_add(bottom_btn, "clicked", _bottom_align_cb, p_data);
-
- Evas_Object *position_btn;
- position_btn = elm_button_add(panel_win);
- elm_object_text_set(position_btn, "Position Set (x:0, y:0)");
- evas_object_move(position_btn, 150, 250);
- evas_object_resize(position_btn, 150, 50);
- evas_object_show(position_btn);
- evas_object_smart_callback_add(position_btn, "clicked", _position_set_cb, p_data);
-}
-
-static void
-efl_ui_popup_alert_clicked_cb(void *data EINA_UNUSED, const Efl_Event *ev)
-{
- Efl_Ui_Popup_Alert_Clicked_Event *event = ev->info;
-
- if (event->button_type == EFL_UI_POPUP_ALERT_BUTTON_POSITIVE)
- printf("Positive Button is clicked\n");
- else if(event->button_type == EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE)
- printf("Negative Button is clicked\n");
- else if(event->button_type == EFL_UI_POPUP_ALERT_BUTTON_USER)
- printf("User Button is clicked\n");
-}
-
-void
-test_efl_ui_popup_alert(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Evas_Object *win;
- char buf[PATH_MAX];
-
- win = elm_win_util_standard_add("Efl UI Popup Alert", "Efl UI Popup Alert");
- elm_win_autodel_set(win, EINA_TRUE);
-
- evas_object_resize(win, 320, 320);
- evas_object_show(win);
-
- Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_CLASS, win);
-
- efl_text_set(efl_part(efl_ui_popup, "title"), "title");
-
- evas_object_resize(efl_ui_popup, 160, 160);
- evas_object_show(efl_ui_popup);
-
- Evas_Object *layout = elm_layout_add(efl_ui_popup);
- snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
- elm_layout_file_set(layout, buf, "efl_ui_popup_scroll_content");
- evas_object_show(layout);
-
- efl_content_set(efl_ui_popup, layout);
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
-
- efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
-}
-
-void
-test_efl_ui_popup_alert_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Evas_Object *win;
- char buf[PATH_MAX];
-
- win = elm_win_util_standard_add("Efl UI Popup Alert Scroll", "Efl UI Popup Alert Scroll");
- elm_win_autodel_set(win, EINA_TRUE);
-
- evas_object_resize(win, 320, 320);
- evas_object_show(win);
-
- Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_SCROLL_CLASS, win);
-
- efl_text_set(efl_part(efl_ui_popup, "title"), "title");
-
- evas_object_resize(efl_ui_popup, 160, 160);
- evas_object_show(efl_ui_popup);
-
- Evas_Object *layout = elm_layout_add(efl_ui_popup);
- snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
- elm_layout_file_set(layout, buf, "efl_ui_popup_scroll_content");
- evas_object_show(layout);
-
- efl_content_set(efl_ui_popup, layout);
-
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
-
- efl_ui_popup_alert_scroll_expandable_set(efl_ui_popup, EINA_TRUE, EINA_TRUE);
- efl_gfx_size_hint_max_set(efl_ui_popup, EINA_SIZE2D(300, 180));
-
- efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
-}
-
-void
-test_efl_ui_popup_alert_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- Evas_Object *win;
-
- win = elm_win_util_standard_add("Efl UI Popup Alert Text", "Efl UI Popup Alert Text");
- elm_win_autodel_set(win, EINA_TRUE);
-
- evas_object_resize(win, 320, 320);
- evas_object_show(win);
-
- Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
-
- efl_text_set(efl_part(efl_ui_popup, "title"), "title");
-
- evas_object_resize(efl_ui_popup, 160, 160);
- evas_object_show(efl_ui_popup);
-
- efl_text_set(efl_ui_popup,
- "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup"
- "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup"
- "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup");
-
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
- efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
-
- efl_ui_popup_alert_text_expandable_set(efl_ui_popup, EINA_TRUE);
- efl_gfx_size_hint_max_set(efl_ui_popup, EINA_SIZE2D(100, 180));
-
- efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
-}
-
-static void
-_anchor_set_cb(void *data, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_anchor_set(data, obj);
-}
-
-static void
-_anchor_unset_cb(void *data, Evas_Object *obj EINA_UNUSED,
- void *event_info EINA_UNUSED)
-{
- efl_ui_popup_anchor_set(data, NULL);
-}
-
-void
-test_efl_ui_popup_anchor(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
-{
- efl_ui_popup_data *p_data = (efl_ui_popup_data*)calloc(1, sizeof(efl_ui_popup_data));
-
- Evas_Object *win, *layout, *tbl, *btn;
- char buf[PATH_MAX];
-
- win = elm_win_util_standard_add("Efl UI Popup Anchor", "Efl UI Popup Anchor");
- elm_win_autodel_set(win, EINA_TRUE);
- evas_object_smart_callback_add(win, "delete,request", _win_del, p_data);
-
- evas_object_resize(win, 500, 500);
- evas_object_show(win);
-
- layout = elm_layout_add(win);
- snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
- elm_layout_file_set(layout, buf, "efl_ui_popup_anchor_layout");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, layout);
- evas_object_show(layout);
-
- Evas_Object *efl_ui_popup= efl_add(EFL_UI_POPUP_ANCHOR_CLASS, win);
-
- efl_ui_popup_bg_repeat_events_set(efl_ui_popup, EINA_TRUE);
-
- //Default align priority order is top, left, right, bottom, center.
- efl_ui_popup_anchor_align_priority_set(efl_ui_popup, EFL_UI_POPUP_ALIGN_TOP,
- EFL_UI_POPUP_ALIGN_BOTTOM,
- EFL_UI_POPUP_ALIGN_LEFT,
- EFL_UI_POPUP_ALIGN_RIGHT,
- EFL_UI_POPUP_ALIGN_CENTER);
-
- evas_object_move(efl_ui_popup, 80, 80);
- evas_object_resize(efl_ui_popup, 160, 120);
- evas_object_show(efl_ui_popup);
-
- p_data->win = win;
- p_data->efl_ui_popup = efl_ui_popup;
-
- for (int i = 0; i < 6; i++)
- {
- btn = elm_button_add(win);
- elm_object_text_set(btn, "anchor");
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_smart_callback_add(btn, "clicked", _anchor_set_cb, efl_ui_popup);
-
- snprintf(buf, sizeof(buf), "anchor%d", i+1);
- elm_object_part_content_set(layout, buf, btn);
- }
-
- btn = elm_button_add(win);
- elm_object_text_set(btn, "anchor none");
- evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_smart_callback_add(btn, "clicked", _anchor_unset_cb, efl_ui_popup);
- elm_object_part_content_set(layout, "anchor_none", btn);
-
- tbl = elm_table_add(efl_ui_popup);
- evas_object_size_hint_weight_set(tbl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(tbl, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Center Align");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _center_align_cb, p_data);
- elm_table_pack(tbl, btn, 0, 0, 1, 1);
- evas_object_show(btn);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Left Align");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _left_align_cb, p_data);
- elm_table_pack(tbl, btn, 1, 0, 1, 1);
- evas_object_show(btn);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Right Align");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _right_align_cb, p_data);
- elm_table_pack(tbl, btn, 2, 0, 1, 1);
- evas_object_show(btn);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Top Align");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _top_align_cb, p_data);
- elm_table_pack(tbl, btn, 0, 1, 1, 1);
- evas_object_show(btn);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Bottom Align");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _bottom_align_cb, p_data);
- elm_table_pack(tbl, btn, 1, 1, 1, 1);
- evas_object_show(btn);
-
- btn = elm_button_add(efl_ui_popup);
- elm_object_text_set(btn, "Position Set");
- evas_object_size_hint_min_set(btn, 70, 35);
- evas_object_smart_callback_add(btn, "clicked", _position_set_cb, p_data);
- elm_table_pack(tbl, btn, 2, 1, 1, 1);
- evas_object_show(btn);
-
- efl_content_set(efl_ui_popup, tbl);
-}
diff --git a/src/bin/elementary/test_ui_popup.c b/src/bin/elementary/test_ui_popup.c
new file mode 100644
index 0000000000..2c7075de32
--- /dev/null
+++ b/src/bin/elementary/test_ui_popup.c
@@ -0,0 +1,529 @@
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_UI_POPUP_ANCHOR_BETA
+#include <Elementary.h>
+
+#define POPUP_POINT_MAX 8
+
+typedef struct
+{
+ Eo *win;
+ Eo *panel_win;
+ Eo *efl_ui_popup;
+ Eo *button;
+} efl_ui_popup_data;
+
+static void
+_bg_clicked(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ printf("Popup's background is clicked.\n");
+}
+
+static void
+_timeout_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ p_data->efl_ui_popup = NULL;
+ printf("Popup times out and it is deleted.\n");
+}
+
+static void
+_delete_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (p_data->efl_ui_popup)
+ {
+ efl_del(p_data->efl_ui_popup);
+ p_data->efl_ui_popup = NULL;
+ return;
+ }
+ printf("Efl.Ui.Popup does not exist.\n");
+}
+
+static Eo*
+_create_popup(efl_ui_popup_data *p_data)
+{
+ if (!p_data->win) return NULL;
+ if (p_data->efl_ui_popup)
+ {
+ printf("Efl.Ui.Popup is already created.\n");
+ efl_gfx_visible_set(p_data->efl_ui_popup, EINA_TRUE);
+ return p_data->efl_ui_popup;
+ }
+
+ Eo *efl_ui_popup = efl_add(EFL_UI_POPUP_CLASS, p_data->win);
+
+ efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_EVENT_BG_CLICKED, _bg_clicked, NULL);
+ efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_EVENT_TIMEOUT, _timeout_cb, p_data);
+ efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 160));
+
+ Eo *btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Efl.Ui.Popup");
+
+ efl_content_set(efl_ui_popup, btn);
+
+ return efl_ui_popup;
+}
+
+static void
+_create_cb(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ p_data->efl_ui_popup = _create_popup(p_data);
+}
+
+static void
+_bg_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+ static int k = 0;
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ if (k == 0)
+ {
+ char buf[PATH_MAX];
+ snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
+ efl_ui_popup_bg_set(p_data->efl_ui_popup, buf, NULL);
+ efl_text_set(ev->object, "Bg UnSet");
+ }
+ else
+ {
+ efl_ui_popup_bg_set(p_data->efl_ui_popup, NULL, NULL);
+ efl_text_set(ev->object, "Bg Set");
+ }
+ k = !k;
+}
+
+static void
+_repeat_event_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ if (!efl_ui_popup_bg_repeat_events_get(p_data->efl_ui_popup))
+ {
+ efl_ui_popup_bg_repeat_events_set(p_data->efl_ui_popup, EINA_TRUE);
+ efl_text_set(ev->object, "Repeat Event UnSet");
+ }
+ else
+ {
+ efl_ui_popup_bg_repeat_events_set(p_data->efl_ui_popup, EINA_FALSE);
+ efl_text_set(ev->object, "Repeat Event Set");
+ }
+}
+
+static void
+_repeat_test_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ printf("Repeat Test Button is Clicked.\n");
+}
+
+static void
+_dummy_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ if (!efl_gfx_visible_get(p_data->button))
+ {
+ efl_gfx_visible_set(p_data->button, EINA_TRUE);
+ efl_text_set(ev->object, "Hide Dummy Button");
+ }
+ else
+ {
+ efl_gfx_visible_set(p_data->button, EINA_FALSE);
+ efl_text_set(ev->object, "Show Dummy Button");
+ }
+}
+
+static void
+_center_align_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_CENTER);
+}
+
+static void
+_left_align_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_LEFT);
+}
+
+static void
+_right_align_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_RIGHT);
+}
+
+static void
+_top_align_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_TOP);
+}
+
+static void
+_bottom_align_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_align_set(p_data->efl_ui_popup, EFL_UI_POPUP_ALIGN_BOTTOM);
+}
+
+static void
+_position_set_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_gfx_position_set(p_data->efl_ui_popup, EINA_POSITION2D(0, 0));
+}
+
+static void
+_timeout_set_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ if (!p_data->efl_ui_popup) return;
+ efl_ui_popup_timeout_set(p_data->efl_ui_popup, 3);
+ printf("timemout is set to 3 seconds\n");
+}
+
+static void
+_win_del(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ efl_del(p_data->panel_win);
+ free(p_data);
+ printf("window is deleted\n");
+}
+
+static void
+_panel_win_del(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = data;
+ efl_del(p_data->win);
+ free(p_data);
+ printf("window is deleted\n");
+}
+
+void
+test_ui_popup(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = (efl_ui_popup_data*)calloc(1, sizeof(efl_ui_popup_data));
+
+ Eo *win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+ efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _win_del, p_data);
+
+ efl_gfx_size_set(win, EINA_SIZE2D(500, 500));
+
+ Eo *panel_win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup Panel"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+ efl_event_callback_add(panel_win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _panel_win_del, p_data);
+
+ efl_gfx_size_set(panel_win, EINA_SIZE2D(300, 500));
+
+ Eo *repeat_test_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
+ efl_gfx_position_set(repeat_test_btn, EINA_POSITION2D(0, 0));
+ efl_gfx_size_set(repeat_test_btn, EINA_SIZE2D(100, 100));
+ efl_text_set(repeat_test_btn, "Repeat Event Test");
+ efl_event_callback_add(repeat_test_btn, EFL_UI_EVENT_CLICKED, _repeat_test_cb, NULL);
+ efl_gfx_visible_set(repeat_test_btn, EINA_FALSE);
+
+ p_data->win = win;
+ p_data->panel_win = panel_win;
+ p_data->button = repeat_test_btn;
+ p_data->efl_ui_popup = _create_popup(p_data);
+
+ Eo *create_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(create_btn, "Create Popup");
+ efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 0));
+ efl_gfx_size_set(create_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _create_cb, p_data);
+
+ Eo *delete_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(delete_btn, "Delete Popup");
+ efl_gfx_position_set(delete_btn, EINA_POSITION2D(150, 0));
+ efl_gfx_size_set(delete_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(delete_btn, EFL_UI_EVENT_CLICKED, _delete_cb, p_data);
+
+ Eo *repeat_event_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(repeat_event_btn, "Repeat Event Set");
+ efl_gfx_position_set(repeat_event_btn, EINA_POSITION2D(0, 50));
+ efl_gfx_size_set(repeat_event_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(repeat_event_btn, EFL_UI_EVENT_CLICKED, _repeat_event_cb, p_data);
+
+ Eo *dummy_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(dummy_btn, "Show Dummy Button");
+ efl_gfx_position_set(dummy_btn, EINA_POSITION2D(150, 50));
+ efl_gfx_size_set(dummy_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(dummy_btn, EFL_UI_EVENT_CLICKED, _dummy_cb, p_data);
+
+ Eo *bg_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_gfx_position_set(bg_btn, EINA_POSITION2D(0, 100));
+ efl_gfx_size_set(bg_btn, EINA_SIZE2D(150, 50));
+ efl_text_set(bg_btn, "Bg Set");
+ efl_event_callback_add(bg_btn, EFL_UI_EVENT_CLICKED, _bg_cb, p_data);
+
+ Eo *timeout_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(timeout_btn, "Timeout Set");
+ efl_gfx_position_set(timeout_btn, EINA_POSITION2D(150, 100));
+ efl_gfx_size_set(timeout_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(timeout_btn, EFL_UI_EVENT_CLICKED, _timeout_set_cb, p_data);
+
+ Eo *center_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(center_btn, "Center Align");
+ efl_gfx_position_set(center_btn, EINA_POSITION2D(0, 150));
+ efl_gfx_size_set(center_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(center_btn, EFL_UI_EVENT_CLICKED, _center_align_cb, p_data);
+
+ Eo *top_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(top_btn, "Top Align");
+ efl_gfx_position_set(top_btn, EINA_POSITION2D(150, 150));
+ efl_gfx_size_set(top_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(top_btn, EFL_UI_EVENT_CLICKED, _top_align_cb, p_data);
+
+ Eo *left_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(left_btn, "Left Align");
+ efl_gfx_position_set(left_btn, EINA_POSITION2D(0, 200));
+ efl_gfx_size_set(left_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(left_btn, EFL_UI_EVENT_CLICKED, _left_align_cb, p_data);
+
+ Eo *right_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(right_btn, "Right Align");
+ efl_gfx_position_set(right_btn, EINA_POSITION2D(150, 200));
+ efl_gfx_size_set(right_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(right_btn, EFL_UI_EVENT_CLICKED, _right_align_cb, p_data);
+
+ Eo *bottom_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(bottom_btn, "Bottom Align");
+ efl_gfx_position_set(bottom_btn, EINA_POSITION2D(0, 250));
+ efl_gfx_size_set(bottom_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(bottom_btn, EFL_UI_EVENT_CLICKED, _bottom_align_cb, p_data);
+
+ Eo *position_btn = efl_add(EFL_UI_BUTTON_CLASS, panel_win);
+ efl_text_set(position_btn, "Position Set (x:0, y:0)");
+ efl_gfx_position_set(position_btn, EINA_POSITION2D(150, 250));
+ efl_gfx_size_set(position_btn, EINA_SIZE2D(150, 50));
+ efl_event_callback_add(position_btn, EFL_UI_EVENT_CLICKED, _position_set_cb, p_data);
+}
+
+static void
+efl_ui_popup_alert_clicked_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+ Efl_Ui_Popup_Alert_Clicked_Event *event = ev->info;
+
+ if (event->button_type == EFL_UI_POPUP_ALERT_BUTTON_POSITIVE)
+ printf("Positive Button is clicked\n");
+ else if(event->button_type == EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE)
+ printf("Negative Button is clicked\n");
+ else if(event->button_type == EFL_UI_POPUP_ALERT_BUTTON_USER)
+ printf("User Button is clicked\n");
+}
+
+void
+test_ui_popup_alert(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ char buf[PATH_MAX];
+
+ Eo *win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup.Alert"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+
+ efl_gfx_size_set(win, EINA_SIZE2D(320, 320));
+
+ Eo *efl_ui_popup = efl_add(EFL_UI_POPUP_ALERT_CLASS, win);
+
+ efl_text_set(efl_part(efl_ui_popup, "title"), "title");
+
+ efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 160));
+
+ Eo *layout = efl_add(EFL_UI_LAYOUT_CLASS, efl_ui_popup);
+ snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
+ efl_file_set(layout, buf, "efl_ui_popup_scroll_content");
+
+ efl_content_set(efl_ui_popup, layout);
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
+
+ efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
+}
+
+void
+test_ui_popup_alert_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ char buf[PATH_MAX];
+
+ Eo *win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup.Alert.Scroll"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+
+ efl_gfx_size_set(win, EINA_SIZE2D(320, 320));
+
+ Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_SCROLL_CLASS, win);
+
+ efl_text_set(efl_part(efl_ui_popup, "title"), "title");
+
+ efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 160));
+
+ Eo *layout = efl_add(EFL_UI_LAYOUT_CLASS, efl_ui_popup);
+ snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
+ efl_file_set(layout, buf, "efl_ui_popup_scroll_content");
+
+ efl_content_set(efl_ui_popup, layout);
+
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
+
+ efl_ui_popup_alert_scroll_expandable_set(efl_ui_popup, EINA_TRUE, EINA_TRUE);
+ efl_gfx_size_hint_max_set(efl_ui_popup, EINA_SIZE2D(300, 180));
+
+ efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
+}
+
+void
+test_ui_popup_alert_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ Eo *win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup.Alert.Text"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+
+ efl_gfx_size_set(win, EINA_SIZE2D(320, 320));
+
+ Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
+
+ efl_text_set(efl_part(efl_ui_popup, "title"), "title");
+
+ efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 160));
+
+ efl_text_set(efl_ui_popup,
+ "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup"
+ "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup"
+ "This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup This is Text Popup");
+
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_POSITIVE, "Yes");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE, "No");
+ efl_ui_popup_alert_button_set(efl_ui_popup, EFL_UI_POPUP_ALERT_BUTTON_USER, "Cancel");
+
+ efl_ui_popup_alert_text_expandable_set(efl_ui_popup, EINA_TRUE);
+ efl_gfx_size_hint_max_set(efl_ui_popup, EINA_SIZE2D(100, 180));
+
+ efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
+}
+
+static void
+_anchor_set_cb(void *data, const Efl_Event *ev)
+{
+ efl_ui_popup_anchor_set(data, ev->object);
+}
+
+static void
+_anchor_unset_cb(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+ efl_ui_popup_anchor_set(data, NULL);
+}
+
+void
+test_ui_popup_anchor(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ efl_ui_popup_data *p_data = (efl_ui_popup_data*)calloc(1, sizeof(efl_ui_popup_data));
+
+ char buf[PATH_MAX];
+
+ Eo *win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_text_set(efl_added, "Efl.Ui.Popup.Anchor"),
+ efl_ui_win_autodel_set(efl_added, EINA_TRUE));
+ efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _win_del, p_data);
+
+ efl_gfx_size_set(win, EINA_SIZE2D(500, 500));
+
+ Eo *layout = efl_add(EFL_UI_LAYOUT_CLASS, win);
+ snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
+ efl_file_set(layout, buf, "efl_ui_popup_anchor_layout");
+ efl_gfx_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ efl_content_set(win, layout);
+
+ Eo *efl_ui_popup = efl_add(EFL_UI_POPUP_ANCHOR_CLASS, win);
+
+ efl_ui_popup_bg_repeat_events_set(efl_ui_popup, EINA_TRUE);
+
+ //Default align priority order is top, left, right, bottom, center.
+ efl_ui_popup_anchor_align_priority_set(efl_ui_popup, EFL_UI_POPUP_ALIGN_TOP,
+ EFL_UI_POPUP_ALIGN_BOTTOM,
+ EFL_UI_POPUP_ALIGN_LEFT,
+ EFL_UI_POPUP_ALIGN_RIGHT,
+ EFL_UI_POPUP_ALIGN_CENTER);
+
+ efl_gfx_position_set(efl_ui_popup, EINA_POSITION2D(80, 80));
+ efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 120));
+
+ p_data->win = win;
+ p_data->efl_ui_popup = efl_ui_popup;
+
+ Eo *btn = NULL;
+ for (int i = 0; i < 6; i++)
+ {
+ btn = efl_add(EFL_UI_BUTTON_CLASS, win);
+ efl_text_set(btn, "anchor");
+ efl_gfx_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _anchor_set_cb, efl_ui_popup);
+
+ snprintf(buf, sizeof(buf), "anchor%d", i+1);
+ efl_content_set(efl_part(layout, buf), btn);
+ }
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, win);
+ efl_text_set(btn, "anchor none");
+ efl_gfx_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _anchor_unset_cb, efl_ui_popup);
+ efl_content_set(efl_part(layout, "anchor_none"), btn);
+
+ Eo *grid = efl_add(EFL_UI_GRID_CLASS, efl_ui_popup);
+ efl_gfx_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Center Align");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _center_align_cb, p_data);
+ efl_pack_grid(grid, btn, 0, 0, 1, 1);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Left Align");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _left_align_cb, p_data);
+ efl_pack_grid(grid, btn, 1, 0, 1, 1);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Right Align");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _right_align_cb, p_data);
+ efl_pack_grid(grid, btn, 2, 0, 1, 1);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Top Align");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _top_align_cb, p_data);
+ efl_pack_grid(grid, btn, 0, 1, 1, 1);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Bottom Align");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _bottom_align_cb, p_data);
+ efl_pack_grid(grid, btn, 1, 1, 1, 1);
+
+ btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+ efl_text_set(btn, "Position Set");
+ efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+ efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _position_set_cb, p_data);
+ efl_pack_grid(grid, btn, 2, 1, 1, 1);
+
+ efl_content_set(efl_ui_popup, grid);
+}