forked from enlightenment/efl
efl_ui : change efl_ui_view_list to efl_ui_list_view.
Summary: View is not a namespace, but an interface, So, View_List cannot be under the view namespace for now. it looks more suite to be end as View than List on this widget name. Firstly, it follows our common naming rules of class. Also, List_View is commonly presentable name on most UI frameworks, so it is very easy to understand what this widget can do for the user. Test Plan: Make works. Example is not works for now til stable model interface. Reviewers: felipealmeida, woohyun, cedric, Hermet Reviewed By: Hermet Subscribers: larryolj, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7234
This commit is contained in:
parent
c4e0d3f69d
commit
e97b6b72be
|
@ -2,7 +2,7 @@ group { "efl/list";
|
||||||
inherit: "efl/scroller";
|
inherit: "efl/scroller";
|
||||||
}
|
}
|
||||||
|
|
||||||
group { "efl/view_list";
|
group { "efl/list_view";
|
||||||
inherit: "efl/list";
|
inherit: "efl/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -468,4 +468,4 @@ group { "efl/list_item:empty";
|
||||||
target: "event_block";
|
target: "event_block";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,11 +78,11 @@ elm_public_eolian_files = \
|
||||||
lib/elementary/efl_ui_layout_part_table.eo \
|
lib/elementary/efl_ui_layout_part_table.eo \
|
||||||
lib/elementary/efl_ui_layout_part_bg.eo \
|
lib/elementary/efl_ui_layout_part_bg.eo \
|
||||||
lib/elementary/efl_ui_layout_part_legacy.eo \
|
lib/elementary/efl_ui_layout_part_legacy.eo \
|
||||||
lib/elementary/efl_ui_view_list.eo \
|
lib/elementary/efl_ui_list_view.eo \
|
||||||
lib/elementary/efl_ui_view_list_model.eo \
|
lib/elementary/efl_ui_list_view_model.eo \
|
||||||
lib/elementary/efl_ui_view_list_pan.eo \
|
lib/elementary/efl_ui_list_view_pan.eo \
|
||||||
lib/elementary/efl_ui_view_list_segarray.eo \
|
lib/elementary/efl_ui_list_view_seg_array.eo \
|
||||||
lib/elementary/efl_ui_view_list_relayout.eo \
|
lib/elementary/efl_ui_list_view_relayout.eo \
|
||||||
lib/elementary/efl_ui_item.eo \
|
lib/elementary/efl_ui_item.eo \
|
||||||
lib/elementary/efl_ui_list_item.eo \
|
lib/elementary/efl_ui_list_item.eo \
|
||||||
lib/elementary/efl_ui_list_default_item_part_icon.eo \
|
lib/elementary/efl_ui_list_default_item_part_icon.eo \
|
||||||
|
@ -276,13 +276,13 @@ elm_legacy_eolian_files = \
|
||||||
lib/elementary/elm_slideshow_item.eo \
|
lib/elementary/elm_slideshow_item.eo \
|
||||||
lib/elementary/elm_table.eo \
|
lib/elementary/elm_table.eo \
|
||||||
lib/elementary/elm_thumb.eo \
|
lib/elementary/elm_thumb.eo \
|
||||||
lib/elementary/efl_ui_view_list_precise_layouter.eo \
|
lib/elementary/efl_ui_list_view_precise_layouter.eo \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
elm_eolian_type_files = \
|
elm_eolian_type_files = \
|
||||||
lib/elementary/elm_general.eot \
|
lib/elementary/elm_general.eot \
|
||||||
lib/elementary/efl_ui.eot \
|
lib/elementary/efl_ui.eot \
|
||||||
lib/elementary/efl_ui_view_list_types.eot \
|
lib/elementary/efl_ui_list_view_types.eot \
|
||||||
lib/elementary/efl_selection_types.eot \
|
lib/elementary/efl_selection_types.eot \
|
||||||
lib/elementary/efl_ui_dnd_types.eot
|
lib/elementary/efl_ui_dnd_types.eot
|
||||||
|
|
||||||
|
@ -414,8 +414,8 @@ includesunstable_HEADERS = \
|
||||||
lib/elementary/efl_ui_item_private.h \
|
lib/elementary/efl_ui_item_private.h \
|
||||||
lib/elementary/efl_ui_list_item_private.h \
|
lib/elementary/efl_ui_list_item_private.h \
|
||||||
lib/elementary/efl_ui_list_private.h \
|
lib/elementary/efl_ui_list_private.h \
|
||||||
lib/elementary/efl_ui_view_list_private.h \
|
lib/elementary/efl_ui_list_view_private.h \
|
||||||
lib/elementary/efl_ui_view_list_segarray.h \
|
lib/elementary/efl_ui_list_view_seg_array.h \
|
||||||
lib/elementary/elm_widget_web.h \
|
lib/elementary/elm_widget_web.h \
|
||||||
lib/elementary/efl_ui_clock.h \
|
lib/elementary/efl_ui_clock.h \
|
||||||
lib/elementary/elm_code.h \
|
lib/elementary/elm_code.h \
|
||||||
|
@ -842,9 +842,9 @@ lib_elementary_libelementary_la_SOURCES = \
|
||||||
lib/elementary/efl_ui_list_default_item.c \
|
lib/elementary/efl_ui_list_default_item.c \
|
||||||
lib/elementary/efl_ui_list_empty_item.c \
|
lib/elementary/efl_ui_list_empty_item.c \
|
||||||
lib/elementary/efl_ui_list.c \
|
lib/elementary/efl_ui_list.c \
|
||||||
lib/elementary/efl_ui_view_list.c \
|
lib/elementary/efl_ui_list_view.c \
|
||||||
lib/elementary/efl_ui_view_list_precise_layouter.c \
|
lib/elementary/efl_ui_list_view_precise_layouter.c \
|
||||||
lib/elementary/efl_ui_view_list_segarray.c \
|
lib/elementary/efl_ui_list_view_seg_array.c \
|
||||||
lib/elementary/efl_ui_layout_factory.c \
|
lib/elementary/efl_ui_layout_factory.c \
|
||||||
lib/elementary/efl_ui_scroller.c \
|
lib/elementary/efl_ui_scroller.c \
|
||||||
lib/elementary/efl_ui_scroll_manager.c \
|
lib/elementary/efl_ui_scroll_manager.c \
|
||||||
|
|
|
@ -120,9 +120,9 @@ elementary/efl_thread_4.c \
|
||||||
elementary/efl_thread_5.c \
|
elementary/efl_thread_5.c \
|
||||||
elementary/efl_thread_6.c \
|
elementary/efl_thread_6.c \
|
||||||
elementary/efl_ui_list_example_1.c \
|
elementary/efl_ui_list_example_1.c \
|
||||||
elementary/efl_ui_view_list_example_1.c \
|
elementary/efl_ui_list_view_example_1.c \
|
||||||
elementary/efl_ui_view_list_example_2.c \
|
elementary/efl_ui_list_view_example_2.c \
|
||||||
elementary/efl_ui_view_list_example_3.c
|
elementary/efl_ui_list_view_example_3.c
|
||||||
|
|
||||||
ELM_SRCS += \
|
ELM_SRCS += \
|
||||||
elementary/bg_cxx_example_01.cc \
|
elementary/bg_cxx_example_01.cc \
|
||||||
|
@ -153,7 +153,7 @@ elementary/evas3d_map_example.edc \
|
||||||
elementary/theme_example.edc \
|
elementary/theme_example.edc \
|
||||||
elementary/layout_example.edc \
|
elementary/layout_example.edc \
|
||||||
elementary/codegen_example.edc \
|
elementary/codegen_example.edc \
|
||||||
elementary/efl_ui_view_list_example.edc \
|
elementary/efl_ui_list_view_example.edc \
|
||||||
elementary/prefs_example_03.edc
|
elementary/prefs_example_03.edc
|
||||||
|
|
||||||
ELM_EPCS = \
|
ELM_EPCS = \
|
||||||
|
@ -334,9 +334,9 @@ elementary/efl_thread_4 \
|
||||||
elementary/efl_thread_5 \
|
elementary/efl_thread_5 \
|
||||||
elementary/efl_thread_6 \
|
elementary/efl_thread_6 \
|
||||||
elementary/efl_ui_list_example_1 \
|
elementary/efl_ui_list_example_1 \
|
||||||
elementary/efl_ui_view_list_example_1 \
|
elementary/efl_ui_list_view_example_1 \
|
||||||
elementary/efl_ui_view_list_example_2 \
|
elementary/efl_ui_list_view_example_2 \
|
||||||
elementary/efl_ui_view_list_example_3
|
elementary/efl_ui_list_view_example_3
|
||||||
#benchmark3d
|
#benchmark3d
|
||||||
#sphere-hunter
|
#sphere-hunter
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// gcc -o efl_ui_view_list_example_1 efl_ui_view_list_example_1.c `pkg-config --cflags --libs elementary`
|
// gcc -o efl_ui_list_view_example_1 efl_ui_list_view_example_1.c `pkg-config --cflags --libs elementary`
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "elementary_config.h"
|
# include "elementary_config.h"
|
||||||
|
@ -24,7 +24,7 @@ char edj_path[PATH_MAX];
|
||||||
static void
|
static void
|
||||||
_realized_cb(void *data, const Efl_Event *event)
|
_realized_cb(void *data, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event *ie = event->info;
|
Efl_Ui_List_View_Item_Event *ie = event->info;
|
||||||
if (!ie->layout) return;
|
if (!ie->layout) return;
|
||||||
|
|
||||||
Efl_Ui_Layout_Object *layout = ie->layout;
|
Efl_Ui_Layout_Object *layout = ie->layout;
|
||||||
|
@ -35,7 +35,7 @@ _realized_cb(void *data, const Efl_Event *event)
|
||||||
static void
|
static void
|
||||||
_unrealized_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
_unrealized_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event *ie = event->info;
|
Efl_Ui_List_View_Item_Event *ie = event->info;
|
||||||
|
|
||||||
efl_ui_view_model_set(ie->layout, NULL);
|
efl_ui_view_model_set(ie->layout, NULL);
|
||||||
efl_del(ie->layout);
|
efl_del(ie->layout);
|
||||||
|
@ -75,7 +75,7 @@ elm_main(int argc, char **argv)
|
||||||
Evas_Object *win, *li;
|
Evas_Object *win, *li;
|
||||||
Eo *model;
|
Eo *model;
|
||||||
|
|
||||||
win = elm_win_util_standard_add("viewlist", "Viewlist");
|
win = elm_win_util_standard_add("list_view", "List_View");
|
||||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||||
|
|
||||||
elm_win_autodel_set(win, EINA_TRUE);
|
elm_win_autodel_set(win, EINA_TRUE);
|
||||||
|
@ -87,12 +87,12 @@ elm_main(int argc, char **argv)
|
||||||
efl_ui_model_connect(factory, "efl.text", "name");
|
efl_ui_model_connect(factory, "efl.text", "name");
|
||||||
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
||||||
|
|
||||||
li = efl_add(EFL_UI_VIEW_LIST_CLASS, win);
|
li = efl_add(EFL_UI_LIST_VIEW_CLASS, win);
|
||||||
efl_ui_view_list_layout_factory_set(li, factory);
|
efl_ui_list_view_layout_factory_set(li, factory);
|
||||||
efl_ui_view_model_set(li, model);
|
efl_ui_view_model_set(li, model);
|
||||||
|
|
||||||
efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, _realized_cb, NULL);
|
efl_event_callback_add(li, EFL_UI_LIST_VIEW_EVENT_ITEM_REALIZED, _realized_cb, NULL);
|
||||||
// efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_UNREALIZED, _unrealized_cb, NULL);
|
// efl_event_callback_add(li, EFL_UI_LIST_VIEW_EVENT_ITEM_UNREALIZED, _unrealized_cb, NULL);
|
||||||
|
|
||||||
elm_win_resize_object_add(win, li);
|
elm_win_resize_object_add(win, li);
|
||||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
@ -1,4 +1,4 @@
|
||||||
// gcc -o efl_ui_view_list_example_2 efl_ui_view_list_example_2.c `pkg-config --cflags --libs elementary`
|
// gcc -o efl_ui_list_view_example_2 efl_ui_list_view_example_2.c `pkg-config --cflags --libs elementary`
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
|
@ -23,7 +23,7 @@ elm_main(int argc, char **argv)
|
||||||
Eo *model, *li;
|
Eo *model, *li;
|
||||||
char *dirname;
|
char *dirname;
|
||||||
|
|
||||||
win = elm_win_util_standard_add("viewlist", "Viewlist");
|
win = elm_win_util_standard_add("list_view2", "List_View2");
|
||||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||||
|
|
||||||
elm_win_autodel_set(win, EINA_TRUE);
|
elm_win_autodel_set(win, EINA_TRUE);
|
||||||
|
@ -36,8 +36,8 @@ elm_main(int argc, char **argv)
|
||||||
efl_ui_model_connect(factory, "efl.text", "filename");
|
efl_ui_model_connect(factory, "efl.text", "filename");
|
||||||
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
||||||
|
|
||||||
li = efl_add(EFL_UI_VIEW_LIST_CLASS, win);
|
li = efl_add(EFL_UI_LIST_VIEW_CLASS, win);
|
||||||
efl_ui_view_list_layout_factory_set(li, factory);
|
efl_ui_list_view_layout_factory_set(li, factory);
|
||||||
efl_ui_view_model_set(li, model);
|
efl_ui_view_model_set(li, model);
|
||||||
|
|
||||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
@ -1,4 +1,4 @@
|
||||||
// gcc -o efl_ui_view_list_example_3 efl_ui_view_list_example_3.c `pkg-config --cflags --libs elementary`
|
// gcc -o efl_ui_list_view_example_3 efl_ui_list_view_example_3.c `pkg-config --cflags --libs elementary`
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
|
@ -113,21 +113,21 @@ static void
|
||||||
_bt_none_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_bt_none_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Evas_Object *li = data;
|
Evas_Object *li = data;
|
||||||
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_NONE);
|
efl_ui_list_view_select_mode_set(li, ELM_OBJECT_SELECT_MODE_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_bt_donly_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_bt_donly_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Evas_Object *li = data;
|
Evas_Object *li = data;
|
||||||
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
|
efl_ui_list_view_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_bt_default_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_bt_default_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Evas_Object *li = data;
|
Evas_Object *li = data;
|
||||||
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DEFAULT);
|
efl_ui_list_view_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -146,7 +146,7 @@ _bt_unset_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
static void
|
static void
|
||||||
_realized_1_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
_realized_1_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event *ie = event->info;
|
Efl_Ui_List_View_Item_Event *ie = event->info;
|
||||||
|
|
||||||
evas_object_size_hint_weight_set(ie->layout, EVAS_HINT_EXPAND, 0);
|
evas_object_size_hint_weight_set(ie->layout, EVAS_HINT_EXPAND, 0);
|
||||||
evas_object_size_hint_align_set(ie->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(ie->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
@ -157,7 +157,7 @@ _realized_1_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
||||||
static void
|
static void
|
||||||
_realized_2_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
_realized_2_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event *ie = event->info;
|
Efl_Ui_List_View_Item_Event *ie = event->info;
|
||||||
printf("relized 2\n");
|
printf("relized 2\n");
|
||||||
|
|
||||||
elm_object_focus_allow_set(ie->layout, EINA_TRUE);
|
elm_object_focus_allow_set(ie->layout, EINA_TRUE);
|
||||||
|
@ -210,7 +210,7 @@ elm_main(int argc, char **argv)
|
||||||
priv = alloca(sizeof(Priv_Data));
|
priv = alloca(sizeof(Priv_Data));
|
||||||
memset(priv, 0, sizeof(Priv_Data));
|
memset(priv, 0, sizeof(Priv_Data));
|
||||||
|
|
||||||
win = elm_win_util_standard_add("viewlist", "Viewlist");
|
win = elm_win_util_standard_add("list_view3", "List_View3");
|
||||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||||
elm_win_autodel_set(win, EINA_TRUE);
|
elm_win_autodel_set(win, EINA_TRUE);
|
||||||
|
|
||||||
|
@ -225,22 +225,22 @@ elm_main(int argc, char **argv)
|
||||||
efl_ui_model_connect(factory, "efl.text", "filename");
|
efl_ui_model_connect(factory, "efl.text", "filename");
|
||||||
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
||||||
|
|
||||||
priv->list1 = efl_add(EFL_UI_VIEW_LIST_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
|
priv->list1 = efl_add(EFL_UI_LIST_VIEW_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
|
||||||
efl_event_callback_add(priv->list1, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, _realized_1_cb, priv);
|
efl_event_callback_add(priv->list1, EFL_UI_LIST_VIEW_EVENT_ITEM_REALIZED, _realized_1_cb, priv);
|
||||||
evas_object_size_hint_weight_set(priv->list1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(priv->list1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(priv->list1, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(priv->list1, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
elm_box_pack_end(bx, priv->list1);
|
elm_box_pack_end(bx, priv->list1);
|
||||||
efl_ui_view_list_layout_factory_set(priv->list1, factory);
|
efl_ui_list_view_layout_factory_set(priv->list1, factory);
|
||||||
|
|
||||||
factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
|
factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
|
||||||
efl_ui_model_connect(factory, "efl.text", "filename");
|
efl_ui_model_connect(factory, "efl.text", "filename");
|
||||||
efl_ui_model_connect(factory, "signal/efl,state,%v", "selected");
|
efl_ui_model_connect(factory, "signal/efl,state,%v", "selected");
|
||||||
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");
|
||||||
priv->list2 = efl_add(EFL_UI_VIEW_LIST_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
|
priv->list2 = efl_add(EFL_UI_LIST_VIEW_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
|
||||||
efl_event_callback_add(priv->list2, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, _realized_2_cb, priv->list2);
|
efl_event_callback_add(priv->list2, EFL_UI_LIST_VIEW_EVENT_ITEM_REALIZED, _realized_2_cb, priv->list2);
|
||||||
evas_object_size_hint_weight_set(priv->list2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(priv->list2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(priv->list2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(priv->list2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
efl_ui_view_list_layout_factory_set(priv->list2, factory);
|
efl_ui_list_view_layout_factory_set(priv->list2, factory);
|
||||||
|
|
||||||
vbx = elm_box_add(win);
|
vbx = elm_box_add(win);
|
||||||
elm_box_pack_end(bx, vbx);
|
elm_box_pack_end(bx, vbx);
|
|
@ -334,13 +334,13 @@ typedef Eo Efl_Ui_Focus_Manager;
|
||||||
# include <efl_ui_list_default_item.eo.h>
|
# include <efl_ui_list_default_item.eo.h>
|
||||||
# include <efl_ui_list_empty_item.eo.h>
|
# include <efl_ui_list_empty_item.eo.h>
|
||||||
# include <efl_ui_list.eo.h>
|
# include <efl_ui_list.eo.h>
|
||||||
# include <efl_ui_view_list_types.eot.h>
|
# include <efl_ui_list_view_types.eot.h>
|
||||||
# include <efl_ui_view_list_segarray.h>
|
# include <efl_ui_list_view_seg_array.h>
|
||||||
# include <efl_ui_view_list_segarray.eo.h>
|
# include <efl_ui_list_view_seg_array.eo.h>
|
||||||
# include <efl_ui_view_list_model.eo.h>
|
# include <efl_ui_list_view_model.eo.h>
|
||||||
# include <efl_ui_view_list_relayout.eo.h>
|
# include <efl_ui_list_view_relayout.eo.h>
|
||||||
# include <efl_ui_view_list.eo.h>
|
# include <efl_ui_list_view.eo.h>
|
||||||
# include <efl_ui_view_list_pan.eo.h>
|
# include <efl_ui_list_view_pan.eo.h>
|
||||||
# include <efl_ui_pan.eo.h>
|
# include <efl_ui_pan.eo.h>
|
||||||
# include <efl_ui_scroll_manager.eo.h>
|
# include <efl_ui_scroll_manager.eo.h>
|
||||||
# include <efl_ui_scroller.eo.h>
|
# include <efl_ui_scroller.eo.h>
|
||||||
|
|
|
@ -10,15 +10,15 @@
|
||||||
#define EFL_UI_WIDGET_FOCUS_MANAGER_PROTECTED
|
#define EFL_UI_WIDGET_FOCUS_MANAGER_PROTECTED
|
||||||
|
|
||||||
#include <Elementary.h>
|
#include <Elementary.h>
|
||||||
#include "efl_ui_view_list_private.h"
|
#include "efl_ui_list_view_private.h"
|
||||||
#include "efl_ui_view_list_precise_layouter.eo.h"
|
#include "efl_ui_list_view_precise_layouter.eo.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#define MY_CLASS EFL_UI_VIEW_LIST_CLASS
|
#define MY_CLASS EFL_UI_LIST_VIEW_CLASS
|
||||||
#define MY_CLASS_NAME "Efl.Ui.View.List"
|
#define MY_CLASS_NAME "Efl.Ui.List_View"
|
||||||
|
|
||||||
#define MY_PAN_CLASS EFL_UI_VIEW_LIST_PAN_CLASS
|
#define MY_PAN_CLASS EFL_UI_LIST_VIEW_PAN_CLASS
|
||||||
|
|
||||||
#define SIG_CHILD_ADDED "child,added"
|
#define SIG_CHILD_ADDED "child,added"
|
||||||
#define SIG_CHILD_REMOVED "child,removed"
|
#define SIG_CHILD_REMOVED "child,removed"
|
||||||
|
@ -30,9 +30,9 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
void _efl_ui_view_list_custom_layout(Efl_Ui_View_List *);
|
void _efl_ui_list_view_custom_layout(Efl_Ui_List_View *);
|
||||||
void _efl_ui_view_list_item_select_set(Efl_Ui_View_List_LayoutItem*, Eina_Bool);
|
void _efl_ui_list_view_item_select_set(Efl_Ui_List_View_Layout_Item*, Eina_Bool);
|
||||||
static void _layout(Efl_Ui_View_List_Data* pd);
|
static void _layout(Efl_Ui_List_View_Data* pd);
|
||||||
|
|
||||||
static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
|
static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
|
||||||
static Eina_Bool _key_action_select(Evas_Object *obj, const char *params);
|
static Eina_Bool _key_action_select(Evas_Object *obj, const char *params);
|
||||||
|
@ -46,14 +46,14 @@ static const Elm_Action key_actions[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
|
_efl_ui_list_view_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd)
|
||||||
{
|
{
|
||||||
evas_object_smart_changed(psd->wobj);
|
evas_object_smart_changed(psd->wobj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_pan_efl_ui_pan_pan_position_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd, Eina_Position2D pos)
|
_efl_ui_list_view_pan_efl_ui_pan_pan_position_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd, Eina_Position2D pos)
|
||||||
{
|
{
|
||||||
if ((pos.x == psd->gmt.x) && (pos.y == psd->gmt.y)) return;
|
if ((pos.x == psd->gmt.x) && (pos.y == psd->gmt.y)) return;
|
||||||
|
|
||||||
|
@ -65,20 +65,20 @@ _efl_ui_view_list_pan_efl_ui_pan_pan_position_set(Eo *obj EINA_UNUSED, Efl_Ui_Vi
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_view_list_pan_efl_ui_pan_pan_position_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
|
_efl_ui_list_view_pan_efl_ui_pan_pan_position_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd)
|
||||||
{
|
{
|
||||||
return psd->gmt.pos;
|
return psd->gmt.pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_view_list_pan_efl_ui_pan_pan_position_max_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
|
_efl_ui_list_view_pan_efl_ui_pan_pan_position_max_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd)
|
||||||
{
|
{
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(psd->wobj, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(psd->wobj, pd);
|
||||||
Eina_Rect vgmt = {};
|
Eina_Rect vgmt = {};
|
||||||
Eina_Size2D min = {};
|
Eina_Size2D min = {};
|
||||||
|
|
||||||
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->scrl_mgr);
|
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->scrl_mgr);
|
||||||
min = efl_ui_view_list_model_min_size_get(psd->wobj);
|
min = efl_ui_list_view_model_min_size_get(psd->wobj);
|
||||||
|
|
||||||
min.w = min.w - vgmt.w;
|
min.w = min.w - vgmt.w;
|
||||||
if (min.w < 0) min.w = 0;
|
if (min.w < 0) min.w = 0;
|
||||||
|
@ -89,50 +89,50 @@ _efl_ui_view_list_pan_efl_ui_pan_pan_position_max_get(const Eo *obj EINA_UNUSED,
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_view_list_pan_efl_ui_pan_pan_position_min_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd EINA_UNUSED)
|
_efl_ui_list_view_pan_efl_ui_pan_pan_position_min_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_POSITION2D(0, 0);
|
return EINA_POSITION2D(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Size2D
|
EOLIAN static Eina_Size2D
|
||||||
_efl_ui_view_list_pan_efl_ui_pan_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
|
_efl_ui_list_view_pan_efl_ui_pan_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Pan_Data *psd)
|
||||||
{
|
{
|
||||||
Eina_Size2D min = {};
|
Eina_Size2D min = {};
|
||||||
min = efl_ui_view_list_model_min_size_get(psd->wobj);
|
min = efl_ui_list_view_model_min_size_get(psd->wobj);
|
||||||
|
|
||||||
return min;
|
return min;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_pan_efl_object_destructor(Eo *obj, Efl_Ui_View_List_Pan_Data *psd EINA_UNUSED)
|
_efl_ui_list_view_pan_efl_object_destructor(Eo *obj, Efl_Ui_List_View_Pan_Data *psd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
efl_destructor(efl_super(obj, MY_PAN_CLASS));
|
efl_destructor(efl_super(obj, MY_PAN_CLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "efl_ui_view_list_pan.eo.c"
|
#include "efl_ui_list_view_pan.eo.c"
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_scrollable_interactive_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd, Eina_Position2D pos)
|
_efl_ui_list_view_efl_ui_scrollable_interactive_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd, Eina_Position2D pos)
|
||||||
{
|
{
|
||||||
efl_ui_scrollable_content_pos_set(psd->scrl_mgr, pos);
|
efl_ui_scrollable_content_pos_set(psd->scrl_mgr, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_view_list_efl_ui_scrollable_interactive_content_pos_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
|
_efl_ui_list_view_efl_ui_scrollable_interactive_content_pos_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
|
||||||
{
|
{
|
||||||
Eina_Position2D pos = efl_ui_scrollable_content_pos_get(psd->scrl_mgr);
|
Eina_Position2D pos = efl_ui_scrollable_content_pos_get(psd->scrl_mgr);
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Size2D
|
EOLIAN static Eina_Size2D
|
||||||
_efl_ui_view_list_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
|
_efl_ui_list_view_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
|
||||||
{
|
{
|
||||||
Eina_Size2D size = efl_ui_scrollable_content_size_get(psd->scrl_mgr);
|
Eina_Size2D size = efl_ui_scrollable_content_size_get(psd->scrl_mgr);
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Rect
|
EOLIAN static Eina_Rect
|
||||||
_efl_ui_view_list_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
|
_efl_ui_list_view_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
|
||||||
{
|
{
|
||||||
Eina_Rect gmt = efl_ui_scrollable_viewport_geometry_get(psd->scrl_mgr);
|
Eina_Rect gmt = efl_ui_scrollable_viewport_geometry_get(psd->scrl_mgr);
|
||||||
return gmt;
|
return gmt;
|
||||||
|
@ -172,7 +172,7 @@ _list_element_focused(void *data EINA_UNUSED, const Efl_Event *ev)
|
||||||
|
|
||||||
if (!focused) return;
|
if (!focused) return;
|
||||||
|
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(ev->object, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(ev->object, pd);
|
||||||
geom = efl_ui_focus_object_focus_geometry_get(focused);
|
geom = efl_ui_focus_object_focus_geometry_get(focused);
|
||||||
pos = efl_ui_scrollable_content_pos_get(pd->scrl_mgr);
|
pos = efl_ui_scrollable_content_pos_get(pd->scrl_mgr);
|
||||||
|
|
||||||
|
@ -185,16 +185,16 @@ static void
|
||||||
_on_item_mouse_up(void *data, Evas *evas EINA_UNUSED, Evas_Object *o EINA_UNUSED, void *event_info)
|
_on_item_mouse_up(void *data, Evas *evas EINA_UNUSED, Evas_Object *o EINA_UNUSED, void *event_info)
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Down *ev = event_info;
|
Evas_Event_Mouse_Down *ev = event_info;
|
||||||
Efl_Ui_View_List_LayoutItem *item = data;
|
Efl_Ui_List_View_Layout_Item *item = data;
|
||||||
|
|
||||||
if (ev->button != 1) return;
|
if (ev->button != 1) return;
|
||||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
||||||
|
|
||||||
_efl_ui_view_list_item_select_set(item, EINA_TRUE);
|
_efl_ui_list_view_item_select_set(item, EINA_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Elm_Object_Select_Mode mode)
|
_efl_ui_list_view_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, Elm_Object_Select_Mode mode)
|
||||||
{
|
{
|
||||||
if (pd->select_mode == mode)
|
if (pd->select_mode == mode)
|
||||||
return;
|
return;
|
||||||
|
@ -203,37 +203,37 @@ _efl_ui_view_list_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Elm_Object_Select_Mode
|
EOLIAN static Elm_Object_Select_Mode
|
||||||
_efl_ui_view_list_select_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_select_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->select_mode;
|
return pd->select_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_default_style_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Eina_Stringshare *style)
|
_efl_ui_list_view_default_style_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, Eina_Stringshare *style)
|
||||||
{
|
{
|
||||||
eina_stringshare_replace(&pd->style, style);
|
eina_stringshare_replace(&pd->style, style);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Stringshare *
|
EOLIAN static Eina_Stringshare *
|
||||||
_efl_ui_view_list_default_style_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_default_style_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->style;
|
return pd->style;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_homogeneous_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Eina_Bool homogeneous)
|
_efl_ui_list_view_homogeneous_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, Eina_Bool homogeneous)
|
||||||
{
|
{
|
||||||
pd->homogeneous = homogeneous;
|
pd->homogeneous = homogeneous;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_view_list_homogeneous_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_homogeneous_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->homogeneous;
|
return pd->homogeneous;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Position2D pos)
|
_efl_ui_list_view_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_List_View_Data *pd, Eina_Position2D pos)
|
||||||
{
|
{
|
||||||
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
|
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
|
||||||
return;
|
return;
|
||||||
|
@ -243,7 +243,7 @@ _efl_ui_view_list_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_View_List_Data *pd
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Size2D size)
|
_efl_ui_list_view_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_List_View_Data *pd, Eina_Size2D size)
|
||||||
{
|
{
|
||||||
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 0, size.w, size.h))
|
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 0, size.w, size.h))
|
||||||
return;
|
return;
|
||||||
|
@ -254,22 +254,22 @@ _efl_ui_view_list_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_View_List_Data *pd, Ei
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
_layout(pd);
|
_layout(pd);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_View_List_Data *pd EINA_UNUSED, Evas_Object *member)
|
_efl_ui_list_view_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_List_View_Data *pd EINA_UNUSED, Evas_Object *member)
|
||||||
{
|
{
|
||||||
efl_canvas_group_member_add(efl_super(obj, MY_CLASS), member);
|
efl_canvas_group_member_add(efl_super(obj, MY_CLASS), member);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Scrollable Implement
|
//Scrollable Implement
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_bar_read_and_update(Eo *obj)
|
_efl_ui_list_view_bar_read_and_update(Eo *obj)
|
||||||
{
|
{
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(obj, pd);
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
double vx, vy;
|
double vx, vy;
|
||||||
|
|
||||||
|
@ -284,30 +284,30 @@ _efl_ui_view_list_bar_read_and_update(Eo *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_reload_cb(void *data,
|
_efl_ui_list_view_reload_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(data, pd);
|
||||||
|
|
||||||
efl_ui_scrollbar_bar_visibility_update(pd->scrl_mgr);
|
efl_ui_scrollbar_bar_visibility_update(pd->scrl_mgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_vbar_drag_cb(void *data,
|
_efl_ui_list_view_vbar_drag_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
_efl_ui_view_list_bar_read_and_update(data);
|
_efl_ui_list_view_bar_read_and_update(data);
|
||||||
|
|
||||||
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_VERTICAL;
|
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_VERTICAL;
|
||||||
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
|
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_vbar_press_cb(void *data,
|
_efl_ui_list_view_vbar_press_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
|
@ -317,7 +317,7 @@ _efl_ui_view_list_vbar_press_cb(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_vbar_unpress_cb(void *data,
|
_efl_ui_list_view_vbar_unpress_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
|
@ -327,14 +327,14 @@ _efl_ui_view_list_vbar_unpress_cb(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_edje_drag_start_cb(void *data,
|
_efl_ui_list_view_edje_drag_start_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(data, pd);
|
||||||
|
|
||||||
_efl_ui_view_list_bar_read_and_update(data);
|
_efl_ui_list_view_bar_read_and_update(data);
|
||||||
|
|
||||||
pd->scrl_freeze = efl_ui_scrollable_scroll_freeze_get(pd->scrl_mgr);
|
pd->scrl_freeze = efl_ui_scrollable_scroll_freeze_get(pd->scrl_mgr);
|
||||||
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, EINA_TRUE);
|
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, EINA_TRUE);
|
||||||
|
@ -342,42 +342,42 @@ _efl_ui_view_list_edje_drag_start_cb(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_edje_drag_stop_cb(void *data,
|
_efl_ui_list_view_edje_drag_stop_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(data, pd);
|
||||||
|
|
||||||
_efl_ui_view_list_bar_read_and_update(data);
|
_efl_ui_list_view_bar_read_and_update(data);
|
||||||
|
|
||||||
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, pd->scrl_freeze);
|
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, pd->scrl_freeze);
|
||||||
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
|
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_edje_drag_cb(void *data,
|
_efl_ui_list_view_edje_drag_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
_efl_ui_view_list_bar_read_and_update(data);
|
_efl_ui_list_view_bar_read_and_update(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_hbar_drag_cb(void *data,
|
_efl_ui_list_view_hbar_drag_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
_efl_ui_view_list_bar_read_and_update(data);
|
_efl_ui_list_view_bar_read_and_update(data);
|
||||||
|
|
||||||
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_HORIZONTAL;
|
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_HORIZONTAL;
|
||||||
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
|
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_hbar_press_cb(void *data,
|
_efl_ui_list_view_hbar_press_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
|
@ -387,7 +387,7 @@ _efl_ui_view_list_hbar_press_cb(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_hbar_unpress_cb(void *data,
|
_efl_ui_list_view_hbar_unpress_cb(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
const char *emission EINA_UNUSED,
|
const char *emission EINA_UNUSED,
|
||||||
const char *source EINA_UNUSED)
|
const char *source EINA_UNUSED)
|
||||||
|
@ -397,10 +397,10 @@ _efl_ui_view_list_hbar_unpress_cb(void *data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
_efl_ui_list_view_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Eo *obj = data;
|
Eo *obj = data;
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(obj, pd);
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
|
|
||||||
double width = 0.0, height = 0.0;
|
double width = 0.0, height = 0.0;
|
||||||
|
@ -412,10 +412,10 @@ _efl_ui_view_list_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UN
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
_efl_ui_list_view_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Eo *obj = data;
|
Eo *obj = data;
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
|
EFL_UI_LIST_VIEW_DATA_GET(obj, pd);
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
|
|
||||||
double posx = 0.0, posy = 0.0;
|
double posx = 0.0, posy = 0.0;
|
||||||
|
@ -427,7 +427,7 @@ _efl_ui_view_list_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNU
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_bar_show_cb(void *data, const Efl_Event *event)
|
_efl_ui_list_view_bar_show_cb(void *data, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Eo *obj = data;
|
Eo *obj = data;
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
|
@ -440,7 +440,7 @@ _efl_ui_view_list_bar_show_cb(void *data, const Efl_Event *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_bar_hide_cb(void *data, const Efl_Event *event)
|
_efl_ui_list_view_bar_hide_cb(void *data, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Eo *obj = data;
|
Eo *obj = data;
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
|
@ -453,7 +453,7 @@ _efl_ui_view_list_bar_hide_cb(void *data, const Efl_Event *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_view_list_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
|
_efl_ui_list_view_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
|
||||||
{
|
{
|
||||||
Eina_Bool ok;
|
Eina_Bool ok;
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||||
|
@ -464,7 +464,7 @@ _efl_ui_view_list_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_view_list_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
|
_efl_ui_list_view_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
|
||||||
{
|
{
|
||||||
Eina_Bool ok;
|
Eina_Bool ok;
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||||
|
@ -475,125 +475,125 @@ _efl_ui_view_list_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_edje_object_attach(Eo *obj)
|
_efl_ui_list_view_edje_object_attach(Eo *obj)
|
||||||
{
|
{
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "reload", "efl", _efl_ui_view_list_reload_cb, obj);
|
(obj, "reload", "efl", _efl_ui_list_view_reload_cb, obj);
|
||||||
//Vertical bar
|
//Vertical bar
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag", "efl.dragable.vbar",
|
(obj, "drag", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_vbar_drag_cb, obj);
|
_efl_ui_list_view_vbar_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,set", "efl.dragable.vbar",
|
(obj, "drag,set", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,start", "efl.dragable.vbar",
|
(obj, "drag,start", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_start_cb, obj);
|
_efl_ui_list_view_edje_drag_start_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,stop", "efl.dragable.vbar",
|
(obj, "drag,stop", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_stop_cb, obj);
|
_efl_ui_list_view_edje_drag_stop_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,step", "efl.dragable.vbar",
|
(obj, "drag,step", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,page", "efl.dragable.vbar",
|
(obj, "drag,page", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "efl,vbar,press", "efl",
|
(obj, "efl,vbar,press", "efl",
|
||||||
_efl_ui_view_list_vbar_press_cb, obj);
|
_efl_ui_list_view_vbar_press_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "efl,vbar,unpress", "efl",
|
(obj, "efl,vbar,unpress", "efl",
|
||||||
_efl_ui_view_list_vbar_unpress_cb, obj);
|
_efl_ui_list_view_vbar_unpress_cb, obj);
|
||||||
|
|
||||||
//Horizontal bar
|
//Horizontal bar
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag", "efl.dragable.hbar",
|
(obj, "drag", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_hbar_drag_cb, obj);
|
_efl_ui_list_view_hbar_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,set", "efl.dragable.hbar",
|
(obj, "drag,set", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,start", "efl.dragable.hbar",
|
(obj, "drag,start", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_start_cb, obj);
|
_efl_ui_list_view_edje_drag_start_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,stop", "efl.dragable.hbar",
|
(obj, "drag,stop", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_stop_cb, obj);
|
_efl_ui_list_view_edje_drag_stop_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,step", "efl.dragable.hbar",
|
(obj, "drag,step", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "drag,page", "efl.dragable.hbar",
|
(obj, "drag,page", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "efl,hbar,press", "efl",
|
(obj, "efl,hbar,press", "efl",
|
||||||
_efl_ui_view_list_hbar_press_cb, obj);
|
_efl_ui_list_view_hbar_press_cb, obj);
|
||||||
efl_layout_signal_callback_add
|
efl_layout_signal_callback_add
|
||||||
(obj, "efl,hbar,unpress", "efl",
|
(obj, "efl,hbar,unpress", "efl",
|
||||||
_efl_ui_view_list_hbar_unpress_cb, obj);
|
_efl_ui_list_view_hbar_unpress_cb, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_edje_object_detach(Evas_Object *obj)
|
_efl_ui_list_view_edje_object_detach(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "reload", "efl", _efl_ui_view_list_reload_cb, obj);
|
(obj, "reload", "efl", _efl_ui_list_view_reload_cb, obj);
|
||||||
//Vertical bar
|
//Vertical bar
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag", "efl.dragable.vbar", _efl_ui_view_list_vbar_drag_cb,
|
(obj, "drag", "efl.dragable.vbar", _efl_ui_list_view_vbar_drag_cb,
|
||||||
obj);
|
obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,set", "efl.dragable.vbar",
|
(obj, "drag,set", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,start", "efl.dragable.vbar",
|
(obj, "drag,start", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_start_cb, obj);
|
_efl_ui_list_view_edje_drag_start_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,stop", "efl.dragable.vbar",
|
(obj, "drag,stop", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_stop_cb, obj);
|
_efl_ui_list_view_edje_drag_stop_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,step", "efl.dragable.vbar",
|
(obj, "drag,step", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,page", "efl.dragable.vbar",
|
(obj, "drag,page", "efl.dragable.vbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "efl,vbar,press", "efl",
|
(obj, "efl,vbar,press", "efl",
|
||||||
_efl_ui_view_list_vbar_press_cb, obj);
|
_efl_ui_list_view_vbar_press_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "efl,vbar,unpress", "efl",
|
(obj, "efl,vbar,unpress", "efl",
|
||||||
_efl_ui_view_list_vbar_unpress_cb, obj);
|
_efl_ui_list_view_vbar_unpress_cb, obj);
|
||||||
|
|
||||||
//Horizontal bar
|
//Horizontal bar
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag", "efl.dragable.hbar",
|
(obj, "drag", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_hbar_drag_cb, obj);
|
_efl_ui_list_view_hbar_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,set", "efl.dragable.hbar",
|
(obj, "drag,set", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,start", "efl.dragable.hbar",
|
(obj, "drag,start", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_start_cb, obj);
|
_efl_ui_list_view_edje_drag_start_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,stop", "efl.dragable.hbar",
|
(obj, "drag,stop", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_stop_cb, obj);
|
_efl_ui_list_view_edje_drag_stop_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,step", "efl.dragable.hbar",
|
(obj, "drag,step", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "drag,page", "efl.dragable.hbar",
|
(obj, "drag,page", "efl.dragable.hbar",
|
||||||
_efl_ui_view_list_edje_drag_cb, obj);
|
_efl_ui_list_view_edje_drag_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "efl,hbar,press", "efl",
|
(obj, "efl,hbar,press", "efl",
|
||||||
_efl_ui_view_list_hbar_press_cb, obj);
|
_efl_ui_list_view_hbar_press_cb, obj);
|
||||||
efl_layout_signal_callback_del
|
efl_layout_signal_callback_del
|
||||||
(obj, "efl,hbar,unpress", "efl",
|
(obj, "efl,hbar,unpress", "efl",
|
||||||
_efl_ui_view_list_hbar_unpress_cb, obj);
|
_efl_ui_list_view_hbar_unpress_cb, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Pan_Data *pan_data;
|
Efl_Ui_List_View_Pan_Data *pan_data;
|
||||||
Eina_Size2D min = {};
|
Eina_Size2D min = {};
|
||||||
Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable;
|
Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable;
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
|
@ -605,7 +605,7 @@ _efl_ui_view_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
|
|
||||||
elm_widget_can_focus_set(obj, EINA_TRUE);
|
elm_widget_can_focus_set(obj, EINA_TRUE);
|
||||||
|
|
||||||
if (!elm_layout_theme_set(obj, "view_list", "base", elm_widget_style_get(obj)))
|
if (!elm_layout_theme_set(obj, "list_view", "base", elm_widget_style_get(obj)))
|
||||||
CRI("Failed to set layout!");
|
CRI("Failed to set layout!");
|
||||||
|
|
||||||
pd->scrl_mgr = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj,
|
pd->scrl_mgr = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj,
|
||||||
|
@ -630,28 +630,28 @@ _efl_ui_view_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
efl_gfx_size_hint_restricted_min_set(obj, min);
|
efl_gfx_size_hint_restricted_min_set(obj, min);
|
||||||
|
|
||||||
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED,
|
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED,
|
||||||
_efl_ui_view_list_bar_size_changed_cb, obj);
|
_efl_ui_list_view_bar_size_changed_cb, obj);
|
||||||
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED,
|
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED,
|
||||||
_efl_ui_view_list_bar_pos_changed_cb, obj);
|
_efl_ui_list_view_bar_pos_changed_cb, obj);
|
||||||
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SHOW,
|
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SHOW,
|
||||||
_efl_ui_view_list_bar_show_cb, obj);
|
_efl_ui_list_view_bar_show_cb, obj);
|
||||||
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_HIDE,
|
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_HIDE,
|
||||||
_efl_ui_view_list_bar_hide_cb, obj);
|
_efl_ui_list_view_bar_hide_cb, obj);
|
||||||
|
|
||||||
_efl_ui_view_list_edje_object_attach(obj);
|
_efl_ui_list_view_edje_object_attach(obj);
|
||||||
|
|
||||||
elm_layout_sizing_eval(obj);
|
elm_layout_sizing_eval(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_canvas_group_group_del(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_canvas_group_group_del(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
|
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
|
||||||
efl_canvas_group_del(efl_super(obj, MY_CLASS));
|
efl_canvas_group_del(efl_super(obj, MY_CLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Ui_Focus_Manager*
|
EOLIAN static Efl_Ui_Focus_Manager*
|
||||||
_efl_ui_view_list_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
|
_efl_ui_list_view_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
|
||||||
{
|
{
|
||||||
if (!pd->manager)
|
if (!pd->manager)
|
||||||
pd->manager = efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, obj,
|
pd->manager = efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, obj,
|
||||||
|
@ -661,7 +661,7 @@ _efl_ui_view_list_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj EINA_
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eo *
|
EOLIAN static Eo *
|
||||||
_efl_ui_view_list_efl_object_finalize(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_object_finalize(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!pd->factory)
|
if (!pd->factory)
|
||||||
|
@ -669,15 +669,15 @@ _efl_ui_view_list_efl_object_finalize(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
|
|
||||||
if(!pd->relayout)
|
if(!pd->relayout)
|
||||||
{
|
{
|
||||||
pd->relayout = efl_add(EFL_UI_VIEW_LIST_PRECISE_LAYOUTER_CLASS, obj);
|
pd->relayout = efl_add(EFL_UI_LIST_VIEW_PRECISE_LAYOUTER_CLASS, obj);
|
||||||
if (pd->model)
|
if (pd->model)
|
||||||
efl_ui_view_list_relayout_model_set(pd->relayout, pd->model);
|
efl_ui_list_view_relayout_model_set(pd->relayout, pd->model);
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eo *
|
EOLIAN static Eo *
|
||||||
_efl_ui_view_list_efl_object_constructor(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_object_constructor(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||||
pd->obj = obj;
|
pd->obj = obj;
|
||||||
|
@ -685,7 +685,7 @@ _efl_ui_view_list_efl_object_constructor(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
|
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
|
||||||
efl_access_object_role_set(obj, EFL_ACCESS_ROLE_LIST);
|
efl_access_object_role_set(obj, EFL_ACCESS_ROLE_LIST);
|
||||||
|
|
||||||
pd->segarray = efl_add(EFL_UI_VIEW_LIST_SEGARRAY_CLASS, obj, efl_ui_view_list_segarray_setup(efl_added, 32));
|
pd->seg_array = efl_add(EFL_UI_LIST_VIEW_SEG_ARRAY_CLASS, obj, efl_ui_list_view_seg_array_setup(efl_added, 32));
|
||||||
|
|
||||||
efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUS_CHANGED, _list_element_focused, NULL);
|
efl_event_callback_add(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUS_CHANGED, _list_element_focused, NULL);
|
||||||
|
|
||||||
|
@ -702,14 +702,14 @@ _efl_ui_view_list_efl_object_constructor(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_object_destructor(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_object_destructor(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
efl_ui_view_list_relayout_model_set(pd->relayout, NULL);
|
efl_ui_list_view_relayout_model_set(pd->relayout, NULL);
|
||||||
|
|
||||||
efl_unref(pd->model);
|
efl_unref(pd->model);
|
||||||
eina_stringshare_del(pd->style);
|
eina_stringshare_del(pd->style);
|
||||||
|
|
||||||
_efl_ui_view_list_edje_object_detach(obj);
|
_efl_ui_list_view_edje_object_detach(obj);
|
||||||
|
|
||||||
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
|
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
|
||||||
efl_canvas_group_del(efl_super(obj, MY_CLASS));
|
efl_canvas_group_del(efl_super(obj, MY_CLASS));
|
||||||
|
@ -718,7 +718,7 @@ _efl_ui_view_list_efl_object_destructor(Eo *obj, Efl_Ui_View_List_Data *pd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Efl_Ui_Factory *factory)
|
_efl_ui_list_view_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, Efl_Ui_Factory *factory)
|
||||||
{
|
{
|
||||||
if (pd->factory)
|
if (pd->factory)
|
||||||
efl_unref(pd->factory);
|
efl_unref(pd->factory);
|
||||||
|
@ -728,7 +728,7 @@ _efl_ui_view_list_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Efl_Model *model)
|
_efl_ui_list_view_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, Efl_Model *model)
|
||||||
{
|
{
|
||||||
if (pd->model == model)
|
if (pd->model == model)
|
||||||
return;
|
return;
|
||||||
|
@ -736,36 +736,36 @@ _efl_ui_view_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Da
|
||||||
if (pd->model)
|
if (pd->model)
|
||||||
{
|
{
|
||||||
if (pd->relayout)
|
if (pd->relayout)
|
||||||
efl_ui_view_list_relayout_model_set(pd->relayout, NULL);
|
efl_ui_list_view_relayout_model_set(pd->relayout, NULL);
|
||||||
efl_ui_view_list_segarray_flush(pd->segarray);
|
efl_ui_list_view_seg_array_flush(pd->seg_array);
|
||||||
}
|
}
|
||||||
|
|
||||||
efl_replace(&pd->model, model);
|
efl_replace(&pd->model, model);
|
||||||
|
|
||||||
if (pd->model && pd->relayout)
|
if (pd->model && pd->relayout)
|
||||||
efl_ui_view_list_relayout_model_set(pd->relayout, pd->model);
|
efl_ui_list_view_relayout_model_set(pd->relayout, pd->model);
|
||||||
|
|
||||||
evas_object_smart_changed(pd->obj);
|
evas_object_smart_changed(pd->obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Model *
|
EOLIAN static Efl_Model *
|
||||||
_efl_ui_view_list_efl_ui_view_model_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_ui_view_model_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->model;
|
return pd->model;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN int
|
EOLIAN int
|
||||||
_efl_ui_view_list_efl_access_selection_selected_children_count_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_access_selection_selected_children_count_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return eina_list_count(pd->selected_items);
|
return eina_list_count(pd->selected_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eo*
|
EOLIAN Eo*
|
||||||
_efl_ui_view_list_efl_access_selection_selected_child_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, int child_index)
|
_efl_ui_list_view_efl_access_selection_selected_child_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd, int child_index)
|
||||||
{
|
{
|
||||||
if(child_index < (int) eina_list_count(pd->selected_items))
|
if(child_index < (int) eina_list_count(pd->selected_items))
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_LayoutItem* items = eina_list_nth(pd->selected_items, child_index);
|
Efl_Ui_List_View_Layout_Item* items = eina_list_nth(pd->selected_items, child_index);
|
||||||
return items[child_index].layout;
|
return items[child_index].layout;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -773,37 +773,37 @@ _efl_ui_view_list_efl_access_selection_selected_child_get(const Eo *obj EINA_UNU
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_child_select(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_child_select(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_selected_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_selected_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_is_child_selected(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_is_child_selected(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_all_children_select(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_all_children_select(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_access_selection_clear(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_access_selection_clear(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_Bool
|
EOLIAN Eina_Bool
|
||||||
_efl_ui_view_list_efl_access_selection_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
_efl_ui_list_view_efl_access_selection_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -828,7 +828,7 @@ _key_action_escape(Evas_Object *obj, const char *params EINA_UNUSED)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_efl_ui_view_list_item_select_set(Efl_Ui_View_List_LayoutItem *item, Eina_Bool selected)
|
_efl_ui_list_view_item_select_set(Efl_Ui_List_View_Layout_Item *item, Eina_Bool selected)
|
||||||
{
|
{
|
||||||
Eina_Stringshare *sprop;
|
Eina_Stringshare *sprop;
|
||||||
assert(item != NULL);
|
assert(item != NULL);
|
||||||
|
@ -850,56 +850,56 @@ _efl_ui_view_list_item_select_set(Efl_Ui_View_List_LayoutItem *item, Eina_Bool s
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_relayout_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, Efl_Ui_View_List_Relayout *object)
|
_efl_ui_list_view_relayout_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED, Efl_Ui_List_View_Relayout *object)
|
||||||
{
|
{
|
||||||
efl_replace(&pd->relayout, object);
|
efl_replace(&pd->relayout, object);
|
||||||
if (pd->model && pd->relayout)
|
if (pd->model && pd->relayout)
|
||||||
efl_ui_view_list_relayout_model_set(pd->relayout, pd->model);
|
efl_ui_list_view_relayout_model_set(pd->relayout, pd->model);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Efl_Ui_View_List_Relayout *
|
static Efl_Ui_List_View_Relayout *
|
||||||
_efl_ui_view_list_relayout_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
|
_efl_ui_list_view_relayout_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return pd->relayout;
|
return pd->relayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_layout(Efl_Ui_View_List_Data *pd)
|
_layout(Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
if (!pd->model)
|
if (!pd->model)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
efl_ui_view_list_relayout_layout_do(pd->relayout, pd->obj, pd->segarray_first, pd->segarray);
|
efl_ui_list_view_relayout_layout_do(pd->relayout, pd->obj, pd->seg_array_first, pd->seg_array);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Value
|
static Eina_Value
|
||||||
_children_slice_then(void * data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED)
|
_children_slice_then(void * data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Data *pd = data;
|
Efl_Ui_List_View_Data *pd = data;
|
||||||
|
|
||||||
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
||||||
goto on_error;
|
goto on_error;
|
||||||
|
|
||||||
efl_ui_view_list_segarray_insert_value(pd->segarray, pd->slice.start, v);
|
efl_ui_list_view_seg_array_insert_value(pd->seg_array, pd->slice.start, v);
|
||||||
|
|
||||||
pd->segarray_first = pd->slice.start;
|
pd->seg_array_first = pd->slice.start;
|
||||||
pd->slice.start = pd->slice.count = 0;
|
pd->slice.start = pd->slice.count = 0;
|
||||||
pd->slice.future = NULL;
|
pd->slice.future = NULL;
|
||||||
|
|
||||||
efl_ui_view_list_relayout_layout_do(pd->relayout, pd->obj, pd->segarray_first, pd->segarray);
|
efl_ui_list_view_relayout_layout_do(pd->relayout, pd->obj, pd->seg_array_first, pd->seg_array);
|
||||||
on_error:
|
on_error:
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EFL UI LIST MODEL INTERFACE */
|
/* EFL UI LIST MODEL INTERFACE */
|
||||||
EOLIAN static Eina_Size2D
|
EOLIAN static Eina_Size2D
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_min_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_ui_list_view_model_min_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->min;
|
return pd->min;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_min_size_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Size2D min)
|
_efl_ui_list_view_efl_ui_list_view_model_min_size_set(Eo *obj, Efl_Ui_List_View_Data *pd, Eina_Size2D min)
|
||||||
{
|
{
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
|
|
||||||
|
@ -911,33 +911,33 @@ _efl_ui_view_list_efl_ui_view_list_model_min_size_set(Eo *obj, Efl_Ui_View_List_
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_focus_composition_prepare(Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_ui_focus_composition_prepare(Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
Eina_List *order = efl_ui_view_list_relayout_elements_get(pd->relayout);
|
Eina_List *order = efl_ui_list_view_relayout_elements_get(pd->relayout);
|
||||||
efl_ui_focus_composition_elements_set(obj, order);
|
efl_ui_focus_composition_elements_set(obj, order);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN Eina_List*
|
EOLIAN Eina_List*
|
||||||
_efl_ui_view_list_efl_access_object_access_children_get(const Eo *obj, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_access_object_access_children_get(const Eo *obj, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
Eina_List *ret = NULL, *ret2 = NULL;
|
Eina_List *ret = NULL, *ret2 = NULL;
|
||||||
|
|
||||||
ret = efl_ui_view_list_relayout_elements_get(pd->relayout);
|
ret = efl_ui_list_view_relayout_elements_get(pd->relayout);
|
||||||
ret2 = efl_access_object_access_children_get(efl_super(obj, EFL_UI_VIEW_LIST_CLASS));
|
ret2 = efl_access_object_access_children_get(efl_super(obj, EFL_UI_LIST_VIEW_CLASS));
|
||||||
|
|
||||||
return eina_list_merge(ret, ret2);
|
return eina_list_merge(ret, ret2);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_view_list_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_View_List_Data *pd EINA_UNUSED, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect EINA_UNUSED)
|
_efl_ui_list_view_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_List_View_Data *pd EINA_UNUSED, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return efl_ui_widget_focus_state_apply(efl_super(obj, MY_CLASS), current_state, configured_state, obj);
|
return efl_ui_widget_focus_state_apply(efl_super(obj, MY_CLASS), current_state, configured_state, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Ui_View_List_LayoutItem *
|
EOLIAN static Efl_Ui_List_View_Layout_Item *
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_realize(Eo *obj, Efl_Ui_View_List_Data *pd, Efl_Ui_View_List_LayoutItem *item)
|
_efl_ui_list_view_efl_ui_list_view_model_realize(Eo *obj, Efl_Ui_List_View_Data *pd, Efl_Ui_List_View_Layout_Item *item)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event evt;
|
Efl_Ui_List_View_Item_Event evt;
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(item->children, item);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(item->children, item);
|
||||||
|
|
||||||
item->layout = efl_ui_factory_create(pd->factory, item->children, obj);
|
item->layout = efl_ui_factory_create(pd->factory, item->children, obj);
|
||||||
|
@ -952,8 +952,8 @@ _efl_ui_view_list_efl_ui_view_list_model_realize(Eo *obj, Efl_Ui_View_List_Data
|
||||||
|
|
||||||
evt.child = item->children;
|
evt.child = item->children;
|
||||||
evt.layout = item->layout;
|
evt.layout = item->layout;
|
||||||
evt.index = efl_ui_view_list_item_index_get(item);
|
evt.index = efl_ui_list_view_item_index_get(item);
|
||||||
efl_event_callback_call(obj, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, &evt);
|
efl_event_callback_call(obj, EFL_UI_LIST_VIEW_EVENT_ITEM_REALIZED, &evt);
|
||||||
efl_ui_focus_composition_dirty(obj);
|
efl_ui_focus_composition_dirty(obj);
|
||||||
|
|
||||||
evas_object_show(item->layout);
|
evas_object_show(item->layout);
|
||||||
|
@ -961,9 +961,9 @@ _efl_ui_view_list_efl_ui_view_list_model_realize(Eo *obj, Efl_Ui_View_List_Data
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_unrealize(Eo *obj, Efl_Ui_View_List_Data *pd, Efl_Ui_View_List_LayoutItem *item)
|
_efl_ui_list_view_efl_ui_list_view_model_unrealize(Eo *obj, Efl_Ui_List_View_Data *pd, Efl_Ui_List_View_Layout_Item *item)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Item_Event evt;
|
Efl_Ui_List_View_Item_Event evt;
|
||||||
EINA_SAFETY_ON_NULL_RETURN(item->layout);
|
EINA_SAFETY_ON_NULL_RETURN(item->layout);
|
||||||
|
|
||||||
evas_object_event_callback_del_full(item->layout, EVAS_CALLBACK_MOUSE_UP, _on_item_mouse_up, item);
|
evas_object_event_callback_del_full(item->layout, EVAS_CALLBACK_MOUSE_UP, _on_item_mouse_up, item);
|
||||||
|
@ -978,8 +978,8 @@ _efl_ui_view_list_efl_ui_view_list_model_unrealize(Eo *obj, Efl_Ui_View_List_Dat
|
||||||
|
|
||||||
evt.child = item->children;
|
evt.child = item->children;
|
||||||
evt.layout = item->layout;
|
evt.layout = item->layout;
|
||||||
evt.index = efl_ui_view_list_item_index_get(item);
|
evt.index = efl_ui_list_view_item_index_get(item);
|
||||||
efl_event_callback_call(obj, EFL_UI_VIEW_LIST_EVENT_ITEM_UNREALIZED, &evt);
|
efl_event_callback_call(obj, EFL_UI_LIST_VIEW_EVENT_ITEM_UNREALIZED, &evt);
|
||||||
|
|
||||||
evas_object_smart_member_del(item->layout);
|
evas_object_smart_member_del(item->layout);
|
||||||
efl_ui_factory_release(pd->factory, item->layout);
|
efl_ui_factory_release(pd->factory, item->layout);
|
||||||
|
@ -987,7 +987,7 @@ _efl_ui_view_list_efl_ui_view_list_model_unrealize(Eo *obj, Efl_Ui_View_List_Dat
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_load_range_set(Eo* obj, Efl_Ui_View_List_Data* pd, int first, int count)
|
_efl_ui_list_view_efl_ui_list_view_model_load_range_set(Eo* obj, Efl_Ui_List_View_Data* pd, int first, int count)
|
||||||
{
|
{
|
||||||
if (pd->slice.future) return ;
|
if (pd->slice.future) return ;
|
||||||
|
|
||||||
|
@ -1003,18 +1003,18 @@ _efl_ui_view_list_efl_ui_view_list_model_load_range_set(Eo* obj, Efl_Ui_View_Lis
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static int
|
EOLIAN static int
|
||||||
_efl_ui_view_list_efl_ui_view_list_model_model_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
|
_efl_ui_list_view_efl_ui_list_view_model_model_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *pd)
|
||||||
{
|
{
|
||||||
return efl_model_children_count_get(pd->model);
|
return efl_model_children_count_get(pd->model);
|
||||||
}
|
}
|
||||||
|
|
||||||
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_view_list, Efl_Ui_View_List_Data)
|
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_list_view, Efl_Ui_List_View_Data)
|
||||||
|
|
||||||
/* Internal EO APIs and hidden overrides */
|
/* Internal EO APIs and hidden overrides */
|
||||||
|
|
||||||
#define EFL_UI_VIEW_LIST_EXTRA_OPS \
|
#define EFL_UI_LIST_VIEW_EXTRA_OPS \
|
||||||
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_view_list)
|
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_list_view)
|
||||||
|
|
||||||
#include "efl_ui_view_list.eo.c"
|
#include "efl_ui_list_view.eo.c"
|
||||||
#include "efl_ui_view_list_relayout.eo.c"
|
#include "efl_ui_list_view_relayout.eo.c"
|
||||||
#include "efl_ui_view_list_model.eo.c"
|
#include "efl_ui_list_view_model.eo.c"
|
|
@ -1,19 +1,19 @@
|
||||||
import elm_general;
|
import elm_general;
|
||||||
|
|
||||||
struct Efl.Ui.View_List_Item_Event
|
struct Efl.Ui.List_View_Item_Event
|
||||||
{
|
{
|
||||||
layout: Efl.Ui.Layout.Object;
|
layout: Efl.Ui.Layout.Object;
|
||||||
child: Efl.Model;
|
child: Efl.Model;
|
||||||
index: int;
|
index: int;
|
||||||
}
|
}
|
||||||
class Efl.Ui.View_List (Efl.Ui.Layout.Object, Efl.Ui.View, Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar,
|
class Efl.Ui.List_View (Efl.Ui.Layout.Object, Efl.Ui.View, Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar,
|
||||||
Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub,
|
Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub,
|
||||||
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.View_List_Model, Efl.Ui.Widget_Focus_Manager)
|
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.List_View_Model, Efl.Ui.Widget_Focus_Manager)
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
@property relayout {
|
@property relayout {
|
||||||
values {
|
values {
|
||||||
object: Efl.Ui.View_List_Relayout;
|
object: Efl.Ui.List_View_Relayout;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property homogeneous {
|
@property homogeneous {
|
||||||
|
@ -50,14 +50,14 @@ class Efl.Ui.View_List (Efl.Ui.Layout.Object, Efl.Ui.View, Efl.Ui.Scrollable_Int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
item,realized : Efl.Ui.View_List_Item_Event;
|
item,realized : Efl.Ui.List_View_Item_Event;
|
||||||
item,unrealized : Efl.Ui.View_List_Item_Event;
|
item,unrealized : Efl.Ui.List_View_Item_Event;
|
||||||
item,focused : Efl.Ui.View_List_Item_Event;
|
item,focused : Efl.Ui.List_View_Item_Event;
|
||||||
item,unfocused : Efl.Ui.View_List_Item_Event;
|
item,unfocused : Efl.Ui.List_View_Item_Event;
|
||||||
item,highlighted : Efl.Ui.View_List_Item_Event;
|
item,highlighted : Efl.Ui.List_View_Item_Event;
|
||||||
item,unhighlighted : Efl.Ui.View_List_Item_Event;
|
item,unhighlighted : Efl.Ui.List_View_Item_Event;
|
||||||
item,selected : Efl.Ui.View_List_Item_Event;
|
item,selected : Efl.Ui.List_View_Item_Event;
|
||||||
item,unselected : Efl.Ui.View_List_Item_Event;
|
item,unselected : Efl.Ui.List_View_Item_Event;
|
||||||
}
|
}
|
||||||
|
|
||||||
implements {
|
implements {
|
||||||
|
@ -70,11 +70,11 @@ class Efl.Ui.View_List (Efl.Ui.Layout.Object, Efl.Ui.View, Efl.Ui.Scrollable_Int
|
||||||
Efl.Canvas.Group.group_member_add;
|
Efl.Canvas.Group.group_member_add;
|
||||||
Efl.Canvas.Group.group_calculate;
|
Efl.Canvas.Group.group_calculate;
|
||||||
|
|
||||||
Efl.Ui.View_List_Model.load_range { set;}
|
Efl.Ui.List_View_Model.load_range { set;}
|
||||||
Efl.Ui.View_List_Model.realize;
|
Efl.Ui.List_View_Model.realize;
|
||||||
Efl.Ui.View_List_Model.unrealize;
|
Efl.Ui.List_View_Model.unrealize;
|
||||||
Efl.Ui.View_List_Model.model_size { get; }
|
Efl.Ui.List_View_Model.model_size { get; }
|
||||||
Efl.Ui.View_List_Model.min_size { get; set; }
|
Efl.Ui.List_View_Model.min_size { get; set; }
|
||||||
|
|
||||||
// Widget
|
// Widget
|
||||||
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
|
@ -1,6 +1,6 @@
|
||||||
import efl_ui_view_list_types;
|
import efl_ui_list_view_types;
|
||||||
|
|
||||||
interface Efl.Ui.View_List_Model (Efl.Interface)
|
interface Efl.Ui.List_View_Model (Efl.Interface)
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
@property load_range {
|
@property load_range {
|
||||||
|
@ -12,13 +12,13 @@ interface Efl.Ui.View_List_Model (Efl.Interface)
|
||||||
}
|
}
|
||||||
realize {
|
realize {
|
||||||
params {
|
params {
|
||||||
item: ptr(Efl.Ui.View.List.LayoutItem);
|
item: ptr(Efl.Ui.List_View_Layout_Item);
|
||||||
}
|
}
|
||||||
return: ptr(Efl.Ui.View.List.LayoutItem);
|
return: ptr(Efl.Ui.List_View_Layout_Item);
|
||||||
}
|
}
|
||||||
unrealize {
|
unrealize {
|
||||||
params {
|
params {
|
||||||
item: ptr(Efl.Ui.View.List.LayoutItem);
|
item: ptr(Efl.Ui.List_View_Layout_Item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// @property visible_range {
|
// @property visible_range {
|
|
@ -1,6 +1,6 @@
|
||||||
class Efl.Ui.View_List_Pan (Efl.Ui.Pan)
|
class Efl.Ui.List_View_Pan (Efl.Ui.Pan)
|
||||||
{
|
{
|
||||||
[[Elementary Efl_Ui_View_List pan class]]
|
[[Elementary Efl_Ui_List_View pan class]]
|
||||||
implements {
|
implements {
|
||||||
Efl.Object.destructor;
|
Efl.Object.destructor;
|
||||||
Efl.Ui.Pan.content_size { get; }
|
Efl.Ui.Pan.content_size { get; }
|
|
@ -7,16 +7,16 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "elm_priv.h"
|
#include "elm_priv.h"
|
||||||
#include "efl_ui_view_list_segarray.h"
|
#include "efl_ui_list_view_seg_array.h"
|
||||||
|
|
||||||
#define MY_CLASS EFL_UI_VIEW_LIST_PRECISE_LAYOUTER_CLASS
|
#define MY_CLASS EFL_UI_LIST_VIEW_PRECISE_LAYOUTER_CLASS
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Precise_Layouter_Data
|
typedef struct _Efl_Ui_List_View_Precise_Layouter_Data
|
||||||
{
|
{
|
||||||
Efl_Model* model;
|
Efl_Model* model;
|
||||||
Efl_Ui_View_List_Model *modeler;
|
Efl_Ui_List_View_Model *modeler;
|
||||||
Ecore_Job *calc_job;
|
Ecore_Job *calc_job;
|
||||||
Efl_Ui_View_List_SegArray *segarray;
|
Efl_Ui_List_View_Seg_Array *seg_array;
|
||||||
|
|
||||||
Eina_Size2D min;
|
Eina_Size2D min;
|
||||||
|
|
||||||
|
@ -28,32 +28,32 @@ typedef struct _Efl_Ui_View_List_Precise_Layouter_Data
|
||||||
Eina_Bool initialized : 1;
|
Eina_Bool initialized : 1;
|
||||||
Eina_Bool recalc : 1;
|
Eina_Bool recalc : 1;
|
||||||
Eina_Bool resize : 1;
|
Eina_Bool resize : 1;
|
||||||
} Efl_Ui_View_List_Precise_Layouter_Data;
|
} Efl_Ui_List_View_Precise_Layouter_Data;
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Precise_Layouter_Node_Data
|
typedef struct _Efl_Ui_List_View_Precise_Layouter_Node_Data
|
||||||
{
|
{
|
||||||
Eina_Size2D min;
|
Eina_Size2D min;
|
||||||
Eina_Size2D size;
|
Eina_Size2D size;
|
||||||
|
|
||||||
Eina_Bool realized;
|
Eina_Bool realized;
|
||||||
} Efl_Ui_View_List_Precise_Layouter_Node_Data;
|
} Efl_Ui_List_View_Precise_Layouter_Node_Data;
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Precise_Layouter_Callback_Data
|
typedef struct _Efl_Ui_List_View_Precise_Layouter_Callback_Data
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd;
|
||||||
Efl_Ui_View_List_LayoutItem *item;
|
Efl_Ui_List_View_Layout_Item *item;
|
||||||
} Efl_Ui_View_List_Precise_Layouter_Callback_Data;
|
} Efl_Ui_List_View_Precise_Layouter_Callback_Data;
|
||||||
|
|
||||||
#include "efl_ui_view_list_precise_layouter.eo.h"
|
#include "efl_ui_list_view_precise_layouter.eo.h"
|
||||||
|
|
||||||
static void _efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *);
|
static void _efl_ui_list_view_relayout_layout_do(Efl_Ui_List_View_Precise_Layouter_Data *);
|
||||||
static Eina_Bool _initilize(Eo *, Efl_Ui_View_List_Precise_Layouter_Data*, Efl_Ui_View_List_Model*, Efl_Ui_View_List_SegArray*);
|
static Eina_Bool _initilize(Eo *, Efl_Ui_List_View_Precise_Layouter_Data*, Efl_Ui_List_View_Model*, Efl_Ui_List_View_Seg_Array*);
|
||||||
static void _finalize(Eo *, Efl_Ui_View_List_Precise_Layouter_Data*);
|
static void _finalize(Eo *, Efl_Ui_List_View_Precise_Layouter_Data*);
|
||||||
static void _node_realize(Efl_Ui_View_List_Precise_Layouter_Data*, Efl_Ui_View_List_SegArray_Node*);
|
static void _node_realize(Efl_Ui_List_View_Precise_Layouter_Data*, Efl_Ui_List_View_Seg_Array_Node*);
|
||||||
static void _node_unrealize(Efl_Ui_View_List_Precise_Layouter_Data*, Efl_Ui_View_List_SegArray_Node*);
|
static void _node_unrealize(Efl_Ui_List_View_Precise_Layouter_Data*, Efl_Ui_List_View_Seg_Array_Node*);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_item_size_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_LayoutItem* item)
|
_item_size_calc(Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Ui_List_View_Layout_Item* item)
|
||||||
{
|
{
|
||||||
int boxx, boxy, boxw, boxh, boxl, boxr, boxt, boxb, pad[4];
|
int boxx, boxy, boxw, boxh, boxl, boxr, boxt, boxb, pad[4];
|
||||||
double align[2];
|
double align[2];
|
||||||
|
@ -119,11 +119,11 @@ _item_size_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_Lay
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_item_min_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_LayoutItem* item
|
_item_min_calc(Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Ui_List_View_Layout_Item* item
|
||||||
, Eina_Size2D min, Efl_Ui_View_List_SegArray_Node *itemnode)
|
, Eina_Size2D min, Efl_Ui_List_View_Seg_Array_Node *itemnode)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = itemnode->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = itemnode->layout_data;
|
||||||
Efl_Ui_View_List_LayoutItem *layout_item;
|
Efl_Ui_List_View_Layout_Item *layout_item;
|
||||||
int i, pad[4];
|
int i, pad[4];
|
||||||
|
|
||||||
efl_gfx_size_hint_margin_get(item->layout, &pad[0], &pad[1], &pad[2], &pad[3]);
|
efl_gfx_size_hint_margin_get(item->layout, &pad[0], &pad[1], &pad[2], &pad[3]);
|
||||||
|
@ -144,7 +144,7 @@ _item_min_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_Layo
|
||||||
nodedata->min.w = 0;
|
nodedata->min.w = 0;
|
||||||
for (i = 0; i != itemnode->length; ++i)
|
for (i = 0; i != itemnode->length; ++i)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)itemnode->pointers[i];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)itemnode->pointers[i];
|
||||||
if (nodedata->min.w < layout_item->min.w)
|
if (nodedata->min.w < layout_item->min.w)
|
||||||
nodedata->min.w = layout_item->min.w;
|
nodedata->min.w = layout_item->min.w;
|
||||||
|
|
||||||
|
@ -157,13 +157,13 @@ _item_min_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_Layo
|
||||||
pd->min.w = min.w;
|
pd->min.w = min.w;
|
||||||
else if (pd->min.w == item->min.w)
|
else if (pd->min.w == item->min.w)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node *node2;
|
Efl_Ui_List_View_Seg_Array_Node *node2;
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
pd->min.w = min.w;
|
pd->min.w = min.w;
|
||||||
|
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, node2)
|
EINA_ACCESSOR_FOREACH(nodes, i, node2)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
|
||||||
if (pd->min.w < nodedata2->min.w)
|
if (pd->min.w < nodedata2->min.w)
|
||||||
pd->min.w = nodedata2->min.w;
|
pd->min.w = nodedata2->min.w;
|
||||||
|
|
||||||
|
@ -183,18 +183,18 @@ static void
|
||||||
_on_item_size_hint_change(void *data, Evas *e EINA_UNUSED,
|
_on_item_size_hint_change(void *data, Evas *e EINA_UNUSED,
|
||||||
Evas_Object *obj, void *event_info EINA_UNUSED)
|
Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data = data;
|
Efl_Ui_List_View_Precise_Layouter_Callback_Data *cb_data = data;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd = cb_data->pd;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd = cb_data->pd;
|
||||||
Efl_Ui_View_List_LayoutItem *item = cb_data->item;;
|
Efl_Ui_List_View_Layout_Item *item = cb_data->item;;
|
||||||
Efl_Ui_View_List_SegArray_Node *node = item->tree_node;
|
Efl_Ui_List_View_Seg_Array_Node *node = item->tree_node;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
||||||
|
|
||||||
Eina_Size2D min = efl_gfx_size_hint_combined_min_get(obj);
|
Eina_Size2D min = efl_gfx_size_hint_combined_min_get(obj);
|
||||||
_item_min_calc(pd, item, min, node);
|
_item_min_calc(pd, item, min, node);
|
||||||
if (!nodedata->realized)
|
if (!nodedata->realized)
|
||||||
{
|
{
|
||||||
free(evas_object_event_callback_del(item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change));
|
free(evas_object_event_callback_del(item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change));
|
||||||
efl_ui_view_list_model_unrealize(pd->modeler, item);
|
efl_ui_list_view_model_unrealize(pd->modeler, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,14 +202,14 @@ static void
|
||||||
_on_modeler_resize(void *data, Evas *e EINA_UNUSED,
|
_on_modeler_resize(void *data, Evas *e EINA_UNUSED,
|
||||||
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd = data;
|
||||||
pd->resize = EINA_TRUE;
|
pd->resize = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _Request Request;
|
typedef struct _Request Request;
|
||||||
struct _Request
|
struct _Request
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd;
|
||||||
unsigned int index;
|
unsigned int index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ _children_get(void *data, const Eina_Value v, const Eina_Future *dead_future EIN
|
||||||
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR)
|
||||||
goto on_error;
|
goto on_error;
|
||||||
|
|
||||||
efl_ui_view_list_segarray_insert_value(r->pd->segarray, r->index, v);
|
efl_ui_list_view_seg_array_insert_value(r->pd->seg_array, r->index, v);
|
||||||
r->pd->recalc = EINA_TRUE;
|
r->pd->recalc = EINA_TRUE;
|
||||||
evas_object_smart_changed(r->pd->modeler);
|
evas_object_smart_changed(r->pd->modeler);
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ static void
|
||||||
_child_added_cb(void *data, const Efl_Event *event)
|
_child_added_cb(void *data, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Model_Children_Event* evt = event->info;
|
Efl_Model_Children_Event* evt = event->info;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd = data;
|
||||||
Eina_Future *f;
|
Eina_Future *f;
|
||||||
Request *r;
|
Request *r;
|
||||||
|
|
||||||
|
@ -252,13 +252,13 @@ static void
|
||||||
_child_removed_cb(void *data, const Efl_Event *event)
|
_child_removed_cb(void *data, const Efl_Event *event)
|
||||||
{
|
{
|
||||||
Efl_Model_Children_Event* evt = event->info;
|
Efl_Model_Children_Event* evt = event->info;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd = data;
|
||||||
Efl_Ui_View_List_LayoutItem *layout_item, *litem;
|
Efl_Ui_List_View_Layout_Item *layout_item, *litem;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata;
|
||||||
Efl_Ui_View_List_SegArray_Node *itemnode;
|
Efl_Ui_List_View_Seg_Array_Node *itemnode;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
litem = efl_ui_view_list_segarray_remove(pd->segarray, evt->index);
|
litem = efl_ui_list_view_seg_array_remove(pd->seg_array, evt->index);
|
||||||
if (!litem) return;
|
if (!litem) return;
|
||||||
|
|
||||||
itemnode = litem->tree_node;
|
itemnode = litem->tree_node;
|
||||||
|
@ -274,7 +274,7 @@ _child_removed_cb(void *data, const Efl_Event *event)
|
||||||
|
|
||||||
for (i = 0; i != itemnode->length; ++i)
|
for (i = 0; i != itemnode->length; ++i)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)itemnode->pointers[i];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)itemnode->pointers[i];
|
||||||
if (nodedata->min.w < layout_item->min.w)
|
if (nodedata->min.w < layout_item->min.w)
|
||||||
nodedata->min.w = layout_item->min.w;
|
nodedata->min.w = layout_item->min.w;
|
||||||
|
|
||||||
|
@ -287,13 +287,13 @@ _child_removed_cb(void *data, const Efl_Event *event)
|
||||||
|
|
||||||
if (pd->min.w == litem->min.w)
|
if (pd->min.w == litem->min.w)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node *node2;
|
Efl_Ui_List_View_Seg_Array_Node *node2;
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
pd->min.w = 0;
|
pd->min.w = 0;
|
||||||
|
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, node2)
|
EINA_ACCESSOR_FOREACH(nodes, i, node2)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
|
||||||
if (pd->min.w < nodedata2->min.w)
|
if (pd->min.w < nodedata2->min.w)
|
||||||
pd->min.w = nodedata2->min.w;
|
pd->min.w = nodedata2->min.w;
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ _child_removed_cb(void *data, const Efl_Event *event)
|
||||||
eina_accessor_free(nodes);
|
eina_accessor_free(nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
efl_ui_view_list_model_unrealize(pd->modeler, litem);
|
efl_ui_list_view_model_unrealize(pd->modeler, litem);
|
||||||
|
|
||||||
free(litem);
|
free(litem);
|
||||||
pd->recalc = EINA_TRUE;
|
pd->recalc = EINA_TRUE;
|
||||||
|
@ -313,14 +313,14 @@ _child_removed_cb(void *data, const Efl_Event *event)
|
||||||
static void
|
static void
|
||||||
_child_count_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
_child_count_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd = data;
|
||||||
pd->count_total = efl_model_children_count_get(pd->model);
|
pd->count_total = efl_model_children_count_get(pd->model);
|
||||||
if (pd->count_total)
|
if (pd->count_total)
|
||||||
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _child_count_changed_cb, pd);
|
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _child_count_changed_cb, pd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_initilize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_Model *modeler, Efl_Ui_View_List_SegArray *segarray)
|
_initilize(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Ui_List_View_Model *modeler, Efl_Ui_List_View_Seg_Array *seg_array)
|
||||||
{
|
{
|
||||||
if(pd->initialized)
|
if(pd->initialized)
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
@ -332,9 +332,9 @@ _initilize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_
|
||||||
pd->initialized = EINA_TRUE;
|
pd->initialized = EINA_TRUE;
|
||||||
|
|
||||||
pd->modeler = modeler;
|
pd->modeler = modeler;
|
||||||
pd->segarray = segarray;
|
pd->seg_array = seg_array;
|
||||||
|
|
||||||
efl_ui_view_list_model_load_range_set(pd->modeler, 0, pd->count_total); // load all
|
efl_ui_list_view_model_load_range_set(pd->modeler, 0, pd->count_total); // load all
|
||||||
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILD_ADDED, _child_added_cb, pd);
|
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILD_ADDED, _child_added_cb, pd);
|
||||||
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILD_REMOVED, _child_removed_cb, pd);
|
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILD_REMOVED, _child_removed_cb, pd);
|
||||||
|
|
||||||
|
@ -346,9 +346,9 @@ _initilize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_finalize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
_finalize(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node* node;
|
Efl_Ui_List_View_Seg_Array_Node* node;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
evas_object_event_callback_del_full(pd->modeler, EVAS_CALLBACK_RESIZE, _on_modeler_resize, pd);
|
evas_object_event_callback_del_full(pd->modeler, EVAS_CALLBACK_RESIZE, _on_modeler_resize, pd);
|
||||||
|
@ -356,7 +356,7 @@ _finalize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILD_REMOVED, _child_removed_cb, pd);
|
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILD_REMOVED, _child_removed_cb, pd);
|
||||||
pd->count_total = 0;
|
pd->count_total = 0;
|
||||||
|
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, node)
|
EINA_ACCESSOR_FOREACH(nodes, i, node)
|
||||||
{
|
{
|
||||||
_node_unrealize(pd, node);
|
_node_unrealize(pd, node);
|
||||||
|
@ -368,9 +368,9 @@ _finalize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
pd->min.w = 0;
|
pd->min.w = 0;
|
||||||
pd->min.h = 0;
|
pd->min.h = 0;
|
||||||
|
|
||||||
efl_ui_view_list_model_min_size_set(pd->modeler, pd->min);
|
efl_ui_list_view_model_min_size_set(pd->modeler, pd->min);
|
||||||
|
|
||||||
pd->segarray = NULL;
|
pd->seg_array = NULL;
|
||||||
pd->modeler = NULL;
|
pd->modeler = NULL;
|
||||||
|
|
||||||
pd->initialized = EINA_FALSE;
|
pd->initialized = EINA_FALSE;
|
||||||
|
@ -378,11 +378,11 @@ _finalize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_node_realize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegArray_Node *node)
|
_node_realize(Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Ui_List_View_Seg_Array_Node *node)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_LayoutItem* layout_item;
|
Efl_Ui_List_View_Layout_Item* layout_item;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data;
|
Efl_Ui_List_View_Precise_Layouter_Callback_Data *cb_data;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(nodedata);
|
EINA_SAFETY_ON_NULL_RETURN(nodedata);
|
||||||
|
@ -393,12 +393,12 @@ _node_realize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegAr
|
||||||
|
|
||||||
for (i = 0; i != node->length; ++i)
|
for (i = 0; i != node->length; ++i)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)node->pointers[i];
|
||||||
efl_ui_view_list_model_realize(pd->modeler, layout_item);
|
efl_ui_list_view_model_realize(pd->modeler, layout_item);
|
||||||
|
|
||||||
if (layout_item->layout)
|
if (layout_item->layout)
|
||||||
{
|
{
|
||||||
cb_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Callback_Data));
|
cb_data = calloc(1, sizeof(Efl_Ui_List_View_Precise_Layouter_Callback_Data));
|
||||||
cb_data->pd = pd;
|
cb_data->pd = pd;
|
||||||
cb_data->item = layout_item;
|
cb_data->item = layout_item;
|
||||||
evas_object_event_callback_add(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change, cb_data);
|
evas_object_event_callback_add(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change, cb_data);
|
||||||
|
@ -408,11 +408,11 @@ _node_realize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegAr
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_node_unrealize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegArray_Node *node)
|
_node_unrealize(Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Ui_List_View_Seg_Array_Node *node)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_LayoutItem* layout_item;
|
Efl_Ui_List_View_Layout_Item* layout_item;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data;
|
Efl_Ui_List_View_Precise_Layouter_Callback_Data *cb_data;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = node->layout_data;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(nodedata);
|
EINA_SAFETY_ON_NULL_RETURN(nodedata);
|
||||||
|
@ -423,24 +423,24 @@ _node_unrealize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_Seg
|
||||||
|
|
||||||
for (i = 0; i != node->length; ++i)
|
for (i = 0; i != node->length; ++i)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)node->pointers[i];
|
||||||
if (layout_item->layout)
|
if (layout_item->layout)
|
||||||
{
|
{
|
||||||
cb_data = evas_object_event_callback_del(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change);
|
cb_data = evas_object_event_callback_del(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change);
|
||||||
free(cb_data);
|
free(cb_data);
|
||||||
}
|
}
|
||||||
efl_ui_view_list_model_unrealize(pd->modeler, layout_item);
|
efl_ui_list_view_model_unrealize(pd->modeler, layout_item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_calc_range(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
_calc_range(Efl_Ui_List_View_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node *node;
|
Efl_Ui_List_View_Seg_Array_Node *node;
|
||||||
Evas_Coord ch, ny;
|
Evas_Coord ch, ny;
|
||||||
Eina_Rect vgmt;
|
Eina_Rect vgmt;
|
||||||
Eina_Position2D spos;
|
Eina_Position2D spos;
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
|
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
|
||||||
|
@ -452,7 +452,7 @@ _calc_range(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
vgmt.h *= 2;
|
vgmt.h *= 2;
|
||||||
|
|
||||||
ch = 0;
|
ch = 0;
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, node)
|
EINA_ACCESSOR_FOREACH(nodes, i, node)
|
||||||
{
|
{
|
||||||
nodedata = node->layout_data;
|
nodedata = node->layout_data;
|
||||||
|
@ -472,9 +472,9 @@ _calc_range(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
static void
|
static void
|
||||||
_calc_size_job(void *data)
|
_calc_size_job(void *data)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Data *pd;
|
Efl_Ui_List_View_Precise_Layouter_Data *pd;
|
||||||
Efl_Ui_View_List_SegArray_Node *node;
|
Efl_Ui_List_View_Seg_Array_Node *node;
|
||||||
Efl_Ui_View_List_LayoutItem *layout_item;
|
Efl_Ui_List_View_Layout_Item *layout_item;
|
||||||
Eo *obj = data;
|
Eo *obj = data;
|
||||||
Eina_Size2D min;
|
Eina_Size2D min;
|
||||||
int i;
|
int i;
|
||||||
|
@ -484,16 +484,16 @@ _calc_size_job(void *data)
|
||||||
pd = efl_data_scope_get(obj, MY_CLASS);
|
pd = efl_data_scope_get(obj, MY_CLASS);
|
||||||
if (EINA_UNLIKELY(!pd)) return;
|
if (EINA_UNLIKELY(!pd)) return;
|
||||||
|
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
while (eina_accessor_data_get(nodes, pd->calc_progress, (void **)&node))
|
while (eina_accessor_data_get(nodes, pd->calc_progress, (void **)&node))
|
||||||
{
|
{
|
||||||
pd->calc_progress++;
|
pd->calc_progress++;
|
||||||
if (!node->layout_data)
|
if (!node->layout_data)
|
||||||
node->layout_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Node_Data));
|
node->layout_data = calloc(1, sizeof(Efl_Ui_List_View_Precise_Layouter_Node_Data));
|
||||||
|
|
||||||
for (i = 0; i != node->length; ++i)
|
for (i = 0; i != node->length; ++i)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)node->pointers[i];
|
||||||
EINA_SAFETY_ON_NULL_RETURN(layout_item);
|
EINA_SAFETY_ON_NULL_RETURN(layout_item);
|
||||||
|
|
||||||
// cache size of new items
|
// cache size of new items
|
||||||
|
@ -501,18 +501,18 @@ _calc_size_job(void *data)
|
||||||
{
|
{
|
||||||
if (!layout_item->layout)
|
if (!layout_item->layout)
|
||||||
{
|
{
|
||||||
efl_ui_view_list_model_realize(pd->modeler, layout_item);
|
efl_ui_list_view_model_realize(pd->modeler, layout_item);
|
||||||
}
|
}
|
||||||
|
|
||||||
min = efl_gfx_size_hint_combined_min_get(layout_item->layout);
|
min = efl_gfx_size_hint_combined_min_get(layout_item->layout);
|
||||||
if (min.w && min.h)
|
if (min.w && min.h)
|
||||||
{
|
{
|
||||||
_item_min_calc(pd, layout_item, min, node);
|
_item_min_calc(pd, layout_item, min, node);
|
||||||
efl_ui_view_list_model_unrealize(pd->modeler, layout_item);
|
efl_ui_list_view_model_unrealize(pd->modeler, layout_item);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Callback_Data));
|
Efl_Ui_List_View_Precise_Layouter_Callback_Data *cb_data = calloc(1, sizeof(Efl_Ui_List_View_Precise_Layouter_Callback_Data));
|
||||||
cb_data->pd = pd;
|
cb_data->pd = pd;
|
||||||
cb_data->item = layout_item;
|
cb_data->item = layout_item;
|
||||||
evas_object_event_callback_add(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change, cb_data);
|
evas_object_event_callback_add(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change, cb_data);
|
||||||
|
@ -536,7 +536,7 @@ _calc_size_job(void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Object *
|
EOLIAN static Efl_Object *
|
||||||
_efl_ui_view_list_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
_efl_ui_list_view_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||||
pd->initialized = EINA_FALSE;
|
pd->initialized = EINA_FALSE;
|
||||||
|
@ -545,23 +545,23 @@ _efl_ui_view_list_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, E
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_List *
|
EOLIAN static Eina_List *
|
||||||
_efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_elements_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
_efl_ui_list_view_precise_layouter_efl_ui_list_view_relayout_elements_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
Eina_List *elements_order = NULL;
|
Eina_List *elements_order = NULL;
|
||||||
Efl_Ui_View_List_LayoutItem* layout_item;
|
Efl_Ui_List_View_Layout_Item* layout_item;
|
||||||
Efl_Ui_View_List_SegArray_Node *items_node;
|
Efl_Ui_List_View_Seg_Array_Node *items_node;
|
||||||
int i, j = 0;
|
int i, j = 0;
|
||||||
|
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
|
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
|
||||||
if (!nodedata || !nodedata->realized)
|
if (!nodedata || !nodedata->realized)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for(j = 0; j != items_node->length;++j)
|
for(j = 0; j != items_node->length;++j)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)items_node->pointers[j];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)items_node->pointers[j];
|
||||||
if (layout_item->layout)
|
if (layout_item->layout)
|
||||||
elements_order = eina_list_append(elements_order, layout_item->layout);
|
elements_order = eina_list_append(elements_order, layout_item->layout);
|
||||||
}
|
}
|
||||||
|
@ -571,7 +571,7 @@ _efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_elements_get(const
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_model_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Model *model)
|
_efl_ui_list_view_precise_layouter_efl_ui_list_view_relayout_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd, Efl_Model *model)
|
||||||
{
|
{
|
||||||
_finalize(obj, pd);
|
_finalize(obj, pd);
|
||||||
|
|
||||||
|
@ -581,20 +581,20 @@ _efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_model_set(Eo *obj E
|
||||||
{
|
{
|
||||||
pd->count_total = efl_model_children_count_get(pd->model);
|
pd->count_total = efl_model_children_count_get(pd->model);
|
||||||
if (pd->count_total && pd->modeler)
|
if (pd->count_total && pd->modeler)
|
||||||
efl_ui_view_list_model_load_range_set(pd->modeler, 0, pd->count_total); // load all
|
efl_ui_list_view_model_load_range_set(pd->modeler, 0, pd->count_total); // load all
|
||||||
else
|
else
|
||||||
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _child_count_changed_cb, pd);
|
efl_event_callback_add(pd->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _child_count_changed_cb, pd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
_efl_ui_list_view_relayout_layout_do(Efl_Ui_List_View_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
Eina_Rect vgmt;
|
Eina_Rect vgmt;
|
||||||
Eina_Position2D spos;
|
Eina_Position2D spos;
|
||||||
double cur_pos = 0;
|
double cur_pos = 0;
|
||||||
Efl_Ui_View_List_LayoutItem* layout_item;
|
Efl_Ui_List_View_Layout_Item* layout_item;
|
||||||
Efl_Ui_View_List_SegArray_Node *items_node;
|
Efl_Ui_List_View_Seg_Array_Node *items_node;
|
||||||
int i, j = 0;
|
int i, j = 0;
|
||||||
|
|
||||||
_calc_range(pd);
|
_calc_range(pd);
|
||||||
|
@ -621,15 +621,15 @@ _efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
extra = boxh - pd->min.h;
|
extra = boxh - pd->min.h;
|
||||||
if (extra < 0) extra = 0;
|
if (extra < 0) extra = 0;
|
||||||
|
|
||||||
efl_ui_view_list_model_min_size_set(pd->modeler, pd->min);
|
efl_ui_list_view_model_min_size_set(pd->modeler, pd->min);
|
||||||
|
|
||||||
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
|
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
|
||||||
spos = efl_ui_scrollable_content_pos_get(pd->modeler);
|
spos = efl_ui_scrollable_content_pos_get(pd->modeler);
|
||||||
|
|
||||||
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
|
Eina_Accessor *nodes = efl_ui_list_view_seg_array_node_accessor_get(pd->seg_array);
|
||||||
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
|
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
|
Efl_Ui_List_View_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
|
||||||
if (!nodedata)
|
if (!nodedata)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
@ -639,7 +639,7 @@ _efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
{
|
{
|
||||||
for(j = 0; j != items_node->length;++j)
|
for(j = 0; j != items_node->length;++j)
|
||||||
{
|
{
|
||||||
layout_item = (Efl_Ui_View_List_LayoutItem *)items_node->pointers[j];
|
layout_item = (Efl_Ui_List_View_Layout_Item *)items_node->pointers[j];
|
||||||
double x, y, w, h;
|
double x, y, w, h;
|
||||||
double weight_x, weight_y;
|
double weight_x, weight_y;
|
||||||
|
|
||||||
|
@ -678,16 +678,16 @@ _efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *pd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_layout_do
|
_efl_ui_list_view_precise_layouter_efl_ui_list_view_relayout_layout_do
|
||||||
(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd
|
(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Precise_Layouter_Data *pd
|
||||||
, Efl_Ui_View_List_Model *modeler, int first, Efl_Ui_View_List_SegArray *segarray)
|
, Efl_Ui_List_View_Model *modeler, int first, Efl_Ui_List_View_Seg_Array *seg_array)
|
||||||
{
|
{
|
||||||
if (!_initilize(obj, pd, modeler, segarray))
|
if (!_initilize(obj, pd, modeler, seg_array))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pd->first = first;
|
pd->first = first;
|
||||||
|
|
||||||
if (pd->recalc && efl_ui_view_list_segarray_count(segarray) > 0)
|
if (pd->recalc && efl_ui_list_view_seg_array_count(seg_array) > 0)
|
||||||
{
|
{
|
||||||
// cache size of new items
|
// cache size of new items
|
||||||
pd->calc_progress = 0;
|
pd->calc_progress = 0;
|
||||||
|
@ -696,7 +696,7 @@ _efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_layout_do
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_efl_ui_view_list_relayout_layout_do(pd);
|
_efl_ui_list_view_relayout_layout_do(pd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "efl_ui_view_list_precise_layouter.eo.c"
|
#include "efl_ui_list_view_precise_layouter.eo.c"
|
|
@ -0,0 +1,9 @@
|
||||||
|
class Efl.Ui.List_View_Precise_Layouter (Efl.Object, Efl.Ui.List_View_Relayout)
|
||||||
|
{
|
||||||
|
implements {
|
||||||
|
Efl.Object.constructor;
|
||||||
|
Efl.Ui.List_View_Relayout.layout_do;
|
||||||
|
Efl.Ui.List_View_Relayout.model { set; }
|
||||||
|
Efl.Ui.List_View_Relayout.elements { get; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef EFL_UI_VIEW_LIST_PRIVATE_H
|
#ifndef EFL_UI_LIST_VIEW_PRIVATE_H
|
||||||
#define EFL_UI_VIEW_LIST_PRIVATE_H
|
#define EFL_UI_LIST_VIEW_PRIVATE_H
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "elementary_config.h"
|
# include "elementary_config.h"
|
||||||
|
@ -8,16 +8,16 @@
|
||||||
#include <Elementary.h>
|
#include <Elementary.h>
|
||||||
#include "elm_priv.h"
|
#include "elm_priv.h"
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Data Efl_Ui_View_List_Data;
|
typedef struct _Efl_Ui_List_View_Data Efl_Ui_List_View_Data;
|
||||||
int efl_ui_view_list_item_index_get(Efl_Ui_View_List_LayoutItem *item);
|
int efl_ui_list_view_item_index_get(Efl_Ui_List_View_Layout_Item *item);
|
||||||
|
|
||||||
#include "efl_ui_view_list_segarray.h"
|
#include "efl_ui_list_view_seg_array.h"
|
||||||
|
|
||||||
struct _Efl_Ui_View_List_Data
|
struct _Efl_Ui_List_View_Data
|
||||||
{
|
{
|
||||||
Eo *obj;
|
Eo *obj;
|
||||||
Eo *scrl_mgr;
|
Eo *scrl_mgr;
|
||||||
Efl_Ui_View_List_Pan *pan_obj;
|
Efl_Ui_List_View_Pan *pan_obj;
|
||||||
Efl_Model *model;
|
Efl_Model *model;
|
||||||
|
|
||||||
Eina_Stringshare *style;
|
Eina_Stringshare *style;
|
||||||
|
@ -33,9 +33,9 @@ struct _Efl_Ui_View_List_Data
|
||||||
Eina_List *selected_items;
|
Eina_List *selected_items;
|
||||||
|
|
||||||
Efl_Ui_Focus_Manager *manager;
|
Efl_Ui_Focus_Manager *manager;
|
||||||
Efl_Ui_View_List_Relayout *relayout;
|
Efl_Ui_List_View_Relayout *relayout;
|
||||||
Efl_Ui_View_List_SegArray *segarray;
|
Efl_Ui_List_View_Seg_Array *seg_array;
|
||||||
int segarray_first;
|
int seg_array_first;
|
||||||
|
|
||||||
Elm_Object_Select_Mode select_mode;
|
Elm_Object_Select_Mode select_mode;
|
||||||
Eina_Size2D min;
|
Eina_Size2D min;
|
||||||
|
@ -44,19 +44,19 @@ struct _Efl_Ui_View_List_Data
|
||||||
Eina_Bool scrl_freeze : 1;
|
Eina_Bool scrl_freeze : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Pan_Data Efl_Ui_View_List_Pan_Data;
|
typedef struct _Efl_Ui_List_View_Pan_Data Efl_Ui_List_View_Pan_Data;
|
||||||
|
|
||||||
struct _Efl_Ui_View_List_Pan_Data
|
struct _Efl_Ui_List_View_Pan_Data
|
||||||
{
|
{
|
||||||
Eo *wobj;
|
Eo *wobj;
|
||||||
Eina_Rect gmt;
|
Eina_Rect gmt;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EFL_UI_VIEW_LIST_DATA_GET(o, ptr) \
|
#define EFL_UI_LIST_VIEW_DATA_GET(o, ptr) \
|
||||||
Efl_Ui_View_List_Data * ptr = efl_data_scope_get(o, EFL_UI_VIEW_LIST_CLASS)
|
Efl_Ui_List_View_Data * ptr = efl_data_scope_get(o, EFL_UI_LIST_VIEW_CLASS)
|
||||||
|
|
||||||
#define EFL_UI_VIEW_LIST_DATA_GET_OR_RETURN(o, ptr) \
|
#define EFL_UI_LIST_VIEW_DATA_GET_OR_RETURN(o, ptr) \
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(o, ptr); \
|
EFL_UI_LIST_VIEW_DATA_GET(o, ptr); \
|
||||||
if (EINA_UNLIKELY(!ptr)) \
|
if (EINA_UNLIKELY(!ptr)) \
|
||||||
{ \
|
{ \
|
||||||
ERR("No widget data for object %p (%s)", \
|
ERR("No widget data for object %p (%s)", \
|
||||||
|
@ -64,8 +64,8 @@ struct _Efl_Ui_View_List_Pan_Data
|
||||||
return; \
|
return; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EFL_UI_VIEW_LIST_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
|
#define EFL_UI_LIST_VIEW_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
|
||||||
EFL_UI_VIEW_LIST_DATA_GET(o, ptr); \
|
EFL_UI_LIST_VIEW_DATA_GET(o, ptr); \
|
||||||
if (EINA_UNLIKELY(!ptr)) \
|
if (EINA_UNLIKELY(!ptr)) \
|
||||||
{ \
|
{ \
|
||||||
ERR("No widget data for object %p (%s)", \
|
ERR("No widget data for object %p (%s)", \
|
|
@ -1,11 +1,11 @@
|
||||||
interface Efl.Ui.View_List_Relayout (Efl.Interface)
|
interface Efl.Ui.List_View_Relayout (Efl.Interface)
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
layout_do {
|
layout_do {
|
||||||
params {
|
params {
|
||||||
modeler: Efl.Ui.View_List_Model;
|
modeler: Efl.Ui.List_View_Model;
|
||||||
first: int;
|
first: int;
|
||||||
children: Efl.Ui.View_List_SegArray;
|
children: Efl.Ui.List_View_Seg_Array;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property model {
|
@property model {
|
|
@ -5,15 +5,15 @@
|
||||||
#include <Efl.h>
|
#include <Efl.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#define MY_CLASS EFL_UI_VIEW_LIST_SEGARRAY_CLASS
|
#define MY_CLASS EFL_UI_LIST_VIEW_SEG_ARRAY_CLASS
|
||||||
#define MY_CLASS_NAME "Efl.Ui.View.List.SegArray"
|
#define MY_CLASS_NAME "Efl.Ui.List_View_Seg_Array"
|
||||||
|
|
||||||
#include "efl_ui_view_list_private.h"
|
#include "efl_ui_list_view_private.h"
|
||||||
#include "efl_ui_view_list_segarray.h"
|
#include "efl_ui_list_view_seg_array.h"
|
||||||
|
|
||||||
static int _search_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int length EINA_UNUSED, void* data EINA_UNUSED)
|
static int _search_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int length EINA_UNUSED, void* data EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node const* node = (void const*)rbtree;
|
Efl_Ui_List_View_Seg_Array_Node const* node = (void const*)rbtree;
|
||||||
int index = *(int*)key;
|
int index = *(int*)key;
|
||||||
if(index < node->first)
|
if(index < node->first)
|
||||||
{
|
{
|
||||||
|
@ -31,7 +31,7 @@ static int _search_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int len
|
||||||
|
|
||||||
static int _insert_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int length EINA_UNUSED, void* data EINA_UNUSED)
|
static int _insert_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int length EINA_UNUSED, void* data EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node const* node = (void const*)rbtree;
|
Efl_Ui_List_View_Seg_Array_Node const* node = (void const*)rbtree;
|
||||||
int index = *(int*)key;
|
int index = *(int*)key;
|
||||||
if(index < node->first)
|
if(index < node->first)
|
||||||
{
|
{
|
||||||
|
@ -47,8 +47,8 @@ static int _insert_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int len
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Rbtree_Direction _rbtree_compare(Efl_Ui_View_List_SegArray_Node const* left,
|
static Eina_Rbtree_Direction _rbtree_compare(Efl_Ui_List_View_Seg_Array_Node const* left,
|
||||||
Efl_Ui_View_List_SegArray_Node const* right, void* data EINA_UNUSED)
|
Efl_Ui_List_View_Seg_Array_Node const* right, void* data EINA_UNUSED)
|
||||||
{
|
{
|
||||||
if(left->first < right->first)
|
if(left->first < right->first)
|
||||||
return EINA_RBTREE_LEFT;
|
return EINA_RBTREE_LEFT;
|
||||||
|
@ -58,7 +58,7 @@ static Eina_Rbtree_Direction _rbtree_compare(Efl_Ui_View_List_SegArray_Node cons
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_free_node(Efl_Ui_View_List_SegArray_Node* node, void* data EINA_UNUSED)
|
_free_node(Efl_Ui_List_View_Seg_Array_Node* node, void* data EINA_UNUSED)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -71,11 +71,11 @@ _free_node(Efl_Ui_View_List_SegArray_Node* node, void* data EINA_UNUSED)
|
||||||
free(node);
|
free(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Efl_Ui_View_List_SegArray_Node*
|
static Efl_Ui_List_View_Seg_Array_Node*
|
||||||
_alloc_node(Efl_Ui_View_List_SegArray_Data* pd, int first)
|
_alloc_node(Efl_Ui_List_View_Seg_Array_Data* pd, int first)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node* node;
|
Efl_Ui_List_View_Seg_Array_Node* node;
|
||||||
node = calloc(1, sizeof(Efl_Ui_View_List_SegArray_Node) + pd->step_size*sizeof(Efl_Ui_View_List_LayoutItem*));
|
node = calloc(1, sizeof(Efl_Ui_List_View_Seg_Array_Node) + pd->step_size*sizeof(Efl_Ui_List_View_Layout_Item*));
|
||||||
node->first = first;
|
node->first = first;
|
||||||
node->max = pd->step_size;
|
node->max = pd->step_size;
|
||||||
pd->root = (void*)eina_rbtree_inline_insert(EINA_RBTREE_GET(pd->root), EINA_RBTREE_GET(node),
|
pd->root = (void*)eina_rbtree_inline_insert(EINA_RBTREE_GET(pd->root), EINA_RBTREE_GET(node),
|
||||||
|
@ -85,7 +85,7 @@ _alloc_node(Efl_Ui_View_List_SegArray_Data* pd, int first)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_segarray_flush(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd)
|
_efl_ui_list_view_seg_array_flush(Eo* obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data *pd)
|
||||||
{
|
{
|
||||||
if (pd->root)
|
if (pd->root)
|
||||||
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
|
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
|
||||||
|
@ -95,26 +95,26 @@ _efl_ui_view_list_segarray_flush(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray_
|
||||||
pd->count = 0;
|
pd->count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Efl_Ui_View_List_LayoutItem* _create_item_partial(Efl_Model* model)
|
static Efl_Ui_List_View_Layout_Item* _create_item_partial(Efl_Model* model)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_LayoutItem* item = calloc(1, sizeof(Efl_Ui_View_List_LayoutItem));
|
Efl_Ui_List_View_Layout_Item* item = calloc(1, sizeof(Efl_Ui_List_View_Layout_Item));
|
||||||
item->children = model;
|
item->children = model;
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Efl_Ui_View_List_LayoutItem* _create_item(Efl_Model* model, Efl_Ui_View_List_SegArray_Node* node, unsigned int index)
|
static Efl_Ui_List_View_Layout_Item* _create_item(Efl_Model* model, Efl_Ui_List_View_Seg_Array_Node* node, unsigned int index)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_LayoutItem* item = _create_item_partial(model);
|
Efl_Ui_List_View_Layout_Item* item = _create_item_partial(model);
|
||||||
item->index_offset = index - node->first;
|
item->index_offset = index - node->first;
|
||||||
item->tree_node = node;
|
item->tree_node = node;
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Ui_View_List_LayoutItem*
|
EOLIAN static Efl_Ui_List_View_Layout_Item*
|
||||||
_efl_ui_view_list_segarray_remove(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd, int index)
|
_efl_ui_list_view_seg_array_remove(Eo* obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data *pd, int index)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node *node;
|
Efl_Ui_List_View_Seg_Array_Node *node;
|
||||||
Efl_Ui_View_List_LayoutItem *item, *rt;
|
Efl_Ui_List_View_Layout_Item *item, *rt;
|
||||||
Eina_Iterator* iterator;
|
Eina_Iterator* iterator;
|
||||||
int offset;
|
int offset;
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ _efl_ui_view_list_segarray_remove(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_segarray_insert_at_node(Efl_Ui_View_List_SegArray_Data* pd, int index, Efl_Ui_View_List_LayoutItem* item, Efl_Ui_View_List_SegArray_Node* node)
|
_efl_ui_list_view_seg_array_insert_at_node(Efl_Ui_List_View_Seg_Array_Data* pd, int index, Efl_Ui_List_View_Layout_Item* item, Efl_Ui_List_View_Seg_Array_Node* node)
|
||||||
{
|
{
|
||||||
Eina_Iterator* iterator;
|
Eina_Iterator* iterator;
|
||||||
int pos;
|
int pos;
|
||||||
|
@ -194,10 +194,10 @@ _efl_ui_view_list_segarray_insert_at_node(Efl_Ui_View_List_SegArray_Data* pd, in
|
||||||
|
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_segarray_insert(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd, int index, Efl_Model* model)
|
_efl_ui_list_view_seg_array_insert(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data* pd, int index, Efl_Model* model)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node* node, *next;
|
Efl_Ui_List_View_Seg_Array_Node* node, *next;
|
||||||
Efl_Ui_View_List_LayoutItem* item;
|
Efl_Ui_List_View_Layout_Item* item;
|
||||||
|
|
||||||
item = _create_item_partial(model);
|
item = _create_item_partial(model);
|
||||||
|
|
||||||
|
@ -207,34 +207,34 @@ _efl_ui_view_list_segarray_insert(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray
|
||||||
{
|
{
|
||||||
next = (void*)EINA_RBTREE_GET(node)->son[EINA_RBTREE_LEFT];
|
next = (void*)EINA_RBTREE_GET(node)->son[EINA_RBTREE_LEFT];
|
||||||
if(next && next->first <= index)
|
if(next && next->first <= index)
|
||||||
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, next);
|
_efl_ui_list_view_seg_array_insert_at_node(pd, index, item, next);
|
||||||
else
|
else
|
||||||
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, node);
|
_efl_ui_list_view_seg_array_insert_at_node(pd, index, item, node);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, NULL);
|
_efl_ui_list_view_seg_array_insert_at_node(pd, index, item, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
efl_ui_view_list_segarray_insert_object(Efl_Ui_View_List_SegArray_Data *segarray, unsigned int index, Efl_Model *children)
|
efl_ui_list_view_seg_array_insert_object(Efl_Ui_List_View_Seg_Array_Data *seg_array, unsigned int index, Efl_Model *children)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node *node;
|
Efl_Ui_List_View_Seg_Array_Node *node;
|
||||||
|
|
||||||
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(segarray->root),
|
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(seg_array->root),
|
||||||
&index, sizeof(index), &_insert_lookup_cb, NULL);
|
&index, sizeof(index), &_insert_lookup_cb, NULL);
|
||||||
if (!node)
|
if (!node)
|
||||||
{
|
{
|
||||||
node = _alloc_node(segarray, index);
|
node = _alloc_node(seg_array, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(node->length < node->max);
|
assert(node->length < node->max);
|
||||||
node->pointers[node->length] = _create_item(children, node, index);
|
node->pointers[node->length] = _create_item(children, node, index);
|
||||||
node->length++;
|
node->length++;
|
||||||
segarray->count++;
|
seg_array->count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_segarray_insert_value(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *segarray, int first, Eina_Value v)
|
_efl_ui_list_view_seg_array_insert_value(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data *seg_array, int first, Eina_Value v)
|
||||||
{
|
{
|
||||||
Efl_Model *children;
|
Efl_Model *children;
|
||||||
unsigned int i, len;
|
unsigned int i, len;
|
||||||
|
@ -242,7 +242,7 @@ _efl_ui_view_list_segarray_insert_value(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Se
|
||||||
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_OBJECT)
|
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_OBJECT)
|
||||||
{
|
{
|
||||||
children = eina_value_object_get(&v);
|
children = eina_value_object_get(&v);
|
||||||
efl_ui_view_list_segarray_insert_object(segarray, first, children);
|
efl_ui_list_view_seg_array_insert_object(seg_array, first, children);
|
||||||
}
|
}
|
||||||
else if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ARRAY)
|
else if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ARRAY)
|
||||||
{
|
{
|
||||||
|
@ -250,7 +250,7 @@ _efl_ui_view_list_segarray_insert_value(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Se
|
||||||
{
|
{
|
||||||
unsigned int idx = first + i;
|
unsigned int idx = first + i;
|
||||||
|
|
||||||
efl_ui_view_list_segarray_insert_object(segarray, idx, children);
|
efl_ui_list_view_seg_array_insert_object(seg_array, idx, children);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -260,28 +260,28 @@ _efl_ui_view_list_segarray_insert_value(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Se
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static int
|
EOLIAN static int
|
||||||
_efl_ui_view_list_segarray_count(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
|
_efl_ui_list_view_seg_array_count(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data* pd)
|
||||||
{
|
{
|
||||||
return pd->count;
|
return pd->count;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Segarray_Eina_Accessor
|
typedef struct _Efl_Ui_List_View_Segarray_Eina_Accessor
|
||||||
{
|
{
|
||||||
Eina_Accessor vtable;
|
Eina_Accessor vtable;
|
||||||
Efl_Ui_View_List_SegArray_Data* segarray;
|
Efl_Ui_List_View_Seg_Array_Data* seg_array;
|
||||||
} Efl_Ui_View_List_Segarray_Eina_Accessor;
|
} Efl_Ui_List_View_Segarray_Eina_Accessor;
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_accessor_get_at(Efl_Ui_View_List_Segarray_Eina_Accessor* acc,
|
_efl_ui_list_view_seg_array_accessor_get_at(Efl_Ui_List_View_Segarray_Eina_Accessor* acc,
|
||||||
int idx, void** data)
|
int idx, void** data)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node* node;
|
Efl_Ui_List_View_Seg_Array_Node* node;
|
||||||
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(acc->segarray->root),
|
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(acc->seg_array->root),
|
||||||
&idx, sizeof(idx), &_search_lookup_cb, NULL);
|
&idx, sizeof(idx), &_search_lookup_cb, NULL);
|
||||||
if (node && (node->first <= idx && node->first + node->length > idx))
|
if (node && (node->first <= idx && node->first + node->length > idx))
|
||||||
{
|
{
|
||||||
int i = idx - node->first;
|
int i = idx - node->first;
|
||||||
Efl_Ui_View_List_LayoutItem* item = node->pointers[i];
|
Efl_Ui_List_View_Layout_Item* item = node->pointers[i];
|
||||||
*data = item;
|
*data = item;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
@ -289,13 +289,13 @@ _efl_ui_view_list_segarray_accessor_get_at(Efl_Ui_View_List_Segarray_Eina_Access
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_segarray_setup(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd, int size)
|
_efl_ui_list_view_seg_array_setup(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data *pd, int size)
|
||||||
{
|
{
|
||||||
pd->step_size = size;
|
pd->step_size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eo *
|
EOLIAN static Eo *
|
||||||
_efl_ui_view_list_segarray_efl_object_constructor(Eo *obj, Efl_Ui_View_List_SegArray_Data *pd EINA_UNUSED)
|
_efl_ui_list_view_seg_array_efl_object_constructor(Eo *obj, Efl_Ui_List_View_Seg_Array_Data *pd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ _efl_ui_view_list_segarray_efl_object_constructor(Eo *obj, Efl_Ui_View_List_SegA
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_view_list_segarray_efl_object_destructor(Eo *obj, Efl_Ui_View_List_SegArray_Data *pd)
|
_efl_ui_list_view_seg_array_efl_object_destructor(Eo *obj, Efl_Ui_List_View_Seg_Array_Data *pd)
|
||||||
{
|
{
|
||||||
if (pd->root)
|
if (pd->root)
|
||||||
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
|
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
|
||||||
|
@ -313,68 +313,68 @@ _efl_ui_view_list_segarray_efl_object_destructor(Eo *obj, Efl_Ui_View_List_SegAr
|
||||||
}
|
}
|
||||||
|
|
||||||
static void*
|
static void*
|
||||||
_efl_ui_view_list_segarray_accessor_get_container(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_accessor_get_container(Efl_Ui_List_View_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_segarray_accessor_free(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_accessor_free(Efl_Ui_List_View_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
free(acc);
|
free(acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_accessor_lock(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_accessor_lock(Efl_Ui_List_View_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_accessor_unlock(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_accessor_unlock(Efl_Ui_List_View_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Accessor*
|
static Eina_Accessor*
|
||||||
_efl_ui_view_list_segarray_accessor_clone(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_accessor_clone(Efl_Ui_List_View_Segarray_Eina_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return &acc->vtable;
|
return &acc->vtable;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_segarray_accessor_setup(Efl_Ui_View_List_Segarray_Eina_Accessor* acc, Efl_Ui_View_List_SegArray_Data* segarray)
|
_efl_ui_list_view_seg_array_accessor_setup(Efl_Ui_List_View_Segarray_Eina_Accessor* acc, Efl_Ui_List_View_Seg_Array_Data* seg_array)
|
||||||
{
|
{
|
||||||
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
|
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
|
||||||
acc->vtable.version = EINA_ACCESSOR_VERSION;
|
acc->vtable.version = EINA_ACCESSOR_VERSION;
|
||||||
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_view_list_segarray_accessor_get_at);
|
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_list_view_seg_array_accessor_get_at);
|
||||||
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_view_list_segarray_accessor_get_container);
|
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_list_view_seg_array_accessor_get_container);
|
||||||
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_view_list_segarray_accessor_free);
|
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_list_view_seg_array_accessor_free);
|
||||||
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_accessor_lock);
|
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_list_view_seg_array_accessor_lock);
|
||||||
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_accessor_unlock);
|
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_list_view_seg_array_accessor_unlock);
|
||||||
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_view_list_segarray_accessor_clone);
|
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_list_view_seg_array_accessor_clone);
|
||||||
acc->segarray = segarray;
|
acc->seg_array = seg_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Accessor*
|
EOLIAN static Eina_Accessor*
|
||||||
_efl_ui_view_list_segarray_accessor_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
|
_efl_ui_list_view_seg_array_accessor_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data* pd)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Segarray_Eina_Accessor* acc = calloc(1, sizeof(Efl_Ui_View_List_Segarray_Eina_Accessor));
|
Efl_Ui_List_View_Segarray_Eina_Accessor* acc = calloc(1, sizeof(Efl_Ui_List_View_Segarray_Eina_Accessor));
|
||||||
_efl_ui_view_list_segarray_accessor_setup(acc, pd);
|
_efl_ui_list_view_seg_array_accessor_setup(acc, pd);
|
||||||
return &acc->vtable;
|
return &acc->vtable;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Segarray_Node_Accessor
|
typedef struct _Efl_Ui_List_View_Segarray_Node_Accessor
|
||||||
{
|
{
|
||||||
Eina_Accessor vtable;
|
Eina_Accessor vtable;
|
||||||
Efl_Ui_View_List_SegArray_Data* segarray;
|
Efl_Ui_List_View_Seg_Array_Data* seg_array;
|
||||||
Eina_Iterator* pre_iterator;
|
Eina_Iterator* pre_iterator;
|
||||||
Efl_Ui_View_List_SegArray_Node* current_node;
|
Efl_Ui_List_View_Seg_Array_Node* current_node;
|
||||||
int current_index;
|
int current_index;
|
||||||
} Efl_Ui_View_List_Segarray_Node_Accessor;
|
} Efl_Ui_List_View_Segarray_Node_Accessor;
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_node_accessor_get_at(Efl_Ui_View_List_Segarray_Node_Accessor* acc,
|
_efl_ui_list_view_seg_array_node_accessor_get_at(Efl_Ui_List_View_Segarray_Node_Accessor* acc,
|
||||||
int idx, void** data)
|
int idx, void** data)
|
||||||
{
|
{
|
||||||
if(idx == acc->current_index && acc->current_node)
|
if(idx == acc->current_index && acc->current_node)
|
||||||
|
@ -392,7 +392,7 @@ _efl_ui_view_list_segarray_node_accessor_get_at(Efl_Ui_View_List_Segarray_Node_A
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!acc->pre_iterator)
|
if(!acc->pre_iterator)
|
||||||
acc->pre_iterator = eina_rbtree_iterator_infix((void*)acc->segarray->root);
|
acc->pre_iterator = eina_rbtree_iterator_infix((void*)acc->seg_array->root);
|
||||||
|
|
||||||
for(;acc->current_index != idx;++acc->current_index)
|
for(;acc->current_index != idx;++acc->current_index)
|
||||||
{
|
{
|
||||||
|
@ -409,13 +409,13 @@ _efl_ui_view_list_segarray_node_accessor_get_at(Efl_Ui_View_List_Segarray_Node_A
|
||||||
}
|
}
|
||||||
|
|
||||||
static void*
|
static void*
|
||||||
_efl_ui_view_list_segarray_node_accessor_get_container(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_node_accessor_get_container(Efl_Ui_List_View_Segarray_Node_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_segarray_node_accessor_free(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_node_accessor_free(Efl_Ui_List_View_Segarray_Node_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
if (acc->pre_iterator)
|
if (acc->pre_iterator)
|
||||||
eina_iterator_free(acc->pre_iterator);
|
eina_iterator_free(acc->pre_iterator);
|
||||||
|
@ -423,52 +423,52 @@ _efl_ui_view_list_segarray_node_accessor_free(Efl_Ui_View_List_Segarray_Node_Acc
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_node_accessor_lock(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_node_accessor_lock(Efl_Ui_List_View_Segarray_Node_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_efl_ui_view_list_segarray_node_accessor_unlock(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_node_accessor_unlock(Efl_Ui_List_View_Segarray_Node_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Accessor*
|
static Eina_Accessor*
|
||||||
_efl_ui_view_list_segarray_node_accessor_clone(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
|
_efl_ui_list_view_seg_array_node_accessor_clone(Efl_Ui_List_View_Segarray_Node_Accessor* acc EINA_UNUSED)
|
||||||
{
|
{
|
||||||
return &acc->vtable;
|
return &acc->vtable;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_efl_ui_view_list_segarray_node_accessor_setup(Efl_Ui_View_List_Segarray_Node_Accessor* acc, Efl_Ui_View_List_SegArray_Data* segarray)
|
_efl_ui_list_view_seg_array_node_accessor_setup(Efl_Ui_List_View_Segarray_Node_Accessor* acc, Efl_Ui_List_View_Seg_Array_Data* seg_array)
|
||||||
{
|
{
|
||||||
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
|
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
|
||||||
acc->vtable.version = EINA_ACCESSOR_VERSION;
|
acc->vtable.version = EINA_ACCESSOR_VERSION;
|
||||||
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_view_list_segarray_node_accessor_get_at);
|
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_list_view_seg_array_node_accessor_get_at);
|
||||||
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_view_list_segarray_node_accessor_get_container);
|
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_list_view_seg_array_node_accessor_get_container);
|
||||||
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_view_list_segarray_node_accessor_free);
|
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_list_view_seg_array_node_accessor_free);
|
||||||
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_node_accessor_lock);
|
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_list_view_seg_array_node_accessor_lock);
|
||||||
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_node_accessor_unlock);
|
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_list_view_seg_array_node_accessor_unlock);
|
||||||
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_view_list_segarray_node_accessor_clone);
|
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_list_view_seg_array_node_accessor_clone);
|
||||||
acc->segarray = segarray;
|
acc->seg_array = seg_array;
|
||||||
acc->pre_iterator = NULL;
|
acc->pre_iterator = NULL;
|
||||||
acc->current_index = -1;
|
acc->current_index = -1;
|
||||||
acc->current_node = NULL;
|
acc->current_node = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Accessor*
|
EOLIAN static Eina_Accessor*
|
||||||
_efl_ui_view_list_segarray_node_accessor_get(const Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
|
_efl_ui_list_view_seg_array_node_accessor_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Seg_Array_Data* pd)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_Segarray_Node_Accessor* acc = calloc(1, sizeof(Efl_Ui_View_List_Segarray_Node_Accessor));
|
Efl_Ui_List_View_Segarray_Node_Accessor* acc = calloc(1, sizeof(Efl_Ui_List_View_Segarray_Node_Accessor));
|
||||||
_efl_ui_view_list_segarray_node_accessor_setup(acc, pd);
|
_efl_ui_list_view_seg_array_node_accessor_setup(acc, pd);
|
||||||
return &acc->vtable;
|
return &acc->vtable;
|
||||||
}
|
}
|
||||||
|
|
||||||
int efl_ui_view_list_item_index_get(Efl_Ui_View_List_LayoutItem* item)
|
int efl_ui_list_view_item_index_get(Efl_Ui_List_View_Layout_Item* item)
|
||||||
{
|
{
|
||||||
Efl_Ui_View_List_SegArray_Node* node = item->tree_node;
|
Efl_Ui_List_View_Seg_Array_Node* node = item->tree_node;
|
||||||
return item->index_offset + node->first;
|
return item->index_offset + node->first;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "efl_ui_view_list_segarray.eo.c"
|
#include "efl_ui_list_view_seg_array.eo.c"
|
|
@ -1,22 +1,22 @@
|
||||||
import efl_ui_view_list_types;
|
import efl_ui_list_view_types;
|
||||||
|
|
||||||
class Efl.Ui.View_List_SegArray (Efl.Object)
|
class Efl.Ui.List_View_Seg_Array (Efl.Object)
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
@property accessor {
|
@property accessor {
|
||||||
get {
|
get {
|
||||||
[[ Get a SegArray List items accessor ]]
|
[[ Get a Seg_Array List items accessor ]]
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
acc: accessor<ptr(Efl.Ui.View.List.LayoutItem)>;
|
acc: accessor<ptr(Efl.Ui.List_View_Layout_Item)>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property node_accessor {
|
@property node_accessor {
|
||||||
get {
|
get {
|
||||||
[[ Get a SegArray node accessor ]]
|
[[ Get a Seg_Array node accessor ]]
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
acc: accessor<ptr(Efl.Ui.View.List.SegArray.Node)>;
|
acc: accessor<ptr(Efl.Ui.List_View_Seg_Array_Node)>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
insert_value {
|
insert_value {
|
||||||
|
@ -27,31 +27,31 @@ class Efl.Ui.View_List_SegArray (Efl.Object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
count {
|
count {
|
||||||
[[ Get the number of items in SegArray tree ]]
|
[[ Get the number of items in Seg_Array tree ]]
|
||||||
return: int;
|
return: int;
|
||||||
}
|
}
|
||||||
setup {
|
setup {
|
||||||
[[ Configure a step of SegArray tree, this is the max node size ]]
|
[[ Configure a step of Seg_Array tree, this is the max node size ]]
|
||||||
params {
|
params {
|
||||||
@in initial_step_size: int;
|
@in initial_step_size: int;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
flush {
|
flush {
|
||||||
[[ flush the SegArray tree ]]
|
[[ flush the Seg_Array tree ]]
|
||||||
}
|
}
|
||||||
insert {
|
insert {
|
||||||
[[ Insert a new model in SegArray tree at index position ]]
|
[[ Insert a new model in Seg_Array tree at index position ]]
|
||||||
params {
|
params {
|
||||||
@in index: int;
|
@in index: int;
|
||||||
@in model: Efl.Model;
|
@in model: Efl.Model;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
remove {
|
remove {
|
||||||
[[ Remove the item at index position in SegArray tree ]]
|
[[ Remove the item at index position in Seg_Array tree ]]
|
||||||
params {
|
params {
|
||||||
@in index: int;
|
@in index: int;
|
||||||
}
|
}
|
||||||
return: ptr(Efl.Ui.View.List.LayoutItem) @owned;
|
return: ptr(Efl.Ui.List_View_Layout_Item) @owned;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
|
@ -0,0 +1,28 @@
|
||||||
|
#ifndef EFL_UI_LIST_VIEW_SEG_ARRAY_H
|
||||||
|
#define EFL_UI_LIST_VIEW_SEG_ARRAY_H
|
||||||
|
|
||||||
|
typedef struct _Efl_Ui_List_View_Item Efl_Ui_List_View_Item;
|
||||||
|
|
||||||
|
typedef struct _Efl_Ui_List_View_SegArray_Node
|
||||||
|
{
|
||||||
|
EINA_RBTREE;
|
||||||
|
|
||||||
|
int length;
|
||||||
|
int max;
|
||||||
|
int first;
|
||||||
|
|
||||||
|
void* layout_data;
|
||||||
|
|
||||||
|
Efl_Ui_List_View_Layout_Item* pointers[0];
|
||||||
|
} Efl_Ui_List_View_Seg_Array_Node;
|
||||||
|
|
||||||
|
typedef struct _Efl_Ui_List_View_Seg_Array_Data
|
||||||
|
{
|
||||||
|
Efl_Ui_List_View_Seg_Array_Node *root;
|
||||||
|
|
||||||
|
int step_size;
|
||||||
|
int node_count;
|
||||||
|
int count;
|
||||||
|
} Efl_Ui_List_View_Seg_Array_Data;
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,4 +1,4 @@
|
||||||
struct Efl.Ui.View.List.LayoutItem {
|
struct Efl.Ui.List_View_Layout_Item {
|
||||||
layout: Efl.Ui.Layout.Object;
|
layout: Efl.Ui.Layout.Object;
|
||||||
children: Efl.Model;
|
children: Efl.Model;
|
||||||
index_offset: int;
|
index_offset: int;
|
||||||
|
@ -8,4 +8,4 @@ struct Efl.Ui.View.List.LayoutItem {
|
||||||
pos: Eina.Position2D;
|
pos: Eina.Position2D;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct @extern Efl.Ui.View.List.SegArray.Node; [[ ]]
|
struct @extern Efl.Ui.List_View_Seg_Array_Node; [[ ]]
|
|
@ -1,9 +0,0 @@
|
||||||
class Efl.Ui.View_List_Precise_Layouter (Efl.Object, Efl.Ui.View_List_Relayout)
|
|
||||||
{
|
|
||||||
implements {
|
|
||||||
Efl.Object.constructor;
|
|
||||||
Efl.Ui.View_List_Relayout.layout_do;
|
|
||||||
Efl.Ui.View_List_Relayout.model { set; }
|
|
||||||
Efl.Ui.View_List_Relayout.elements { get; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
#ifndef EFL_UI_LIST_SEGARRAY_H
|
|
||||||
#define EFL_UI_LIST_SEGARRAY_H
|
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_Item Efl_Ui_View_List_Item;
|
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_SegArray_Node
|
|
||||||
{
|
|
||||||
EINA_RBTREE;
|
|
||||||
|
|
||||||
int length;
|
|
||||||
int max;
|
|
||||||
int first;
|
|
||||||
|
|
||||||
void* layout_data;
|
|
||||||
|
|
||||||
Efl_Ui_View_List_LayoutItem* pointers[0];
|
|
||||||
} Efl_Ui_View_List_SegArray_Node;
|
|
||||||
|
|
||||||
typedef struct _Efl_Ui_View_List_SegArray_Data
|
|
||||||
{
|
|
||||||
Efl_Ui_View_List_SegArray_Node *root;
|
|
||||||
|
|
||||||
int step_size;
|
|
||||||
int node_count;
|
|
||||||
int count;
|
|
||||||
} Efl_Ui_View_List_SegArray_Data;
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -106,7 +106,7 @@ pub_legacy_eo_files = [
|
||||||
'elm_table.eo',
|
'elm_table.eo',
|
||||||
'elm_thumb.eo',
|
'elm_thumb.eo',
|
||||||
'efl_ui_textpath_legacy.eo',
|
'efl_ui_textpath_legacy.eo',
|
||||||
'efl_ui_view_list_precise_layouter.eo'
|
'efl_ui_list_view_precise_layouter.eo'
|
||||||
]
|
]
|
||||||
|
|
||||||
pub_eo_file_target = []
|
pub_eo_file_target = []
|
||||||
|
@ -205,11 +205,11 @@ pub_eo_files = [
|
||||||
'efl_ui_layout_part_table.eo',
|
'efl_ui_layout_part_table.eo',
|
||||||
'efl_ui_layout_part_bg.eo',
|
'efl_ui_layout_part_bg.eo',
|
||||||
'efl_ui_layout_part_legacy.eo',
|
'efl_ui_layout_part_legacy.eo',
|
||||||
'efl_ui_view_list.eo',
|
'efl_ui_list_view.eo',
|
||||||
'efl_ui_view_list_model.eo',
|
'efl_ui_list_view_model.eo',
|
||||||
'efl_ui_view_list_pan.eo',
|
'efl_ui_list_view_pan.eo',
|
||||||
'efl_ui_view_list_segarray.eo',
|
'efl_ui_list_view_seg_array.eo',
|
||||||
'efl_ui_view_list_relayout.eo',
|
'efl_ui_list_view_relayout.eo',
|
||||||
'efl_ui_item.eo',
|
'efl_ui_item.eo',
|
||||||
'efl_ui_list_item.eo',
|
'efl_ui_list_item.eo',
|
||||||
'efl_ui_list_default_item_part_icon.eo',
|
'efl_ui_list_default_item_part_icon.eo',
|
||||||
|
@ -304,7 +304,7 @@ endforeach
|
||||||
pub_eo_types_files = [
|
pub_eo_types_files = [
|
||||||
'elm_general.eot',
|
'elm_general.eot',
|
||||||
'efl_ui.eot',
|
'efl_ui.eot',
|
||||||
'efl_ui_view_list_types.eot',
|
'efl_ui_list_view_types.eot',
|
||||||
'efl_selection_types.eot',
|
'efl_selection_types.eot',
|
||||||
'efl_ui_dnd_types.eot'
|
'efl_ui_dnd_types.eot'
|
||||||
]
|
]
|
||||||
|
@ -440,8 +440,8 @@ elementary_headers_unstable = [
|
||||||
'efl_ui_item_private.h',
|
'efl_ui_item_private.h',
|
||||||
'efl_ui_list_item_private.h',
|
'efl_ui_list_item_private.h',
|
||||||
'efl_ui_list_private.h',
|
'efl_ui_list_private.h',
|
||||||
'efl_ui_view_list_private.h',
|
'efl_ui_list_view_private.h',
|
||||||
'efl_ui_view_list_segarray.h',
|
'efl_ui_list_view_seg_array.h',
|
||||||
'elm_widget_web.h',
|
'elm_widget_web.h',
|
||||||
'efl_ui_clock.h',
|
'efl_ui_clock.h',
|
||||||
'elm_code.h',
|
'elm_code.h',
|
||||||
|
@ -864,9 +864,9 @@ elementary_src = [
|
||||||
'efl_ui_list_default_item.c',
|
'efl_ui_list_default_item.c',
|
||||||
'efl_ui_list_empty_item.c',
|
'efl_ui_list_empty_item.c',
|
||||||
'efl_ui_list.c',
|
'efl_ui_list.c',
|
||||||
'efl_ui_view_list.c',
|
'efl_ui_list_view.c',
|
||||||
'efl_ui_view_list_precise_layouter.c',
|
'efl_ui_list_view_precise_layouter.c',
|
||||||
'efl_ui_view_list_segarray.c',
|
'efl_ui_list_view_seg_array.c',
|
||||||
'efl_ui_layout_factory.c',
|
'efl_ui_layout_factory.c',
|
||||||
'efl_ui_scroller.c',
|
'efl_ui_scroller.c',
|
||||||
'efl_ui_scroll_manager.c',
|
'efl_ui_scroll_manager.c',
|
||||||
|
|
Loading…
Reference in New Issue