#include "elm_widget_toolbar.h"
#include "els_box.h"
-EAPI Eo_Op ELM_OBJ_TOOLBAR_BASE_ID = EO_NOOP;
-
#define MY_CLASS ELM_OBJ_TOOLBAR_CLASS
#define MY_CLASS_NAME "Elm_Toolbar"
}
static void
-_items_visibility_fix(Elm_Toolbar_Smart_Data *sd,
+_items_visibility_fix(Elm_Toolbar_Data *sd,
Evas_Coord *iw,
Evas_Coord vw,
Eina_Bool *more)
}
static void
-_item_menu_create(Elm_Toolbar_Smart_Data *sd,
+_item_menu_create(Elm_Toolbar_Data *sd,
Elm_Toolbar_Item *item)
{
item->o_menu = elm_menu_add(elm_widget_parent_get(WIDGET(item)));
return NULL;
}
-static void
-_elm_toolbar_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_on_focus(Eo *obj, Elm_Toolbar_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
- ELM_TOOLBAR_DATA_GET(obj, sd);
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
Eina_Bool int_ret = EINA_FALSE;
Elm_Object_Item *it = NULL;
eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret));
- if (!int_ret) return;
- if (!sd->items) return;
+ if (!int_ret) return EINA_FALSE;
+ if (!sd->items) return EINA_FALSE;
if (elm_widget_focus_get(obj) && !sd->mouse_down)
{
_elm_toolbar_item_unfocused(sd->focused_item);
evas_object_focus_set(wd->resize_obj, EINA_FALSE);
}
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static Elm_Toolbar_Item *
return EINA_FALSE;
}
-static void
-_elm_toolbar_smart_event(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_event(Eo *obj, Elm_Toolbar_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_Toolbar_Smart_Data *sd = _pd;
-
- if (ret) *ret = EINA_FALSE;
(void) src;
(void) type;
+ Evas_Event_Key_Down *ev = event_info;
- 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;
if ((!strcmp(ev->key, "Return")) ||
(!strcmp(ev->key, "KP_Enter")) ||
goto success;
}
else
- {
- if (ret) *ret = EINA_FALSE;
- return;
- }
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Right")) ||
((!strcmp(ev->key, "KP_Right")) && !ev->string))
goto success;
}
else
- {
- if (ret) *ret = EINA_FALSE;
- return;
- }
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Up")) ||
((!strcmp(ev->key, "KP_Up")) && !ev->string))
goto success;
}
else
- {
- if (ret) *ret = EINA_FALSE;
- return;
- }
+ return EINA_FALSE;
}
else if ((!strcmp(ev->key, "Down")) ||
((!strcmp(ev->key, "KP_Down")) && !ev->string))
goto success;
}
else
- {
- if (ret) *ret = EINA_FALSE;
- return;
- }
+ return EINA_FALSE;
}
success:
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static void
}
static int
-_elm_toolbar_icon_size_get(Evas_Object *obj)
+_internal_elm_toolbar_icon_size_get(Evas_Object *obj)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0);
const char *icon_size = edje_object_data_get
elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
}
-static void
-_elm_toolbar_smart_theme(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_theme_apply(Eo *obj, Elm_Toolbar_Data *sd)
{
Elm_Toolbar_Item *it;
double scale = 0;
- Elm_Toolbar_Smart_Data *sd = _pd;
- ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
-
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
- if (sd->delete_me)
- {
- if (ret) *ret = EINA_TRUE;
- return;
- }
+ if (sd->delete_me) return EINA_TRUE;
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;
elm_widget_theme_object_set
(obj, wd->resize_obj, "toolbar", "base",
_mirrored_set(obj, elm_widget_mirrored_get(obj));
- sd->theme_icon_size = _elm_toolbar_icon_size_get(obj);
+ sd->theme_icon_size = _internal_elm_toolbar_icon_size_get(obj);
if (sd->priv_icon_size) sd->icon_size = sd->priv_icon_size;
else sd->icon_size = sd->theme_icon_size;
_elm_toolbar_highlight_in_theme(obj);
_sizing_eval(obj);
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static void
return o;
}
-static void
-_elm_toolbar_smart_translate(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_translate(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Toolbar_Smart_Data *sd = _pd;
Elm_Toolbar_Item *it;
EINA_INLIST_FOREACH(sd->items, it)
eo_do_super(obj, MY_CLASS, elm_obj_widget_translate(NULL));
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
static void
_elm_toolbar_action_right_cb(data, o, sig, src);
}
-static void
-_elm_toolbar_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_toolbar_evas_smart_add(Eo *obj, Elm_Toolbar_Data *priv)
{
- Elm_Toolbar_Smart_Data *priv = _pd;
Evas_Object *edje;
elm_widget_sub_object_parent_add(obj);
(edje, "elm,action,down", "elm", _elm_toolbar_action_down_cb, obj);
priv->shrink_mode = ELM_TOOLBAR_SHRINK_NONE;
- priv->theme_icon_size = _elm_toolbar_icon_size_get(obj);
+ priv->theme_icon_size = _internal_elm_toolbar_icon_size_get(obj);
priv->icon_size = priv->theme_icon_size;
priv->homogeneous = EINA_TRUE;
_sizing_eval(obj);
}
-static void
-_elm_toolbar_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_toolbar_evas_smart_del(Eo *obj, Elm_Toolbar_Data *sd)
{
Elm_Toolbar_Item *it, *next;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
sd->delete_me = EINA_TRUE;
ecore_job_del(sd->resize_job);
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
-static void
-_elm_toolbar_smart_move(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_evas_smart_move(Eo *obj, Elm_Toolbar_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_Toolbar_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_toolbar_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_evas_smart_resize(Eo *obj, Elm_Toolbar_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_Toolbar_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_toolbar_smart_member_add(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_evas_smart_member_add(Eo *obj, Elm_Toolbar_Data *sd, Evas_Object *member)
{
- Evas_Object *member = va_arg(*list, Evas_Object *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_member_add(member));
if (sd->hit_rect)
static Eina_Bool _elm_toolbar_smart_focus_next_enable = EINA_FALSE;
-static void
-_elm_toolbar_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *_pd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- *ret = _elm_toolbar_smart_focus_next_enable;
+ return _elm_toolbar_smart_focus_next_enable;
}
-static void
-_elm_toolbar_smart_focus_next(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_toolbar_elm_widget_focus_next(Eo *obj, Elm_Toolbar_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_List *items = NULL;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (sd->more_item && sd->more_item->selected)
{
items = _access_item_find_append(obj, sd->bx_more, items);
items = eina_list_append(items, sd->more_item->base.access_obj);
}
- if (ret) *ret = elm_widget_focus_list_next_get
+ return elm_widget_focus_list_next_get
(obj, items, eina_list_data_get, dir, next);
}
static void
-_access_obj_process(Elm_Toolbar_Smart_Data * sd, Eina_Bool is_access)
+_access_obj_process(Elm_Toolbar_Data * sd, Eina_Bool is_access)
{
Elm_Toolbar_Item *it;
}
}
-static void
-_elm_toolbar_smart_access(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_elm_widget_access(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Eina_Bool acs)
{
- Elm_Toolbar_Smart_Data *sd = _pd;
- _elm_toolbar_smart_focus_next_enable = va_arg(*list, int);
+ _elm_toolbar_smart_focus_next_enable = acs;
_access_obj_process(sd, _elm_toolbar_smart_focus_next_enable);
}
}
}
-static void
-_elm_toolbar_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_Toolbar_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);
-
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (is_next)
{
if (sd->focused_item)
return obj;
}
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_toolbar_eo_base_constructor(Eo *obj, Elm_Toolbar_Data *_pd EINA_UNUSED)
{
eo_do_super(obj, MY_CLASS, eo_constructor());
eo_do(obj,
evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
}
-EAPI void
-elm_toolbar_icon_size_set(Evas_Object *obj,
- int icon_size)
+EOLIAN static void
+_elm_toolbar_icon_size_set(Eo *obj, Elm_Toolbar_Data *sd, int icon_size)
{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_icon_size_set(icon_size));
-}
-
-static void
-_icon_size_set(Eo *obj, void *_pd, va_list *list)
-{
- int icon_size = va_arg(*list, int);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (sd->priv_icon_size == icon_size) return;
sd->priv_icon_size = icon_size;
eo_do(obj, elm_obj_widget_theme_apply(NULL));
}
-EAPI int
-elm_toolbar_icon_size_get(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) 0;
- int ret = 0;
- eo_do((Eo *) obj, elm_obj_toolbar_icon_size_get(&ret));
- return ret;
-}
-
-static void
-_icon_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static int
+_elm_toolbar_icon_size_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- int *ret = va_arg(*list, int *);
- Elm_Toolbar_Smart_Data *sd = _pd;
- *ret = sd->priv_icon_size;
+ return sd->priv_icon_size;
}
-EAPI Elm_Object_Item *
-elm_toolbar_item_append(Evas_Object *obj,
- const char *icon,
- const char *label,
- Evas_Smart_Cb func,
- const void *data)
-{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret;
- eo_do(obj, elm_obj_toolbar_item_append(icon, label, func, data, &ret));
- return ret;
-}
-
-static void
-_item_append(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_item_append(Eo *obj, Elm_Toolbar_Data *sd, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
{
- const char *icon = va_arg(*list, const char *);
- const char *label = va_arg(*list, const char *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- if (ret) *ret = NULL;
-
Elm_Toolbar_Item *it;
double scale;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
it = _item_new(obj, icon, label, func, data);
- if (!it) return;
+ if (!it) return NULL;
scale = (elm_widget_scale_get(obj) * elm_config_scale_get());
sd->items = eina_inlist_append(sd->items, EINA_INLIST_GET(it));
_sizing_eval(obj);
sd->item_count++;
- if (ret) *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_toolbar_item_prepend(Evas_Object *obj,
- const char *icon,
- const char *label,
- Evas_Smart_Cb func,
- const void *data)
-{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret;
- eo_do(obj, elm_obj_toolbar_item_prepend(icon, label, 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_toolbar_item_prepend(Eo *obj, Elm_Toolbar_Data *sd, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
{
- const char *icon = va_arg(*list, const char *);
- const char *label = va_arg(*list, const char *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- if (ret) *ret = NULL;
-
Elm_Toolbar_Item *it;
double scale;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
it = _item_new(obj, icon, label, func, data);
- if (!it) return;
+ if (!it) return NULL;
scale = (elm_widget_scale_get(obj) * elm_config_scale_get());
sd->items = eina_inlist_prepend(sd->items, EINA_INLIST_GET(it));
_sizing_eval(obj);
sd->item_count++;
- if (ret) *ret = (Elm_Object_Item *)it;
+ return (Elm_Object_Item *)it;
}
-EAPI Elm_Object_Item *
-elm_toolbar_item_insert_before(Evas_Object *obj,
- Elm_Object_Item *before,
- const char *icon,
- const char *label,
- Evas_Smart_Cb func,
- const void *data)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_item_insert_before(Eo *obj, Elm_Toolbar_Data *sd, Elm_Object_Item *before, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_toolbar_item_insert_before(before, icon, label, func, data, &ret));
- return ret;
-}
-
-static void
-_item_insert_before(Eo *obj, void *_pd, va_list *list)
-{
- Elm_Object_Item *before = va_arg(*list, Elm_Object_Item *);
- const char *icon = va_arg(*list, const char *);
- const char *label = va_arg(*list, const char *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
-
- if (ret) *ret = NULL;
-
Elm_Toolbar_Item *it, *_before;
double scale;
- ELM_TOOLBAR_ITEM_CHECK(before);
- Elm_Toolbar_Smart_Data *sd = _pd;
+ ELM_TOOLBAR_ITEM_CHECK_OR_RETURN(before, NULL);
_before = (Elm_Toolbar_Item *)before;
it = _item_new(obj, icon, label, func, data);
- if (!it) return;
+ if (!it) return NULL;
scale = (elm_widget_scale_get(obj) * elm_config_scale_get());
sd->items = eina_inlist_prepend_relative
_sizing_eval(obj);
sd->item_count++;
- if (ret) *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_toolbar_item_insert_after(Evas_Object *obj,
- Elm_Object_Item *after,
- const char *icon,
- const char *label,
- Evas_Smart_Cb func,
- const void *data)
-{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do(obj, elm_obj_toolbar_item_insert_after(after, icon, label, 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_toolbar_item_insert_after(Eo *obj, Elm_Toolbar_Data *sd, Elm_Object_Item *after, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
{
- Elm_Object_Item *after = va_arg(*list, Elm_Object_Item *);
- const char *icon = va_arg(*list, const char *);
- const char *label = va_arg(*list, const char *);
- Evas_Smart_Cb func = va_arg(*list, Evas_Smart_Cb);
- const void *data = va_arg(*list, const void *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- if (ret) *ret = NULL;
-
Elm_Toolbar_Item *it, *_after;
double scale;
- ELM_TOOLBAR_ITEM_CHECK(after);
+ ELM_TOOLBAR_ITEM_CHECK_OR_RETURN(after, NULL);
- Elm_Toolbar_Smart_Data *sd = _pd;
_after = (Elm_Toolbar_Item *)after;
it = _item_new(obj, icon, label, func, data);
- if (!it) return;
+ if (!it) return NULL;
scale = (elm_widget_scale_get(obj) * elm_config_scale_get());
sd->items = eina_inlist_append_relative
_sizing_eval(obj);
sd->item_count++;
- if (ret) *ret = (Elm_Object_Item *)it;
-}
-
-EAPI Elm_Object_Item *
-elm_toolbar_first_item_get(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_first_item_get(&ret));
- return ret;
-}
-
-static void
-_first_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- if (!sd->items) return;
- *ret = (Elm_Object_Item *)ELM_TOOLBAR_ITEM_FROM_INLIST(sd->items);
+ return (Elm_Object_Item *)it;
}
-EAPI Elm_Object_Item *
-elm_toolbar_last_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_first_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_last_item_get(&ret));
- return ret;
+ if (!sd->items) return NULL;
+ return (Elm_Object_Item *)ELM_TOOLBAR_ITEM_FROM_INLIST(sd->items);
}
-static void
-_last_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_last_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
- Elm_Toolbar_Smart_Data *sd = _pd;
+ if (!sd->items) return NULL;
- if (!sd->items) return;
-
- *ret = (Elm_Object_Item *)ELM_TOOLBAR_ITEM_FROM_INLIST(sd->items->last);
+ return (Elm_Object_Item *)ELM_TOOLBAR_ITEM_FROM_INLIST(sd->items->last);
}
EAPI Elm_Object_Item *
return ((Elm_Toolbar_Item *)it)->prio.priority;
}
-EAPI Elm_Object_Item *
-elm_toolbar_item_find_by_label(const Evas_Object *obj,
- const char *label)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_item_find_by_label(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, const char *label)
{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_item_find_by_label(label, &ret));
- return ret;
-}
-
-static void
-_item_find_by_label(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- const char *label = va_arg(*list, const char *);
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- *ret = NULL;
Elm_Toolbar_Item *it;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
EINA_INLIST_FOREACH(sd->items, it)
{
- if (!strcmp(it->label, label))
- {
- *ret = (Elm_Object_Item *)it;
- return;
- }
+ if (!strcmp(it->label, label)) return (Elm_Object_Item *)it;
}
+
+ return NULL;
}
EAPI void
return ((Elm_Toolbar_Item *)it)->selected;
}
-EAPI Elm_Object_Item *
-elm_toolbar_selected_item_get(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_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_toolbar_selected_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = (Elm_Object_Item *)sd->selected_item;
+ return (Elm_Object_Item *)sd->selected_item;
}
-EAPI Elm_Object_Item *
-elm_toolbar_more_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_toolbar_more_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Elm_Object_Item *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_more_item_get(&ret));
- return ret;
-}
-
-static void
-_more_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = (Elm_Object_Item *)sd->more_item;
+ return (Elm_Object_Item *)sd->more_item;
}
EAPI void
return ((Elm_Toolbar_Item *)it)->separator;
}
-EAPI void
-elm_toolbar_shrink_mode_set(Evas_Object *obj,
- Elm_Toolbar_Shrink_Mode shrink_mode)
-{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_shrink_mode_set(shrink_mode));
-}
-
-static void
-_shrink_mode_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_shrink_mode_set(Eo *obj, Elm_Toolbar_Data *sd, Elm_Toolbar_Shrink_Mode shrink_mode)
{
- Elm_Toolbar_Shrink_Mode shrink_mode = va_arg(*list, Elm_Toolbar_Shrink_Mode);
Eina_Bool bounce;
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (sd->shrink_mode == shrink_mode) return;
sd->shrink_mode = shrink_mode;
bounce = (_elm_config->thumbscroll_bounce_enable) &&
_sizing_eval(obj);
}
-EAPI Elm_Toolbar_Shrink_Mode
-elm_toolbar_shrink_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_Toolbar_Shrink_Mode
+_elm_toolbar_shrink_mode_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) ELM_TOOLBAR_SHRINK_NONE;
- Elm_Toolbar_Shrink_Mode ret = ELM_TOOLBAR_SHRINK_NONE;
- eo_do((Eo *) obj, elm_obj_toolbar_shrink_mode_get(&ret));
- return ret;
-}
-
-static void
-_shrink_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Toolbar_Shrink_Mode *ret = va_arg(*list, Elm_Toolbar_Shrink_Mode *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->shrink_mode;
+ return sd->shrink_mode;
}
EAPI void
return sd->transverse_expanded;
}
-EAPI void
-elm_toolbar_homogeneous_set(Evas_Object *obj,
- Eina_Bool homogeneous)
+EOLIAN static void
+_elm_toolbar_homogeneous_set(Eo *obj, Elm_Toolbar_Data *sd, Eina_Bool homogeneous)
{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_homogeneous_set(homogeneous));
-}
-
-static void
-_homogeneous_set(Eo *obj, void *_pd, va_list *list)
-{
- Eina_Bool homogeneous = va_arg(*list, int);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
homogeneous = !!homogeneous;
if (homogeneous == sd->homogeneous) return;
sd->homogeneous = homogeneous;
evas_object_smart_calculate(sd->bx);
}
-EAPI Eina_Bool
-elm_toolbar_homogeneous_get(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_toolbar_homogeneous_get(&ret));
- return ret;
-}
-
-static void
-_homogeneous_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->homogeneous;
-}
-
-EAPI void
-elm_toolbar_menu_parent_set(Evas_Object *obj,
- Evas_Object *parent)
+EOLIAN static Eina_Bool
+_elm_toolbar_homogeneous_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_menu_parent_set(parent));
+ return sd->homogeneous;
}
-static void
-_menu_parent_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_menu_parent_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Evas_Object *parent)
{
- Evas_Object *parent = va_arg(*list, Evas_Object *);
Elm_Toolbar_Item *it;
- Elm_Toolbar_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(parent);
sd->menu_parent = parent;
elm_menu_parent_set(sd->more_item->o_menu, sd->menu_parent);
}
-EAPI Evas_Object *
-elm_toolbar_menu_parent_get(const Evas_Object *obj)
+EOLIAN static Evas_Object*
+_elm_toolbar_menu_parent_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) NULL;
- Evas_Object *ret = NULL;
- eo_do((Eo *) obj, elm_obj_toolbar_menu_parent_get(&ret));
- return ret;
+ return sd->menu_parent;
}
-static void
-_menu_parent_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_align_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, double align)
{
- Evas_Object **ret = va_arg(*list, Evas_Object **);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->menu_parent;
-}
-
-EAPI void
-elm_toolbar_align_set(Evas_Object *obj,
- double align)
-{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_align_set(align));
-}
-
-static void
-_align_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- double align = va_arg(*list, double);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (sd->vertical)
{
if (sd->align != align)
sd->align = align;
}
-EAPI double
-elm_toolbar_align_get(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) 0.0;
- double ret = 0.0;
- eo_do((Eo *) obj, elm_obj_toolbar_align_get(&ret));
- return ret;
-}
-
-static void
-_align_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static double
+_elm_toolbar_align_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- double *ret = va_arg(*list, double *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->align;
+ return sd->align;
}
EAPI void
return eina_list_data_get(prev_state);
}
-EAPI void
-elm_toolbar_icon_order_lookup_set(Evas_Object *obj,
- Elm_Icon_Lookup_Order order)
-{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_icon_order_lookup_set(order));
-}
-
-static void
-_icon_order_lookup_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_icon_order_lookup_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Elm_Icon_Lookup_Order order)
{
- Elm_Icon_Lookup_Order order = va_arg(*list, Elm_Icon_Lookup_Order);
Elm_Toolbar_Item *it;
- Elm_Toolbar_Smart_Data *sd = _pd;
if (sd->lookup_order == order) return;
sd->lookup_order = order;
elm_icon_order_lookup_set(sd->more_item->icon, order);
}
-EAPI Elm_Icon_Lookup_Order
-elm_toolbar_icon_order_lookup_get(const Evas_Object *obj)
+EOLIAN static Elm_Icon_Lookup_Order
+_elm_toolbar_icon_order_lookup_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) ELM_ICON_LOOKUP_THEME_FDO;
- Elm_Icon_Lookup_Order ret = ELM_ICON_LOOKUP_THEME_FDO;
- eo_do((Eo *) obj, elm_obj_toolbar_icon_order_lookup_get(&ret));
- return ret;
+ return sd->lookup_order;
}
-static void
-_icon_order_lookup_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Icon_Lookup_Order *ret = va_arg(*list, Elm_Icon_Lookup_Order *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->lookup_order;
-}
-
-EAPI void
-elm_toolbar_horizontal_set(Evas_Object *obj,
- Eina_Bool horizontal)
+EOLIAN static void
+_elm_toolbar_horizontal_set(Eo *obj, Elm_Toolbar_Data *sd, Eina_Bool horizontal)
{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_horizontal_set(horizontal));
-}
-
-static void
-_horizontal_set(Eo *obj, void *_pd, va_list *list)
-{
- Eina_Bool horizontal = va_arg(*list, int);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
horizontal = !!horizontal;
if (!horizontal == sd->vertical) return;
sd->vertical = !horizontal;
_sizing_eval(obj);
}
-EAPI Eina_Bool
-elm_toolbar_horizontal_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_toolbar_horizontal_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_toolbar_horizontal_get(&ret));
- return ret;
+ return !sd->vertical;
}
-static void
-_horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static unsigned int
+_elm_toolbar_items_count(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = !sd->vertical;
-}
-
-EAPI unsigned int
-elm_toolbar_items_count(const Evas_Object *obj)
-{
- ELM_TOOLBAR_CHECK(obj) 0;
- unsigned int ret = 0;
- eo_do((Eo *) obj, elm_obj_toolbar_items_count(&ret));
- return ret;
-}
-
-static void
-_items_count(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- unsigned int *ret = va_arg(*list, unsigned int *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->item_count;
-}
-
-EAPI void
-elm_toolbar_standard_priority_set(Evas_Object *obj,
- int priority)
-{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_standard_priority_set(priority));
+ return sd->item_count;
}
-static void
-_standard_priority_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_standard_priority_set(Eo *obj, Elm_Toolbar_Data *sd, int priority)
{
- int priority = va_arg(*list, int);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (sd->standard_priority == priority) return;
sd->standard_priority = priority;
_resize_cb(obj, NULL, NULL, NULL);
}
-EAPI int
-elm_toolbar_standard_priority_get(const Evas_Object *obj)
+EOLIAN static int
+_elm_toolbar_standard_priority_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) 0;
- int ret = 0;
- eo_do((Eo *) obj, elm_obj_toolbar_standard_priority_get(&ret));
- return ret;
+ return sd->standard_priority;
}
-static void
-_standard_priority_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_toolbar_select_mode_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, Elm_Object_Select_Mode mode)
{
- int *ret = va_arg(*list, int *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->standard_priority;
-}
-
-EAPI void
-elm_toolbar_select_mode_set(Evas_Object *obj,
- Elm_Object_Select_Mode mode)
-{
- ELM_TOOLBAR_CHECK(obj);
- eo_do(obj, elm_obj_toolbar_select_mode_set(mode));
-}
-
-static void
-_select_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Select_Mode mode = va_arg(*list, Elm_Object_Select_Mode);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
if (mode >= ELM_OBJECT_SELECT_MODE_MAX)
return;
sd->select_mode = mode;
}
-EAPI Elm_Object_Select_Mode
-elm_toolbar_select_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Select_Mode
+_elm_toolbar_select_mode_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- ELM_TOOLBAR_CHECK(obj) ELM_OBJECT_SELECT_MODE_MAX;
- Elm_Object_Select_Mode ret = ELM_OBJECT_SELECT_MODE_MAX;
- eo_do((Eo *) obj, elm_obj_toolbar_select_mode_get(&ret));
- return ret;
-}
-
-static void
-_select_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Object_Select_Mode *ret = va_arg(*list, Elm_Object_Select_Mode *);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- *ret = sd->select_mode;
+ return sd->select_mode;
}
EAPI void
(x, y, w, h));
}
-static void
-_elm_toolbar_focused_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Object_Item *
+_elm_toolbar_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{
- Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **);
- Elm_Toolbar_Smart_Data *sd = _pd;
-
- if (ret) *ret = (Elm_Object_Item *)sd->focused_item;
+ return (Elm_Object_Item *)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_toolbar_smart_member_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_toolbar_smart_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_toolbar_smart_del),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_toolbar_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_toolbar_smart_move),
-
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ON_FOCUS), _elm_toolbar_smart_on_focus),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_toolbar_smart_theme),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_TRANSLATE), _elm_toolbar_smart_translate),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_toolbar_smart_event),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_toolbar_smart_focus_next_manager_is),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), _elm_toolbar_smart_focus_next),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACCESS), _elm_toolbar_smart_access),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_HIGHLIGHT_GEOMETRY_GET), _elm_toolbar_focus_highlight_geometry_get),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUSED_ITEM_GET), _elm_toolbar_focused_item_get),
-
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ICON_SIZE_SET), _icon_size_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ICON_SIZE_GET), _icon_size_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_APPEND), _item_append),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_PREPEND), _item_prepend),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_INSERT_BEFORE), _item_insert_before),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_INSERT_AFTER), _item_insert_after),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_FIRST_ITEM_GET), _first_item_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_LAST_ITEM_GET), _last_item_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_FIND_BY_LABEL), _item_find_by_label),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_SELECTED_ITEM_GET), _selected_item_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_MORE_ITEM_GET), _more_item_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_SHRINK_MODE_SET), _shrink_mode_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_SHRINK_MODE_GET), _shrink_mode_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_HOMOGENEOUS_SET), _homogeneous_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_HOMOGENEOUS_GET), _homogeneous_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_MENU_PARENT_SET), _menu_parent_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_MENU_PARENT_GET), _menu_parent_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ALIGN_SET), _align_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ALIGN_GET), _align_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ICON_ORDER_LOOKUP_SET), _icon_order_lookup_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ICON_ORDER_LOOKUP_GET), _icon_order_lookup_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_HORIZONTAL_SET), _horizontal_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_HORIZONTAL_GET), _horizontal_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_ITEMS_COUNT), _items_count),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_STANDARD_PRIORITY_SET), _standard_priority_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_STANDARD_PRIORITY_GET), _standard_priority_get),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_SELECT_MODE_SET), _select_mode_set),
- EO_OP_FUNC(ELM_OBJ_TOOLBAR_ID(ELM_OBJ_TOOLBAR_SUB_ID_SELECT_MODE_GET), _select_mode_get),
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
+EOLIAN static void
+_elm_toolbar_class_constructor(Eo_Class *klass)
+{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
-static const Eo_Op_Description op_desc[] = {
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ICON_SIZE_SET, "Set the icon size, in pixels, to be used by toolbar items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ICON_SIZE_GET, "Get the icon size, in pixels, to be used by toolbar items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_APPEND, "Append item to the toolbar."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_PREPEND, "Prepend item to the toolbar."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_INSERT_BEFORE, "Insert a new item into the toolbar object before item before."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_INSERT_AFTER, "Insert a new item into the toolbar object after item after."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_FIRST_ITEM_GET, "Get the first item in the given toolbar widget's list of items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_LAST_ITEM_GET, "Get the last item in the given toolbar widget's list of items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEM_FIND_BY_LABEL, "Returns a pointer to a toolbar item by its label."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_SELECTED_ITEM_GET, "Get the selected item."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_MORE_ITEM_GET, "Get the more item."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_SHRINK_MODE_SET, "Set the item displaying mode of a given toolbar widget obj."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_SHRINK_MODE_GET, "Get the shrink mode of toolbar obj."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_HOMOGENEOUS_SET, "Enable/disable homogeneous mode."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_HOMOGENEOUS_GET, "Get whether the homogeneous mode is enabled."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_MENU_PARENT_SET, "Set the parent object of the toolbar items' menus."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_MENU_PARENT_GET, "Get the parent object of the toolbar items' menus."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ALIGN_SET, "Set the alignment of the items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ALIGN_GET, "Get the alignment of the items."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ICON_ORDER_LOOKUP_SET, "Sets icon lookup order, for toolbar items' icons."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ICON_ORDER_LOOKUP_GET, "Get the icon lookup order."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_HORIZONTAL_SET, "Change a toolbar's orientation."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_HORIZONTAL_GET, "Get a toolbar's orientation."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_ITEMS_COUNT, "Get the number of items in a toolbar."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_STANDARD_PRIORITY_SET, "Set the standard priority of visible items in a toolbar."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_STANDARD_PRIORITY_GET, "Get the standard_priority of visible items in a toolbar."),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_SELECT_MODE_SET, "Set the toolbar select mode"),
- EO_OP_DESCRIPTION(ELM_OBJ_TOOLBAR_SUB_ID_SELECT_MODE_GET, "Get the toolbar select mode"),
- 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_TOOLBAR_BASE_ID, op_desc, ELM_OBJ_TOOLBAR_SUB_ID_LAST),
- NULL,
- sizeof(Elm_Toolbar_Smart_Data),
- _class_constructor,
- NULL
-};
-
-EO_DEFINE_CLASS(elm_obj_toolbar_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, ELM_INTERFACE_SCROLLABLE_CLASS, NULL);
+#include "elm_toolbar.eo.c"
--- /dev/null
+class Elm_Toolbar (Elm_Widget, Elm_Interface_Scrollable)
+{
+ eo_prefix: elm_obj_toolbar;
+ properties {
+ homogeneous {
+ set {
+ /*@
+ Enable/disable homogeneous mode.
+
+ This will enable the homogeneous mode where items are of the same size.
+ @see elm_toolbar_homogeneous_get()
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get whether the homogeneous mode is enabled.
+
+ @return Assume the items within the toolbar are of the same height
+ and width (EINA_TRUE = on, EINA_FALSE = off).
+
+ @see elm_toolbar_homogeneous_set()
+
+ @ingroup Toolbar */
+ }
+ values {
+ Eina_Bool homogeneous; /*@ Assume the items within the toolbar are of the
+ same size (EINA_TRUE = on, EINA_FALSE = off). Default is @c EINA_FALSE. */
+ }
+ }
+ align {
+ set {
+ /*@
+ Set the alignment of the items.
+
+ Alignment of toolbar items, from <tt> 0.0 </tt> to indicates to align
+ left, to <tt> 1.0 </tt>, to align to right. <tt> 0.5 </tt> centralize
+ items.
+
+ Centered items by default.
+
+ @see elm_toolbar_align_get()
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the alignment of the items.
+
+ @return toolbar items alignment, a float between <tt> 0.0 </tt> and
+ <tt> 1.0 </tt>.
+
+ @see elm_toolbar_align_set() for details.
+
+ @ingroup Toolbar */
+ }
+ values {
+ double align; /*@ The new alignment, a float between <tt> 0.0 </tt>
+ and <tt> 1.0 </tt>. */
+ }
+ }
+ select_mode {
+ set {
+ /*@
+ Set the toolbar select mode.
+
+ elm_toolbar_select_mode_set() changes item select mode in the toolbar 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_toolbar_select_mode_get()
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the toolbar select mode.
+
+ @return The select mode
+ (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
+
+ @see elm_toolbar_select_mode_set()
+
+ @ingroup Toolbar */
+ }
+ values {
+ Elm_Object_Select_Mode mode; /*@ The select mode */
+ }
+ }
+ icon_size {
+ set {
+ /*@
+ Set the icon size, in pixels, to be used by toolbar items.
+
+ @note Default value is @c 32. It reads value from elm config.
+
+ @see elm_toolbar_icon_size_get()
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the icon size, in pixels, to be used by toolbar items.
+
+ @return The icon size in pixels.
+
+ @see elm_toolbar_icon_size_set() for details.
+
+ @ingroup Toolbar */
+ }
+ values {
+ int icon_size; /*@ The icon size in pixels */
+ }
+ }
+ horizontal {
+ set {
+ /*@
+ Change a toolbar's orientation
+ By default, a toolbar will be horizontal. Use this function to create a vertical toolbar.
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get a toolbar's orientation
+ @return If @c EINA_TRUE, the toolbar is horizontal
+ By default, a toolbar will be horizontal. Use this function to determine whether a toolbar is vertical.
+ @ingroup Toolbar */
+ }
+ values {
+ Eina_Bool horizontal; /*@ If @c EINA_TRUE, the toolbar is horizontal */
+ }
+ }
+ icon_order_lookup {
+ set {
+ /*@
+ Sets icon lookup order, for toolbar items' icons.
+
+ Icons added before calling this function will not be affected.
+ The default lookup order is #ELM_ICON_LOOKUP_THEME_FDO.
+
+ @see elm_toolbar_icon_order_lookup_get()
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the icon lookup order.
+
+ @return The icon lookup order.
+
+ @see elm_toolbar_icon_order_lookup_set() for details.
+
+ @ingroup Toolbar */
+ }
+ values {
+ Elm_Icon_Lookup_Order order; /*@ The icon lookup order. */
+ }
+ }
+ shrink_mode {
+ set {
+ /*@
+ Set the item displaying mode of a given toolbar widget @p obj.
+
+ The toolbar won't scroll under #ELM_TOOLBAR_SHRINK_NONE mode, but
+ it will enforce a minimum size, so that all the items will fit
+ inside it. It won't scroll and won't show the items that don't fit
+ under #ELM_TOOLBAR_SHRINK_HIDE mode. Finally, it'll scroll under
+ #ELM_TOOLBAR_SHRINK_SCROLL mode, and it will create a button to
+ aggregate items which didn't fit with the #ELM_TOOLBAR_SHRINK_MENU
+ mode.
+
+ @warning This function's behavior will clash with those of
+ elm_scroller_policy_set(), so use either one of them, but not both.
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the shrink mode of toolbar @p obj.
+
+ @return Toolbar's items display behavior.
+
+ @see elm_toolbar_shrink_mode_set() for details.
+
+ @ingroup Toolbar */
+ }
+ values {
+ Elm_Toolbar_Shrink_Mode shrink_mode; /*@ Toolbar's items display behavior */
+ }
+ }
+ menu_parent {
+ set {
+ /*@
+ Set the parent object of the toolbar items' menus.
+
+ Each item can be set as item menu, with elm_toolbar_item_menu_set().
+
+ For more details about setting the parent for toolbar menus, see
+ elm_menu_parent_set().
+
+ @see elm_menu_parent_set() for details.
+ @see elm_toolbar_item_menu_set() for details.
+
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the parent object of the toolbar items' menus.
+
+ @return The parent of the menu objects.
+
+ @see elm_toolbar_menu_parent_set() for details.
+
+ @ingroup Toolbar */
+ }
+ values {
+ Evas_Object *parent; /*@ The parent of the menu objects. */
+ }
+ }
+ standard_priority {
+ set {
+ /*@
+ Set the standard priority of visible items in a toolbar
+ If the priority of the item is up to standard priority, it is shown in basic panel.
+ The other items are located in more menu or panel. The more menu or panel can be shown when the more item is clicked.
+
+ @see elm_toolbar_standard_priority_get()
+
+ @since 1.7
+ @ingroup Toolbar */
+ }
+ get {
+ /*@
+ Get the standard_priority of visible items in a toolbar
+ @return The standard priority of items in @p obj toolbar
+
+ @see elm_toolbar_standard_priority_set()
+
+ @since 1.7
+ @ingroup Toolbar */
+ }
+ values {
+ int priority; /*@ The standard_priority of visible items */
+ }
+ }
+ selected_item {
+ get {
+ /*@
+ Get the selected item.
+
+ @return The selected toolbar item.
+
+ The selected item can be unselected with function
+ elm_toolbar_item_selected_set().
+
+ The selected item always will be highlighted on toolbar.
+
+ @ingroup Toolbar */
+ return Elm_Object_Item *;
+ }
+ }
+ first_item {
+ get {
+ /*@
+ Get the first item in the given toolbar widget's list of
+ items.
+
+ @return The first item or @c NULL, if it has no items (and on
+ errors)
+
+ @see elm_toolbar_item_append()
+ @see elm_toolbar_last_item_get()
+
+ @ingroup Toolbar */
+ return Elm_Object_Item *;
+ }
+ }
+ more_item {
+ get {
+ /*@
+ Get the more item which is auto-generated by toolbar.
+
+ @return The toolbar more item.
+
+ Toolbar generates 'more' item when there is no more space to fit items in
+ and toolbar is in ELM_TOOLBAR_SHRINK_MENU or ELM_TOOLBAR_SHRINK_EXPAND mode.
+ The more item can be manipulated by elm_object_item_text_set() and
+ elm_object_item_content_set.
+
+ @ingroup Toolbar */
+ return Elm_Object_Item *;
+ }
+ }
+ last_item {
+ get {
+ /*@
+ Get the last item in the given toolbar widget's list of
+ items.
+
+ @return The last item or @c NULL, if it has no items (and on
+ errors)
+
+ @see elm_toolbar_item_prepend()
+ @see elm_toolbar_first_item_get()
+
+ @ingroup Toolbar */
+ return Elm_Object_Item *;
+ }
+ }
+ }
+ methods {
+ item_insert_before {
+ /*@
+ Insert a new item into the toolbar object before item @p before.
+
+ @return The created item or @c NULL upon failure.
+
+ A new item will be created and added to the toolbar. Its position in
+ this toolbar will be just before item @p before.
+
+ Items created with this method can be deleted with
+ elm_object_item_del().
+
+ Associated @p data can be properly freed when item is deleted if a
+ callback function is set with elm_object_item_del_cb_set().
+
+ If a function is passed as argument, it will be called every time this item
+ is selected, i.e., the user clicks over an unselected item.
+ If such function isn't needed, just passing
+ @c NULL as @p func is enough. The same should be done for @p data.
+
+ Toolbar will load icon image from fdo or current theme.
+ This behavior can be set by elm_toolbar_icon_order_lookup_set() function.
+ If an absolute path is provided it will load it direct from a file.
+
+ @note This function does not accept relative icon path.
+
+ @see elm_toolbar_item_icon_set()
+ @see elm_object_item_del()
+
+ @ingroup Toolbar */
+
+ return Elm_Object_Item *;
+ params {
+ @in Elm_Object_Item *before; /*@ The toolbar item to insert before. */
+ @in const char *icon; /*@ A string with icon name or the absolute path of an image file. */
+ @in const char *label; /*@ The label of the item. */
+ @in Evas_Smart_Cb func; /*@ The function to call when the item is clicked. */
+ @in const void *data; /*@ The data to associate with the item for related callbacks. */
+ }
+ }
+ item_insert_after {
+ /*@
+ Insert a new item into the toolbar object after item @p after.
+
+ @return The created item or @c NULL upon failure.
+
+ A new item will be created and added to the toolbar. Its position in
+ this toolbar will be just after item @p after.
+
+ Items created with this method can be deleted with
+ elm_object_item_del().
+
+ Associated @p data can be properly freed when item is deleted if a
+ callback function is set with elm_object_item_del_cb_set().
+
+ If a function is passed as argument, it will be called every time this item
+ is selected, i.e., the user clicks over an unselected item.
+ If such function isn't needed, just passing
+ @c NULL as @p func is enough. The same should be done for @p data.
+
+ Toolbar will load icon image from fdo or current theme.
+ This behavior can be set by elm_toolbar_icon_order_lookup_set() function.
+ If an absolute path is provided it will load it direct from a file.
+
+ @note This function does not accept relative icon path.
+
+ @see elm_toolbar_item_icon_set()
+ @see elm_object_item_del()
+
+ @ingroup Toolbar */
+
+ return Elm_Object_Item *;
+ params {
+ @in Elm_Object_Item *after; /*@ The toolbar item to insert after. */
+ @in const char *icon; /*@ A string with icon name or the absolute path of an image file. */
+ @in const char *label; /*@ The label of the item. */
+ @in Evas_Smart_Cb func; /*@ The function to call when the item is clicked. */
+ @in const void *data; /*@ The data to associate with the item for related callbacks. */
+ }
+ }
+ item_append {
+ /*@
+ Append item to the toolbar.
+
+ @return The created item or @c NULL upon failure.
+
+ A new item will be created and appended to the toolbar, i.e., will
+ be set as @b last item.
+
+ Items created with this method can be deleted with
+ elm_object_item_del().
+
+ Associated @p data can be properly freed when item is deleted if a
+ callback function is set with elm_object_item_del_cb_set().
+
+ If a function is passed as argument, it will be called every time this item
+ is selected, i.e., the user clicks over an unselected item.
+ If such function isn't needed, just passing
+ @c NULL as @p func is enough. The same should be done for @p data.
+
+ Toolbar will load icon image from fdo or current theme.
+ This behavior can be set by elm_toolbar_icon_order_lookup_set() function.
+ If an absolute path is provided it will load it direct from a file.
+
+ @note This function does not accept relative icon path.
+
+ @see elm_toolbar_item_icon_set()
+ @see elm_object_item_del()
+
+ @ingroup Toolbar */
+
+ return Elm_Object_Item *;
+ params {
+ @in const char *icon; /*@ A string with icon name or the absolute path of an image file. */
+ @in const char *label; /*@ The label of the item. */
+ @in Evas_Smart_Cb func; /*@ The function to call when the item is clicked. */
+ @in const void *data; /*@ The data to associate with the item for related callbacks. */
+ }
+ }
+ items_count {
+ /*@
+ Get the number of items in a toolbar
+ @return The number of items in @p obj toolbar
+ @ingroup Toolbar */
+
+ const;
+ return unsigned int;
+ }
+ item_prepend {
+ /*@
+ Prepend item to the toolbar.
+
+ @return The created item or @c NULL upon failure.
+
+ A new item will be created and prepended to the toolbar, i.e., will
+ be set as @b first item.
+
+ Items created with this method can be deleted with
+ elm_object_item_del().
+
+ Associated @p data can be properly freed when item is deleted if a
+ callback function is set with elm_object_item_del_cb_set().
+
+ If a function is passed as argument, it will be called every time this item
+ is selected, i.e., the user clicks over an unselected item.
+ If such function isn't needed, just passing
+ @c NULL as @p func is enough. The same should be done for @p data.
+
+ Toolbar will load icon image from fdo or current theme.
+ This behavior can be set by elm_toolbar_icon_order_lookup_set() function.
+ If an absolute path is provided it will load it direct from a file.
+
+ @note This function does not accept relative icon path.
+
+ @see elm_toolbar_item_icon_set()
+ @see elm_object_item_del()
+
+ @ingroup Toolbar */
+
+ return Elm_Object_Item *;
+ params {
+ @in const char *icon; /*@ A string with icon name or the absolute path of an image file. */
+ @in const char *label; /*@ The label of the item. */
+ @in Evas_Smart_Cb func; /*@ The function to call when the item is clicked. */
+ @in const void *data; /*@ The data to associate with the item for related callbacks. */
+ }
+ }
+ item_find_by_label {
+ /*@
+ Returns a pointer to a toolbar item by its label.
+
+ @return The pointer to the toolbar item matching @p label or @c NULL
+ on failure.
+
+ @ingroup Toolbar */
+
+ const;
+ return Elm_Object_Item *;
+ params {
+ @in const char *label; /*@ The label of the item to find. */
+ }
+ }
+ }
+ implements {
+ class::constructor;
+ Eo_Base::constructor;
+ Evas_Smart::move;
+ Evas_Smart::add;
+ Evas_Smart::del;
+ Evas_Smart::member_add;
+ Evas_Smart::resize;
+ Elm_Widget::focus_next_manager_is;
+ Elm_Widget::access;
+ Elm_Widget::focus_next;
+ Elm_Widget::theme_apply;
+ Elm_Widget::on_focus;
+ Elm_Widget::translate;
+ Elm_Widget::event;
+ Elm_Widget::focus_highlight_geometry_get;
+ Elm_Widget::focused_item::get;
+ }
+ events {
+ scroll;
+ scroll,anim,start;
+ scroll,anim,stop;
+ scroll,drag,start;
+ scroll,drag,stop;
+ clicked;
+ longpressed;
+ clicked,double;
+ language,changed;
+ access,changed;
+ focused;
+ unfocused;
+ }
+
+}