efl_ui_view_list : change the name of Model based list

Summary:
model based list need to be under the namespace of 'Efl.Ui.View".
thus, I renamed 'Efl.Ui.List' to 'Efl.Ui.View.List' properly.

Test Plan: N/A

Reviewers: cedric, felipealmeida

Differential Revision: https://phab.enlightenment.org/D5855
This commit is contained in:
SangHyeon Lee 2018-04-04 19:04:43 +09:00
parent 39739ba333
commit ae8df9ba07
21 changed files with 489 additions and 489 deletions

View File

@ -1,4 +1,4 @@
group { "efl/list";
group { "efl/view_list";
inherit: "elm/list/base/default";
}

View File

@ -70,11 +70,11 @@ elm_public_eolian_files = \
lib/elementary/efl_ui_layout_part_table.eo \
lib/elementary/efl_ui_layout_part_bg.eo \
lib/elementary/efl_ui_layout_part_legacy.eo \
lib/elementary/efl_ui_list.eo \
lib/elementary/efl_ui_list_model.eo \
lib/elementary/efl_ui_list_pan.eo \
lib/elementary/efl_ui_list_segarray.eo \
lib/elementary/efl_ui_list_relayout.eo \
lib/elementary/efl_ui_view_list.eo \
lib/elementary/efl_ui_view_list_model.eo \
lib/elementary/efl_ui_view_list_pan.eo \
lib/elementary/efl_ui_view_list_segarray.eo \
lib/elementary/efl_ui_view_list_relayout.eo \
lib/elementary/efl_ui_multibuttonentry_part.eo \
lib/elementary/efl_ui_panes_part.eo \
lib/elementary/efl_ui_progressbar_part.eo \
@ -246,13 +246,13 @@ elm_legacy_eolian_files = \
lib/elementary/elm_slideshow_item.eo \
lib/elementary/elm_table.eo \
lib/elementary/elm_thumb.eo \
lib/elementary/efl_ui_list_precise_layouter.eo \
lib/elementary/efl_ui_view_list_precise_layouter.eo \
$(NULL)
elm_eolian_type_files = \
lib/elementary/elm_general.eot \
lib/elementary/efl_ui.eot \
lib/elementary/efl_ui_list_types.eot \
lib/elementary/efl_ui_view_list_types.eot \
lib/elementary/efl_selection_types.eot \
lib/elementary/efl_ui_dnd_types.eot
@ -373,8 +373,8 @@ includesunstable_HEADERS = \
lib/elementary/elm_widget_thumb.h \
lib/elementary/elm_widget_toolbar.h \
lib/elementary/efl_ui_video_private.h \
lib/elementary/efl_ui_list_private.h \
lib/elementary/efl_ui_list_segarray.h \
lib/elementary/efl_ui_view_list_private.h \
lib/elementary/efl_ui_view_list_segarray.h \
lib/elementary/elm_widget_web.h \
lib/elementary/efl_ui_clock.h \
lib/elementary/elm_code.h \
@ -781,9 +781,9 @@ lib_elementary_libelementary_la_SOURCES = \
lib/elementary/efl_ui_focus_parent_provider_gen.c \
lib/elementary/efl_ui_focus_util.c \
lib/elementary/elm_widget_item_static_focus.c \
lib/elementary/efl_ui_list.c \
lib/elementary/efl_ui_list_precise_layouter.c \
lib/elementary/efl_ui_list_segarray.c \
lib/elementary/efl_ui_view_list.c \
lib/elementary/efl_ui_view_list_precise_layouter.c \
lib/elementary/efl_ui_view_list_segarray.c \
lib/elementary/efl_ui_layout_factory.c \
lib/elementary/efl_ui_scroller.c \
lib/elementary/efl_ui_scroll_manager.c \

View File

@ -1,4 +1,4 @@
// gcc -o efl_ui_list_example_1 efl_ui_list_example_1.c `pkg-config --cflags --libs elementary`
// gcc -o efl_ui_view_list_example_1 efl_ui_view_list_example_1.c `pkg-config --cflags --libs elementary`
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
@ -24,7 +24,7 @@ char edj_path[PATH_MAX];
static void
_realized_cb(void *data, const Efl_Event *event)
{
Efl_Ui_List_Item_Event *ie = event->info;
Efl_Ui_View_List_Item_Event *ie = event->info;
if (!ie->layout) return;
Efl_Ui_Layout *layout = ie->layout;
@ -35,7 +35,7 @@ _realized_cb(void *data, const Efl_Event *event)
static void
_unrealized_cb(void *data EINA_UNUSED, const Efl_Event *event)
{
Efl_Ui_List_Item_Event *ie = event->info;
Efl_Ui_View_List_Item_Event *ie = event->info;
efl_ui_view_model_set(ie->layout, NULL);
efl_del(ie->layout);
@ -87,13 +87,13 @@ elm_main(int argc, char **argv)
efl_ui_model_connect(factory, "elm.text", "name");
efl_ui_layout_factory_theme_config(factory, "list", "item", "default");
li = efl_add(EFL_UI_LIST_CLASS, win);
efl_ui_list_layout_factory_set(li, factory);
li = efl_add(EFL_UI_VIEW_LIST_CLASS, win);
efl_ui_view_list_layout_factory_set(li, factory);
efl_ui_view_model_set(li, model);
elm_box_pack_end(bx, li);
efl_event_callback_add(li, EFL_UI_LIST_EVENT_ITEM_REALIZED, _realized_cb, NULL);
// efl_event_callback_add(li, EFL_UI_LIST_EVENT_ITEM_UNREALIZED, _unrealized_cb, NULL);
efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, _realized_cb, NULL);
// efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_UNREALIZED, _unrealized_cb, NULL);
elm_win_resize_object_add(win, li);
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

View File

@ -1,4 +1,4 @@
// gcc -o efl_ui_list_example_2 efl_ui_list_example_2.c `pkg-config --cflags --libs elementary`
// gcc -o efl_ui_view_list_example_2 efl_ui_view_list_example_2.c `pkg-config --cflags --libs elementary`
#ifdef HAVE_CONFIG_H
# include "config.h"
@ -17,7 +17,7 @@
static void
_realized_cb(void *data, const Efl_Event *event)
{
Efl_Ui_List_Item_Event *ie = event->info;
Efl_Ui_View_List_Item_Event *ie = event->info;
Eo *imf = data;
printf("realize %d\n", ie->index);
@ -48,8 +48,8 @@ elm_main(int argc, char **argv)
efl_ui_model_connect(factory, "elm.text", "filename");
efl_ui_layout_factory_theme_config(factory, "list", "item", "default");
li = efl_add(EFL_UI_LIST_CLASS, win);
efl_ui_list_layout_factory_set(li, factory);
li = efl_add(EFL_UI_VIEW_LIST_CLASS, win);
efl_ui_view_list_layout_factory_set(li, factory);
efl_ui_view_model_set(li, model);
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -58,7 +58,7 @@ elm_main(int argc, char **argv)
imf = efl_add(EFL_UI_IMAGE_FACTORY_CLASS, win);
efl_ui_model_connect(imf, "", "path"); //connect to "path" property
efl_event_callback_add(li, EFL_UI_LIST_EVENT_ITEM_REALIZED, _realized_cb, imf);
efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, _realized_cb, imf);
elm_win_resize_object_add(win, li);

View File

@ -1,4 +1,4 @@
// gcc -o efl_ui_list_example_3 efl_ui_list_example_3.c `pkg-config --cflags --libs elementary`
// gcc -o efl_ui_view_list_example_3 efl_ui_view_list_example_3.c `pkg-config --cflags --libs elementary`
#ifdef HAVE_CONFIG_H
# include "config.h"
@ -113,21 +113,21 @@ static void
_bt_none_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Evas_Object *li = data;
efl_ui_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_NONE);
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_NONE);
}
static void
_bt_donly_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Evas_Object *li = data;
efl_ui_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
static void
_bt_default_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Evas_Object *li = data;
efl_ui_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DEFAULT);
efl_ui_view_list_select_mode_set(li, ELM_OBJECT_SELECT_MODE_DEFAULT);
}
static void
@ -146,7 +146,7 @@ _bt_unset_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
static void
_realized_1_cb(void *data EINA_UNUSED, const Efl_Event *event)
{
Efl_Ui_List_Item_Event *ie = event->info;
Efl_Ui_View_List_Item_Event *ie = event->info;
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);
@ -157,7 +157,7 @@ _realized_1_cb(void *data EINA_UNUSED, const Efl_Event *event)
static void
_realized_2_cb(void *data EINA_UNUSED, const Efl_Event *event)
{
Efl_Ui_List_Item_Event *ie = event->info;
Efl_Ui_View_List_Item_Event *ie = event->info;
printf("relized 2\n");
elm_object_focus_allow_set(ie->layout, EINA_TRUE);
@ -225,22 +225,22 @@ elm_main(int argc, char **argv)
efl_ui_model_connect(factory, "elm.text", "filename");
efl_ui_layout_factory_theme_config(factory, "list", "item", "default");
priv->list1 = efl_add(EFL_UI_LIST_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
efl_event_callback_add(priv->list1, EFL_UI_LIST_EVENT_ITEM_REALIZED, _realized_1_cb, priv);
priv->list1 = efl_add(EFL_UI_VIEW_LIST_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);
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);
elm_box_pack_end(bx, priv->list1);
efl_ui_list_layout_factory_set(priv->list1, factory);
efl_ui_view_list_layout_factory_set(priv->list1, factory);
factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
efl_ui_model_connect(factory, "elm.text", "filename");
efl_ui_model_connect(factory, "signal/elm,state,%v", "selected");
efl_ui_layout_factory_theme_config(factory, "list", "item", "default");
priv->list2 = efl_add(EFL_UI_LIST_CLASS, win, efl_ui_view_model_set(efl_added, priv->model));
efl_event_callback_add(priv->list2, EFL_UI_LIST_EVENT_ITEM_REALIZED, _realized_2_cb, priv->list2);
priv->list2 = efl_add(EFL_UI_VIEW_LIST_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);
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);
efl_ui_list_layout_factory_set(priv->list2, factory);
efl_ui_view_list_layout_factory_set(priv->list2, factory);
vbx = elm_box_add(win);
elm_box_pack_end(bx, vbx);

View File

@ -321,13 +321,13 @@ typedef Eo Efl_Ui_Focus_Manager;
# include <efl_ui_image_factory.eo.h>
# include <efl_ui_slider_interval.eo.h>
# include <efl_ui_layout_factory.eo.h>
# include <efl_ui_list_types.eot.h>
# include <efl_ui_list_segarray.h>
# include <efl_ui_list_segarray.eo.h>
# include <efl_ui_list_model.eo.h>
# include <efl_ui_list_relayout.eo.h>
# include <efl_ui_list.eo.h>
# include <efl_ui_list_pan.eo.h>
# include <efl_ui_view_list_types.eot.h>
# include <efl_ui_view_list_segarray.h>
# include <efl_ui_view_list_segarray.eo.h>
# include <efl_ui_view_list_model.eo.h>
# include <efl_ui_view_list_relayout.eo.h>
# include <efl_ui_view_list.eo.h>
# include <efl_ui_view_list_pan.eo.h>
# include <efl_ui_scroll_manager.eo.h>
# include <efl_ui_scroller.eo.h>
# include <efl_ui_dnd_types.eot.h>

View File

@ -1,9 +0,0 @@
class Efl.Ui.List.Precise_Layouter (Efl.Object, Efl.Ui.List.Relayout)
{
implements {
Efl.Object.constructor;
Efl.Ui.List.Relayout.layout_do;
Efl.Ui.List.Relayout.model { set; }
Efl.Ui.List.Relayout.elements { get; }
}
}

View File

@ -1,28 +0,0 @@
#ifndef EFL_UI_LIST_SEGARRAY_H
#define EFL_UI_LIST_SEGARRAY_H
typedef struct _Efl_Ui_List_Item Efl_Ui_List_Item;
typedef struct _Efl_Ui_List_SegArray_Node
{
EINA_RBTREE;
int length;
int max;
int first;
void* layout_data;
Efl_Ui_List_LayoutItem* pointers[0];
} Efl_Ui_List_SegArray_Node;
typedef struct _Efl_Ui_List_SegArray_Data
{
Efl_Ui_List_SegArray_Node *root;
int step_size;
int node_count;
int count;
} Efl_Ui_List_SegArray_Data;
#endif

View File

@ -8,19 +8,19 @@
#define EFL_UI_SCROLLBAR_PROTECTED
#define EFL_UI_SCROLLBAR_BETA
#define EFL_GFX_SIZE_HINT_PROTECTED
#define EFL_UI_LIST_PROTECTED
#define EFL_UI_VIEW_LIST_PROTECTED
#define EFL_UI_FOCUS_COMPOSITION_PROTECTED
#include <Elementary.h>
#include "efl_ui_list_private.h"
#include "efl_ui_list_precise_layouter.eo.h"
#include "efl_ui_view_list_private.h"
#include "efl_ui_view_list_precise_layouter.eo.h"
#include <assert.h>
#define MY_CLASS EFL_UI_LIST_CLASS
#define MY_CLASS_NAME "Efl.Ui.List"
#define MY_CLASS EFL_UI_VIEW_LIST_CLASS
#define MY_CLASS_NAME "Efl.Ui.View.List"
#define MY_PAN_CLASS EFL_UI_LIST_PAN_CLASS
#define MY_PAN_CLASS EFL_UI_VIEW_LIST_PAN_CLASS
#define SIG_CHILD_ADDED "child,added"
#define SIG_CHILD_REMOVED "child,removed"
@ -32,9 +32,9 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{NULL, NULL}
};
void _efl_ui_list_custom_layout(Efl_Ui_List *);
void _efl_ui_list_item_select_set(Efl_Ui_List_LayoutItem*, Eina_Bool);
static void _layout(Efl_Ui_List_Data* pd);
void _efl_ui_view_list_custom_layout(Efl_Ui_View_List *);
void _efl_ui_view_list_item_select_set(Efl_Ui_View_List_LayoutItem*, Eina_Bool);
static void _layout(Efl_Ui_View_List_Data* pd);
static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
static Eina_Bool _key_action_select(Evas_Object *obj, const char *params);
@ -48,14 +48,14 @@ static const Elm_Action key_actions[] = {
};
EOLIAN static void
_efl_ui_list_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd)
_efl_ui_view_list_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
{
evas_object_smart_changed(psd->wobj);
}
EOLIAN static void
_efl_ui_list_pan_efl_ui_pan_pan_position_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd, Eina_Position2D pos)
_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)
{
if ((pos.x == psd->gmt.x) && (pos.y == psd->gmt.y)) return;
@ -67,20 +67,20 @@ _efl_ui_list_pan_efl_ui_pan_pan_position_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Pa
}
EOLIAN static Eina_Position2D
_efl_ui_list_pan_efl_ui_pan_pan_position_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd)
_efl_ui_view_list_pan_efl_ui_pan_pan_position_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
{
return psd->gmt.pos;
}
EOLIAN static Eina_Position2D
_efl_ui_list_pan_efl_ui_pan_pan_position_max_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd)
_efl_ui_view_list_pan_efl_ui_pan_pan_position_max_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
{
EFL_UI_LIST_DATA_GET(psd->wobj, pd);
EFL_UI_VIEW_LIST_DATA_GET(psd->wobj, pd);
Eina_Rect vgmt = {};
Eina_Size2D min = {};
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->scrl_mgr);
min = efl_ui_list_model_min_size_get(psd->wobj);
min = efl_ui_view_list_model_min_size_get(psd->wobj);
min.w = min.w - vgmt.w;
if (min.w < 0) min.w = 0;
@ -91,50 +91,50 @@ _efl_ui_list_pan_efl_ui_pan_pan_position_max_get(Eo *obj EINA_UNUSED, Efl_Ui_Lis
}
EOLIAN static Eina_Position2D
_efl_ui_list_pan_efl_ui_pan_pan_position_min_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd EINA_UNUSED)
_efl_ui_view_list_pan_efl_ui_pan_pan_position_min_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd EINA_UNUSED)
{
return EINA_POSITION2D(0, 0);
}
EOLIAN static Eina_Size2D
_efl_ui_list_pan_efl_ui_pan_content_size_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Pan_Data *psd)
_efl_ui_view_list_pan_efl_ui_pan_content_size_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Pan_Data *psd)
{
Eina_Size2D min = {};
min = efl_ui_list_model_min_size_get(psd->wobj);
min = efl_ui_view_list_model_min_size_get(psd->wobj);
return min;
}
EOLIAN static void
_efl_ui_list_pan_efl_object_destructor(Eo *obj, Efl_Ui_List_Pan_Data *psd EINA_UNUSED)
_efl_ui_view_list_pan_efl_object_destructor(Eo *obj, Efl_Ui_View_List_Pan_Data *psd EINA_UNUSED)
{
efl_destructor(efl_super(obj, MY_PAN_CLASS));
}
#include "efl_ui_list_pan.eo.c"
#include "efl_ui_view_list_pan.eo.c"
EOLIAN static void
_efl_ui_list_efl_ui_scrollable_interactive_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *psd, Eina_Position2D pos)
_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_scrollable_content_pos_set(psd->scrl_mgr, pos);
}
EOLIAN static Eina_Position2D
_efl_ui_list_efl_ui_scrollable_interactive_content_pos_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *psd)
_efl_ui_view_list_efl_ui_scrollable_interactive_content_pos_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
{
Eina_Position2D pos = efl_ui_scrollable_content_pos_get(psd->scrl_mgr);
return pos;
}
EOLIAN static Eina_Size2D
_efl_ui_list_efl_ui_scrollable_interactive_content_size_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *psd)
_efl_ui_view_list_efl_ui_scrollable_interactive_content_size_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
{
Eina_Size2D size = efl_ui_scrollable_content_size_get(psd->scrl_mgr);
return size;
}
EOLIAN static Eina_Rect
_efl_ui_list_efl_ui_scrollable_interactive_viewport_geometry_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *psd)
_efl_ui_view_list_efl_ui_scrollable_interactive_viewport_geometry_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *psd)
{
Eina_Rect gmt = efl_ui_scrollable_viewport_geometry_get(psd->scrl_mgr);
return gmt;
@ -174,7 +174,7 @@ _list_element_focused(void *data EINA_UNUSED, const Efl_Event *ev)
if (!focused) return;
EFL_UI_LIST_DATA_GET(ev->object, pd);
EFL_UI_VIEW_LIST_DATA_GET(ev->object, pd);
geom = efl_ui_focus_object_focus_geometry_get(focused);
pos = efl_ui_scrollable_content_pos_get(pd->scrl_mgr);
@ -187,18 +187,18 @@ static void
_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;
Efl_Ui_List_LayoutItem *item = data;
Efl_Ui_View_List_LayoutItem *item = data;
if (ev->button != 1) return;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
_efl_ui_list_item_select_set(item, EINA_TRUE);
_efl_ui_view_list_item_select_set(item, EINA_TRUE);
}
static void
_count_then(void * data, Efl_Event const* event EINA_UNUSED)
{
Efl_Ui_List_Data *pd = data;
Efl_Ui_View_List_Data *pd = data;
EINA_SAFETY_ON_NULL_RETURN(pd);
pd->count_future = NULL;
@ -208,7 +208,7 @@ _count_then(void * data, Efl_Event const* event EINA_UNUSED)
static void
_count_error(void * data, Efl_Event const* event EINA_UNUSED)
{
Efl_Ui_List_Data *pd = data;
Efl_Ui_View_List_Data *pd = data;
EINA_SAFETY_ON_NULL_RETURN(pd);
pd->count_future = NULL;
}
@ -216,13 +216,13 @@ _count_error(void * data, Efl_Event const* event EINA_UNUSED)
static void
_children_slice_error(void * data EINA_UNUSED, Efl_Event const* event EINA_UNUSED)
{
Efl_Ui_List_Data *pd = data;
Efl_Ui_View_List_Data *pd = data;
EINA_SAFETY_ON_NULL_RETURN(pd);
pd->slice_future = NULL;
}
EOLIAN static void
_efl_ui_list_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Elm_Object_Select_Mode mode)
_efl_ui_view_list_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Elm_Object_Select_Mode mode)
{
if (pd->select_mode == mode)
return;
@ -231,37 +231,37 @@ _efl_ui_list_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Elm_Obje
}
EOLIAN static Elm_Object_Select_Mode
_efl_ui_list_select_mode_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_select_mode_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->select_mode;
}
EOLIAN static void
_efl_ui_list_default_style_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Eina_Stringshare *style)
_efl_ui_view_list_default_style_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Eina_Stringshare *style)
{
eina_stringshare_replace(&pd->style, style);
}
EOLIAN static Eina_Stringshare *
_efl_ui_list_default_style_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_default_style_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->style;
}
EOLIAN static void
_efl_ui_list_homogeneous_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Eina_Bool homogeneous)
_efl_ui_view_list_homogeneous_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Eina_Bool homogeneous)
{
pd->homogeneous = homogeneous;
}
EOLIAN static Eina_Bool
_efl_ui_list_homogeneous_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_homogeneous_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->homogeneous;
}
EOLIAN static void
_efl_ui_list_efl_gfx_position_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_Position2D pos)
_efl_ui_view_list_efl_gfx_position_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Position2D pos)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
return;
@ -271,7 +271,7 @@ _efl_ui_list_efl_gfx_position_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_Position2D
}
EOLIAN static void
_efl_ui_list_efl_gfx_size_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_Size2D size)
_efl_ui_view_list_efl_gfx_size_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Size2D size)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 0, size.w, size.h))
return;
@ -282,22 +282,22 @@ _efl_ui_list_efl_gfx_size_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_Size2D size)
}
EOLIAN static void
_efl_ui_list_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
_layout(pd);
}
EOLIAN static void
_efl_ui_list_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_List_Data *pd EINA_UNUSED, Evas_Object *member)
_efl_ui_view_list_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_View_List_Data *pd EINA_UNUSED, Evas_Object *member)
{
efl_canvas_group_member_add(efl_super(obj, MY_CLASS), member);
}
//Scrollable Implement
static void
_efl_ui_list_bar_read_and_update(Eo *obj)
_efl_ui_view_list_bar_read_and_update(Eo *obj)
{
EFL_UI_LIST_DATA_GET(obj, pd);
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
double vx, vy;
@ -312,30 +312,30 @@ _efl_ui_list_bar_read_and_update(Eo *obj)
}
static void
_efl_ui_list_reload_cb(void *data,
_efl_ui_view_list_reload_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
EFL_UI_LIST_DATA_GET(data, pd);
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
efl_ui_scrollbar_bar_visibility_update(pd->scrl_mgr);
}
static void
_efl_ui_list_vbar_drag_cb(void *data,
_efl_ui_view_list_vbar_drag_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
_efl_ui_list_bar_read_and_update(data);
_efl_ui_view_list_bar_read_and_update(data);
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_VERTICAL;
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
}
static void
_efl_ui_list_vbar_press_cb(void *data,
_efl_ui_view_list_vbar_press_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
@ -345,7 +345,7 @@ _efl_ui_list_vbar_press_cb(void *data,
}
static void
_efl_ui_list_vbar_unpress_cb(void *data,
_efl_ui_view_list_vbar_unpress_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
@ -355,14 +355,14 @@ _efl_ui_list_vbar_unpress_cb(void *data,
}
static void
_efl_ui_list_edje_drag_start_cb(void *data,
_efl_ui_view_list_edje_drag_start_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
EFL_UI_LIST_DATA_GET(data, pd);
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
_efl_ui_list_bar_read_and_update(data);
_efl_ui_view_list_bar_read_and_update(data);
pd->scrl_freeze = efl_ui_scrollable_scroll_freeze_get(pd->scrl_mgr);
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, EINA_TRUE);
@ -370,42 +370,42 @@ _efl_ui_list_edje_drag_start_cb(void *data,
}
static void
_efl_ui_list_edje_drag_stop_cb(void *data,
_efl_ui_view_list_edje_drag_stop_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
EFL_UI_LIST_DATA_GET(data, pd);
EFL_UI_VIEW_LIST_DATA_GET(data, pd);
_efl_ui_list_bar_read_and_update(data);
_efl_ui_view_list_bar_read_and_update(data);
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, pd->scrl_freeze);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
}
static void
_efl_ui_list_edje_drag_cb(void *data,
_efl_ui_view_list_edje_drag_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
_efl_ui_list_bar_read_and_update(data);
_efl_ui_view_list_bar_read_and_update(data);
}
static void
_efl_ui_list_hbar_drag_cb(void *data,
_efl_ui_view_list_hbar_drag_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
_efl_ui_list_bar_read_and_update(data);
_efl_ui_view_list_bar_read_and_update(data);
Efl_Ui_Scrollbar_Direction type = EFL_UI_SCROLLBAR_DIRECTION_HORIZONTAL;
efl_event_callback_call(data, EFL_UI_SCROLLBAR_EVENT_BAR_DRAG, &type);
}
static void
_efl_ui_list_hbar_press_cb(void *data,
_efl_ui_view_list_hbar_press_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
@ -415,7 +415,7 @@ _efl_ui_list_hbar_press_cb(void *data,
}
static void
_efl_ui_list_hbar_unpress_cb(void *data,
_efl_ui_view_list_hbar_unpress_cb(void *data,
Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
@ -431,10 +431,10 @@ _scroll_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
}
static void
_efl_ui_list_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
_efl_ui_view_list_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
Eo *obj = data;
EFL_UI_LIST_DATA_GET(obj, pd);
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
double width = 0.0, height = 0.0;
@ -446,10 +446,10 @@ _efl_ui_list_bar_size_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
}
static void
_efl_ui_list_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
_efl_ui_view_list_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
Eo *obj = data;
EFL_UI_LIST_DATA_GET(obj, pd);
EFL_UI_VIEW_LIST_DATA_GET(obj, pd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
double posx = 0.0, posy = 0.0;
@ -461,7 +461,7 @@ _efl_ui_list_bar_pos_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
}
static void
_efl_ui_list_bar_show_cb(void *data, const Efl_Event *event)
_efl_ui_view_list_bar_show_cb(void *data, const Efl_Event *event)
{
Eo *obj = data;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
@ -474,7 +474,7 @@ _efl_ui_list_bar_show_cb(void *data, const Efl_Event *event)
}
static void
_efl_ui_list_bar_hide_cb(void *data, const Efl_Event *event)
_efl_ui_view_list_bar_hide_cb(void *data, const Efl_Event *event)
{
Eo *obj = data;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
@ -487,7 +487,7 @@ _efl_ui_list_bar_hide_cb(void *data, const Efl_Event *event)
}
EOLIAN static Eina_Bool
_efl_ui_list_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
_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)
{
Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
@ -498,7 +498,7 @@ _efl_ui_list_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_L
}
EOLIAN static Eina_Bool
_efl_ui_list_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
_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)
{
Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
@ -509,125 +509,125 @@ _efl_ui_list_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_L
}
static void
_efl_ui_list_edje_object_attach(Eo *obj)
_efl_ui_view_list_edje_object_attach(Eo *obj)
{
efl_layout_signal_callback_add
(obj, "reload", "elm", _efl_ui_list_reload_cb, obj);
(obj, "reload", "elm", _efl_ui_view_list_reload_cb, obj);
//Vertical bar
efl_layout_signal_callback_add
(obj, "drag", "elm.dragable.vbar", _efl_ui_list_vbar_drag_cb,
(obj, "drag", "elm.dragable.vbar", _efl_ui_view_list_vbar_drag_cb,
obj);
efl_layout_signal_callback_add
(obj, "drag,set", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,start", "elm.dragable.vbar",
_efl_ui_list_edje_drag_start_cb, obj);
_efl_ui_view_list_edje_drag_start_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,stop", "elm.dragable.vbar",
_efl_ui_list_edje_drag_stop_cb, obj);
_efl_ui_view_list_edje_drag_stop_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,step", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,page", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "elm,vbar,press", "elm",
_efl_ui_list_vbar_press_cb, obj);
_efl_ui_view_list_vbar_press_cb, obj);
efl_layout_signal_callback_add
(obj, "elm,vbar,unpress", "elm",
_efl_ui_list_vbar_unpress_cb, obj);
_efl_ui_view_list_vbar_unpress_cb, obj);
//Horizontal bar
efl_layout_signal_callback_add
(obj, "drag", "elm.dragable.hbar", _efl_ui_list_hbar_drag_cb,
(obj, "drag", "elm.dragable.hbar", _efl_ui_view_list_hbar_drag_cb,
obj);
efl_layout_signal_callback_add
(obj, "drag,set", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,start", "elm.dragable.hbar",
_efl_ui_list_edje_drag_start_cb, obj);
_efl_ui_view_list_edje_drag_start_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,stop", "elm.dragable.hbar",
_efl_ui_list_edje_drag_stop_cb, obj);
_efl_ui_view_list_edje_drag_stop_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,step", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "drag,page", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_add
(obj, "elm,hbar,press", "elm",
_efl_ui_list_hbar_press_cb, obj);
_efl_ui_view_list_hbar_press_cb, obj);
efl_layout_signal_callback_add
(obj, "elm,hbar,unpress", "elm",
_efl_ui_list_hbar_unpress_cb, obj);
_efl_ui_view_list_hbar_unpress_cb, obj);
}
static void
_efl_ui_list_edje_object_detach(Evas_Object *obj)
_efl_ui_view_list_edje_object_detach(Evas_Object *obj)
{
efl_layout_signal_callback_del
(obj, "reload", "elm", _efl_ui_list_reload_cb, obj);
(obj, "reload", "elm", _efl_ui_view_list_reload_cb, obj);
//Vertical bar
efl_layout_signal_callback_del
(obj, "drag", "elm.dragable.vbar", _efl_ui_list_vbar_drag_cb,
(obj, "drag", "elm.dragable.vbar", _efl_ui_view_list_vbar_drag_cb,
obj);
efl_layout_signal_callback_del
(obj, "drag,set", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,start", "elm.dragable.vbar",
_efl_ui_list_edje_drag_start_cb, obj);
_efl_ui_view_list_edje_drag_start_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,stop", "elm.dragable.vbar",
_efl_ui_list_edje_drag_stop_cb, obj);
_efl_ui_view_list_edje_drag_stop_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,step", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,page", "elm.dragable.vbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "elm,vbar,press", "elm",
_efl_ui_list_vbar_press_cb, obj);
_efl_ui_view_list_vbar_press_cb, obj);
efl_layout_signal_callback_del
(obj, "elm,vbar,unpress", "elm",
_efl_ui_list_vbar_unpress_cb, obj);
_efl_ui_view_list_vbar_unpress_cb, obj);
//Horizontal bar
efl_layout_signal_callback_del
(obj, "drag", "elm.dragable.hbar", _efl_ui_list_hbar_drag_cb,
(obj, "drag", "elm.dragable.hbar", _efl_ui_view_list_hbar_drag_cb,
obj);
efl_layout_signal_callback_del
(obj, "drag,set", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,start", "elm.dragable.hbar",
_efl_ui_list_edje_drag_start_cb, obj);
_efl_ui_view_list_edje_drag_start_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,stop", "elm.dragable.hbar",
_efl_ui_list_edje_drag_stop_cb, obj);
_efl_ui_view_list_edje_drag_stop_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,step", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "drag,page", "elm.dragable.hbar",
_efl_ui_list_edje_drag_cb, obj);
_efl_ui_view_list_edje_drag_cb, obj);
efl_layout_signal_callback_del
(obj, "elm,hbar,press", "elm",
_efl_ui_list_hbar_press_cb, obj);
_efl_ui_view_list_hbar_press_cb, obj);
efl_layout_signal_callback_del
(obj, "elm,hbar,unpress", "elm",
_efl_ui_list_hbar_unpress_cb, obj);
_efl_ui_view_list_hbar_unpress_cb, obj);
}
EOLIAN static void
_efl_ui_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_View_List_Data *pd)
{
Efl_Ui_List_Pan_Data *pan_data;
Efl_Ui_View_List_Pan_Data *pan_data;
Eina_Size2D min = {};
Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable;
@ -638,7 +638,7 @@ _efl_ui_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_Data *pd)
elm_widget_can_focus_set(obj, EINA_TRUE);
if (!elm_layout_theme_set(obj, "list", "base", elm_widget_style_get(obj)))
if (!elm_layout_theme_set(obj, "view_list", "base", elm_widget_style_get(obj)))
CRI("Failed to set layout!");
pd->scrl_mgr = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj,
@ -664,28 +664,28 @@ _efl_ui_list_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_Data *pd)
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED,
_efl_ui_list_bar_size_changed_cb, obj);
_efl_ui_view_list_bar_size_changed_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED,
_efl_ui_list_bar_pos_changed_cb, obj);
_efl_ui_view_list_bar_pos_changed_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SHOW,
_efl_ui_list_bar_show_cb, obj);
_efl_ui_view_list_bar_show_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_HIDE,
_efl_ui_list_bar_hide_cb, obj);
_efl_ui_view_list_bar_hide_cb, obj);
_efl_ui_list_edje_object_attach(obj);
_efl_ui_view_list_edje_object_attach(obj);
elm_layout_sizing_eval(obj);
}
EOLIAN static void
_efl_ui_list_efl_canvas_group_group_del(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_canvas_group_group_del(Eo *obj, Efl_Ui_View_List_Data *pd)
{
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
efl_canvas_group_del(efl_super(obj, MY_CLASS));
}
EOLIAN static Efl_Ui_Focus_Manager*
_efl_ui_list_efl_ui_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
_efl_ui_view_list_efl_ui_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
{
if (!pd->manager)
pd->manager = efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, obj,
@ -695,7 +695,7 @@ _efl_ui_list_efl_ui_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_List
}
EOLIAN static Eo *
_efl_ui_list_efl_object_finalize(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_object_finalize(Eo *obj, Efl_Ui_View_List_Data *pd)
{
if (!pd->factory)
@ -703,15 +703,15 @@ _efl_ui_list_efl_object_finalize(Eo *obj, Efl_Ui_List_Data *pd)
if(!pd->relayout)
{
pd->relayout = efl_add(EFL_UI_LIST_PRECISE_LAYOUTER_CLASS, obj);
pd->relayout = efl_add(EFL_UI_VIEW_LIST_PRECISE_LAYOUTER_CLASS, obj);
if (pd->model)
efl_ui_list_relayout_model_set(pd->relayout, pd->model);
efl_ui_view_list_relayout_model_set(pd->relayout, pd->model);
}
return obj;
}
EOLIAN static Eo *
_efl_ui_list_efl_object_constructor(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_object_constructor(Eo *obj, Efl_Ui_View_List_Data *pd)
{
Efl_Ui_Focus_Manager *manager;
@ -721,7 +721,7 @@ _efl_ui_list_efl_object_constructor(Eo *obj, Efl_Ui_List_Data *pd)
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_LIST);
pd->segarray = efl_add(EFL_UI_LIST_SEGARRAY_CLASS, obj, efl_ui_list_segarray_setup(efl_added, 32));
pd->segarray = efl_add(EFL_UI_VIEW_LIST_SEGARRAY_CLASS, obj, efl_ui_view_list_segarray_setup(efl_added, 32));
manager = efl_ui_widget_focus_manager_create(obj, obj);
efl_composite_attach(obj, manager);
@ -744,15 +744,15 @@ _efl_ui_list_efl_object_constructor(Eo *obj, Efl_Ui_List_Data *pd)
}
EOLIAN static void
_efl_ui_list_efl_object_destructor(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_object_destructor(Eo *obj, Efl_Ui_View_List_Data *pd)
{
efl_ui_list_relayout_model_set(pd->relayout, NULL);
efl_ui_view_list_relayout_model_set(pd->relayout, NULL);
efl_unref(pd->model);
eina_stringshare_del(pd->style);
efl_event_callback_del(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
_efl_ui_list_edje_object_detach(obj);
_efl_ui_view_list_edje_object_detach(obj);
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
efl_canvas_group_del(efl_super(obj, MY_CLASS));
@ -761,7 +761,7 @@ _efl_ui_list_efl_object_destructor(Eo *obj, Efl_Ui_List_Data *pd)
}
EOLIAN static void
_efl_ui_list_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Efl_Ui_Factory *factory)
_efl_ui_view_list_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Efl_Ui_Factory *factory)
{
if (pd->factory)
efl_unref(pd->factory);
@ -771,7 +771,7 @@ _efl_ui_list_layout_factory_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Efl_U
}
EOLIAN static void
_efl_ui_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Efl_Model *model)
_efl_ui_view_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, Efl_Model *model)
{
if (pd->model == model)
return;
@ -785,8 +785,8 @@ _efl_ui_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Ef
if (pd->model)
{
if (pd->relayout)
efl_ui_list_relayout_model_set(pd->relayout, NULL);
efl_ui_list_segarray_flush(pd->segarray);
efl_ui_view_list_relayout_model_set(pd->relayout, NULL);
efl_ui_view_list_segarray_flush(pd->segarray);
efl_unref(pd->model);
pd->model = NULL;
}
@ -796,7 +796,7 @@ _efl_ui_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Ef
pd->model = model;
efl_ref(pd->model);
if (pd->relayout)
efl_ui_list_relayout_model_set(pd->relayout, model);
efl_ui_view_list_relayout_model_set(pd->relayout, model);
pd->count_future = efl_model_children_count_get(pd->model);
efl_future_then(pd->count_future, &_count_then, &_count_error, NULL, pd);
}
@ -805,23 +805,23 @@ _efl_ui_list_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, Ef
}
EOLIAN static Efl_Model *
_efl_ui_list_efl_ui_view_model_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_ui_view_model_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->model;
}
EOLIAN int
_efl_ui_list_efl_access_selection_selected_children_count_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_access_selection_selected_children_count_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return eina_list_count(pd->selected_items);
}
EOLIAN Eo*
_efl_ui_list_efl_access_selection_selected_child_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd, int child_index)
_efl_ui_view_list_efl_access_selection_selected_child_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd, int child_index)
{
if(child_index < (int) eina_list_count(pd->selected_items))
{
Efl_Ui_List_LayoutItem* items = eina_list_nth(pd->selected_items, child_index);
Efl_Ui_View_List_LayoutItem* items = eina_list_nth(pd->selected_items, child_index);
return items[child_index].layout;
}
else
@ -829,37 +829,37 @@ _efl_ui_list_efl_access_selection_selected_child_get(Eo *obj EINA_UNUSED, Efl_Ui
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_child_select(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
_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)
{
return EINA_FALSE;
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_selected_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
_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)
{
return EINA_FALSE;
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_is_child_selected(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
_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)
{
return EINA_FALSE;
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_all_children_select(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED)
_efl_ui_view_list_efl_access_selection_all_children_select(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
{
return EINA_TRUE;
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_access_selection_clear(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED)
_efl_ui_view_list_efl_access_selection_access_selection_clear(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
{
return EINA_TRUE;
}
EOLIAN Eina_Bool
_efl_ui_list_efl_access_selection_child_deselect(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, int child_index EINA_UNUSED)
_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)
{
return EINA_FALSE;
}
@ -884,7 +884,7 @@ _key_action_escape(Evas_Object *obj, const char *params EINA_UNUSED)
}
void
_efl_ui_list_item_select_set(Efl_Ui_List_LayoutItem *item, Eina_Bool selected)
_efl_ui_view_list_item_select_set(Efl_Ui_View_List_LayoutItem *item, Eina_Bool selected)
{
Eina_Stringshare *sprop;
assert(item != NULL);
@ -906,7 +906,7 @@ _efl_ui_list_item_select_set(Efl_Ui_List_LayoutItem *item, Eina_Bool selected)
}
static void
_efl_ui_list_relayout_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED, Efl_Ui_List_Relayout *object)
_efl_ui_view_list_relayout_set(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED, Efl_Ui_View_List_Relayout *object)
{
if(pd->relayout)
efl_unref(pd->relayout);
@ -915,28 +915,28 @@ _efl_ui_list_relayout_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED,
efl_ref(pd->relayout);
}
static Efl_Ui_List_Relayout *
_efl_ui_list_relayout_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd EINA_UNUSED)
static Efl_Ui_View_List_Relayout *
_efl_ui_view_list_relayout_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd EINA_UNUSED)
{
return pd->relayout;
}
static void
_layout(Efl_Ui_List_Data *pd)
_layout(Efl_Ui_View_List_Data *pd)
{
if (!pd->model)
return;
efl_ui_list_relayout_layout_do(pd->relayout, pd->obj, pd->segarray_first, pd->segarray);
efl_ui_view_list_relayout_layout_do(pd->relayout, pd->obj, pd->segarray_first, pd->segarray);
}
static void
_children_slice_then(void * data, Efl_Event const* event)
{
Efl_Ui_List_Data *pd = data;
Efl_Ui_View_List_Data *pd = data;
Eina_Accessor *acc = (Eina_Accessor*)((Efl_Future_Event_Success*)event->info)->value;
efl_ui_list_segarray_insert_accessor(pd->segarray, pd->outstanding_slice.slice_start, acc);
efl_ui_view_list_segarray_insert_accessor(pd->segarray, pd->outstanding_slice.slice_start, acc);
pd->segarray_first = pd->outstanding_slice.slice_start;
pd->outstanding_slice.slice_start = pd->outstanding_slice.slice_count = 0;
@ -945,13 +945,13 @@ _children_slice_then(void * data, Efl_Event const* event)
/* EFL UI LIST MODEL INTERFACE */
EOLIAN static Eina_Size2D
_efl_ui_list_efl_ui_list_model_min_size_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_ui_view_list_model_min_size_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->min;
}
EOLIAN static void
_efl_ui_list_efl_ui_list_model_min_size_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_Size2D min)
_efl_ui_view_list_efl_ui_view_list_model_min_size_set(Eo *obj, Efl_Ui_View_List_Data *pd, Eina_Size2D min)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
@ -963,33 +963,33 @@ _efl_ui_list_efl_ui_list_model_min_size_set(Eo *obj, Efl_Ui_List_Data *pd, Eina_
}
EOLIAN static void
_efl_ui_list_efl_ui_focus_composition_prepare(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_ui_focus_composition_prepare(Eo *obj, Efl_Ui_View_List_Data *pd)
{
Eina_List *order = efl_ui_list_relayout_elements_get(pd->relayout);
Eina_List *order = efl_ui_view_list_relayout_elements_get(pd->relayout);
efl_ui_focus_composition_elements_set(obj, order);
}
EOLIAN Eina_List*
_efl_ui_list_efl_access_access_children_get(Eo *obj, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_access_access_children_get(Eo *obj, Efl_Ui_View_List_Data *pd)
{
Eina_List *ret = NULL, *ret2 = NULL;
ret = efl_ui_list_relayout_elements_get(pd->relayout);
ret2 = efl_access_children_get(efl_super(obj, EFL_UI_LIST_CLASS));
ret = efl_ui_view_list_relayout_elements_get(pd->relayout);
ret2 = efl_access_children_get(efl_super(obj, EFL_UI_VIEW_LIST_CLASS));
return eina_list_merge(ret, ret2);
}
EOLIAN static Eina_Bool
_efl_ui_list_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_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_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)
{
return efl_ui_widget_focus_state_apply(efl_super(obj, MY_CLASS), current_state, configured_state, obj);
}
EOLIAN static Efl_Ui_List_LayoutItem *
_efl_ui_list_efl_ui_list_model_realize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_List_LayoutItem *item)
EOLIAN static Efl_Ui_View_List_LayoutItem *
_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_Item_Event evt;
Efl_Ui_View_List_Item_Event evt;
EINA_SAFETY_ON_NULL_RETURN_VAL(item->children, item);
item->layout = efl_ui_factory_create(pd->factory, item->children, obj);
@ -1004,8 +1004,8 @@ _efl_ui_list_efl_ui_list_model_realize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_Lis
evt.child = item->children;
evt.layout = item->layout;
evt.index = efl_ui_list_item_index_get(item);
efl_event_callback_call(obj, EFL_UI_LIST_EVENT_ITEM_REALIZED, &evt);
evt.index = efl_ui_view_list_item_index_get(item);
efl_event_callback_call(obj, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, &evt);
efl_ui_focus_composition_dirty(obj);
evas_object_show(item->layout);
@ -1013,9 +1013,9 @@ _efl_ui_list_efl_ui_list_model_realize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_Lis
}
EOLIAN static void
_efl_ui_list_efl_ui_list_model_unrealize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_List_LayoutItem *item)
_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_Item_Event evt;
Efl_Ui_View_List_Item_Event evt;
EINA_SAFETY_ON_NULL_RETURN(item->layout);
evas_object_event_callback_del_full(item->layout, EVAS_CALLBACK_MOUSE_UP, _on_item_mouse_up, item);
@ -1030,8 +1030,8 @@ _efl_ui_list_efl_ui_list_model_unrealize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_L
evt.child = item->children;
evt.layout = item->layout;
evt.index = efl_ui_list_item_index_get(item);
efl_event_callback_call(obj, EFL_UI_LIST_EVENT_ITEM_UNREALIZED, &evt);
evt.index = efl_ui_view_list_item_index_get(item);
efl_event_callback_call(obj, EFL_UI_VIEW_LIST_EVENT_ITEM_UNREALIZED, &evt);
evas_object_smart_member_del(item->layout);
efl_ui_factory_release(pd->factory, item->layout);
@ -1039,7 +1039,7 @@ _efl_ui_list_efl_ui_list_model_unrealize(Eo *obj, Efl_Ui_List_Data *pd, Efl_Ui_L
}
EOLIAN static void
_efl_ui_list_efl_ui_list_model_load_range_set(Eo* obj EINA_UNUSED, Efl_Ui_List_Data* pd, int first, int count)
_efl_ui_view_list_efl_ui_view_list_model_load_range_set(Eo* obj EINA_UNUSED, Efl_Ui_View_List_Data* pd, int first, int count)
{
if(!pd->slice_future)
{
@ -1051,18 +1051,18 @@ _efl_ui_list_efl_ui_list_model_load_range_set(Eo* obj EINA_UNUSED, Efl_Ui_List_D
}
EOLIAN static int
_efl_ui_list_efl_ui_list_model_model_size_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Data *pd)
_efl_ui_view_list_efl_ui_view_list_model_model_size_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Data *pd)
{
return pd->item_count;
}
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_list, Efl_Ui_List_Data)
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_view_list, Efl_Ui_View_List_Data)
/* Internal EO APIs and hidden overrides */
#define EFL_UI_LIST_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_list)
#define EFL_UI_VIEW_LIST_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_view_list)
#include "efl_ui_list.eo.c"
#include "efl_ui_list_relayout.eo.c"
#include "efl_ui_list_model.eo.c"
#include "efl_ui_view_list.eo.c"
#include "efl_ui_view_list_relayout.eo.c"
#include "efl_ui_view_list_model.eo.c"

View File

@ -1,19 +1,19 @@
import elm_general;
struct Efl.Ui.List.Item_Event
struct Efl.Ui.View.List.Item_Event
{
layout: Efl.Ui.Layout;
child: Efl.Model;
index: int;
}
class Efl.Ui.List (Efl.Ui.Layout, Efl.Ui.View, Efl.Ui.Scrollable.Interactive, Efl.Ui.Scrollbar,
class Efl.Ui.View.List (Efl.Ui.Layout, 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.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.List.Model)
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.View.List.Model)
{
methods {
@property relayout {
values {
object: Efl.Ui.List.Relayout;
object: Efl.Ui.View.List.Relayout;
}
}
@property homogeneous {
@ -50,14 +50,14 @@ class Efl.Ui.List (Efl.Ui.Layout, Efl.Ui.View, Efl.Ui.Scrollable.Interactive, Ef
}
}
events {
item,realized : Efl.Ui.List.Item_Event;
item,unrealized : Efl.Ui.List.Item_Event;
item,focused : Efl.Ui.List.Item_Event;
item,unfocused : Efl.Ui.List.Item_Event;
item,highlighted : Efl.Ui.List.Item_Event;
item,unhighlighted : Efl.Ui.List.Item_Event;
item,selected : Efl.Ui.List.Item_Event;
item,unselected : Efl.Ui.List.Item_Event;
item,realized : Efl.Ui.View.List.Item_Event;
item,unrealized : Efl.Ui.View.List.Item_Event;
item,focused : Efl.Ui.View.List.Item_Event;
item,unfocused : Efl.Ui.View.List.Item_Event;
item,highlighted : Efl.Ui.View.List.Item_Event;
item,unhighlighted : Efl.Ui.View.List.Item_Event;
item,selected : Efl.Ui.View.List.Item_Event;
item,unselected : Efl.Ui.View.List.Item_Event;
}
implements {
@ -70,11 +70,11 @@ class Efl.Ui.List (Efl.Ui.Layout, Efl.Ui.View, Efl.Ui.Scrollable.Interactive, Ef
Efl.Canvas.Group.group_member_add;
Efl.Canvas.Group.group_calculate;
Efl.Ui.List.Model.load_range { set;}
Efl.Ui.List.Model.realize;
Efl.Ui.List.Model.unrealize;
Efl.Ui.List.Model.model_size { get; }
Efl.Ui.List.Model.min_size { get; set; }
Efl.Ui.View.List.Model.load_range { set;}
Efl.Ui.View.List.Model.realize;
Efl.Ui.View.List.Model.unrealize;
Efl.Ui.View.List.Model.model_size { get; }
Efl.Ui.View.List.Model.min_size { get; set; }
// Widget
Efl.Ui.Widget.focus_manager_create;

View File

@ -1,6 +1,6 @@
import efl_ui_list_types;
import efl_ui_view_list_types;
interface Efl.Ui.List.Model (Efl.Interface)
interface Efl.Ui.View.List.Model (Efl.Interface)
{
methods {
@property load_range {
@ -12,13 +12,13 @@ interface Efl.Ui.List.Model (Efl.Interface)
}
realize {
params {
item: ptr(Efl.Ui.List.LayoutItem);
item: ptr(Efl.Ui.View.List.LayoutItem);
}
return: ptr(Efl.Ui.List.LayoutItem);
return: ptr(Efl.Ui.View.List.LayoutItem);
}
unrealize {
params {
item: ptr(Efl.Ui.List.LayoutItem);
item: ptr(Efl.Ui.View.List.LayoutItem);
}
}
// @property visible_range {

View File

@ -1,6 +1,6 @@
class Efl.Ui.List.Pan (Efl.Ui.Pan)
class Efl.Ui.View.List.Pan (Efl.Ui.Pan)
{
[[Elementary Efl_Ui_List pan class]]
[[Elementary Efl_Ui_View_List pan class]]
implements {
Efl.Object.destructor;
Efl.Ui.Pan.content_size { get; }

View File

@ -7,49 +7,49 @@
#include <assert.h>
#include "elm_priv.h"
#include "efl_ui_list_segarray.h"
#include "efl_ui_view_list_segarray.h"
#define MY_CLASS EFL_UI_LIST_PRECISE_LAYOUTER_CLASS
#define MY_CLASS EFL_UI_VIEW_LIST_PRECISE_LAYOUTER_CLASS
typedef struct _Efl_Ui_List_Precise_Layouter_Data
typedef struct _Efl_Ui_View_List_Precise_Layouter_Data
{
Eina_Bool initialized;
Eina_Bool recalc;
Eina_Bool resize;
Eina_Size2D min;
Efl_Model* model;
Efl_Ui_List_Model *modeler;
Efl_Ui_View_List_Model *modeler;
Efl_Future *count_future;
Ecore_Job *calc_job;
Efl_Ui_List_SegArray *segarray;
Efl_Ui_View_List_SegArray *segarray;
int first;
int count_total;
unsigned int calc_progress;
} Efl_Ui_List_Precise_Layouter_Data;
} Efl_Ui_View_List_Precise_Layouter_Data;
typedef struct _Efl_Ui_List_Precise_Layouter_Node_Data
typedef struct _Efl_Ui_View_List_Precise_Layouter_Node_Data
{
Eina_Size2D min;
Eina_Size2D size;
Eina_Bool realized;
} Efl_Ui_List_Precise_Layouter_Node_Data;
} Efl_Ui_View_List_Precise_Layouter_Node_Data;
typedef struct _Efl_Ui_List_Precise_Layouter_Callback_Data
typedef struct _Efl_Ui_View_List_Precise_Layouter_Callback_Data
{
Efl_Ui_List_Precise_Layouter_Data* pd;
Efl_Ui_List_LayoutItem* item;
} Efl_Ui_List_Precise_Layouter_Callback_Data;
Efl_Ui_View_List_Precise_Layouter_Data* pd;
Efl_Ui_View_List_LayoutItem* item;
} Efl_Ui_View_List_Precise_Layouter_Callback_Data;
#include "efl_ui_list_precise_layouter.eo.h"
#include "efl_ui_view_list_precise_layouter.eo.h"
static void _efl_ui_list_relayout_layout_do(Efl_Ui_List_Precise_Layouter_Data *);
static Eina_Bool _initilize(Eo *, Efl_Ui_List_Precise_Layouter_Data*, Efl_Ui_List_Model*, Efl_Ui_List_SegArray*);
static void _finalize(Eo *, Efl_Ui_List_Precise_Layouter_Data*);
static void _node_realize(Efl_Ui_List_Precise_Layouter_Data*, Efl_Ui_List_SegArray_Node*);
static void _node_unrealize(Efl_Ui_List_Precise_Layouter_Data*, Efl_Ui_List_SegArray_Node*);
static void _efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_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 void _finalize(Eo *, Efl_Ui_View_List_Precise_Layouter_Data*);
static void _node_realize(Efl_Ui_View_List_Precise_Layouter_Data*, Efl_Ui_View_List_SegArray_Node*);
static void _node_unrealize(Efl_Ui_View_List_Precise_Layouter_Data*, Efl_Ui_View_List_SegArray_Node*);
static void
_item_size_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* item)
_item_size_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_LayoutItem* item)
{
int boxx, boxy, boxw, boxh, boxl, boxr, boxt, boxb, pad[4];
double align[2];
@ -115,11 +115,11 @@ _item_size_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* i
}
static void
_item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* item
, Eina_Size2D min, Efl_Ui_List_SegArray_Node *itemnode)
_item_min_calc(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_LayoutItem* item
, Eina_Size2D min, Efl_Ui_View_List_SegArray_Node *itemnode)
{
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = itemnode->layout_data;
Efl_Ui_List_LayoutItem *layout_item;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = itemnode->layout_data;
Efl_Ui_View_List_LayoutItem *layout_item;
int i, pad[4];
efl_gfx_size_hint_margin_get(item->layout, &pad[0], &pad[1], &pad[2], &pad[3]);
@ -140,7 +140,7 @@ _item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* it
nodedata->min.w = 0;
for (i = 0; i != itemnode->length; ++i)
{
layout_item = (Efl_Ui_List_LayoutItem *)itemnode->pointers[i];
layout_item = (Efl_Ui_View_List_LayoutItem *)itemnode->pointers[i];
if (nodedata->min.w < layout_item->min.w)
nodedata->min.w = layout_item->min.w;
@ -153,13 +153,13 @@ _item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* it
pd->min.w = min.w;
else if (pd->min.w == item->min.w)
{
Efl_Ui_List_SegArray_Node *node2;
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Efl_Ui_View_List_SegArray_Node *node2;
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
pd->min.w = min.w;
EINA_ACCESSOR_FOREACH(nodes, i, node2)
{
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
if (pd->min.w < nodedata2->min.w)
pd->min.w = nodedata2->min.w;
@ -178,22 +178,22 @@ _item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_LayoutItem* it
static void
_count_then(void * data, Efl_Event const* event)
{
Efl_Ui_List_Precise_Layouter_Data *pd = data;
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
EINA_SAFETY_ON_NULL_RETURN(pd);
pd->count_future = NULL;
pd->count_total = *(int*)((Efl_Future_Event_Success*)event->info)->value;
if (pd->modeler && (pd->count_total != efl_ui_list_segarray_count(pd->segarray)))
if (pd->modeler && (pd->count_total != efl_ui_view_list_segarray_count(pd->segarray)))
{
pd->recalc = EINA_TRUE;
efl_ui_list_model_load_range_set(pd->modeler, 0, 0); // load all
efl_ui_view_list_model_load_range_set(pd->modeler, 0, 0); // load all
}
}
static void
_count_error(void * data, Efl_Event const* event EINA_UNUSED)
{
Efl_Ui_List_Precise_Layouter_Data *pd = data;
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
EINA_SAFETY_ON_NULL_RETURN(pd);
pd->count_future = NULL;
}
@ -202,18 +202,18 @@ static void
_on_item_size_hint_change(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj, void *event_info EINA_UNUSED)
{
Efl_Ui_List_Precise_Layouter_Callback_Data *cb_data = data;
Efl_Ui_List_Precise_Layouter_Data *pd = cb_data->pd;
Efl_Ui_List_LayoutItem *item = cb_data->item;;
Efl_Ui_List_SegArray_Node *node = item->tree_node;
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data = data;
Efl_Ui_View_List_Precise_Layouter_Data *pd = cb_data->pd;
Efl_Ui_View_List_LayoutItem *item = cb_data->item;;
Efl_Ui_View_List_SegArray_Node *node = item->tree_node;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
Eina_Size2D min = efl_gfx_size_hint_combined_min_get(obj);
_item_min_calc(pd, item, min, node);
if (!nodedata->realized)
{
free(evas_object_event_callback_del(item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change));
efl_ui_list_model_unrealize(pd->modeler, item);
efl_ui_view_list_model_unrealize(pd->modeler, item);
}
}
@ -221,7 +221,7 @@ static void
_on_modeler_resize(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Efl_Ui_List_Precise_Layouter_Data *pd = data;
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
pd->resize = EINA_TRUE;
}
@ -229,9 +229,9 @@ static void
_child_added_cb(void *data, const Efl_Event *event)
{
Efl_Model_Children_Event* evt = event->info;
Efl_Ui_List_Precise_Layouter_Data *pd = data;
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
efl_ui_list_segarray_insert(pd->segarray, evt->index, evt->child);
efl_ui_view_list_segarray_insert(pd->segarray, evt->index, evt->child);
pd->recalc = EINA_TRUE;
evas_object_smart_changed(pd->modeler);
}
@ -240,13 +240,13 @@ static void
_child_removed_cb(void *data, const Efl_Event *event)
{
Efl_Model_Children_Event* evt = event->info;
Efl_Ui_List_Precise_Layouter_Data *pd = data;
Efl_Ui_List_LayoutItem *layout_item, *litem;
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata;
Efl_Ui_List_SegArray_Node *itemnode;
Efl_Ui_View_List_Precise_Layouter_Data *pd = data;
Efl_Ui_View_List_LayoutItem *layout_item, *litem;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata;
Efl_Ui_View_List_SegArray_Node *itemnode;
int i;
litem = efl_ui_list_segarray_remove(pd->segarray, evt->index);
litem = efl_ui_view_list_segarray_remove(pd->segarray, evt->index);
if (!litem) return;
itemnode = litem->tree_node;
@ -262,7 +262,7 @@ _child_removed_cb(void *data, const Efl_Event *event)
for (i = 0; i != itemnode->length; ++i)
{
layout_item = (Efl_Ui_List_LayoutItem *)itemnode->pointers[i];
layout_item = (Efl_Ui_View_List_LayoutItem *)itemnode->pointers[i];
if (nodedata->min.w < layout_item->min.w)
nodedata->min.w = layout_item->min.w;
@ -275,13 +275,13 @@ _child_removed_cb(void *data, const Efl_Event *event)
if (pd->min.w == litem->min.w)
{
Efl_Ui_List_SegArray_Node *node2;
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Efl_Ui_View_List_SegArray_Node *node2;
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
pd->min.w = 0;
EINA_ACCESSOR_FOREACH(nodes, i, node2)
{
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata2 = node2->layout_data;
if (pd->min.w < nodedata2->min.w)
pd->min.w = nodedata2->min.w;
@ -291,7 +291,7 @@ _child_removed_cb(void *data, const Efl_Event *event)
eina_accessor_free(nodes);
}
efl_ui_list_model_unrealize(pd->modeler, litem);
efl_ui_view_list_model_unrealize(pd->modeler, litem);
free(litem);
pd->recalc = EINA_TRUE;
@ -299,7 +299,7 @@ _child_removed_cb(void *data, const Efl_Event *event)
}
static Eina_Bool
_initilize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_Model *modeler, Efl_Ui_List_SegArray *segarray)
_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)
{
if(pd->initialized)
return EINA_TRUE;
@ -316,7 +316,7 @@ _initilize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_Li
evas_object_event_callback_add(modeler, EVAS_CALLBACK_RESIZE, _on_modeler_resize, 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_ui_list_model_load_range_set(modeler, 0, 0); // load all
efl_ui_view_list_model_load_range_set(modeler, 0, 0); // load all
pd->min.w = 0;
pd->min.h = 0;
@ -325,16 +325,16 @@ _initilize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_Li
}
static void
_finalize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd)
_finalize(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
{
Efl_Ui_List_SegArray_Node* node;
Efl_Ui_View_List_SegArray_Node* node;
int i = 0;
evas_object_event_callback_del_full(pd->modeler, EVAS_CALLBACK_RESIZE, _on_modeler_resize, pd);
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILD_ADDED, _child_added_cb, pd);
efl_event_callback_del(pd->model, EFL_MODEL_EVENT_CHILD_REMOVED, _child_removed_cb, pd);
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
EINA_ACCESSOR_FOREACH(nodes, i, node)
{
_node_unrealize(pd, node);
@ -346,7 +346,7 @@ _finalize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd)
pd->min.w = 0;
pd->min.h = 0;
efl_ui_list_model_min_size_set(pd->modeler, pd->min);
efl_ui_view_list_model_min_size_set(pd->modeler, pd->min);
pd->segarray = NULL;
pd->modeler = NULL;
@ -355,11 +355,11 @@ _finalize(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd)
}
static void
_node_realize(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_SegArray_Node *node)
_node_realize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegArray_Node *node)
{
Efl_Ui_List_LayoutItem* layout_item;
Efl_Ui_List_Precise_Layouter_Callback_Data *cb_data;
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
Efl_Ui_View_List_LayoutItem* layout_item;
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
int i;
EINA_SAFETY_ON_NULL_RETURN(nodedata);
@ -370,12 +370,12 @@ _node_realize(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_SegArray_Node *
for (i = 0; i != node->length; ++i)
{
layout_item = (Efl_Ui_List_LayoutItem *)node->pointers[i];
efl_ui_list_model_realize(pd->modeler, layout_item);
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
efl_ui_view_list_model_realize(pd->modeler, layout_item);
if (layout_item->layout)
{
cb_data = calloc(1, sizeof(Efl_Ui_List_Precise_Layouter_Callback_Data));
cb_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Callback_Data));
cb_data->pd = pd;
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);
@ -385,11 +385,11 @@ _node_realize(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_SegArray_Node *
}
static void
_node_unrealize(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_SegArray_Node *node)
_node_unrealize(Efl_Ui_View_List_Precise_Layouter_Data *pd, Efl_Ui_View_List_SegArray_Node *node)
{
Efl_Ui_List_LayoutItem* layout_item;
Efl_Ui_List_Precise_Layouter_Callback_Data *cb_data;
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
Efl_Ui_View_List_LayoutItem* layout_item;
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = node->layout_data;
int i;
EINA_SAFETY_ON_NULL_RETURN(nodedata);
@ -400,24 +400,24 @@ _node_unrealize(Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Ui_List_SegArray_Node
for (i = 0; i != node->length; ++i)
{
layout_item = (Efl_Ui_List_LayoutItem *)node->pointers[i];
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
if (layout_item->layout)
{
cb_data = evas_object_event_callback_del(layout_item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change);
free(cb_data);
}
efl_ui_list_model_unrealize(pd->modeler, layout_item);
efl_ui_view_list_model_unrealize(pd->modeler, layout_item);
}
}
static void
_calc_range(Efl_Ui_List_Precise_Layouter_Data *pd)
_calc_range(Efl_Ui_View_List_Precise_Layouter_Data *pd)
{
Efl_Ui_List_SegArray_Node *node;
Efl_Ui_View_List_SegArray_Node *node;
Evas_Coord ch, ny;
Eina_Rect vgmt;
Eina_Position2D spos;
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata;
int i;
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
@ -429,7 +429,7 @@ _calc_range(Efl_Ui_List_Precise_Layouter_Data *pd)
vgmt.h *= 2;
ch = 0;
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
EINA_ACCESSOR_FOREACH(nodes, i, node)
{
nodedata = node->layout_data;
@ -449,9 +449,9 @@ _calc_range(Efl_Ui_List_Precise_Layouter_Data *pd)
static void
_calc_size_job(void *data)
{
Efl_Ui_List_Precise_Layouter_Data *pd;
Efl_Ui_List_SegArray_Node *node;
Efl_Ui_List_LayoutItem *layout_item;
Efl_Ui_View_List_Precise_Layouter_Data *pd;
Efl_Ui_View_List_SegArray_Node *node;
Efl_Ui_View_List_LayoutItem *layout_item;
Eo *obj = data;
Eina_Size2D min;
int i;
@ -463,16 +463,16 @@ _calc_size_job(void *data)
pd->recalc = EINA_FALSE;
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
while (eina_accessor_data_get(nodes, pd->calc_progress, (void **)&node))
{
pd->calc_progress++;
if (!node->layout_data)
node->layout_data = calloc(1, sizeof(Efl_Ui_List_Precise_Layouter_Node_Data));
node->layout_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Node_Data));
for (i = 0; i != node->length; ++i)
{
layout_item = (Efl_Ui_List_LayoutItem *)node->pointers[i];
layout_item = (Efl_Ui_View_List_LayoutItem *)node->pointers[i];
EINA_SAFETY_ON_NULL_RETURN(layout_item);
// cache size of new items
@ -480,18 +480,18 @@ _calc_size_job(void *data)
{
if (!layout_item->layout)
{
efl_ui_list_model_realize(pd->modeler, layout_item);
efl_ui_view_list_model_realize(pd->modeler, layout_item);
}
min = efl_gfx_size_hint_combined_min_get(layout_item->layout);
if (min.w && min.h)
{
_item_min_calc(pd, layout_item, min, node);
efl_ui_list_model_unrealize(pd->modeler, layout_item);
efl_ui_view_list_model_unrealize(pd->modeler, layout_item);
}
else
{
Efl_Ui_List_Precise_Layouter_Callback_Data *cb_data = calloc(1, sizeof(Efl_Ui_List_Precise_Layouter_Callback_Data));
Efl_Ui_View_List_Precise_Layouter_Callback_Data *cb_data = calloc(1, sizeof(Efl_Ui_View_List_Precise_Layouter_Callback_Data));
cb_data->pd = pd;
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);
@ -514,7 +514,7 @@ _calc_size_job(void *data)
}
EOLIAN static Efl_Object *
_efl_ui_list_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd)
_efl_ui_view_list_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
pd->initialized = EINA_FALSE;
@ -524,23 +524,23 @@ _efl_ui_list_precise_layouter_efl_object_constructor(Eo *obj EINA_UNUSED, Efl_Ui
}
EOLIAN static Eina_List *
_efl_ui_list_precise_layouter_efl_ui_list_relayout_elements_get(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd)
_efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_elements_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd)
{
Eina_List *elements_order = NULL;
Efl_Ui_List_LayoutItem* layout_item;
Efl_Ui_List_SegArray_Node *items_node;
Efl_Ui_View_List_LayoutItem* layout_item;
Efl_Ui_View_List_SegArray_Node *items_node;
int i, j = 0;
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
{
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
if (!nodedata || !nodedata->realized)
continue;
for(j = 0; j != items_node->length;++j)
{
layout_item = (Efl_Ui_List_LayoutItem *)items_node->pointers[j];
layout_item = (Efl_Ui_View_List_LayoutItem *)items_node->pointers[j];
if (layout_item->layout)
elements_order = eina_list_append(elements_order, layout_item->layout);
}
@ -550,7 +550,7 @@ _efl_ui_list_precise_layouter_efl_ui_list_relayout_elements_get(Eo *obj EINA_UNU
}
EOLIAN static void
_efl_ui_list_precise_layouter_efl_ui_list_relayout_model_set(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd, Efl_Model *model)
_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)
{
if (pd->model == model)
return;
@ -579,13 +579,13 @@ _efl_ui_list_precise_layouter_efl_ui_list_relayout_model_set(Eo *obj EINA_UNUSED
}
static void
_efl_ui_list_relayout_layout_do(Efl_Ui_List_Precise_Layouter_Data *pd)
_efl_ui_view_list_relayout_layout_do(Efl_Ui_View_List_Precise_Layouter_Data *pd)
{
Eina_Rect vgmt;
Eina_Position2D spos;
double cur_pos = 0;
Efl_Ui_List_LayoutItem* layout_item;
Efl_Ui_List_SegArray_Node *items_node;
Efl_Ui_View_List_LayoutItem* layout_item;
Efl_Ui_View_List_SegArray_Node *items_node;
int i, j = 0;
_calc_range(pd);
@ -612,15 +612,15 @@ _efl_ui_list_relayout_layout_do(Efl_Ui_List_Precise_Layouter_Data *pd)
extra = boxh - pd->min.h;
if (extra < 0) extra = 0;
efl_ui_list_model_min_size_set(pd->modeler, pd->min);
efl_ui_view_list_model_min_size_set(pd->modeler, pd->min);
vgmt = efl_ui_scrollable_viewport_geometry_get(pd->modeler);
spos = efl_ui_scrollable_content_pos_get(pd->modeler);
Eina_Accessor *nodes = efl_ui_list_segarray_node_accessor_get(pd->segarray);
Eina_Accessor *nodes = efl_ui_view_list_segarray_node_accessor_get(pd->segarray);
EINA_ACCESSOR_FOREACH(nodes, i, items_node)
{
Efl_Ui_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
Efl_Ui_View_List_Precise_Layouter_Node_Data *nodedata = items_node->layout_data;
if (!nodedata)
{
continue;
@ -630,7 +630,7 @@ _efl_ui_list_relayout_layout_do(Efl_Ui_List_Precise_Layouter_Data *pd)
{
for(j = 0; j != items_node->length;++j)
{
layout_item = (Efl_Ui_List_LayoutItem *)items_node->pointers[j];
layout_item = (Efl_Ui_View_List_LayoutItem *)items_node->pointers[j];
double x, y, w, h;
double weight_x, weight_y;
@ -669,16 +669,16 @@ _efl_ui_list_relayout_layout_do(Efl_Ui_List_Precise_Layouter_Data *pd)
}
EOLIAN static void
_efl_ui_list_precise_layouter_efl_ui_list_relayout_layout_do
(Eo *obj EINA_UNUSED, Efl_Ui_List_Precise_Layouter_Data *pd
, Efl_Ui_List_Model *modeler, int first, Efl_Ui_List_SegArray *segarray)
_efl_ui_view_list_precise_layouter_efl_ui_view_list_relayout_layout_do
(Eo *obj EINA_UNUSED, Efl_Ui_View_List_Precise_Layouter_Data *pd
, Efl_Ui_View_List_Model *modeler, int first, Efl_Ui_View_List_SegArray *segarray)
{
if (!_initilize(obj, pd, modeler, segarray))
return;
pd->first = first;
if (pd->recalc && efl_ui_list_segarray_count(segarray) > 0)
if (pd->recalc && efl_ui_view_list_segarray_count(segarray) > 0)
{
// cache size of new items
pd->calc_progress = 0;
@ -687,7 +687,7 @@ _efl_ui_list_precise_layouter_efl_ui_list_relayout_layout_do
return;
}
_efl_ui_list_relayout_layout_do(pd);
_efl_ui_view_list_relayout_layout_do(pd);
}
#include "efl_ui_list_precise_layouter.eo.c"
#include "efl_ui_view_list_precise_layouter.eo.c"

View File

@ -0,0 +1,9 @@
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; }
}
}

View File

@ -1,5 +1,5 @@
#ifndef EFL_UI_LIST_PRIVATE_H
#define EFL_UI_LIST_PRIVATE_H
#ifndef EFL_UI_VIEW_LIST_PRIVATE_H
#define EFL_UI_VIEW_LIST_PRIVATE_H
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
@ -12,19 +12,19 @@
#include <Elementary.h>
#include "elm_priv.h"
typedef struct _Efl_Ui_List_Data Efl_Ui_List_Data;
typedef struct _Efl_Ui_View_List_Data Efl_Ui_View_List_Data;
int efl_ui_list_item_index_get(Efl_Ui_List_LayoutItem *item);
int efl_ui_view_list_item_index_get(Efl_Ui_View_List_LayoutItem *item);
typedef struct _Efl_Ui_List_Data Efl_Ui_List_Data;
typedef struct _Efl_Ui_View_List_Data Efl_Ui_View_List_Data;
#include "efl_ui_list_segarray.h"
#include "efl_ui_view_list_segarray.h"
struct _Efl_Ui_List_Data
struct _Efl_Ui_View_List_Data
{
Eo *obj;
Eo *scrl_mgr;
Efl_Ui_List_Pan *pan_obj;
Efl_Ui_View_List_Pan *pan_obj;
Efl_Model *model;
struct {
@ -41,7 +41,7 @@ struct _Efl_Ui_List_Data
} weight;
int segarray_first;
Efl_Ui_List_SegArray *segarray;
Efl_Ui_View_List_SegArray *segarray;
Efl_Ui_Layout_Factory *factory;
Eina_List *selected_items;
@ -55,7 +55,7 @@ struct _Efl_Ui_List_Data
int item_count;
Efl_Future *slice_future;
Efl_Future *count_future;
Efl_Ui_List_Relayout *relayout;
Efl_Ui_View_List_Relayout *relayout;
struct {
int slice_start;
int slice_count;
@ -67,9 +67,9 @@ struct _Efl_Ui_List_Data
Eina_Bool scrl_freeze : 1;
};
typedef struct _Efl_Ui_List_Pan_Data Efl_Ui_List_Pan_Data;
typedef struct _Efl_Ui_View_List_Pan_Data Efl_Ui_View_List_Pan_Data;
struct _Efl_Ui_List_Pan_Data
struct _Efl_Ui_View_List_Pan_Data
{
Eo *wobj;
Eina_Rect gmt;
@ -78,19 +78,19 @@ struct _Efl_Ui_List_Pan_Data
Ecore_Job *resize_job;
};
typedef struct _Efl_Ui_List_Slice Efl_Ui_List_Slice;
typedef struct _Efl_Ui_View_List_Slice Efl_Ui_View_List_Slice;
struct _Efl_Ui_List_Slice
struct _Efl_Ui_View_List_Slice
{
Efl_Ui_List_Data *pd;
Efl_Ui_View_List_Data *pd;
int newstart, slicestart, newslice;
};
#define EFL_UI_LIST_DATA_GET(o, ptr) \
Efl_Ui_List_Data * ptr = efl_data_scope_get(o, EFL_UI_LIST_CLASS)
#define EFL_UI_VIEW_LIST_DATA_GET(o, ptr) \
Efl_Ui_View_List_Data * ptr = efl_data_scope_get(o, EFL_UI_VIEW_LIST_CLASS)
#define EFL_UI_LIST_DATA_GET_OR_RETURN(o, ptr) \
EFL_UI_LIST_DATA_GET(o, ptr); \
#define EFL_UI_VIEW_LIST_DATA_GET_OR_RETURN(o, ptr) \
EFL_UI_VIEW_LIST_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \
@ -98,8 +98,8 @@ struct _Efl_Ui_List_Slice
return; \
}
#define EFL_UI_LIST_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
EFL_UI_LIST_DATA_GET(o, ptr); \
#define EFL_UI_VIEW_LIST_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
EFL_UI_VIEW_LIST_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \

View File

@ -1,13 +1,13 @@
import efl_ui_list_types;
import efl_ui_view_list_types;
interface Efl.Ui.List.Relayout (Efl.Interface)
interface Efl.Ui.View.List.Relayout (Efl.Interface)
{
methods {
layout_do {
params {
modeler: Efl.Ui.List.Model;
modeler: Efl.Ui.View.List.Model;
first: int;
children: Efl.Ui.List.SegArray;
children: Efl.Ui.View.List.SegArray;
}
}
@property model {

View File

@ -5,15 +5,15 @@
#include <Efl.h>
#include <assert.h>
#define MY_CLASS EFL_UI_LIST_SEGARRAY_CLASS
#define MY_CLASS_NAME "Efl.Ui.List.SegArray"
#define MY_CLASS EFL_UI_VIEW_LIST_SEGARRAY_CLASS
#define MY_CLASS_NAME "Efl.Ui.View.List.SegArray"
#include "efl_ui_list_private.h"
#include "efl_ui_list_segarray.h"
#include "efl_ui_view_list_private.h"
#include "efl_ui_view_list_segarray.h"
static int _search_lookup_cb(Eina_Rbtree const* rbtree, const void* key, int length EINA_UNUSED, void* data EINA_UNUSED)
{
Efl_Ui_List_SegArray_Node const* node = (void const*)rbtree;
Efl_Ui_View_List_SegArray_Node const* node = (void const*)rbtree;
int index = *(int*)key;
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)
{
Efl_Ui_List_SegArray_Node const* node = (void const*)rbtree;
Efl_Ui_View_List_SegArray_Node const* node = (void const*)rbtree;
int index = *(int*)key;
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_List_SegArray_Node const* left,
Efl_Ui_List_SegArray_Node const* right, void* data EINA_UNUSED)
static Eina_Rbtree_Direction _rbtree_compare(Efl_Ui_View_List_SegArray_Node const* left,
Efl_Ui_View_List_SegArray_Node const* right, void* data EINA_UNUSED)
{
if(left->first < right->first)
return EINA_RBTREE_LEFT;
@ -58,7 +58,7 @@ static Eina_Rbtree_Direction _rbtree_compare(Efl_Ui_List_SegArray_Node const* le
static void
_free_node(Efl_Ui_List_SegArray_Node* node, void* data EINA_UNUSED)
_free_node(Efl_Ui_View_List_SegArray_Node* node, void* data EINA_UNUSED)
{
int i = 0;
@ -71,11 +71,11 @@ _free_node(Efl_Ui_List_SegArray_Node* node, void* data EINA_UNUSED)
free(node);
}
static Efl_Ui_List_SegArray_Node*
_alloc_node(Efl_Ui_List_SegArray_Data* pd, int first)
static Efl_Ui_View_List_SegArray_Node*
_alloc_node(Efl_Ui_View_List_SegArray_Data* pd, int first)
{
Efl_Ui_List_SegArray_Node* node;
node = calloc(1, sizeof(Efl_Ui_List_SegArray_Node) + pd->step_size*sizeof(Efl_Ui_List_LayoutItem*));
Efl_Ui_View_List_SegArray_Node* node;
node = calloc(1, sizeof(Efl_Ui_View_List_SegArray_Node) + pd->step_size*sizeof(Efl_Ui_View_List_LayoutItem*));
node->first = first;
node->max = pd->step_size;
pd->root = (void*)eina_rbtree_inline_insert(EINA_RBTREE_GET(pd->root), EINA_RBTREE_GET(node),
@ -85,7 +85,7 @@ _alloc_node(Efl_Ui_List_SegArray_Data* pd, int first)
}
EOLIAN static void
_efl_ui_list_segarray_flush(Eo* obj EINA_UNUSED, Efl_Ui_List_SegArray_Data *pd)
_efl_ui_view_list_segarray_flush(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd)
{
if (pd->root)
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
@ -95,26 +95,26 @@ _efl_ui_list_segarray_flush(Eo* obj EINA_UNUSED, Efl_Ui_List_SegArray_Data *pd)
pd->count = 0;
}
static Efl_Ui_List_LayoutItem* _create_item_partial(Efl_Model* model)
static Efl_Ui_View_List_LayoutItem* _create_item_partial(Efl_Model* model)
{
Efl_Ui_List_LayoutItem* item = calloc(1, sizeof(Efl_Ui_List_LayoutItem));
Efl_Ui_View_List_LayoutItem* item = calloc(1, sizeof(Efl_Ui_View_List_LayoutItem));
item->children = model;
return item;
}
static Efl_Ui_List_LayoutItem* _create_item(Efl_Model* model, Efl_Ui_List_SegArray_Node* node, unsigned int index)
static Efl_Ui_View_List_LayoutItem* _create_item(Efl_Model* model, Efl_Ui_View_List_SegArray_Node* node, unsigned int index)
{
Efl_Ui_List_LayoutItem* item = _create_item_partial(model);
Efl_Ui_View_List_LayoutItem* item = _create_item_partial(model);
item->index_offset = index - node->first;
item->tree_node = node;
return item;
}
EOLIAN static Efl_Ui_List_LayoutItem*
_efl_ui_list_segarray_remove(Eo* obj EINA_UNUSED, Efl_Ui_List_SegArray_Data *pd, int index)
EOLIAN static Efl_Ui_View_List_LayoutItem*
_efl_ui_view_list_segarray_remove(Eo* obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd, int index)
{
Efl_Ui_List_SegArray_Node *node;
Efl_Ui_List_LayoutItem *item, *rt;
Efl_Ui_View_List_SegArray_Node *node;
Efl_Ui_View_List_LayoutItem *item, *rt;
Eina_Iterator* iterator;
int offset;
@ -146,7 +146,7 @@ _efl_ui_list_segarray_remove(Eo* obj EINA_UNUSED, Efl_Ui_List_SegArray_Data *pd,
}
static void
_efl_ui_list_segarray_insert_at_node(Efl_Ui_List_SegArray_Data* pd, int index, Efl_Ui_List_LayoutItem* item, Efl_Ui_List_SegArray_Node* node)
_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)
{
Eina_Iterator* iterator;
int pos;
@ -194,10 +194,10 @@ _efl_ui_list_segarray_insert_at_node(Efl_Ui_List_SegArray_Data* pd, int index, E
EOLIAN static void
_efl_ui_list_segarray_insert(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd, int index, Efl_Model* model)
_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_SegArray_Node* node, *next;
Efl_Ui_List_LayoutItem* item;
Efl_Ui_View_List_SegArray_Node* node, *next;
Efl_Ui_View_List_LayoutItem* item;
item = _create_item_partial(model);
@ -207,23 +207,23 @@ _efl_ui_list_segarray_insert(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd,
{
next = (void*)EINA_RBTREE_GET(node)->son[EINA_RBTREE_LEFT];
if(next && next->first <= index)
_efl_ui_list_segarray_insert_at_node(pd, index, item, next);
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, next);
else
_efl_ui_list_segarray_insert_at_node(pd, index, item, node);
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, node);
}
else
_efl_ui_list_segarray_insert_at_node(pd, index, item, NULL);
_efl_ui_view_list_segarray_insert_at_node(pd, index, item, NULL);
}
EOLIAN static void
_efl_ui_list_segarray_insert_accessor(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd, int first, Eina_Accessor* accessor)
_efl_ui_view_list_segarray_insert_accessor(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd, int first, Eina_Accessor* accessor)
{
int i;
Efl_Model* children;
EINA_ACCESSOR_FOREACH(accessor, i, children)
{
Efl_Ui_List_SegArray_Node *node;
Efl_Ui_View_List_SegArray_Node *node;
int idx = first + i;
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(pd->root),
@ -241,28 +241,28 @@ _efl_ui_list_segarray_insert_accessor(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_
}
EOLIAN static int
_efl_ui_list_segarray_count(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd)
_efl_ui_view_list_segarray_count(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
{
return pd->count;
}
typedef struct _Efl_Ui_List_Segarray_Eina_Accessor
typedef struct _Efl_Ui_View_List_Segarray_Eina_Accessor
{
Eina_Accessor vtable;
Efl_Ui_List_SegArray_Data* segarray;
} Efl_Ui_List_Segarray_Eina_Accessor;
Efl_Ui_View_List_SegArray_Data* segarray;
} Efl_Ui_View_List_Segarray_Eina_Accessor;
static Eina_Bool
_efl_ui_list_segarray_accessor_get_at(Efl_Ui_List_Segarray_Eina_Accessor* acc,
_efl_ui_view_list_segarray_accessor_get_at(Efl_Ui_View_List_Segarray_Eina_Accessor* acc,
int idx, void** data)
{
Efl_Ui_List_SegArray_Node* node;
Efl_Ui_View_List_SegArray_Node* node;
node = (void*)eina_rbtree_inline_lookup(EINA_RBTREE_GET(acc->segarray->root),
&idx, sizeof(idx), &_search_lookup_cb, NULL);
if (node && (node->first <= idx && node->first + node->length > idx))
{
int i = idx - node->first;
Efl_Ui_List_LayoutItem* item = node->pointers[i];
Efl_Ui_View_List_LayoutItem* item = node->pointers[i];
*data = item;
return EINA_TRUE;
}
@ -270,13 +270,13 @@ _efl_ui_list_segarray_accessor_get_at(Efl_Ui_List_Segarray_Eina_Accessor* acc,
}
EOLIAN static void
_efl_ui_list_segarray_setup(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data *pd, int size)
_efl_ui_view_list_segarray_setup(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data *pd, int size)
{
pd->step_size = size;
}
EOLIAN static Eo *
_efl_ui_list_segarray_efl_object_constructor(Eo *obj, Efl_Ui_List_SegArray_Data *pd EINA_UNUSED)
_efl_ui_view_list_segarray_efl_object_constructor(Eo *obj, Efl_Ui_View_List_SegArray_Data *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
@ -284,7 +284,7 @@ _efl_ui_list_segarray_efl_object_constructor(Eo *obj, Efl_Ui_List_SegArray_Data
}
EOLIAN static void
_efl_ui_list_segarray_efl_object_destructor(Eo *obj, Efl_Ui_List_SegArray_Data *pd)
_efl_ui_view_list_segarray_efl_object_destructor(Eo *obj, Efl_Ui_View_List_SegArray_Data *pd)
{
if (pd->root)
eina_rbtree_delete(EINA_RBTREE_GET(pd->root), EINA_RBTREE_FREE_CB(_free_node), NULL);
@ -294,66 +294,66 @@ _efl_ui_list_segarray_efl_object_destructor(Eo *obj, Efl_Ui_List_SegArray_Data *
}
static void*
_efl_ui_list_segarray_accessor_get_container(Efl_Ui_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_accessor_get_container(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
{
return NULL;
}
static void
_efl_ui_list_segarray_accessor_free(Efl_Ui_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_accessor_free(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
{
free(acc);
}
static void
_efl_ui_list_segarray_accessor_lock(Efl_Ui_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_accessor_lock(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
{
}
static void
_efl_ui_list_segarray_accessor_unlock(Efl_Ui_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_accessor_unlock(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
{
}
static Eina_Accessor*
_efl_ui_list_segarray_accessor_clone(Efl_Ui_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_accessor_clone(Efl_Ui_View_List_Segarray_Eina_Accessor* acc EINA_UNUSED)
{
return &acc->vtable;
}
static void
_efl_ui_list_segarray_accessor_setup(Efl_Ui_List_Segarray_Eina_Accessor* acc, Efl_Ui_List_SegArray_Data* segarray)
_efl_ui_view_list_segarray_accessor_setup(Efl_Ui_View_List_Segarray_Eina_Accessor* acc, Efl_Ui_View_List_SegArray_Data* segarray)
{
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
acc->vtable.version = EINA_ACCESSOR_VERSION;
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_list_segarray_accessor_get_at);
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_list_segarray_accessor_get_container);
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_list_segarray_accessor_free);
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_list_segarray_accessor_lock);
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_list_segarray_accessor_unlock);
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_list_segarray_accessor_clone);
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_view_list_segarray_accessor_get_at);
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_view_list_segarray_accessor_get_container);
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_view_list_segarray_accessor_free);
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_accessor_lock);
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_accessor_unlock);
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_view_list_segarray_accessor_clone);
acc->segarray = segarray;
}
EOLIAN static Eina_Accessor*
_efl_ui_list_segarray_accessor_get(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd)
_efl_ui_view_list_segarray_accessor_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
{
Efl_Ui_List_Segarray_Eina_Accessor* acc = calloc(1, sizeof(Efl_Ui_List_Segarray_Eina_Accessor));
_efl_ui_list_segarray_accessor_setup(acc, pd);
Efl_Ui_View_List_Segarray_Eina_Accessor* acc = calloc(1, sizeof(Efl_Ui_View_List_Segarray_Eina_Accessor));
_efl_ui_view_list_segarray_accessor_setup(acc, pd);
return &acc->vtable;
}
typedef struct _Efl_Ui_List_Segarray_Node_Accessor
typedef struct _Efl_Ui_View_List_Segarray_Node_Accessor
{
Eina_Accessor vtable;
Efl_Ui_List_SegArray_Data* segarray;
Efl_Ui_View_List_SegArray_Data* segarray;
Eina_Iterator* pre_iterator;
Efl_Ui_List_SegArray_Node* current_node;
Efl_Ui_View_List_SegArray_Node* current_node;
int current_index;
} Efl_Ui_List_Segarray_Node_Accessor;
} Efl_Ui_View_List_Segarray_Node_Accessor;
static Eina_Bool
_efl_ui_list_segarray_node_accessor_get_at(Efl_Ui_List_Segarray_Node_Accessor* acc,
_efl_ui_view_list_segarray_node_accessor_get_at(Efl_Ui_View_List_Segarray_Node_Accessor* acc,
int idx, void** data)
{
if(idx == acc->current_index && acc->current_node)
@ -388,13 +388,13 @@ _efl_ui_list_segarray_node_accessor_get_at(Efl_Ui_List_Segarray_Node_Accessor* a
}
static void*
_efl_ui_list_segarray_node_accessor_get_container(Efl_Ui_List_Segarray_Node_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_node_accessor_get_container(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
{
return NULL;
}
static void
_efl_ui_list_segarray_node_accessor_free(Efl_Ui_List_Segarray_Node_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_node_accessor_free(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
{
if (acc->pre_iterator)
eina_iterator_free(acc->pre_iterator);
@ -402,32 +402,32 @@ _efl_ui_list_segarray_node_accessor_free(Efl_Ui_List_Segarray_Node_Accessor* acc
}
static void
_efl_ui_list_segarray_node_accessor_lock(Efl_Ui_List_Segarray_Node_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_node_accessor_lock(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
{
}
static void
_efl_ui_list_segarray_node_accessor_unlock(Efl_Ui_List_Segarray_Node_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_node_accessor_unlock(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
{
}
static Eina_Accessor*
_efl_ui_list_segarray_node_accessor_clone(Efl_Ui_List_Segarray_Node_Accessor* acc EINA_UNUSED)
_efl_ui_view_list_segarray_node_accessor_clone(Efl_Ui_View_List_Segarray_Node_Accessor* acc EINA_UNUSED)
{
return &acc->vtable;
}
static void
_efl_ui_list_segarray_node_accessor_setup(Efl_Ui_List_Segarray_Node_Accessor* acc, Efl_Ui_List_SegArray_Data* segarray)
_efl_ui_view_list_segarray_node_accessor_setup(Efl_Ui_View_List_Segarray_Node_Accessor* acc, Efl_Ui_View_List_SegArray_Data* segarray)
{
EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
acc->vtable.version = EINA_ACCESSOR_VERSION;
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_list_segarray_node_accessor_get_at);
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_list_segarray_node_accessor_get_container);
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_list_segarray_node_accessor_free);
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_list_segarray_node_accessor_lock);
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_list_segarray_node_accessor_unlock);
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_list_segarray_node_accessor_clone);
acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_ui_view_list_segarray_node_accessor_get_at);
acc->vtable.get_container = FUNC_ACCESSOR_GET_CONTAINER(_efl_ui_view_list_segarray_node_accessor_get_container);
acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_ui_view_list_segarray_node_accessor_free);
acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_node_accessor_lock);
acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_ui_view_list_segarray_node_accessor_unlock);
acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_ui_view_list_segarray_node_accessor_clone);
acc->segarray = segarray;
acc->pre_iterator = NULL;
acc->current_index = -1;
@ -435,17 +435,17 @@ _efl_ui_list_segarray_node_accessor_setup(Efl_Ui_List_Segarray_Node_Accessor* ac
}
EOLIAN static Eina_Accessor*
_efl_ui_list_segarray_node_accessor_get(Eo *obj EINA_UNUSED, Efl_Ui_List_SegArray_Data* pd)
_efl_ui_view_list_segarray_node_accessor_get(Eo *obj EINA_UNUSED, Efl_Ui_View_List_SegArray_Data* pd)
{
Efl_Ui_List_Segarray_Node_Accessor* acc = calloc(1, sizeof(Efl_Ui_List_Segarray_Node_Accessor));
_efl_ui_list_segarray_node_accessor_setup(acc, pd);
Efl_Ui_View_List_Segarray_Node_Accessor* acc = calloc(1, sizeof(Efl_Ui_View_List_Segarray_Node_Accessor));
_efl_ui_view_list_segarray_node_accessor_setup(acc, pd);
return &acc->vtable;
}
int efl_ui_list_item_index_get(Efl_Ui_List_LayoutItem* item)
int efl_ui_view_list_item_index_get(Efl_Ui_View_List_LayoutItem* item)
{
Efl_Ui_List_SegArray_Node* node = item->tree_node;
Efl_Ui_View_List_SegArray_Node* node = item->tree_node;
return item->index_offset + node->first;
}
#include "efl_ui_list_segarray.eo.c"
#include "efl_ui_view_list_segarray.eo.c"

View File

@ -1,7 +1,7 @@
import elm_general;
import efl_ui_list_types;
import efl_ui_view_list_types;
class Efl.Ui.List.SegArray (Efl.Object)
class Efl.Ui.View.List.SegArray (Efl.Object)
{
methods {
@property accessor {
@ -9,7 +9,7 @@ class Efl.Ui.List.SegArray (Efl.Object)
[[ Get a SegArray List items accessor ]]
}
values {
acc: accessor<ptr(Efl.Ui.List.LayoutItem)>;
acc: accessor<ptr(Efl.Ui.View.List.LayoutItem)>;
}
}
@property node_accessor {
@ -17,7 +17,7 @@ class Efl.Ui.List.SegArray (Efl.Object)
[[ Get a SegArray node accessor ]]
}
values {
acc: accessor<ptr(Efl.Ui.List.SegArray.Node)>;
acc: accessor<ptr(Efl.Ui.View.List.SegArray.Node)>;
}
}
insert_accessor {
@ -52,7 +52,7 @@ class Efl.Ui.List.SegArray (Efl.Object)
params {
@in index: int;
}
return: ptr(Efl.Ui.List.LayoutItem) @owned;
return: ptr(Efl.Ui.View.List.LayoutItem) @owned;
}
}
implements {

View File

@ -0,0 +1,28 @@
#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

View File

@ -1,4 +1,4 @@
struct Efl.Ui.List.LayoutItem {
struct Efl.Ui.View.List.LayoutItem {
layout: Efl.Ui.Layout;
children: Efl.Model;
index_offset: int;
@ -8,4 +8,4 @@ struct Efl.Ui.List.LayoutItem {
pos: Eina.Position2D;
}
struct @extern Efl.Ui.List.SegArray.Node; [[ ]]
struct @extern Efl.Ui.View.List.SegArray.Node; [[ ]]