efl_ui_popup_alert_text: add expandable feature
Summary: add expandable feature for text popup Test Plan: 1. run elementary_text -to Ui.Popup.Alert.Text 2. check the cases of the sample Reviewers: Jaehyun_Cho, jpeg, woohyun, thiepha, Blackmole, cedric Reviewed By: Jaehyun_Cho Differential Revision: https://phab.enlightenment.org/D5547
This commit is contained in:
parent
baabcdcd7d
commit
cf36e21e07
|
@ -527,6 +527,349 @@ test_ui_popup_alert_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_scroll_case5_cb, win);
|
||||
}
|
||||
|
||||
static void
|
||||
efl_ui_popup_alert_text_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)
|
||||
efl_text_set(ev->object, "Text is changed");
|
||||
else
|
||||
efl_del(ev->object);
|
||||
}
|
||||
|
||||
static void
|
||||
create_message(Eina_Strbuf *message_buf, const char *message, int iterate_cnt)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < iterate_cnt; i++)
|
||||
eina_strbuf_append(message_buf, message);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case1_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_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_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case2_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case3_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
efl_ui_popup_alert_text_expandable_set(efl_ui_popup, EINA_SIZE2D(300, 300));
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_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_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case4_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_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_SIZE2D(300, -1));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case5_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_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_SIZE2D(-1, 300));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case6_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(300, 300));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case7_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(300, -1));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case8_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(-1, 300));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case9_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(10, 10));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case10_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 10);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(150, 150));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case11_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 10);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(150, -1));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case12_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 10);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(300, -1));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case13_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 20);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(-1, 150));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_alert_text_case14_cb(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *win = data;
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
|
||||
Eina_Strbuf *message_buf = eina_strbuf_new();
|
||||
create_message(message_buf, "This is Text Popup ", 50);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
efl_text_set(efl_ui_popup, eina_strbuf_string_get(message_buf));
|
||||
|
||||
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_SIZE2D(-1, 300));
|
||||
|
||||
efl_ui_popup_size_set(efl_ui_popup, EINA_SIZE2D(200, 200));
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_text_clicked_cb, NULL);
|
||||
|
||||
eina_strbuf_free(message_buf);
|
||||
}
|
||||
|
||||
void
|
||||
test_ui_popup_alert_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
|
@ -534,24 +877,91 @@ test_ui_popup_alert_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v
|
|||
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));
|
||||
efl_gfx_size_set(win, EINA_SIZE2D(500, 700));
|
||||
|
||||
Eo *efl_ui_popup= efl_add(EFL_UI_POPUP_ALERT_TEXT_CLASS, win);
|
||||
Eo *create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "1. size(200,200), text(short), expand(-1,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 0));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case1_cb, win);
|
||||
|
||||
efl_text_set(efl_part(efl_ui_popup, "title"), "title");
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "2. size(200,200), text(long), expand(-1,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 50));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case2_cb, win);
|
||||
|
||||
efl_gfx_size_set(efl_ui_popup, EINA_SIZE2D(160, 160));
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "3. size(200,200), text(short), expand(300,300)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 100));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case3_cb, win);
|
||||
|
||||
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");
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "4. size(200,200), text(short), expand(300,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 150));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case4_cb, win);
|
||||
|
||||
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");
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "5. size(200,200), text(short), expand(-1,300)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 200));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case5_cb, win);
|
||||
|
||||
efl_event_callback_add(efl_ui_popup, EFL_UI_POPUP_ALERT_EVENT_CLICKED, efl_ui_popup_alert_clicked_cb, NULL);
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "6. size(200,200), text(long), expand(300,300)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 250));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case6_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "7. size(200,200), text(long), expand(300,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 300));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case7_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "8. size(200,200), text(long), expand(-1,300)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 350));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case8_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "9. size(200,200), text(long), expand(10, 10)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 400));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case9_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "10. size(200,200), text(long), expand(150,150)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 450));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case10_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "11. size(200,200), text(long), expand(150,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 500));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case11_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "12. size(200,200), text(long), expand(300,-1)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 550));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case12_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "13. size(200,200), text(long), expand(-1,150)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 600));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case13_cb, win);
|
||||
|
||||
create_btn = efl_add(EFL_UI_BUTTON_CLASS, win);
|
||||
efl_text_set(create_btn, "14. size(200,200), text(long), expand(-1,300)");
|
||||
efl_gfx_position_set(create_btn, EINA_POSITION2D(0, 650));
|
||||
efl_gfx_size_set(create_btn, EINA_SIZE2D(500, 50));
|
||||
efl_event_callback_add(create_btn, EFL_UI_EVENT_CLICKED, _alert_text_case14_cb, win);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -14,17 +14,161 @@
|
|||
|
||||
//static const char PART_NAME_TEXT[] = "text";
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_popup_alert_text_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd EINA_UNUSED)
|
||||
static void
|
||||
_scroller_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd, Eina_Size2D obj_min, Eina_Size2D text_min)
|
||||
{
|
||||
elm_layout_sizing_eval(efl_super(obj, MY_CLASS));
|
||||
Eina_Size2D max_size;
|
||||
max_size.w = -1;
|
||||
max_size.h = -1;
|
||||
|
||||
if (pd->max_size.w != -1)
|
||||
max_size.w = (obj_min.w > pd->max_size.w) ? obj_min.w : pd->max_size.w;
|
||||
if (pd->max_size.h != -1)
|
||||
max_size.h = (obj_min.h > pd->max_size.h) ? obj_min.h : pd->max_size.h;
|
||||
|
||||
Eina_Size2D size;
|
||||
size.w = (obj_min.w > pd->size.w) ? obj_min.w : pd->size.w;
|
||||
size.h = (obj_min.h > pd->size.h) ? obj_min.h : pd->size.h;
|
||||
|
||||
text_min.w = (obj_min.w > text_min.w) ? obj_min.w : text_min.w;
|
||||
text_min.h = (obj_min.h > text_min.h) ? obj_min.h : text_min.h;
|
||||
|
||||
Eina_Size2D new_min = obj_min;
|
||||
|
||||
if ((max_size.w == -1) && (max_size.h == -1))
|
||||
{
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
|
||||
efl_gfx_size_set(obj, size);
|
||||
}
|
||||
else if ((max_size.w == -1) && (max_size.h != -1))
|
||||
{
|
||||
if (max_size.h < text_min.h)
|
||||
{
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
|
||||
efl_gfx_size_set(obj, EINA_SIZE2D(size.w, max_size.h));
|
||||
}
|
||||
else
|
||||
{
|
||||
new_min.h = text_min.h;
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_TRUE);
|
||||
efl_gfx_size_set(obj, EINA_SIZE2D(size.w, text_min.h));
|
||||
}
|
||||
}
|
||||
else if ((max_size.w != -1) && (max_size.h == -1))
|
||||
{
|
||||
if (max_size.w < text_min.w)
|
||||
{
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
|
||||
efl_gfx_size_set(obj, EINA_SIZE2D(max_size.w, size.h));
|
||||
}
|
||||
else
|
||||
{
|
||||
new_min.w = text_min.w;
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_TRUE, EINA_FALSE);
|
||||
efl_gfx_size_set(obj, EINA_SIZE2D(text_min.w, size.h));
|
||||
}
|
||||
}
|
||||
else if ((max_size.w != -1) && (max_size.h != -1))
|
||||
{
|
||||
Eina_Size2D new_size;
|
||||
Eina_Bool min_limit_w = EINA_FALSE;
|
||||
Eina_Bool min_limit_h = EINA_FALSE;
|
||||
|
||||
if (max_size.w < text_min.w)
|
||||
{
|
||||
new_size.w = max_size.w;
|
||||
}
|
||||
else
|
||||
{
|
||||
min_limit_w = EINA_TRUE;
|
||||
new_min.w = text_min.w;
|
||||
new_size.w = text_min.w;
|
||||
}
|
||||
|
||||
if (max_size.h < text_min.h)
|
||||
{
|
||||
new_size.h = max_size.h;
|
||||
}
|
||||
else
|
||||
{
|
||||
min_limit_h = EINA_TRUE;
|
||||
new_min.h = text_min.h;
|
||||
new_size.h = text_min.h;
|
||||
}
|
||||
|
||||
elm_scroller_content_min_limit(pd->scroller, min_limit_w, min_limit_h);
|
||||
efl_gfx_size_set(obj, new_size);
|
||||
}
|
||||
|
||||
efl_gfx_size_hint_min_set(obj, new_min);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_popup_alert_text_efl_ui_popup_popup_size_set(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd, Eina_Size2D size)
|
||||
{
|
||||
pd->size = size;
|
||||
|
||||
efl_gfx_size_set(obj, size);
|
||||
|
||||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
Evas_Coord obj_minw = -1, obj_minh = -1;
|
||||
Evas_Coord text_minw = -1, text_minh = -1;
|
||||
Eina_Size2D text_min;
|
||||
|
||||
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
|
||||
edje_object_size_min_restricted_calc(wd->resize_obj, &minw, &minh, minw, minh);
|
||||
efl_gfx_size_hint_min_set(obj, EINA_SIZE2D(minw, minh));
|
||||
//Calculate popup's min size including scroller's min size
|
||||
{
|
||||
elm_label_line_wrap_set(pd->message, ELM_WRAP_NONE);
|
||||
text_min = efl_gfx_size_hint_combined_min_get(pd->message);
|
||||
elm_label_line_wrap_set(pd->message, ELM_WRAP_MIXED);
|
||||
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_TRUE);
|
||||
|
||||
elm_coords_finger_size_adjust(1, &text_minw, 1, &text_minh);
|
||||
edje_object_size_min_restricted_calc
|
||||
(wd->resize_obj, &text_minw, &text_minh, text_minw, text_minh);
|
||||
}
|
||||
|
||||
//Calculate popup's min size except scroller's min size
|
||||
{
|
||||
elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
|
||||
|
||||
elm_coords_finger_size_adjust(1, &obj_minw, 1, &obj_minh);
|
||||
edje_object_size_min_restricted_calc
|
||||
(wd->resize_obj, &obj_minw, &obj_minh, obj_minw, obj_minh);
|
||||
}
|
||||
|
||||
text_min.h = text_minh;
|
||||
_scroller_sizing_eval(obj, pd, EINA_SIZE2D(obj_minw, obj_minh), text_min);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_popup_alert_text_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd)
|
||||
{
|
||||
if (pd->needs_size_calc) return;
|
||||
pd->needs_size_calc = EINA_TRUE;
|
||||
|
||||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_popup_alert_text_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd)
|
||||
{
|
||||
/* When elm_layout_sizing_eval() is called, just flag is set instead of size
|
||||
* calculation.
|
||||
* The actual size calculation is done here when the object is rendered to
|
||||
* avoid duplicate size calculations. */
|
||||
if (pd->needs_size_calc)
|
||||
{
|
||||
_sizing_eval(obj, pd);
|
||||
|
||||
pd->needs_size_calc = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -55,7 +199,6 @@ _efl_ui_popup_alert_text_text_set(Eo *obj, Efl_Ui_Popup_Alert_Text_Data *pd, con
|
|||
// TODO: Change internal component to Efl.Ui.Widget
|
||||
pd->message = elm_label_add(obj);
|
||||
//elm_widget_element_update(obj, pd->message, PART_NAME_TEXT);
|
||||
elm_label_line_wrap_set(pd->message, ELM_WRAP_MIXED);
|
||||
efl_gfx_size_hint_weight_set(pd->message, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
efl_content_set(efl_part(pd->scroller, "default"), pd->message);
|
||||
|
@ -95,6 +238,32 @@ _efl_ui_popup_alert_text_efl_text_text_get(Eo *obj, Efl_Ui_Popup_Alert_Text_Data
|
|||
return _efl_ui_popup_alert_text_text_get(obj, pd, "elm.text");
|
||||
}
|
||||
|
||||
static void
|
||||
_efl_ui_popup_alert_text_expandable_set(Eo *obj EINA_UNUSED, Efl_Ui_Popup_Alert_Text_Data *pd, Eina_Size2D max_size)
|
||||
{
|
||||
Eina_Bool valid_max_w = EINA_FALSE;
|
||||
Eina_Bool valid_max_h = EINA_FALSE;
|
||||
|
||||
if ((max_size.w == -1) || (max_size.w >= 0))
|
||||
valid_max_w = EINA_TRUE;
|
||||
|
||||
if ((max_size.h == -1) || (max_size.h >= 0))
|
||||
valid_max_h = EINA_TRUE;
|
||||
|
||||
if (!valid_max_w || !valid_max_h)
|
||||
{
|
||||
ERR("Invalid max size(%d, %d)!"
|
||||
"The max size should be equal to or bigger than 0. "
|
||||
"To disable expandable property, set -1 to the max size.",
|
||||
max_size.w, max_size.h);
|
||||
return;
|
||||
}
|
||||
|
||||
pd->max_size = max_size;
|
||||
|
||||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
EOLIAN static Eo *
|
||||
_efl_ui_popup_alert_text_efl_object_constructor(Eo *obj,
|
||||
Efl_Ui_Popup_Alert_Text_Data *pd)
|
||||
|
@ -116,6 +285,10 @@ _efl_ui_popup_alert_text_efl_object_constructor(Eo *obj,
|
|||
efl_content_set(efl_part(efl_super(obj, MY_CLASS), "elm.swallow.content"),
|
||||
pd->scroller);
|
||||
|
||||
pd->size = EINA_SIZE2D(0, 0);
|
||||
pd->max_size = EINA_SIZE2D(-1, -1);
|
||||
pd->needs_size_calc = EINA_FALSE;
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,27 @@
|
|||
import eina_types;
|
||||
|
||||
class Efl.Ui.Popup_Alert_Text(Efl.Ui.Popup_Alert, Efl.Text)
|
||||
{
|
||||
[[EFL UI Popup Alert Text class]]
|
||||
methods {
|
||||
@property expandable {
|
||||
set {
|
||||
[[Set the expandable of popup.
|
||||
|
||||
If the contents of the popup has min size, popup will be increased by min size to the y direction.
|
||||
If max hint is set, it will be increased to value of max hint,
|
||||
and then scrolling will occur.
|
||||
]]
|
||||
}
|
||||
values {
|
||||
max_size: Eina.Size2D; [[A 2D max size in pixel uinits.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Canvas.Group.group_calculate;
|
||||
Efl.Ui.Popup.popup_size { set;}
|
||||
Efl.Text.text { get; set; }
|
||||
Efl.Part.part;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,9 @@ struct _Efl_Ui_Popup_Alert_Text_Data
|
|||
{
|
||||
Eo *scroller;
|
||||
Eo *message;
|
||||
Eina_Size2D size;
|
||||
Eina_Size2D max_size;
|
||||
Eina_Bool needs_size_calc : 1;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue