2018-04-22 23:13:59 -07:00
|
|
|
// gcc -o efl_ui_list_example_1 efl_ui_list_example_1.c `pkg-config --cflags --libs elementary`
|
|
|
|
// ./efl_ui_list_example_1 item_style_name
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "elementary_config.h"
|
|
|
|
#else
|
|
|
|
# define EFL_BETA_API_SUPPORT 1
|
|
|
|
#endif
|
|
|
|
|
2019-03-07 07:39:06 -08:00
|
|
|
#include <Efl_Ui.h>
|
2018-04-22 23:13:59 -07:00
|
|
|
#include <Elementary.h>
|
|
|
|
#include <Efl.h>
|
|
|
|
#include <Eio.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#define NUM_ITEMS 400
|
|
|
|
|
|
|
|
typedef struct _List_Scroll_Data {
|
|
|
|
Eo *list;
|
|
|
|
Eo *slider;
|
|
|
|
Eina_Bool anim;
|
|
|
|
} List_Scroll_Data;
|
|
|
|
List_Scroll_Data priv_d;
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_list_selected(void *data EINA_UNUSED, const Efl_Event *ev)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *list = ev->object;
|
|
|
|
Eo *item = ev->info, *tmp;
|
|
|
|
printf("list item [%p:%d] is %s\n", item, efl_ui_item_index_get(item), (efl_ui_item_selected_get(item)? "selected" : "unselected"));
|
|
|
|
|
2019-07-24 06:06:09 -07:00
|
|
|
Eina_Iterator *selects = efl_ui_item_container_selected_items_get(list);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
EINA_ITERATOR_FOREACH(selects, tmp)
|
|
|
|
printf("selected [%p:%d] ", tmp, efl_ui_item_index_get(tmp));
|
|
|
|
printf("\n");
|
|
|
|
eina_iterator_free(selects);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_list_unselected(void *data EINA_UNUSED, const Efl_Event *ev)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *item = ev->info;
|
|
|
|
printf("list item [%p : %d] is %s\n", item, efl_ui_item_index_get(item), (efl_ui_item_selected_get(item)? "selected" : "unselected"));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_list_pressed(void *data EINA_UNUSED, const Efl_Event *ev)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *item = ev->info;
|
|
|
|
printf("list item [%p : %d] is pressed\n", item, efl_ui_item_index_get(item));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_list_unpressed(void *data EINA_UNUSED, const Efl_Event *ev)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *item = ev->info;
|
|
|
|
printf("list item [%p : %d] is unpressed\n", item, efl_ui_item_index_get(item));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_list_longpressed(void *data EINA_UNUSED, const Efl_Event *ev)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *item = ev->info;
|
|
|
|
printf("list item [%p : %d] is longpressed\n", item, efl_ui_item_index_get(item));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_select_radio_changed(void *data, const Efl_Event *ev)
|
|
|
|
{
|
|
|
|
Eo *list = data;
|
2019-05-29 11:06:25 -07:00
|
|
|
efl_ui_select_mode_set(list, efl_ui_radio_group_selected_value_get(ev->object));
|
2018-04-22 23:13:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-05-29 11:06:25 -07:00
|
|
|
_anim_radio_changed(void *data, const Efl_Event *ev EINA_UNUSED)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
2019-05-29 11:06:25 -07:00
|
|
|
priv_d.anim = efl_ui_radio_group_selected_value_get(data);
|
2018-04-22 23:13:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_scrl_btn_clicked(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
2019-07-24 06:06:09 -07:00
|
|
|
Efl_Ui_List_Item *item = efl_ui_item_container_last_selected_item_get(priv_d.list);
|
2018-04-22 23:13:59 -07:00
|
|
|
printf("show [%d:%p] [%d]\n", efl_ui_item_index_get(item), item, priv_d.anim);
|
2019-07-24 06:06:09 -07:00
|
|
|
efl_ui_item_container_item_scroll(priv_d.list, item, priv_d.anim);
|
2018-04-22 23:13:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2019-02-26 11:16:58 -08:00
|
|
|
_scrl_align_btn_clicked(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
2019-07-24 06:06:09 -07:00
|
|
|
Efl_Ui_List_Item *item = efl_ui_item_container_last_selected_item_get(priv_d.list);
|
2018-04-22 23:13:59 -07:00
|
|
|
double align = efl_ui_range_value_get(priv_d.slider);
|
|
|
|
printf("show [%d:%p] [%.2lf], [%d]\n", efl_ui_item_index_get(item), item, align, priv_d.anim);
|
2019-07-24 06:06:09 -07:00
|
|
|
efl_ui_item_container_item_scroll_align(priv_d.list, item, align, priv_d.anim);
|
2018-04-22 23:13:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EAPI_MAIN int
|
2019-02-26 11:16:58 -08:00
|
|
|
elm_main(int argc EINA_UNUSED, char **argv)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
Eo *win, *list;
|
|
|
|
Eo *wbox, *ibox, *bbox, *rbox;
|
|
|
|
Eo *item, *check, *txt;
|
2019-05-29 11:06:25 -07:00
|
|
|
Eo *radio;
|
2018-04-22 23:13:59 -07:00
|
|
|
Eo *slider, *scrl_btn;
|
|
|
|
int i;
|
|
|
|
char buf[256];
|
2019-05-29 23:07:42 -07:00
|
|
|
Eina_Bool placeholder = EINA_FALSE;
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-07-24 06:06:09 -07:00
|
|
|
|
|
|
|
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
|
|
|
|
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
|
|
|
|
efl_text_set(efl_added, "Efl.Ui.List"),
|
|
|
|
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
|
|
|
|
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
wbox = efl_add(EFL_UI_BOX_CLASS, win);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(wbox, EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(wbox, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND);
|
|
|
|
efl_gfx_hint_fill_set(wbox, EINA_TRUE, EINA_TRUE);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
if ((argv[1] != NULL) &&
|
2019-05-29 23:07:42 -07:00
|
|
|
(!strcmp(argv[1], "placeholder")))
|
|
|
|
placeholder = EINA_TRUE;
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
priv_d.list = list = efl_add(EFL_UI_LIST_CLASS, wbox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(list, EFL_GFX_HINT_EXPAND, 0.9);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-03-19 13:30:19 -07:00
|
|
|
efl_event_callback_add(list, EFL_UI_EVENT_ITEM_SELECTED, _list_selected, NULL);
|
|
|
|
efl_event_callback_add(list, EFL_UI_EVENT_ITEM_UNSELECTED, _list_unselected, NULL);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_event_callback_add(list, EFL_UI_EVENT_PRESSED, _list_pressed, NULL);
|
|
|
|
efl_event_callback_add(list, EFL_UI_EVENT_UNPRESSED, _list_unpressed, NULL);
|
|
|
|
efl_event_callback_add(list, EFL_UI_EVENT_LONGPRESSED, _list_longpressed, NULL);
|
|
|
|
|
|
|
|
for (i = 0; i < NUM_ITEMS; i++)
|
|
|
|
{
|
2019-05-29 23:07:42 -07:00
|
|
|
if (placeholder) item = efl_add(EFL_UI_LIST_PLACEHOLDER_ITEM_CLASS, list);
|
2018-04-22 23:13:59 -07:00
|
|
|
else item = efl_add(EFL_UI_LIST_DEFAULT_ITEM_CLASS, list);
|
|
|
|
|
|
|
|
/* disable case test */
|
|
|
|
if (i == 1) efl_ui_widget_disabled_set(item, EINA_TRUE);
|
|
|
|
|
2019-05-29 23:07:42 -07:00
|
|
|
if (placeholder)
|
2018-04-22 23:13:59 -07:00
|
|
|
{
|
|
|
|
ibox = efl_add(EFL_UI_BOX_CLASS, item);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(ibox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
txt = efl_add(EFL_UI_TEXT_CLASS, ibox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(txt, 0.95, EFL_GFX_HINT_EXPAND);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_halign_set(txt, 0.2);
|
|
|
|
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
|
2019-05-29 23:07:42 -07:00
|
|
|
snprintf(buf, sizeof(buf), "placeholder style item [%d]", i);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_set(txt, buf);
|
|
|
|
efl_pack_end(ibox, txt);
|
|
|
|
|
|
|
|
check = efl_add(EFL_UI_CHECK_CLASS, ibox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(check, 0.05, EFL_GFX_HINT_EXPAND);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(ibox, check);
|
|
|
|
|
|
|
|
if (i % 2)
|
|
|
|
efl_content_set(item, ibox);
|
|
|
|
else
|
|
|
|
efl_content_set(efl_part(item, "content"), ibox);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
snprintf(buf, sizeof(buf), "default style item [%d]", i);
|
|
|
|
if (i % 2)
|
|
|
|
efl_text_set(efl_part(item, "text"), buf);
|
|
|
|
else
|
|
|
|
efl_text_set(item, buf);
|
|
|
|
|
|
|
|
|
|
|
|
check = efl_add(EFL_UI_CHECK_CLASS, item);
|
|
|
|
if ((i % 3) == 0)
|
efl_ui : refactoring efl.part in item based classes.
Summary:
Most of item-based class will have similar efl.part such as text, icon, end.
creating this efl part per each class will be very hard to maintaining the class
and unnecessary eo generation.
so combine them in efl.parts of efl_ui_item.
sub item classes can use this efl.part by declairing ther own eo definition.
Reviewers: cedric, Jaehyun_Cho, segfaultxavi, eagleeye
Reviewed By: cedric, eagleeye
Subscribers: herb, woohyun, q66, lauromoura, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8582
2019-05-29 21:22:03 -07:00
|
|
|
efl_content_set(efl_part(item, "extra"), check);
|
2018-04-22 23:13:59 -07:00
|
|
|
else if ((i % 3) == 1)
|
|
|
|
efl_content_set(efl_part(item, "icon"), check);
|
|
|
|
else
|
|
|
|
efl_content_set(item, check);
|
|
|
|
}
|
|
|
|
/* Pack APIs test */
|
|
|
|
switch (i)
|
|
|
|
{
|
|
|
|
case 10:
|
|
|
|
efl_gfx_color_set(efl_part(item, "background"), 255, 0, 0, 255);
|
|
|
|
efl_pack_begin(list, item);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 20:
|
|
|
|
efl_gfx_color_set(efl_part(item, "background"), 0, 255, 0, 255);
|
|
|
|
efl_pack_before(list, item, efl_pack_content_get(list, 19));
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 30:
|
|
|
|
efl_gfx_color_set(efl_part(item, "background"), 0, 0, 255, 255);
|
|
|
|
efl_pack_after(list, item, efl_pack_content_get(list, 29));
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 40:
|
2019-02-27 10:17:09 -08:00
|
|
|
efl_file_simple_load(efl_part(item, "background"), "./sky_01.jpg", NULL);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_gfx_image_scale_type_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_TYPE_FIT_OUTSIDE);
|
|
|
|
efl_pack_at(list, item, 39);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 50:
|
2019-02-27 10:17:09 -08:00
|
|
|
efl_file_simple_load(efl_part(item, "background"), "./sky_01.jpg", NULL);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_gfx_image_scale_type_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_TYPE_TILE);
|
|
|
|
efl_pack(list, item);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 60:
|
|
|
|
efl_pack(list, item);
|
|
|
|
efl_pack_unpack(list, item);
|
|
|
|
efl_del(item);
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
efl_pack_end(list, item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
efl_pack_end(wbox, list);
|
|
|
|
|
|
|
|
/*select mode */
|
|
|
|
txt = efl_add(EFL_UI_TEXT_CLASS, wbox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(txt, EFL_GFX_HINT_EXPAND, 0.01);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_halign_set(txt, 0.02);
|
|
|
|
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
|
|
|
|
efl_text_set(txt, "Select Mode");
|
|
|
|
efl_pack_end(wbox, txt);
|
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
bbox = efl_add(EFL_UI_RADIO_BOX_CLASS, wbox);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(bbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(bbox, EFL_GFX_HINT_EXPAND, 0.05);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_set(radio, "SINGLE");
|
2019-03-05 14:00:37 -08:00
|
|
|
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_SINGLE);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(bbox, radio);
|
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
|
|
|
|
efl_text_set(radio, "SINGLE_ALWAYS");
|
2019-03-05 14:00:37 -08:00
|
|
|
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_SINGLE_ALWAYS);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(bbox, radio);
|
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
|
|
|
|
efl_text_set(radio, "MULTI");
|
2019-03-05 14:00:37 -08:00
|
|
|
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_MULTI);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(bbox, radio);
|
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, wbox);
|
|
|
|
efl_text_set(radio, "NONE");
|
2019-03-05 14:00:37 -08:00
|
|
|
efl_ui_radio_state_value_set(radio, EFL_UI_SELECT_MODE_NONE);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(bbox, radio);
|
|
|
|
efl_pack_end(wbox, bbox);
|
2019-05-29 11:06:25 -07:00
|
|
|
efl_event_callback_add(bbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _select_radio_changed, list);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
/* scroll mode */
|
|
|
|
txt = efl_add(EFL_UI_TEXT_CLASS, wbox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(txt, EFL_GFX_HINT_EXPAND, 0.01);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
|
|
|
|
efl_text_halign_set(txt, 0.02);
|
|
|
|
efl_text_set(txt, "Item Scroll");
|
|
|
|
efl_pack_end(wbox, txt);
|
|
|
|
|
|
|
|
priv_d.slider = slider = efl_add(EFL_UI_SLIDER_CLASS, wbox);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(slider, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(slider, 0.0, 0.05);
|
|
|
|
efl_gfx_hint_align_set(slider, 0.5, 0.5);
|
|
|
|
efl_gfx_hint_size_min_set(slider, EINA_SIZE2D(380, 20));
|
2019-06-19 00:55:51 -07:00
|
|
|
efl_ui_range_limits_set(slider, 0.0, 1.0);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_pack_end(wbox, slider);
|
|
|
|
|
|
|
|
bbox = efl_add(EFL_UI_BOX_CLASS, wbox);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(bbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_weight_set(bbox, EFL_GFX_HINT_EXPAND, 0.05);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
rbox = efl_add(EFL_UI_RADIO_BOX_CLASS, bbox);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(rbox, EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-05-29 11:06:25 -07:00
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, rbox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(radio, 0.5, 0.5);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_set(radio, "ANIMATION OFF");
|
|
|
|
efl_ui_radio_state_value_set(radio, 0);
|
|
|
|
efl_pack_end(rbox, radio);
|
|
|
|
radio = efl_add(EFL_UI_RADIO_CLASS, rbox);
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(radio, 0.5, 0.5);
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_text_set(radio, "ANIMATION ON");
|
|
|
|
efl_ui_radio_state_value_set(radio, 1);
|
|
|
|
efl_pack_end(rbox, radio);
|
|
|
|
efl_pack_end(bbox, rbox);
|
2019-07-24 06:06:09 -07:00
|
|
|
efl_ui_radio_group_selected_value_set(rbox, 0);
|
2019-05-29 11:06:25 -07:00
|
|
|
efl_event_callback_add(rbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _anim_radio_changed, rbox);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
2019-07-24 06:06:09 -07:00
|
|
|
|
2018-04-22 23:13:59 -07:00
|
|
|
rbox = efl_add(EFL_UI_BOX_CLASS, bbox);
|
2019-05-24 09:30:31 -07:00
|
|
|
efl_ui_layout_orientation_set(rbox, EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
|
2018-04-22 23:13:59 -07:00
|
|
|
|
|
|
|
scrl_btn = efl_add(EFL_UI_BUTTON_CLASS, rbox);
|
|
|
|
efl_text_set(scrl_btn, "Scroll Item");
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(scrl_btn, 0.5, 0.5);
|
|
|
|
efl_gfx_hint_size_min_set(scrl_btn, EINA_SIZE2D(200, 25));
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_event_callback_add(scrl_btn, EFL_UI_EVENT_CLICKED, _scrl_btn_clicked, NULL);
|
|
|
|
efl_pack_end(rbox, scrl_btn);
|
|
|
|
|
|
|
|
scrl_btn = efl_add(EFL_UI_BUTTON_CLASS, rbox);
|
|
|
|
efl_text_set(scrl_btn, "Scroll Item Align");
|
2019-02-21 09:19:45 -08:00
|
|
|
efl_gfx_hint_align_set(scrl_btn, 0.5, 0.5);
|
|
|
|
efl_gfx_hint_size_min_set(scrl_btn, EINA_SIZE2D(200, 25));
|
2018-04-22 23:13:59 -07:00
|
|
|
efl_event_callback_add(scrl_btn, EFL_UI_EVENT_CLICKED, _scrl_align_btn_clicked, NULL);
|
|
|
|
efl_pack_end(rbox, scrl_btn);
|
|
|
|
|
|
|
|
efl_pack_end(bbox, rbox);
|
|
|
|
efl_pack_end(wbox, bbox);
|
|
|
|
|
|
|
|
elm_win_resize_object_add(win, wbox);
|
|
|
|
//window show
|
|
|
|
efl_gfx_entity_visible_set(win, EINA_TRUE);
|
|
|
|
|
|
|
|
elm_run();
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
gfx: Add size hint fill (EO)
Summary:
If widget use both hint_align(HINT_FILL) and hint_max together, there is no way
to set to hint_align. See, elementary_test -to 'efl.ui.box' -
"Button with a quite long text." button. you can control button position
using "Box align" slider, but this is not proper implementation. When there are
two widget which have hint_align(HINT_FILL) and hint_max, those positions are
determined by box_align rather than hint_align. it means widget align cannot be
set individually.
To solve this problem, this patch add hint_fill property. in order to avoid
conflict with legacy API named evas_object_size_hint_fill_set(), it only works
for EO widgets(made by efl_add).
Also, EFL_GFX_SIZE_HINT_FILL is removed.
@feature
Test Plan:
elementary_test -to 'efl.ui.box'
elementary_test -to 'efl.ui.table'
Reviewers: jpeg, Hermet, Jaehyun_Cho, raster, barbieri
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T3912
Differential Revision: https://phab.enlightenment.org/D7409
2019-01-15 23:47:51 -08:00
|
|
|
ELM_MAIN()
|