#include "elm_widget_gengrid.h"
#include "elm_interface_scrollable.h"
-EAPI Eo_Op ELM_OBJ_GENGRID_PAN_BASE_ID = EO_NOOP;
-
#define MY_PAN_CLASS ELM_OBJ_GENGRID_PAN_CLASS
#define MY_PAN_CLASS_NAME "Elm_Gengrid_Pan"
#define MY_PAN_CLASS_NAME_LEGACY "elm_gengrid_pan"
-EAPI Eo_Op ELM_OBJ_GENGRID_BASE_ID = EO_NOOP;
-
#define MY_CLASS ELM_OBJ_GENGRID_CLASS
#define MY_CLASS_NAME "Elm_Gengrid"
static void
_item_show_region(void *data)
{
- Elm_Gengrid_Smart_Data *sd = data;
+ Elm_Gengrid_Data *sd = data;
Evas_Coord cvw, cvh, it_xpos = 0, it_ypos = 0, col = 0, row = 0, minx = 0, miny = 0;
Evas_Coord vw = 0, vh = 0;
Elm_Gen_Item *it = NULL;
sd->calc_job = NULL;
}
-static void
-_elm_gengrid_pan_destructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_pan_eo_base_destructor(Eo *obj, Elm_Gengrid_Pan_Data *psd)
{
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
eo_data_unref(psd->wobj, psd->wsd);
eo_do_super(obj, MY_PAN_CLASS, eo_destructor());
}
-static void
-_elm_gengrid_pan_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_evas_smart_move(Eo *obj EINA_UNUSED, Elm_Gengrid_Pan_Data *psd, Evas_Coord _gen_param2 EINA_UNUSED, Evas_Coord _gen_param3 EINA_UNUSED)
{
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
- va_arg(*list, Evas_Coord);
- va_arg(*list, Evas_Coord);
-
ecore_job_del(psd->wsd->calc_job);
psd->wsd->calc_job = ecore_job_add(_calc_job, psd->wobj);
}
-static void
-_elm_gengrid_pan_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_evas_smart_resize(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord w, Evas_Coord h)
{
Evas_Coord ow, oh;
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
-
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
if ((ow == w) && (oh == h)) return;
_item_unselect(Elm_Gen_Item *it)
{
Elm_Gen_Item_Type *item = GG_IT(it);
- Elm_Gengrid_Smart_Data *sd = item->wsd;
+ Elm_Gengrid_Data *sd = item->wsd;
if ((it->generation < sd->generation) || (!it->highlighted))
return;
Evas_Event_Mouse_Move *ev = event_info;
Evas_Coord ox, oy, ow, oh, it_scrl_x, it_scrl_y;
Evas_Coord minw = 0, minh = 0, x, y, dx, dy, adx, ady;
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
{
_long_press_cb(void *data)
{
Elm_Gen_Item *it = data;
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
it->long_timer = NULL;
if (elm_widget_item_disabled_get(it) || (it->dragging))
_item_highlight(Elm_Gen_Item *it)
{
const char *selectraise = NULL;
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE)
|| (!sd->highlight) || (it->highlighted) ||
Evas_Event_Mouse_Down *ev = event_info;
Elm_Gen_Item *it = data;
Evas_Coord x, y;
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
if (ev->button != 1) return;
{
Evas_Event_Mouse_Up *ev = event_info;
Eina_Bool dragged = EINA_FALSE;
- Elm_Gengrid_Smart_Data *sd;
+ Elm_Gengrid_Data *sd;
Elm_Gen_Item *it = data;
if (ev->button != 1) return;
{
char buf[1024];
char style[1024];
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
if ((it->realized) ||
(it->generation < sd->generation))
Elm_Gen_Item *it = data;
Evas_Coord dx, dy;
double tt, t;
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
tt = REORDER_EFFECT_TIME;
t = ((0.0 > (t = ecore_loop_time_get() -
Evas_Coord x, y, ox, oy, cvx, cvy, cvw, cvh, iw, ih, ww;
Evas_Coord tch, tcw, alignw = 0, alignh = 0, vw, vh;
Eina_Bool reorder_item_move_forward = EINA_FALSE;
- Elm_Gengrid_Smart_Data *wsd;
+ Elm_Gengrid_Data *wsd;
Eina_Bool was_realized;
Elm_Gen_Item_Type *item;
long items_count;
}
static void
-_group_item_place(Elm_Gengrid_Pan_Smart_Data *psd)
+_group_item_place(Elm_Gengrid_Pan_Data *psd)
{
Evas_Coord iw, ih, vw, vh;
Eina_Bool was_realized;
}
}
-static void
-_elm_gengrid_pan_smart_calculate(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_pan_evas_smart_calculate(Eo *obj EINA_UNUSED, Elm_Gengrid_Pan_Data *psd)
{
Evas_Coord cx = 0, cy = 0;
Elm_Gen_Item *it;
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
- Elm_Gengrid_Smart_Data *sd = psd->wsd;
+ Elm_Gengrid_Data *sd = psd->wsd;
if (!sd->nmax) return;
_elm_widget_focus_highlight_start(psd->wobj);
}
-static void
-_elm_gengrid_pan_smart_pos_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_elm_pan_pos_set(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord x, Evas_Coord y)
{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
-
if ((x == psd->wsd->pan_x) && (y == psd->wsd->pan_y)) return;
psd->wsd->pan_x = x;
psd->wsd->pan_y = y;
evas_object_smart_changed(obj);
}
-static void
-_elm_gengrid_pan_smart_pos_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_elm_pan_pos_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Pan_Data *psd, Evas_Coord *x, Evas_Coord *y)
{
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
-
if (x) *x = psd->wsd->pan_x;
if (y) *y = psd->wsd->pan_y;
}
-static void
-_elm_gengrid_pan_smart_content_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_elm_pan_content_size_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Pan_Data *psd, Evas_Coord *w, Evas_Coord *h)
{
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
-
if (w) *w = psd->wsd->minw;
if (h) *h = psd->wsd->minh;
}
-static void
-_elm_gengrid_pan_smart_pos_max_get(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_elm_pan_pos_max_get(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord *x, Evas_Coord *y)
{
Evas_Coord ow, oh;
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
-
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
if (x)
*y = (oh < psd->wsd->minh) ? psd->wsd->minh - oh : 0;
}
-static void
-_elm_gengrid_pan_smart_pos_min_get(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_pan_elm_pan_pos_min_get(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord *x, Evas_Coord *y)
{
Evas_Coord mx = 0, my = 0;
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
-
- Elm_Gengrid_Pan_Smart_Data *psd = _pd;
eo_do(obj, elm_obj_pan_pos_max_get(&mx, &my));
if (x)
*y = -my * psd->wsd->align_y;
}
-static void
-_gengrid_pan_class_constructor(Eo_Class *klass)
-{
- const Eo_Op_Func_Description func_desc[] = {
- EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _elm_gengrid_pan_destructor),
-
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_gengrid_pan_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_gengrid_pan_smart_move),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _elm_gengrid_pan_smart_calculate),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_SET), _elm_gengrid_pan_smart_pos_set),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_GET), _elm_gengrid_pan_smart_pos_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MAX_GET), _elm_gengrid_pan_smart_pos_max_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MIN_GET), _elm_gengrid_pan_smart_pos_min_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_CONTENT_SIZE_GET), _elm_gengrid_pan_smart_content_size_get),
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
- evas_smart_legacy_type_register(MY_PAN_CLASS_NAME_LEGACY, klass);
-}
-
-static const Eo_Class_Description _elm_obj_gengrid_pan_class_desc = {
- EO_VERSION,
- MY_PAN_CLASS_NAME,
- EO_CLASS_TYPE_REGULAR,
- EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
- NULL,
- sizeof(Elm_Gengrid_Pan_Smart_Data),
- _gengrid_pan_class_constructor,
- NULL
-};
+EOLIAN static void
+_elm_gengrid_pan_class_constructor(Eo_Class *klass)
+{
+ evas_smart_legacy_type_register(MY_PAN_CLASS_NAME_LEGACY, klass);
+}
-EO_DEFINE_CLASS(elm_obj_gengrid_pan_class_get, &_elm_obj_gengrid_pan_class_desc, ELM_OBJ_PAN_CLASS, NULL);
+#include "elm_gengrid_pan.eo.c"
static void
_elm_gengrid_item_focused(Elm_Gen_Item *it)
/* NOTE: this code will be used later when the item selection on key press
becomes optional. So do not remove this.
static Eina_Bool
-_item_focus_up(Elm_Gengrid_Smart_Data *sd)
+_item_focus_up(Elm_Gengrid_Data *sd)
{
unsigned int i;
Elm_Gen_Item *prev;
}
static Eina_Bool
-_item_focus_down(Elm_Gengrid_Smart_Data *sd)
+_item_focus_down(Elm_Gengrid_Data *sd)
{
unsigned int i;
Elm_Gen_Item *next;
}
static Eina_Bool
-_item_focus_left(Elm_Gengrid_Smart_Data *sd)
+_item_focus_left(Elm_Gengrid_Data *sd)
{
Elm_Gen_Item *prev;
}
static Eina_Bool
-_item_focus_right(Elm_Gengrid_Smart_Data *sd)
+_item_focus_right(Elm_Gengrid_Data *sd)
{
Elm_Gen_Item *next;
*/
static Eina_Bool
-_item_multi_select_left(Elm_Gengrid_Smart_Data *sd)
+_item_multi_select_left(Elm_Gengrid_Data *sd)
{
Elm_Object_Item *prev;
}
static Eina_Bool
-_item_multi_select_right(Elm_Gengrid_Smart_Data *sd)
+_item_multi_select_right(Elm_Gengrid_Data *sd)
{
Elm_Object_Item *next;
}
static Eina_Bool
-_item_multi_select_up(Elm_Gengrid_Smart_Data *sd)
+_item_multi_select_up(Elm_Gengrid_Data *sd)
{
unsigned int i;
Eina_Bool r = EINA_TRUE;
}
static Eina_Bool
-_item_multi_select_down(Elm_Gengrid_Smart_Data *sd)
+_item_multi_select_down(Elm_Gengrid_Data *sd)
{
unsigned int i;
Eina_Bool r = EINA_TRUE;
}
static Eina_Bool
-_all_items_deselect(Elm_Gengrid_Smart_Data *sd)
+_all_items_deselect(Elm_Gengrid_Data *sd)
{
if (!sd->selected) return EINA_FALSE;
}
static Eina_Bool
-_item_single_select_up(Elm_Gengrid_Smart_Data *sd)
+_item_single_select_up(Elm_Gengrid_Data *sd)
{
unsigned int i;
Elm_Gen_Item *prev;
}
static Eina_Bool
-_item_single_select_down(Elm_Gengrid_Smart_Data *sd)
+_item_single_select_down(Elm_Gengrid_Data *sd)
{
unsigned int i;
Elm_Gen_Item *next;
}
static Eina_Bool
-_item_single_select_left(Elm_Gengrid_Smart_Data *sd)
+_item_single_select_left(Elm_Gengrid_Data *sd)
{
Elm_Gen_Item *prev;
}
static Eina_Bool
-_item_single_select_right(Elm_Gengrid_Smart_Data *sd)
+_item_single_select_right(Elm_Gengrid_Data *sd)
{
Elm_Gen_Item *next;
return EINA_TRUE;
}
-static void
-_elm_gengrid_smart_event(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_event(Eo *obj, Elm_Gengrid_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info)
{
- Evas_Object *src = va_arg(*list, Evas_Object *);
- Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type);
- Evas_Event_Key_Down *ev = va_arg(*list, void *);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- if (ret) *ret = EINA_FALSE;
+ Evas_Event_Key_Down *ev = event_info;
(void) src;
Evas_Coord x = 0;
Elm_Object_Item *it = NULL;
Eina_Bool sel_ret = EINA_FALSE;
- if (elm_widget_disabled_get(obj)) return;
- if (type != EVAS_CALLBACK_KEY_DOWN) return;
- if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
- if (!sd->items) return;
+ if (elm_widget_disabled_get(obj)) return EINA_FALSE;
+ if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
+ if (!sd->items) return EINA_FALSE;
eo_do(obj,
elm_interface_scrollable_content_pos_get(&x, &y),
if (sel_ret)
{
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
- if (ret) *ret = EINA_FALSE;
- return;
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Right")) ||
((!strcmp(ev->key, "KP_Right")) && (!ev->string)))
if (sel_ret)
{
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
- if (ret) *ret = EINA_FALSE;
- return;
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Up")) ||
((!strcmp(ev->key, "KP_Up")) && (!ev->string)))
if (sel_ret)
{
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
- if (ret) *ret = EINA_FALSE;
- return;
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Down")) ||
((!strcmp(ev->key, "KP_Down")) && (!ev->string)))
if (sel_ret)
{
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
- if (ret) *ret = EINA_FALSE;
- return;
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Home")) ||
((!strcmp(ev->key, "KP_Home")) && (!ev->string)))
it = elm_gengrid_first_item_get(obj);
elm_gengrid_item_selected_set(it, EINA_TRUE);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
else if ((!strcmp(ev->key, "End")) ||
((!strcmp(ev->key, "KP_End")) && (!ev->string)))
it = elm_gengrid_last_item_get(obj);
elm_gengrid_item_selected_set(it, EINA_TRUE);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
else if ((!strcmp(ev->key, "Prior")) ||
((!strcmp(ev->key, "KP_Prior")) && (!ev->string)))
}
else if (!strcmp(ev->key, "Escape"))
{
- if (!_all_items_deselect(sd)) return;
+ if (!_all_items_deselect(sd)) return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
else if (((!strcmp(ev->key, "Return")) ||
(!strcmp(ev->key, "KP_Enter")) ||
it = elm_gengrid_selected_item_get(obj);
evas_object_smart_callback_call(WIDGET(it), SIG_ACTIVATED, it);
}
- else return;
+ else return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
eo_do(obj, elm_interface_scrollable_content_pos_set(x, y, EINA_TRUE));
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
/*
return NULL;
}
-static void
-_elm_gengrid_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_on_focus(Eo *obj, Elm_Gengrid_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret = EINA_FALSE;
- Elm_Gengrid_Smart_Data *sd = _pd;
Elm_Object_Item *it = NULL;
Eina_Bool is_sel = EINA_FALSE;
eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret));
- if (!int_ret) return;
+ if (!int_ret) return EINA_FALSE;
if (elm_widget_focus_get(obj) && (sd->selected) &&
(!sd->last_selected_item))
}
}
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static Eina_Bool _elm_gengrid_smart_focus_next_enable = EINA_FALSE;
-static void
-_elm_gengrid_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *_pd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- *ret = _elm_gengrid_smart_focus_next_enable;
+ return _elm_gengrid_smart_focus_next_enable;
}
-static void
-_elm_gengrid_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *_pd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- *ret = EINA_FALSE;
+ return EINA_FALSE;
}
-static void
-_elm_gengrid_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_focus_next(Eo *obj, Elm_Gengrid_Data *sd, Elm_Focus_Direction dir, Evas_Object **next)
{
- Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction);
- Evas_Object **next = va_arg(*list, Evas_Object **);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
- Eina_Bool int_ret;
-
Eina_List *items = NULL;
Elm_Gen_Item *it;
- Elm_Gengrid_Smart_Data *sd = _pd;
-
EINA_INLIST_FOREACH(sd->items, it)
{
if (it->realized)
items = eina_list_append(items, it->base.access_obj);
}
- int_ret = elm_widget_focus_list_next_get
+ return elm_widget_focus_list_next_get
(obj, items, eina_list_data_get, dir, next);
- if (ret) *ret = int_ret;
}
static void
}
}
-static void
-_elm_gengrid_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_elm_widget_theme_apply(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
-
eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
- if (!int_ret) return;
+ if (!int_ret) return EINA_FALSE;
_mirrored_set(obj, elm_widget_mirrored_get(obj));
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static void
static void
_elm_gengrid_item_del_not_serious(Elm_Gen_Item *it)
{
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
elm_widget_item_pre_notify_del(it);
it->generation = sd->generation - 1; /* This means that the item is deleted */
static void
_elm_gengrid_item_del_serious(Elm_Gen_Item *it)
{
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
_elm_gengrid_item_del_not_serious(it);
sd->items = eina_inlist_remove(sd->items, EINA_INLIST_GET(it));
}
static void
-_elm_gengrid_clear(Evas_Object *obj,
+_internal_elm_gengrid_clear(Evas_Object *obj,
Eina_Bool standby)
{
Eina_Inlist *next, *l;
_item_select(Elm_Gen_Item *it)
{
Evas_Object *obj = WIDGET(it);
- Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
+ Elm_Gengrid_Data *sd = GG_IT(it)->wsd;
if ((it->generation < sd->generation) || (it->decorate_it_set) ||
(it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) ||
it->walking--;
sd->walking--;
if ((sd->clear_me) && (!sd->walking))
- _elm_gengrid_clear(WIDGET(it), EINA_TRUE);
+ _internal_elm_gengrid_clear(WIDGET(it), EINA_TRUE);
else
{
if ((!it->walking) && (it->generation < sd->generation))
}
static Elm_Gen_Item *
-_elm_gengrid_item_new(Elm_Gengrid_Smart_Data *sd,
+_elm_gengrid_item_new(Elm_Gengrid_Data *sd,
const Elm_Gen_Item_Class *itc,
const void *data,
Evas_Smart_Cb func,
}
/* common layout sizing won't apply here */
-static void
-_elm_gengrid_smart_sizing_eval(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_elm_layout_sizing_eval(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *_pd EINA_UNUSED)
{
return; /* no-op */
}
-static void
-_elm_gengrid_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_evas_smart_add(Eo *obj, Elm_Gengrid_Data *priv)
{
Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable;
- Elm_Gengrid_Pan_Smart_Data *pan_data;
- Elm_Gengrid_Smart_Data *priv = _pd;
+ Elm_Gengrid_Pan_Data *pan_data;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
eo_do(obj, elm_interface_scrollable_extern_pan_set(priv->pan_obj));
}
-static void
-_elm_gengrid_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_evas_smart_del(Eo *obj, Elm_Gengrid_Data *sd)
{
- Elm_Gengrid_Smart_Data *sd = _pd;
-
elm_gengrid_clear(obj);
eo_unref(sd->pan_obj);
ELM_SAFE_FREE(sd->pan_obj, evas_object_del);
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
-static void
-_elm_gengrid_smart_move(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_evas_smart_move(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord x, Evas_Coord y)
{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_move(x, y));
evas_object_move(sd->hit_rect, x, y);
}
-static void
-_elm_gengrid_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_evas_smart_resize(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord w, Evas_Coord h)
{
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_resize(w, h));
evas_object_resize(sd->hit_rect, w, h);
}
-static void
-_elm_gengrid_smart_member_add(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_evas_smart_member_add(Eo *obj, Elm_Gengrid_Data *sd, Evas_Object *member)
{
- Evas_Object *member = va_arg(*list, Evas_Object *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_member_add(member));
if (sd->hit_rect)
}
static void
-_access_obj_process(Elm_Gengrid_Smart_Data * sd, Eina_Bool is_access)
+_access_obj_process(Elm_Gengrid_Data * sd, Eina_Bool is_access)
{
Elm_Gen_Item *it;
}
}
-static void
-_elm_gengrid_smart_access(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_elm_widget_access(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool acs)
{
- Elm_Gengrid_Smart_Data *sd = _pd;
- _elm_gengrid_smart_focus_next_enable = va_arg(*list, int);
+ _elm_gengrid_smart_focus_next_enable = acs;
_access_obj_process(sd, _elm_gengrid_smart_focus_next_enable);
}
return obj;
}
-static void
-_constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_eo_base_constructor(Eo *obj, Elm_Gengrid_Data *sd)
{
- Elm_Gengrid_Smart_Data *sd = _pd;
sd->obj = obj;
eo_do_super(obj, MY_CLASS, eo_constructor());
evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
}
-EAPI void
-elm_gengrid_item_size_set(Evas_Object *obj,
- Evas_Coord w,
- Evas_Coord h)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_item_size_set(w, h));
-}
-
-static void
-_item_size_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_item_size_set(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord w, Evas_Coord h)
{
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if ((sd->item_width == w) && (sd->item_height == h)) return;
sd->item_width = w;
sd->item_height = h;
sd->calc_job = ecore_job_add(_calc_job, obj);
}
-EAPI void
-elm_gengrid_item_size_get(const Evas_Object *obj,
- Evas_Coord *w,
- Evas_Coord *h)
+EOLIAN static void
+_elm_gengrid_item_size_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Evas_Coord *w, Evas_Coord *h)
{
- ELM_GENGRID_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_gengrid_item_size_get(w, h));
-}
-
-static void
-_item_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if (w) *w = sd->item_width;
if (h) *h = sd->item_height;
}
-EAPI void
-elm_gengrid_group_item_size_set(Evas_Object *obj,
- Evas_Coord w,
- Evas_Coord h)
+EOLIAN static void
+_elm_gengrid_group_item_size_set(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord w, Evas_Coord h)
{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_group_item_size_set(w, h));
-}
-
-static void
-_group_item_size_set(Eo *obj, void *_pd, va_list *list)
-{
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if ((sd->group_item_width == w) && (sd->group_item_height == h)) return;
sd->group_item_width = w;
sd->group_item_height = h;
sd->calc_job = ecore_job_add(_calc_job, obj);
}
-EAPI void
-elm_gengrid_group_item_size_get(const Evas_Object *obj,
- Evas_Coord *w,
- Evas_Coord *h)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_gengrid_group_item_size_get(w, h));
-}
-
-static void
-_group_item_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_group_item_size_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Evas_Coord *w, Evas_Coord *h)
{
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if (w) *w = sd->group_item_width;
if (h) *h = sd->group_item_height;
}
-EAPI void
-elm_gengrid_align_set(Evas_Object *obj,
- double align_x,
- double align_y)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_align_set(align_x, align_y));
-}
-
-static void
-_align_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_align_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, double align_x, double align_y)
{
double old_h, old_y;
- double align_x = va_arg(*list, double);
- double align_y = va_arg(*list, double);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
old_h = sd->align_x;
old_y = sd->align_y;
evas_object_smart_calculate(sd->pan_obj);
}
-EAPI void
-elm_gengrid_align_get(const Evas_Object *obj,
- double *align_x,
- double *align_y)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_gengrid_align_get(align_x, align_y));
-}
-
-static void
-_align_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_align_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, double *align_x, double *align_y)
{
- double *align_x = va_arg(*list, double *);
- double *align_y = va_arg(*list, double *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if (align_x) *align_x = sd->align_x;
if (align_y) *align_y = sd->align_y;
}
-EAPI Elm_Object_Item *
-elm_gengrid_item_append(Evas_Object *obj,
- const Elm_Gengrid_Item_Class *itc,
- const void *data,
- Evas_Smart_Cb func,
- const void *func_data)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_gengrid_item_append(itc, data, func, func_data, &ret));
- return ret;
-}
-
-static void
-_item_append(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_item_append(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_Class *itc, const void *data, Evas_Smart_Cb func, const void *func_data)
{
Elm_Gen_Item *it;
- const Elm_Gengrid_Item_Class *itc = va_arg(*list, const Elm_Gengrid_Item_Class *);
- const void *data = va_arg(*list, const void *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *func_data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Gengrid_Smart_Data *sd = _pd;
- *ret = NULL;
-
it = _elm_gengrid_item_new(sd, itc, data, func, func_data);
- if (!it) return;
+ if (!it) return NULL;
sd->items = eina_inlist_append(sd->items, EINA_INLIST_GET(it));
it->position = sd->item_count;
ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, obj);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_prepend(Evas_Object *obj,
- const Elm_Gengrid_Item_Class *itc,
- const void *data,
- Evas_Smart_Cb func,
- const void *func_data)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_gengrid_item_prepend(itc, data, func, func_data, &ret));
- return ret;
+ return (Elm_Object_Item *)it;
}
-static void
-_item_prepend(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_item_prepend(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_Class *itc, const void *data, Evas_Smart_Cb func, const void *func_data)
{
Elm_Gen_Item *it;
- const Elm_Gengrid_Item_Class *itc = va_arg(*list, const Elm_Gengrid_Item_Class *);
- const void *data = va_arg(*list, const void *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *func_data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- Elm_Gengrid_Smart_Data *sd = _pd;
-
it = _elm_gengrid_item_new(sd, itc, data, func, func_data);
- if (!it) return;
+ if (!it) return NULL;
sd->items = eina_inlist_prepend(sd->items, EINA_INLIST_GET(it));
_item_position_update(sd->items, 0);
ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, obj);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_insert_before(Evas_Object *obj,
- const Elm_Gengrid_Item_Class *itc,
- const void *data,
- Elm_Object_Item *relative,
- Evas_Smart_Cb func,
- const void *func_data)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_gengrid_item_insert_before(itc, data, relative, func, func_data, &ret));
- return ret;
+ return (Elm_Object_Item *)it;
}
-static void
-_item_insert_before(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_item_insert_before(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_Class *itc, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data)
{
Elm_Gen_Item *it;
Eina_Inlist *tmp;
- const Elm_Gengrid_Item_Class *itc = va_arg(*list, const Elm_Gengrid_Item_Class *);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item *relative = va_arg(*list, Elm_Object_Item *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *func_data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- ELM_GENGRID_ITEM_CHECK(relative);
- Elm_Gengrid_Smart_Data *sd = _pd;
+ ELM_GENGRID_ITEM_CHECK_OR_RETURN(relative, NULL);
it = _elm_gengrid_item_new(sd, itc, data, func, func_data);
- if (!it) return;
+ if (!it) return NULL;
sd->items = eina_inlist_prepend_relative
(sd->items, EINA_INLIST_GET(it),
EINA_INLIST_GET((Elm_Gen_Item *)relative));
ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, obj);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_insert_after(Evas_Object *obj,
- const Elm_Gengrid_Item_Class *itc,
- const void *data,
- Elm_Object_Item *relative,
- Evas_Smart_Cb func,
- const void *func_data)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_gengrid_item_insert_after(itc, data, relative, func, func_data, &ret));
- return ret;
+ return (Elm_Object_Item *)it;
}
-static void
-_item_insert_after(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_item_insert_after(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_Class *itc, const void *data, Elm_Object_Item *relative, Evas_Smart_Cb func, const void *func_data)
{
Elm_Gen_Item *it;
Eina_Inlist *tmp;
- const Elm_Gengrid_Item_Class *itc = va_arg(*list, const Elm_Gengrid_Item_Class *);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item *relative = va_arg(*list, Elm_Object_Item *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *func_data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- ELM_GENGRID_ITEM_CHECK(relative);
- Elm_Gengrid_Smart_Data *sd = _pd;
+ ELM_GENGRID_ITEM_CHECK_OR_RETURN(relative, NULL);
it = _elm_gengrid_item_new(sd, itc, data, func, func_data);
- if (!it) return;
+ if (!it) return NULL;
sd->items = eina_inlist_append_relative
(sd->items, EINA_INLIST_GET(it),
EINA_INLIST_GET((Elm_Gen_Item *)relative));
ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, obj);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_item_sorted_insert(Evas_Object *obj,
- const Elm_Gengrid_Item_Class *itc,
- const void *data,
- Eina_Compare_Cb comp,
- Evas_Smart_Cb func,
- const void *func_data)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_gengrid_item_sorted_insert(itc, data, comp, func, func_data, &ret));
- return ret;
+ return (Elm_Object_Item *)it;
}
-static void
-_item_sorted_insert(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_item_sorted_insert(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_Class *itc, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data)
{
Elm_Gen_Item *it;
- const Elm_Gengrid_Item_Class *itc = va_arg(*list, const Elm_Gengrid_Item_Class *);
- const void *data = va_arg(*list, const void *);
- Eina_Compare_Cb comp = va_arg(*list, Eina_Compare_Cb);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *func_data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- Elm_Gengrid_Smart_Data *sd = _pd;
-
it = _elm_gengrid_item_new(sd, itc, data, func, func_data);
- if (!it) return;
+ if (!it) return NULL;
if (!sd->state)
{
ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, obj);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI void
-elm_gengrid_horizontal_set(Evas_Object *obj,
- Eina_Bool horizontal)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_horizontal_set(horizontal));
+ return (Elm_Object_Item *)it;
}
-static void
-_horizontal_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_horizontal_set(Eo *obj, Elm_Gengrid_Data *sd, Eina_Bool horizontal)
{
- Eina_Bool horizontal = va_arg(*list, int);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
horizontal = !!horizontal;
if (horizontal == sd->horizontal) return;
sd->horizontal = horizontal;
sd->calc_job = ecore_job_add(_calc_job, obj);
}
-EAPI Eina_Bool
-elm_gengrid_horizontal_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_gengrid_horizontal_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_gengrid_horizontal_get(&ret));
- return ret;
+ return sd->horizontal;
}
-static void
-_horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_clear(Eo *obj, Elm_Gengrid_Data *_pd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->horizontal;
-}
-
-EAPI void
-elm_gengrid_clear(Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_clear());
-}
-
-static void
-_clear(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
-{
- _elm_gengrid_clear(obj, EINA_FALSE);
+ _internal_elm_gengrid_clear(obj, EINA_FALSE);
}
EINA_DEPRECATED EAPI const Evas_Object *
if (y) *y = ((Elm_Gen_Item *)it)->y;
}
-EAPI void
-elm_gengrid_multi_select_set(Evas_Object *obj,
- Eina_Bool multi)
+EOLIAN static void
+_elm_gengrid_multi_select_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool multi)
{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_multi_select_set(multi));
-}
-
-static void
-_multi_select_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool multi = va_arg(*list, int);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
sd->multi = !!multi;
}
-EAPI Eina_Bool
-elm_gengrid_multi_select_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_gengrid_multi_select_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_gengrid_multi_select_get(&ret));
- return ret;
+ return sd->multi;
}
-static void
-_multi_select_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_multi_select_mode_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Elm_Object_Multi_Select_Mode mode)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->multi;
-}
-
-EAPI void
-elm_gengrid_multi_select_mode_set(Evas_Object *obj,
- Elm_Object_Multi_Select_Mode mode)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_multi_select_mode_set(mode));
-}
-
-static void
-_multi_select_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Multi_Select_Mode mode = va_arg(*list, Elm_Object_Multi_Select_Mode);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if (mode >= ELM_OBJECT_MULTI_SELECT_MODE_MAX)
return;
sd->multi_select_mode = mode;
}
-EAPI Elm_Object_Multi_Select_Mode
-elm_gengrid_multi_select_mode_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) ELM_OBJECT_MULTI_SELECT_MODE_MAX;
- Elm_Object_Multi_Select_Mode ret = ELM_OBJECT_MULTI_SELECT_MODE_MAX;
- eo_do((Eo *)obj, elm_obj_gengrid_multi_select_mode_get(&ret));
- return ret;
-}
-
-static void
-_multi_select_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Multi_Select_Mode
+_elm_gengrid_multi_select_mode_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- Elm_Object_Multi_Select_Mode *ret = va_arg(*list, Elm_Object_Multi_Select_Mode *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->multi_select_mode;
+ return sd->multi_select_mode;
}
-EAPI Elm_Object_Item *
-elm_gengrid_selected_item_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_selected_item_get(&ret));
- return ret;
-}
-
-static void
-_selected_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_selected_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Gengrid_Smart_Data *sd = _pd;
- *ret = NULL;
-
- if (sd->selected) *ret = sd->selected->data;
+ if (sd->selected) return sd->selected->data;
+ return NULL;
}
-EAPI const Eina_List *
-elm_gengrid_selected_items_get(const Evas_Object *obj)
+EOLIAN static const Eina_List*
+_elm_gengrid_selected_items_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) NULL;
- const Eina_List *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_selected_items_get(&ret));
- return ret;
-}
-
-static void
-_selected_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- const Eina_List **ret = va_arg(*list, const Eina_List **);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->selected;
+ return sd->selected;
}
EAPI void
Eina_Bool selected)
{
Elm_Gen_Item *it = (Elm_Gen_Item *)item;
- Elm_Gengrid_Smart_Data *sd;
+ Elm_Gengrid_Data *sd;
ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
return ((Elm_Gen_Item *)it)->selected;
}
-EAPI Eina_List *
-elm_gengrid_realized_items_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Eina_List *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_realized_items_get(&ret));
- return ret;
-}
-
-static void
-_realized_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_List*
+_elm_gengrid_realized_items_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
Elm_Gen_Item *it;
- Eina_List **ret = va_arg(*list, Eina_List **);
- Elm_Gengrid_Smart_Data *sd = _pd;
- *ret = NULL;
+ Eina_List *ret = NULL;
EINA_INLIST_FOREACH(sd->items, it)
{
- if (it->realized) *ret = eina_list_append(*ret, (Elm_Object_Item *)it);
+ if (it->realized) ret = eina_list_append(ret, (Elm_Object_Item *)it);
}
-}
-EAPI void
-elm_gengrid_realized_items_update(Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_realized_items_update());
+ return ret;
}
-static void
-_realized_items_update(Eo *obj, void *_pd EINA_UNUSED, va_list *list_unused EINA_UNUSED)
+EOLIAN static void
+_elm_gengrid_realized_items_update(Eo *obj, Elm_Gengrid_Data *_pd EINA_UNUSED)
{
Eina_List *list, *l;
Elm_Object_Item *it;
return elm_widget_item_cursor_engine_only_get(it);
}
-EAPI void
-elm_gengrid_reorder_mode_set(Evas_Object *obj,
- Eina_Bool reorder_mode)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_reorder_mode_set(reorder_mode));
-}
-
-static void
-_reorder_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_reorder_mode_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool reorder_mode)
{
- Eina_Bool reorder_mode = va_arg(*list, int);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
sd->reorder_mode = !!reorder_mode;
}
-EAPI Eina_Bool
-elm_gengrid_reorder_mode_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_gengrid_reorder_mode_get(&ret));
- return ret;
-}
-
-static void
-_reorder_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_gengrid_reorder_mode_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->reorder_mode;
+ return sd->reorder_mode;
}
EAPI void
eo_do(obj, elm_interface_scrollable_bounce_allow_set(h_bounce, v_bounce));
}
-static void
-_bounce_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_gengrid_elm_interface_scrollable_bounce_allow_set(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED, Eina_Bool h_bounce, Eina_Bool v_bounce)
{
- Eina_Bool h_bounce = va_arg(*list, int);
- Eina_Bool v_bounce = va_arg(*list, int);
eo_do_super(obj, MY_CLASS, elm_interface_scrollable_bounce_allow_set(!!h_bounce, !!v_bounce));
}
eo_do((Eo *) obj, elm_interface_scrollable_bounce_allow_get(h_bounce, v_bounce));
}
-EAPI void
-elm_gengrid_page_relative_set(Evas_Object *obj,
- double h_pagerel,
- double v_pagerel)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_page_relative_set(h_pagerel, v_pagerel));
-}
-
-static void
-_page_relative_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_gengrid_page_relative_set(Eo *obj, Elm_Gengrid_Data *_pd EINA_UNUSED, double h_pagerel, double v_pagerel)
{
Evas_Coord pagesize_h;
Evas_Coord pagesize_v;
- double h_pagerel = va_arg(*list, double);
- double v_pagerel = va_arg(*list, double);
-
eo_do((Eo *) obj, elm_interface_scrollable_paging_get(NULL, NULL, &pagesize_h, &pagesize_v));
eo_do((Eo *) obj, elm_interface_scrollable_paging_set
(h_pagerel, v_pagerel, pagesize_h, pagesize_v));
}
-EAPI void
-elm_gengrid_page_relative_get(const Evas_Object *obj,
- double *h_pagerel,
- double *v_pagerel)
+EOLIAN static void
+_elm_gengrid_page_relative_get(Eo *obj, Elm_Gengrid_Data *_pd EINA_UNUSED, double *h_pagerel, double *v_pagerel)
{
- ELM_GENGRID_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_gengrid_page_relative_get(h_pagerel, v_pagerel));
-}
-
-static void
-_page_relative_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
- double *h_pagerel = va_arg(*list, double *);
- double *v_pagerel = va_arg(*list, double *);
-
eo_do((Eo *) obj, elm_interface_scrollable_paging_get(h_pagerel, v_pagerel, NULL, NULL));
}
-EAPI void
-elm_gengrid_page_size_set(Evas_Object *obj,
- Evas_Coord h_pagesize,
- Evas_Coord v_pagesize)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_page_size_set(h_pagesize, v_pagesize));
-}
-
-static void
-_page_size_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_gengrid_page_size_set(Eo *obj, Elm_Gengrid_Data *_pd EINA_UNUSED, Evas_Coord h_pagesize, Evas_Coord v_pagesize)
{
double pagerel_h;
double pagerel_v;
- Evas_Coord h_pagesize = va_arg(*list, Evas_Coord);
- Evas_Coord v_pagesize = va_arg(*list, Evas_Coord);
-
eo_do((Eo *) obj, elm_interface_scrollable_paging_get(&pagerel_h, &pagerel_v, NULL, NULL));
eo_do((Eo *) obj, elm_interface_scrollable_paging_set
(pagerel_h, pagerel_v, h_pagesize, v_pagesize));
eo_do(obj, elm_interface_scrollable_policy_set(policy_h, policy_v));
}
-static void
-_scroller_policy_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_gengrid_elm_interface_scrollable_policy_set(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v)
{
- Elm_Scroller_Policy policy_h = va_arg(*list, Elm_Scroller_Policy);
- Elm_Scroller_Policy policy_v = va_arg(*list, Elm_Scroller_Policy);
-
if ((policy_h >= ELM_SCROLLER_POLICY_LAST) ||
(policy_v >= ELM_SCROLLER_POLICY_LAST))
return;
eo_do((Eo *) obj, elm_interface_scrollable_policy_get(policy_h, policy_v));
}
-static void
-_scroller_policy_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_gengrid_elm_interface_scrollable_policy_get(Eo *obj, Elm_Gengrid_Data *sd EINA_UNUSED, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v)
{
Elm_Scroller_Policy s_policy_h, s_policy_v;
- Elm_Scroller_Policy *policy_h = va_arg(*list, Elm_Scroller_Policy *);
- Elm_Scroller_Policy *policy_v = va_arg(*list, Elm_Scroller_Policy *);
-
eo_do_super((Eo *)obj, MY_CLASS, elm_interface_scrollable_policy_get(&s_policy_h, &s_policy_v));
if (policy_h) *policy_h = (Elm_Scroller_Policy)s_policy_h;
if (policy_v) *policy_v = (Elm_Scroller_Policy)s_policy_v;
}
-EAPI Elm_Object_Item *
-elm_gengrid_first_item_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_first_item_get(&ret));
- return ret;
-}
-
-static void
-_first_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_first_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- if (!sd->items) return;
+ if (!sd->items) return NULL;
Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(sd->items);
while ((it) && (it->generation < sd->generation))
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
- *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_gengrid_at_xy_item_get(const Evas_Object *obj,
- Evas_Coord x,
- Evas_Coord y,
- int *xposret,
- int *yposret)
-{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_at_xy_item_get(x, y,
- xposret, yposret, &ret));
-
- return ret;
+ return (Elm_Object_Item *)it;
}
-static void
-_at_xy_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_at_xy_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Evas_Coord x, Evas_Coord y, int *xposret, int *yposret)
{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- int *xposret = va_arg(*list, int *);
- int *yposret = va_arg(*list, int *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-
- Elm_Gengrid_Smart_Data *sd = _pd;
Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(sd->items);
Evas_Coord l = 0, r = 0, t = 0, b = 0; /* left, right, top, bottom */
else *xposret = 0;
}
- *ret = (Elm_Object_Item *) it;
- return;
+ return (Elm_Object_Item *) it;
}
} while ((it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next)));
*yposret = (1);
}
- *ret = NULL;
+ return NULL;
}
-EAPI Elm_Object_Item *
-elm_gengrid_last_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_gengrid_last_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_gengrid_last_item_get(&ret));
- return ret;
-}
-
-static void
-_last_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Gengrid_Smart_Data *sd = _pd;
- *ret = NULL;
-
- if (!sd->items) return;
+ if (!sd->items) return NULL;
Elm_Gen_Item *it = ELM_GEN_ITEM_FROM_INLIST(sd->items->last);
while ((it) && (it->generation < sd->generation))
it = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
- *ret = (Elm_Object_Item *)it;
+ return (Elm_Object_Item *)it;
}
EAPI Elm_Object_Item *
Elm_Gengrid_Item_Scrollto_Type type)
{
Elm_Gen_Item *it = (Elm_Gen_Item *)item;
- Elm_Gengrid_Smart_Data *sd;
+ Elm_Gengrid_Data *sd;
ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
sd = GG_IT(it)->wsd;
elm_gengrid_item_bring_in(Elm_Object_Item *item,
Elm_Gengrid_Item_Scrollto_Type type)
{
- Elm_Gengrid_Smart_Data *sd;
+ Elm_Gengrid_Data *sd;
Elm_Gen_Item *it = (Elm_Gen_Item *)item;
ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
_item_show_region(sd);
}
-EAPI void
-elm_gengrid_filled_set(Evas_Object *obj,
- Eina_Bool fill)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_filled_set(fill));
-}
-
-static void
-_filled_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_filled_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool fill)
{
- Eina_Bool fill = va_arg(*list, int);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
fill = !!fill;
if (sd->filled != fill)
sd->filled = fill;
}
-EAPI Eina_Bool
-elm_gengrid_filled_get(const Evas_Object *obj)
-{
- ELM_GENGRID_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_gengrid_filled_get(&ret));
- return ret;
-}
-
-static void
-_filled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->filled;
-}
-
-EAPI unsigned int
-elm_gengrid_items_count(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_gengrid_filled_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) 0;
- unsigned int ret = 0;
- eo_do((Eo *) obj, elm_obj_gengrid_items_count(&ret));
- return ret;
+ return sd->filled;
}
-static void
-_items_count(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static unsigned int
+_elm_gengrid_items_count(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- unsigned int *ret = va_arg(*list, unsigned int *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->item_count;
+ return sd->item_count;
}
EAPI Elm_Gengrid_Item_Class *
}
}
-EAPI void
-elm_gengrid_select_mode_set(Evas_Object *obj,
- Elm_Object_Select_Mode mode)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_select_mode_set(mode));
-}
-
-static void
-_select_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_select_mode_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Elm_Object_Select_Mode mode)
{
- Elm_Object_Select_Mode mode = va_arg(*list, Elm_Object_Select_Mode);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
if (mode >= ELM_OBJECT_SELECT_MODE_MAX)
return;
sd->select_mode = mode;
}
-EAPI Elm_Object_Select_Mode
-elm_gengrid_select_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Select_Mode
+_elm_gengrid_select_mode_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) ELM_OBJECT_SELECT_MODE_MAX;
- Elm_Object_Select_Mode ret = ELM_OBJECT_SELECT_MODE_MAX;
- eo_do((Eo *) obj, elm_obj_gengrid_select_mode_get(&ret));
- return ret;
+ return sd->select_mode;
}
-static void
-_select_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_highlight_mode_set(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd, Eina_Bool highlight)
{
- Elm_Object_Select_Mode *ret = va_arg(*list, Elm_Object_Select_Mode *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->select_mode;
-}
-
-EAPI void
-elm_gengrid_highlight_mode_set(Evas_Object *obj,
- Eina_Bool highlight)
-{
- ELM_GENGRID_CHECK(obj);
- eo_do(obj, elm_obj_gengrid_highlight_mode_set(highlight));
-}
-
-static void
-_highlight_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool highlight = va_arg(*list, int);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
sd->highlight = !!highlight;
}
-EAPI Eina_Bool
-elm_gengrid_highlight_mode_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_gengrid_highlight_mode_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- ELM_GENGRID_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_gengrid_highlight_mode_get(&ret));
- return ret;
-}
-
-static void
-_highlight_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- *ret = sd->highlight;
+ return sd->highlight;
}
EAPI int
return (Elm_Object_Item *)it;
}
-static void
-_elm_gengrid_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_gengrid_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h, Eina_Bool is_next)
{
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
- Eina_Bool is_next = va_arg(*list, int);
Evas_Coord ox, oy, oh, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
- Elm_Gengrid_Smart_Data *sd = _pd;
evas_object_geometry_get(obj, &ox, &oy, NULL, &oh);
if (is_next)
}
}
-static void
-_elm_gengrid_focused_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item *
+_elm_gengrid_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Gengrid_Smart_Data *sd = _pd;
-
- if (ret) *ret = sd->focused_item;
+ return sd->focused_item;
}
-static void
-_class_constructor(Eo_Class *klass)
-{
- const Eo_Op_Func_Description func_desc[] = {
- EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MEMBER_ADD), _elm_gengrid_smart_member_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_gengrid_smart_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_gengrid_smart_del),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_gengrid_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_gengrid_smart_move),
-
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_gengrid_smart_theme),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_gengrid_smart_event),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ON_FOCUS), _elm_gengrid_smart_on_focus),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_gengrid_smart_focus_next_manager_is),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), _elm_gengrid_smart_focus_next),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACCESS), _elm_gengrid_smart_access),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_gengrid_smart_focus_direction_manager_is),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_HIGHLIGHT_GEOMETRY_GET), _elm_gengrid_focus_highlight_geometry_get),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUSED_ITEM_GET), _elm_gengrid_focused_item_get),
-
- EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_gengrid_smart_sizing_eval),
-
- EO_OP_FUNC(ELM_INTERFACE_SCROLLABLE_ID(ELM_INTERFACE_SCROLLABLE_SUB_ID_BOUNCE_ALLOW_SET), _bounce_set),
- EO_OP_FUNC(ELM_INTERFACE_SCROLLABLE_ID(ELM_INTERFACE_SCROLLABLE_SUB_ID_POLICY_SET), _scroller_policy_set),
- EO_OP_FUNC(ELM_INTERFACE_SCROLLABLE_ID(ELM_INTERFACE_SCROLLABLE_SUB_ID_POLICY_GET), _scroller_policy_get),
-
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_SET), _item_size_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_GET), _item_size_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_SET), _group_item_size_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_GET), _group_item_size_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ALIGN_SET), _align_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ALIGN_GET), _align_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_APPEND), _item_append),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_PREPEND), _item_prepend),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_BEFORE), _item_insert_before),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_AFTER), _item_insert_after),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEM_SORTED_INSERT), _item_sorted_insert),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_SET), _horizontal_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_GET), _horizontal_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_CLEAR), _clear),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET), _multi_select_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET), _multi_select_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET), _multi_select_mode_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET), _multi_select_mode_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET), _selected_item_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET), _selected_items_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET), _realized_items_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_UPDATE), _realized_items_update),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_SET), _reorder_mode_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_GET), _reorder_mode_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_SET), _page_relative_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_GET), _page_relative_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_PAGE_SIZE_SET), _page_size_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FIRST_ITEM_GET), _first_item_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_LAST_ITEM_GET), _last_item_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FILLED_SET), _filled_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_FILLED_GET), _filled_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_ITEMS_COUNT), _items_count),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_SET), _select_mode_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_GET), _select_mode_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_SET), _highlight_mode_set),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_GET), _highlight_mode_get),
- EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_AT_XY_ITEM_GET), _at_xy_item_get),
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
+EOLIAN static void
+_elm_gengrid_class_constructor(Eo_Class *klass)
+{
if (_elm_config->access_mode)
_elm_gengrid_smart_focus_next_enable = EINA_TRUE;
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
-static const Eo_Op_Description op_desc[] = {
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_SET, "Set the size for the items of a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_SIZE_GET, "Get the size set for the items of a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_SET, "Set the size for the group items of a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_GROUP_ITEM_SIZE_GET, "Get the size set for the group items of a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ALIGN_SET, "Set the items grid's alignment within a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ALIGN_GET, "Get the items grid's alignment values within a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_APPEND, "Append a new item in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_PREPEND, "Prepend a new item in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_BEFORE, "Insert an item before another in a gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_INSERT_AFTER, "Insert an item after another in a gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEM_SORTED_INSERT, "Insert an item in a gengrid widget using a user-defined sort function."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_SET, "Set the direction in which a given gengrid widget will expand while placing its items."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_HORIZONTAL_GET, "Get for what direction a given gengrid widget will expand while placing its items."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_CLEAR, "Remove all items from a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET, "Enable or disable multi-selection in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET, "Get whether multi-selection is enabled or disabled for a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET, "Set the gengrid multi select mode."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET, "Get the gengrid multi select mode."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET, "Get the selected item in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET, "Get a list of selected items in a given gengrid."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET, "Get a list of realized items in gengrid."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_UPDATE, "Update the contents of all realized items."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_SET, "Set whether a given gengrid widget is or not able have items reordered."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_REORDER_MODE_GET, "Get whether a given gengrid widget is or not able have items reordered."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_SET, "EINA_DEPRECATED Set a given gengrid widget's scrolling page size, relative to its viewport size."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_PAGE_RELATIVE_GET, "EINA_DEPRECATED Get a given gengrid widget's scrolling page size, relative to its viewport size."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_PAGE_SIZE_SET, "EINA_DEPRECATED Set a given gengrid widget's scrolling page size"),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_FIRST_ITEM_GET, "Get the first item in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_LAST_ITEM_GET, "Get the last item in a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_FILLED_SET, "Set how the items grid's filled within a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_FILLED_GET, "Get how the items grid's filled within a given gengrid widget."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_ITEMS_COUNT, "Return how many items are currently in a list."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_SET, "Set the gengrid select mode."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECT_MODE_GET, "Get the gengrid select mode."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_SET, "Set whether the gengrid items should be highlighted when item selected."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_HIGHLIGHT_MODE_GET, "Get whether the gengrid items should be highlighted when item selected."),
- EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_AT_XY_ITEM_GET, "Get the item that is at the x, y canvas coords."),
- EO_OP_DESCRIPTION_SENTINEL
-};
-
-static const Eo_Class_Description class_desc = {
- EO_VERSION,
- MY_CLASS_NAME,
- EO_CLASS_TYPE_REGULAR,
- EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_GENGRID_BASE_ID, op_desc, ELM_OBJ_GENGRID_SUB_ID_LAST),
- NULL,
- sizeof(Elm_Gengrid_Smart_Data),
- _class_constructor,
- NULL
-};
-EO_DEFINE_CLASS(elm_obj_gengrid_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, ELM_INTERFACE_SCROLLABLE_CLASS, EVAS_SMART_CLICKABLE_INTERFACE, NULL);
+#include "elm_gengrid.eo.c"
--- /dev/null
+class Elm_Gengrid (Elm_Layout, Elm_Interface_Scrollable, Evas_Clickable_Interface)
+{
+ eo_prefix: elm_obj_gengrid;
+ properties {
+ align {
+ set {
+ /*@
+ Set the items grid's alignment within a given gengrid widget
+
+ This sets the alignment of the whole grid of items of a gengrid
+ within its given viewport. By default, those values are both
+ 0.5, meaning that the gengrid will have its items grid placed
+ exactly in the middle of its viewport.
+
+ @note If given alignment values are out of the cited ranges,
+ they'll be changed to the nearest boundary values on the valid
+ ranges.
+
+ @see elm_gengrid_align_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get the items grid's alignment values within a given gengrid
+ widget
+
+ @note Use @c NULL pointers on the alignment values you're not
+ interested in: they'll be ignored by the function.
+
+ @see elm_gengrid_align_set() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ double align_x; /*@ Alignment in the horizontal axis (0 <= align_x <= 1). */
+ double align_y; /*@ Alignment in the vertical axis (0 <= align_y <= 1). */
+ }
+ }
+ filled {
+ set {
+ /*@
+ Set how the items grid's filled within a given gengrid widget
+
+ This sets the fill state of the whole grid of items of a gengrid
+ within its given viewport. By default, this value is false, meaning
+ that if the first line of items grid's isn't filled, the items are
+ centered with the alignment
+
+ @see elm_gengrid_filled_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get how the items grid's filled within a given gengrid widget
+
+ @return @c EINA_TRUE, if filled is on, @c EINA_FALSE if it's
+ off
+
+ @note Use @c NULL pointers on the alignment values you're not
+ interested in: they'll be ignored by the function.
+
+ @see elm_gengrid_align_set() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Eina_Bool fill; /*@ Filled if True */
+ }
+ }
+ page_relative {
+ set {
+ /*@ Set a given gengrid widget's scrolling page size, relative to its viewport size. */
+ }
+ get {
+ /*@ Get a given gengrid widget's scrolling page size, relative to its viewport size. */
+ }
+ values {
+ double h_pagerel;
+ double v_pagerel;
+ }
+ }
+ multi_select {
+ set {
+ /*@
+ Enable or disable multi-selection in a given gengrid widget
+
+ Multi-selection is the ability to have @b more than one
+ item selected, on a given gengrid, simultaneously. When it is
+ enabled, a sequence of clicks on different items will make them
+ all selected, progressively. A click on an already selected item
+ will unselect it. If interacting via the keyboard,
+ multi-selection is enabled while holding the "Shift" key.
+
+ @note By default, multi-selection is @b disabled on gengrids
+
+ @see elm_gengrid_multi_select_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get whether multi-selection is enabled or disabled for a given
+ gengrid widget
+
+ @return @c EINA_TRUE, if multi-selection is enabled, @c
+ EINA_FALSE otherwise
+
+ @see elm_gengrid_multi_select_set() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Eina_Bool multi; /*@ @c EINA_TRUE, to enable multi-selection,
+ @c EINA_FALSE to disable it. */
+ }
+ }
+ group_item_size {
+ set {
+ /*@
+ Set the size for the group items of a given gengrid widget
+
+ A gengrid, after creation, has still no information on the size
+ to give to each of its cells. So, you most probably will end up
+ with squares one @ref Fingers "finger" wide, the default
+ size. Use this function to force a custom size for you group items,
+ making them as big as you wish.
+
+ @see elm_gengrid_group_item_size_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get the size set for the group items of a given gengrid widget
+
+ @note Use @c NULL pointers on the size values you're not
+ interested in: they'll be ignored by the function.
+
+ @see elm_gengrid_group_item_size_get() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Evas_Coord w; /*@ The group items' width. */
+ Evas_Coord h; /*@ The group items' height. */
+ }
+ }
+ select_mode {
+ set {
+ /*@
+ Set the gengrid select mode.
+
+ elm_gengrid_select_mode_set() changes item select mode in the gengrid widget.
+ - ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func and
+ callback when first becoming selected. Any further clicks will
+ do nothing, unless you set always select mode.
+ - ELM_OBJECT_SELECT_MODE_ALWAYS : This means that, even if selected,
+ every click will make the selected callbacks be called.
+ - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to select items
+ entirely and they will neither appear selected nor call selected
+ callback functions.
+
+ @see elm_gengrid_select_mode_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get the gengrid select mode.
+
+ @return The select mode
+ (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
+
+ @see elm_gengrid_select_mode_set()
+
+ @ingroup Gengrid */
+ }
+ values {
+ Elm_Object_Select_Mode mode; /*@ The select mode */
+ }
+ }
+ reorder_mode {
+ set {
+ /*@
+ Set whether a given gengrid widget is or not able have items
+ @b reordered
+
+ If a gengrid is set to allow reordering, a click held for more
+ than 0.5 over a given item will highlight it specially,
+ signaling the gengrid has entered the reordering state. From
+ that time on, the user will be able to, while still holding the
+ mouse button down, move the item freely in the gengrid's
+ viewport, replacing to said item to the locations it goes to.
+ The replacements will be animated and, whenever the user
+ releases the mouse button, the item being replaced gets a new
+ definitive place in the grid.
+
+ @see elm_gengrid_reorder_mode_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get whether a given gengrid widget is or not able have items
+ @b reordered
+
+ @return @c EINA_TRUE, if reordering is on, @c EINA_FALSE if it's
+ off
+
+ @see elm_gengrid_reorder_mode_set() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Eina_Bool reorder_mode; /*@ Use @c EINA_TRUE to turn reordering on,
+ @c EINA_FALSE to turn it off */
+ }
+ }
+ highlight_mode {
+ set {
+ /*@ Set whether the gengrid items' should be highlighted when item selected. */
+ }
+ get {
+ /*@ Get whether the gengrid items' should be highlighted when item selected. */
+ }
+ values {
+ Eina_Bool highlight;
+ }
+ }
+ item_size {
+ set {
+ /*@
+ Set the size for the items of a given gengrid widget
+
+ A gengrid, after creation, has still no information on the size
+ to give to each of its cells. So, you most probably will end up
+ with squares one @ref Fingers "finger" wide, the default
+ size. Use this function to force a custom size for you items,
+ making them as big as you wish.
+
+ @see elm_gengrid_item_size_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get the size set for the items of a given gengrid widget
+
+ @note Use @c NULL pointers on the size values you're not
+ interested in: they'll be ignored by the function.
+
+ @see elm_gengrid_item_size_get() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Evas_Coord w; /*@ The items' width. */
+ Evas_Coord h; /*@ The items' height. */
+ }
+ }
+ multi_select_mode {
+ set {
+ /*@
+ Set the gengrid multi select mode.
+
+ - ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever each
+ item is clicked.
+ - ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only one item will be selected
+ although multi-selection is enabled, if clicked without pressing control
+ key. This mode is only available with multi-selection.
+
+ @see elm_gengrid_multi_select_set()
+ @see elm_gengrid_multi_select_mode_get()
+
+ @ingroup Gengrid
+ @since 1.8 */
+ }
+ get {
+ /*@
+ Get the gengrid multi select mode.
+
+ @return The multi select mode
+ (If getting mode is failed, it returns ELM_OBJECT_MULTI_SELECT_MODE_MAX)
+
+ @see elm_gengrid_multi_select_set()
+ @see elm_gengrid_multi_select_mode_set()
+
+ @ingroup Gengrid
+ @since 1.8 */
+ }
+ values {
+ Elm_Object_Multi_Select_Mode mode; /*@ The multi select mode */
+ }
+ }
+ horizontal {
+ set {
+ /*@
+ Set the direction in which a given gengrid widget will expand while
+ placing its items.
+
+ When in "horizontal mode" (@c EINA_TRUE), items will be placed in @b columns,
+ from top to bottom and, when the space for a column is filled, another one is
+ started on the right, thus expanding the grid horizontally. When in
+ "vertical mode" (@c EINA_FALSE), though, items will be placed in @b rows,
+ from left to right and, when the space for a row is filled, another one is
+ started below, thus expanding the grid vertically.
+
+ @note By default, gengrid is in vertical mode, @c EINA_FALSE.
+
+ @see elm_gengrid_horizontal_get()
+
+ @ingroup Gengrid */
+ }
+ get {
+ /*@
+ Get for what direction a given gengrid widget will expand while
+ placing its items.
+
+ @return @c EINA_TRUE, if @p obj is set to expand horizontally,
+ @c EINA_FALSE if it's set to expand vertically.
+
+ @see elm_gengrid_horizontal_set() for more details
+
+ @ingroup Gengrid */
+ }
+ values {
+ Eina_Bool horizontal; /*@ @c EINA_TRUE to make the gengrid expand horizontally,
+ @c EINA_FALSE to expand vertically. */
+ }
+ }
+ page_size {
+ set {
+ /*@ Set a given gengrid widget's scrolling page size */
+ }
+ values {
+ Evas_Coord h_pagesize;
+ Evas_Coord v_pagesize;
+ }
+ }
+ selected_item {
+ get {
+ /*@
+ Get the selected item in a given gengrid widget
+
+ @return The selected item's handle or @c NULL, if none is
+ selected at the moment (and on errors)
+
+ This returns the selected item in @p obj. If multi selection is
+ enabled on @p obj (@see elm_gengrid_multi_select_set()), only
+ the first item in the list is selected, which might not be very
+ useful. For that case, see elm_gengrid_selected_items_get().
+
+ @ingroup Gengrid */
+ return Elm_Object_Item *;
+ }
+ }
+ realized_items {
+ get {
+ /*@
+ Get a list of realized items in gengrid
+
+ @return The list of realized items, nor NULL if none are realized.
+
+ This returns a list of the realized items in the gengrid. The list
+ contains gengrid item pointers. The list must be freed by the
+ caller when done with eina_list_free(). The item pointers in the
+ list are only valid so long as those items are not deleted or the
+ gengrid is not deleted.
+
+ @see elm_gengrid_realized_items_update()
+
+ @ingroup Gengrid */
+ return Eina_List *;
+ }
+ }
+ first_item {
+ get {
+ /*@
+ Get the first item in a given gengrid widget
+
+ @return The first item's handle or @c NULL, if there are no
+ items in @p obj (and on errors)
+
+ This returns the first item in the @p obj's internal list of
+ items.
+
+ @see elm_gengrid_last_item_get()
+
+ @ingroup Gengrid */
+ return Elm_Object_Item *;
+ }
+ }
+ selected_items {
+ get {
+ /*@
+ Get <b>a list</b> of selected items in a given gengrid
+
+ @return The list of selected items or @c NULL, if none is
+ selected at the moment (and on errors)
+
+ This returns a list of the selected items, in the order that
+ they appear in the grid. This list is only valid as long as no
+ more items are selected or unselected (or unselected implicitly
+ by deletion). The list contains Gengrid item pointers as
+ data, naturally.
+
+ @see elm_gengrid_selected_item_get()
+
+ @ingroup Gengrid */
+ return const Eina_List *;
+ }
+ }
+ last_item {
+ get {
+ /*@
+ Get the last item in a given gengrid widget
+
+ @return The last item's handle or @c NULL, if there are no
+ items in @p obj (and on errors)
+
+ This returns the last item in the @p obj's internal list of
+ items.
+
+ @see elm_gengrid_first_item_get()
+
+ @ingroup Gengrid */
+ return Elm_Object_Item *;
+ }
+ }
+ }
+ methods {
+ item_insert_before {
+ /*@
+ Insert an item before another in a gengrid widget
+
+ @return A handle to the item added or @c NULL, on errors.
+
+ This inserts an item before another in the gengrid.
+
+ @see elm_gengrid_item_append()
+ @see elm_gengrid_item_prepend()
+ @see elm_gengrid_item_insert_after()
+ @see elm_object_item_del()
+
+ @ingroup Gengrid */
+
+ return Elm_Object_Item *;
+ params {
+ @in const Elm_Gengrid_Item_Class *itc; /*@ The item class for the item. */
+ @in const void *data; /*@ The item data. */
+ @in Elm_Object_Item *relative; /*@ The item to place this new one before. */
+ @in Evas_Smart_Cb func; /*@ Convenience function called when the item is
+ selected. */
+ @in const void *func_data; /*@ Data to be passed to @p func. */
+ }
+ }
+ realized_items_update {
+ /*@
+ Update the contents of all realized items.
+
+ This updates all realized items by calling all the item class functions again
+ to get the contents, texts and states. Use this when the original
+ item data has changed and the changes are desired to be reflected.
+
+ To update just one item, use elm_gengrid_item_update().
+
+ @see elm_gengrid_realized_items_get()
+ @see elm_gengrid_item_update()
+
+ @ingroup Gengrid */
+
+ }
+ item_insert_after {
+ /*@
+ Insert an item after another in a gengrid widget
+
+ @return A handle to the item added or @c NULL, on errors.
+
+ This inserts an item after another in the gengrid.
+
+ @see elm_gengrid_item_append()
+ @see elm_gengrid_item_prepend()
+ @see elm_gengrid_item_insert_after()
+ @see elm_object_item_del()
+
+ @ingroup Gengrid */
+
+ return Elm_Object_Item *;
+ params {
+ @in const Elm_Gengrid_Item_Class *itc; /*@ The item class for the item. */
+ @in const void *data; /*@ The item data. */
+ @in Elm_Object_Item *relative; /*@ The item to place this new one after. */
+ @in Evas_Smart_Cb func; /*@ Convenience function called when the item is
+ selected. */
+ @in const void *func_data; /*@ Data to be passed to @p func. */
+ }
+ }
+ items_count {
+ /*@
+ Return how many items are currently in a list
+
+ @return The total number of list items in the list
+
+ This behavior is O(1) and includes items which may or may not be realized.
+
+ @ingroup Gengrid */
+
+ const;
+ return unsigned int;
+ }
+ at_xy_item_get {
+ /*@
+ Get the item that is at the x, y canvas coords.
+
+ @return The item at the coordinates or NULL if none
+
+ This returns the item at the given coordinates (which are canvas
+ relative, not object-relative). If an item is at that coordinate,
+ that item handle is returned, and if @p xposret is not NULL, the
+ integer pointed to is set to a value of -1, 0 or 1, depending if
+ the coordinate is on the left portion of that item (-1), on the
+ middle section (0) or on the right part (1).
+ if @p yposret is not NULL, the
+ integer pointed to is set to a value of -1, 0 or 1, depending if
+ the coordinate is on the upper portion of that item (-1), on the
+ middle section (0) or on the lower part (1). If NULL is returned as
+ an item (no item found there), then posret may indicate -1 or 1
+ based if the coordinate is above or below all items respectively in
+ the gengrid.
+
+ @ingroup Gengrid */
+
+ const;
+ return Elm_Object_Item *;
+ params {
+ @in Evas_Coord x; /*@ The input x coordinate */
+ @in Evas_Coord y; /*@ The input y coordinate */
+ @out int xposret; /*@ The position relative to the item returned here */
+ @out int yposret; /*@ The position relative to the item returned here */
+ }
+ }
+ item_append {
+ /*@
+ Append a new item in a given gengrid widget.
+
+ @return A handle to the item added or @c NULL, on errors.
+
+ This adds an item to the beginning of the gengrid.
+
+ @see elm_gengrid_item_prepend()
+ @see elm_gengrid_item_insert_before()
+ @see elm_gengrid_item_insert_after()
+ @see elm_object_item_del()
+
+ @ingroup Gengrid */
+
+ return Elm_Object_Item *;
+ params {
+ @in const Elm_Gengrid_Item_Class *itc; /*@ The item class for the item. */
+ @in const void *data; /*@ The item data. */
+ @in Evas_Smart_Cb func; /*@ Convenience function called when the item is
+ selected. */
+ @in const void *func_data; /*@ Data to be passed to @p func. */
+ }
+ }
+ item_prepend {
+ /*@
+ Prepend a new item in a given gengrid widget.
+
+ @return A handle to the item added or @c NULL, on errors.
+
+ This adds an item to the end of the gengrid.
+
+ @see elm_gengrid_item_append()
+ @see elm_gengrid_item_insert_before()
+ @see elm_gengrid_item_insert_after()
+ @see elm_object_item_del()
+
+ @ingroup Gengrid */
+
+ return Elm_Object_Item *;
+ params {
+ @in const Elm_Gengrid_Item_Class *itc; /*@ The item class for the item. */
+ @in const void *data; /*@ The item data. */
+ @in Evas_Smart_Cb func; /*@ Convenience function called when the item is
+ selected. */
+ @in const void *func_data; /*@ Data to be passed to @p func. */
+ }
+ }
+ clear {
+ /*@
+ Remove all items from a given gengrid widget
+
+ This removes (and deletes) all items in @p obj, leaving it
+ empty.
+
+ @see elm_object_item_del(), to remove just one item.
+
+ @ingroup Gengrid */
+
+ }
+ item_sorted_insert {
+ /*@
+ Insert an item in a gengrid widget using a user-defined sort function.
+
+ @return A handle to the item added or @c NULL, on errors.
+
+ This inserts an item in the gengrid based on user defined comparison
+ function. The two arguments passed to the function @p func are gengrid
+ item handles to compare.
+
+ @see elm_gengrid_item_append()
+ @see elm_gengrid_item_prepend()
+ @see elm_gengrid_item_insert_after()
+ @see elm_object_item_data_get()
+ @see elm_object_item_del()
+
+ @ingroup Gengrid */
+
+ return Elm_Object_Item *;
+ params {
+ @in const Elm_Gengrid_Item_Class *itc; /*@ The item class for the item. */
+ @in const void *data; /*@ The item data. */
+ @in Eina_Compare_Cb comp; /*@ User defined comparison function that defines the sort order
+ based on gengrid item and its data. */
+ @in Evas_Smart_Cb func; /*@ Convenience function called when the item is selected. */
+ @in const void *func_data; /*@ Data to be passed to @p func. */
+ }
+ }
+ }
+ implements {
+ class::constructor;
+ Eo_Base::constructor;
+ Evas_Smart::move;
+ Evas_Smart::add;
+ Evas_Smart::del;
+ Evas_Smart::member_add;
+ Evas_Smart::resize;
+ Elm_Widget::theme_apply;
+ Elm_Widget::focus_next_manager_is;
+ Elm_Widget::focus_direction_manager_is;
+ Elm_Widget::access;
+ Elm_Widget::focus_next;
+ Elm_Widget::on_focus;
+ Elm_Widget::event;
+ Elm_Widget::focus_highlight_geometry_get;
+ Elm_Widget::focused_item::get;
+ Elm_Layout::sizing_eval;
+ Elm_Interface_Scrollable::bounce_allow::set;
+ Elm_Interface_Scrollable::policy;
+ }
+ events {
+ language,changed;
+ access,changed;
+ focused;
+ unfocused;
+ }
+
+}