/**
* @defgroup Gengrid Gengrid
*
- * This widget aims to position objects in a grid layout while actually
- * building only the visible ones, using the same idea as genlist: the user
- * define a class for each item, specifying functions that will be called at
- * object creation and deletion.
+ * This widget aims to position objects in a grid layout while
+ * actually building only the visible ones, using the same idea as
+ * genlist: the user define a class for each item, specifying
+ * functions that will be called at object creation and deletion.
*
* Signals that you can add callbacks for are:
*
- * clicked - The user has double-clicked a item. The event_info parameter is
- * the Gengrid item that was double-clicked.
+ * clicked - The user has double-clicked a item. The event_info
+ * parameter is the Gengrid item that was double-clicked.
*
- * selected - The user has made an item selected. The event_info parameter is
- * the Gengrid item that was selected.
+ * selected - The user has made an item selected. The event_info
+ * parameter is the Gengrid item that was selected.
*
- * unselected - The user has made an item unselected. The event_info parameter
- * is the Gengrid item that was unselected.
+ * unselected - The user has made an item unselected. The event_info
+ * parameter is the Gengrid item that was unselected.
*
- * realized - This is called when the item in the Gengrid is created as a real
- * evas object. event_info is the Gengrid item that was created. The object may be
- * deleted at any time, so it is up to the caller to not use the object pointer
- * from elm_gengrid_item_object_get() in a way where it may point to
- * freed objects.
+ * realized - This is called when the item in the Gengrid is created
+ * as a real evas object. event_info is the Gengrid item that was
+ * created. The object may be deleted at any time, so it is up to the
+ * caller to not use the object pointer from
+ * elm_gengrid_item_object_get() in a way where it may point to freed
+ * objects.
*
- * unrealized - This is called when the real evas object for this item is
- * deleted. event_info is the Gengrid item that was created.
+ * unrealized - This is called when the real evas object for this item
+ * is deleted. event_info is the Gengrid item that was created.
*
- * changed - Called when an item is added, removed, resized or moved and when
- * gengrid is resized or horizontal property changes.
+ * changed - Called when an item is added, removed, resized or moved
+ * and when gengrid is resized or horizontal property changes.
*
- * drag,start,up - Called when the item in the Gengrid has been dragged (not
- * scrolled) up.
+ * drag,start,up - Called when the item in the Gengrid has been
+ * dragged (not scrolled) up.
*
- * drag,start,down - Called when the item in the Gengrid has been dragged (not
- * scrolled) down.
+ * drag,start,down - Called when the item in the Gengrid has been
+ * dragged (not scrolled) down.
*
- * drag,start,left - Called when the item in the Gengrid has been dragged (not
- * scrolled) left.
+ * drag,start,left - Called when the item in the Gengrid has been
+ * dragged (not scrolled) left.
*
- * drag,start,right - Called when the item in the Gengrid has been dragged (not
- * scrolled) right.
+ * drag,start,right - Called when the item in the Gengrid has been
+ * dragged (not scrolled) right.
*
- * drag,stop - Called when the item in the Gengrid has stopped being dragged.
+ * drag,stop - Called when the item in the Gengrid has stopped being
+ * dragged.
*
* drag - Called when the item in the Gengrid is being dragged.
*
* scroll,drag,stop - called when dragging the content has stopped.
*
*
- * A item in the Gengrid can have 0 or more text labels (they can be regular text
- * or textblock - that's up to the style to determine), 0 or more icons (which
- * are simply objects swallowed into the Gengrid item) and 0 or more boolean states
- * that can be used for check, radio or other indicators by the edje theme style.
- * A item may be one of several styles (Elementary provides 1 by default -
+ * A item in the Gengrid can have 0 or more text labels (they can be
+ * regular text or textblock - that's up to the style to determine), 0
+ * or more icons (which are simply objects swallowed into the Gengrid
+ * item) and 0 or more boolean states that can be used for check,
+ * radio or other indicators by the edje theme style. A item may be
+ * one of several styles (Elementary provides 1 by default -
* "default", but this can be extended by system or application custom
* themes/overlays/extensions).
*
- * In order to implement the ability to add and delete items on the fly, Gengrid
- * implements a class/callback system where the application provides a structure
- * with information about that type of item (Gengrid may contain multiple different
- * items with different classes, states and styles). Gengrid will call the functions
- * in this struct (methods) when a item is "realized" (that is created
- * dynamically while scrolling). All objects will simply be deleted when no
- * longer needed with evas_object_del(). The Elm_GenGrid_Item_Class structure
- * contains the following members:
- *
- * item_style - This is a constant string and simply defines the name of the
- * item style. It must be specified and the default should be "default".
- *
- * func.label_get - This function is called when an actual item object is
- * created. The data parameter is the one passed to elm_gengrid_item_append()
- * and related item creation functions. The obj parameter is the Gengrid object and
- * the part parameter is the string name of the text part in the edje design that
- * is listed as one of the possible labels that can be set. This function must
+ * In order to implement the ability to add and delete items on the
+ * fly, Gengrid implements a class/callback system where the
+ * application provides a structure with information about that type
+ * of item (Gengrid may contain multiple different items with
+ * different classes, states and styles). Gengrid will call the
+ * functions in this struct (methods) when a item is "realized" (that
+ * is created dynamically while scrolling). All objects will simply be
+ * deleted when no longer needed with evas_object_del(). The
+ * Elm_GenGrid_Item_Class structure contains the following members:
+ *
+ * item_style - This is a constant string and simply defines the name
+ * of the item style. It must be specified and the default should be
+ * "default".
+ *
+ * func.label_get - This function is called when an actual item object
+ * is created. The data parameter is the one passed to
+ * elm_gengrid_item_append() and related item creation functions. The
+ * obj parameter is the Gengrid object and the part parameter is the
+ * string name of the text part in the edje design that is listed as
+ * one of the possible labels that can be set. This function must
* return a strdup'()ed string as the caller will free() it when done.
*
- * func.icon_get - This function is called when an actual item object is
- * created. The data parameter is the one passed to elm_gengrid_item_append()
- * and related item creation functions. The obj parameter is the Gengrid object and
- * the part parameter is the string name of the icon part in the edje design that
- * is listed as one of the possible icons that can be set. This must return NULL
- * for no object or a valid object. The object will be deleted by Gengrid on
- * shutdown or when the item is unrealized.
- *
- * func.state_get - This function is called when an actual item object is
- * created. The data parameter is the one passed to elm_gengrid_item_append()
- * and related item creation functions. The obj parameter is the Gengrid object and
- * the part parameter is the string name of th state part in the edje design that
- * is listed as one of the possible states that can be set. Return 0 for false
- * and 1 for true. Gengrid will emit a signal to the edje object with
- * "elm,state,XXX,active" "elm" when true (the default is false), where XXX is
- * the name of the part.
- *
- * func.del - This is called when elm_gengrid_item_del() is called on a
- * item or elm_gengrid_clear() is called on the Gengrid. This is intended for
- * use when actual Gengrid items are deleted, so any backing data attached to the
- * item (e.g. its data parameter on creation) can be deleted.
+ * func.icon_get - This function is called when an actual item object
+ * is created. The data parameter is the one passed to
+ * elm_gengrid_item_append() and related item creation functions. The
+ * obj parameter is the Gengrid object and the part parameter is the
+ * string name of the icon part in the edje design that is listed as
+ * one of the possible icons that can be set. This must return NULL
+ * for no object or a valid object. The object will be deleted by
+ * Gengrid on shutdown or when the item is unrealized.
+ *
+ * func.state_get - This function is called when an actual item object
+ * is created. The data parameter is the one passed to
+ * elm_gengrid_item_append() and related item creation functions. The
+ * obj parameter is the Gengrid object and the part parameter is the
+ * string name of th state part in the edje design that is listed as
+ * one of the possible states that can be set. Return 0 for false and
+ * 1 for true. Gengrid will emit a signal to the edje object with
+ * "elm,state,XXX,active" "elm" when true (the default is false),
+ * where XXX is the name of the part.
+ *
+ * func.del - This is called when elm_gengrid_item_del() is called on
+ * a item or elm_gengrid_clear() is called on the Gengrid. This is
+ * intended for use when actual Gengrid items are deleted, so any
+ * backing data attached to the item (e.g. its data parameter on
+ * creation) can be deleted.
*
* If the application wants multiple items to be able to be selected,
* elm_gengrid_multi_select_set() can enable this. If the Gengrid is
- * single-selection only (the default), then elm_gengrid_select_item_get()
- * will return the selected item, if any, or NULL if none is selected. If the
- * Gengrid is multi-select then elm_gengrid_selected_items_get() will return a
- * list (that is only valid as long as no items are modified (added, deleted,
+ * single-selection only (the default), then
+ * elm_gengrid_select_item_get() will return the selected item, if
+ * any, or NULL if none is selected. If the Gengrid is multi-select
+ * then elm_gengrid_selected_items_get() will return a list (that is
+ * only valid as long as no items are modified (added, deleted,
* selected or unselected).
*
- * If a item changes (state of boolean changes, label or icons change), then use
- * elm_gengrid_item_update() to have Gengrid update the item with the new
- * state. Gengrid will re-realize the item thus call the functions in the
- * _Elm_Gengrid_Item_Class for that item.
+ * If a item changes (state of boolean changes, label or icons
+ * change), then use elm_gengrid_item_update() to have Gengrid update
+ * the item with the new state. Gengrid will re-realize the item thus
+ * call the functions in the _Elm_Gengrid_Item_Class for that item.
*
- * To programmatically (un)select a item use elm_gengrid_item_selected_set().
- * To get its selected state use elm_gengrid_item_selected_get(). To make a
- * item disabled (unable to be selected and appear differently) use
+ * To programmatically (un)select a item use
+ * elm_gengrid_item_selected_set(). To get its selected state use
+ * elm_gengrid_item_selected_get(). To make a item disabled (unable to
+ * be selected and appear differently) use
* elm_gengrid_item_disabled_set() to set this and
* elm_gengrid_item_disabled_get() to get the disabled state.
*
- * Cells will only call their selection func and callback when first becoming
- * selected. Any further clicks will do nothing, unless you enable always
- * select with elm_gengrid_always_select_mode_set(). This means event if
- * selected, every click will make the selected callbacks be called.
- * elm_gengrid_no_select_mode_set() will turn off the ability to select
- * items entirely and they will neither appear selected nor call selected
- * callback function.
+ * Cells will only call their selection func and callback when first
+ * becoming selected. Any further clicks will do nothing, unless you
+ * enable always select with
+ * elm_gengrid_always_select_mode_set(). This means event if selected,
+ * every click will make the selected callbacks be called.
+ * elm_gengrid_no_select_mode_set() will turn off the ability to
+ * select items entirely and they will neither appear selected nor
+ * call selected callback function.
*
- * Remember that you can create new styles and add your own theme augmentation
- * per application with elm_theme_extension_add(). If you absolutely must have a
- * specific style that overrides any theme the user or system sets up you can use
- * elm_theme_overlay_add() to add such a file.
+ * Remember that you can create new styles and add your own theme
+ * augmentation per application with elm_theme_extension_add(). If you
+ * absolutely must have a specific style that overrides any theme the
+ * user or system sets up you can use elm_theme_overlay_add() to add
+ * such a file.
*
* --
* TODO:
*/
typedef struct _Widget_Data Widget_Data;
-typedef struct _Pan Pan;
+typedef struct _Pan Pan;
#define PRELOAD 1
struct _Elm_Gengrid_Item
{
- Elm_Widget_Item base;
+ Elm_Widget_Item base;
EINA_INLIST;
- Evas_Object *spacer;
+ Evas_Object *spacer;
const Elm_Gengrid_Item_Class *gic;
- Ecore_Timer *long_timer;
- Widget_Data *wd;
- Eina_List *labels, *icons, *states, *icon_objs;
+ Ecore_Timer *long_timer;
+ Widget_Data *wd;
+ Eina_List *labels, *icons, *states, *icon_objs;
struct
- {
- Evas_Smart_Cb func;
- const void *data;
- } func;
+ {
+ Evas_Smart_Cb func;
+ const void *data;
+ } func;
Evas_Coord x, y, dx, dy;
- int relcount;
- int walking;
+ int relcount;
+ int walking;
struct
- {
- const void *data;
- Elm_Tooltip_Item_Content_Cb content_cb;
- Evas_Smart_Cb del_cb;
- const char *style;
+ {
+ const void *data;
+ Elm_Tooltip_Item_Content_Cb content_cb;
+ Evas_Smart_Cb del_cb;
+ const char *style;
} tooltip;
const char *mouse_cursor;
- Eina_Bool want_unrealize : 1;
- Eina_Bool realized : 1;
- Eina_Bool dragging : 1;
- Eina_Bool down : 1;
- Eina_Bool delete_me : 1;
- Eina_Bool display_only : 1;
- Eina_Bool disabled : 1;
- Eina_Bool selected : 1;
- Eina_Bool hilighted : 1;
+ Eina_Bool want_unrealize : 1;
+ Eina_Bool realized : 1;
+ Eina_Bool dragging : 1;
+ Eina_Bool down : 1;
+ Eina_Bool delete_me : 1;
+ Eina_Bool display_only : 1;
+ Eina_Bool disabled : 1;
+ Eina_Bool selected : 1;
+ Eina_Bool hilighted : 1;
};
struct _Widget_Data
{
- Evas_Object *self, *scr;
- Evas_Object *pan_smart;
- Pan *pan;
- Eina_Inlist *items;
- Ecore_Job *calc_job;
- Eina_List *selected;
+ Evas_Object *self, *scr;
+ Evas_Object *pan_smart;
+ Pan *pan;
+ Eina_Inlist *items;
+ Ecore_Job *calc_job;
+ Eina_List *selected;
Elm_Gengrid_Item *last_selected_item;
- double align_x, align_y;
-
- Evas_Coord pan_x, pan_y;
- Evas_Coord item_width, item_height; /* Each item size */
- Evas_Coord minw, minh; /* Total obj size */
- unsigned int nmax;
- long count;
- int walking;
-
- Eina_Bool horizontal : 1;
- Eina_Bool on_hold : 1;
- Eina_Bool longpressed : 1;
- Eina_Bool multi : 1;
- Eina_Bool no_select : 1;
- Eina_Bool wasselected : 1;
- Eina_Bool always_select : 1;
- Eina_Bool clear_me : 1;
+ double align_x, align_y;
+
+ Evas_Coord pan_x, pan_y;
+ Evas_Coord item_width, item_height; /* Each item size */
+ Evas_Coord minw, minh; /* Total obj size */
+ unsigned int nmax;
+ long count;
+ int walking;
+
+ Eina_Bool horizontal : 1;
+ Eina_Bool on_hold : 1;
+ Eina_Bool longpressed : 1;
+ Eina_Bool multi : 1;
+ Eina_Bool no_select : 1;
+ Eina_Bool wasselected : 1;
+ Eina_Bool always_select : 1;
+ Eina_Bool clear_me : 1;
};
-#define ELM_GENGRID_ITEM_FROM_INLIST(item) \
+#define ELM_GENGRID_ITEM_FROM_INLIST(item) \
((item) ? EINA_INLIST_CONTAINER_GET(item, Elm_Gengrid_Item) : NULL)
struct _Pan
{
Evas_Object_Smart_Clipped_Data __clipped_data;
- Widget_Data *wd;
+ Widget_Data *wd;
};
static const char *widtype = NULL;
-static void _item_hilight(Elm_Gengrid_Item *item);
-static void _item_unrealize(Elm_Gengrid_Item *item);
-static void _item_select(Elm_Gengrid_Item *item);
-static void _item_unselect(Elm_Gengrid_Item *item);
-static void _on_focus_hook(void *data, Evas_Object *obj);
+static void _item_hilight(Elm_Gengrid_Item *item);
+static void _item_unrealize(Elm_Gengrid_Item *item);
+static void _item_select(Elm_Gengrid_Item *item);
+static void _item_unselect(Elm_Gengrid_Item *item);
+static void _on_focus_hook(void *data,
+ Evas_Object *obj);
static Eina_Bool _item_multi_select_up(Widget_Data *wd);
static Eina_Bool _item_multi_select_down(Widget_Data *wd);
static Eina_Bool _item_multi_select_left(Widget_Data *wd);
static Eina_Bool _item_single_select_down(Widget_Data *wd);
static Eina_Bool _item_single_select_left(Widget_Data *wd);
static Eina_Bool _item_single_select_right(Widget_Data *wd);
-static Eina_Bool _event_hook(Evas_Object *obj, Evas_Object *src,
- Evas_Callback_Type type, void *event_info);
+static Eina_Bool _event_hook(Evas_Object *obj,
+ Evas_Object *src,
+ Evas_Callback_Type type,
+ void *event_info);
static Eina_Bool _deselect_all_items(Widget_Data *wd);
static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION;
static Eina_Bool
-_event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type type, void *event_info)
+_event_hook(Evas_Object *obj,
+ Evas_Object *src __UNUSED__,
+ Evas_Callback_Type type,
+ void *event_info)
{
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
Evas_Event_Key_Down *ev = event_info;
else
x += step_x;
}
- else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
+ else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
{
if ((wd->horizontal) &&
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
return EINA_TRUE;
}
- else if ((!strcmp(ev->keyname, "Prior")) || (!strcmp(ev->keyname, "KP_Prior")))
+ else if ((!strcmp(ev->keyname, "Prior")) ||
+ (!strcmp(ev->keyname, "KP_Prior")))
{
if (wd->horizontal)
{
}
else if (!strcmp(ev->keyname, "Escape"))
{
- if (!_deselect_all_items(wd)) return EINA_FALSE;
- ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- return EINA_TRUE;
+ if (!_deselect_all_items(wd)) return EINA_FALSE;
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ return EINA_TRUE;
}
else return EINA_FALSE;
}
static void
-_on_focus_hook(void *data __UNUSED__, Evas_Object *obj)
+_on_focus_hook(void *data __UNUSED__,
+ Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_signal_emit_hook(Evas_Object *obj, const char *emission, const char *source)
+_signal_emit_hook(Evas_Object *obj,
+ const char *emission,
+ const char *source)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
+_mouse_move(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj,
+ void *event_info)
{
Elm_Gengrid_Item *item = data;
Evas_Event_Mouse_Move *ev = event_info;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
{
- if (!item->wd->on_hold)
- {
- item->wd->on_hold = EINA_TRUE;
+ if (!item->wd->on_hold)
+ {
+ item->wd->on_hold = EINA_TRUE;
if (!item->wd->wasselected)
_item_unselect(item);
- }
+ }
}
if ((item->dragging) && (item->down))
{
- if (item->long_timer)
- {
- ecore_timer_del(item->long_timer);
- item->long_timer = NULL;
- }
- evas_object_smart_callback_call(item->wd->self, "drag", item);
- return;
+ if (item->long_timer)
+ {
+ ecore_timer_del(item->long_timer);
+ item->long_timer = NULL;
+ }
+ evas_object_smart_callback_call(item->wd->self, "drag", item);
+ return;
}
if ((!item->down) || (item->wd->longpressed))
{
- if (item->long_timer)
- {
- ecore_timer_del(item->long_timer);
- item->long_timer = NULL;
- }
- return;
+ if (item->long_timer)
+ {
+ ecore_timer_del(item->long_timer);
+ item->long_timer = NULL;
+ }
+ return;
}
if (!item->display_only)
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
minh /= 2;
if ((adx > minw) || (ady > minh))
{
- item->dragging = 1;
- if (item->long_timer)
- {
- ecore_timer_del(item->long_timer);
- item->long_timer = NULL;
- }
- if (!item->wd->wasselected)
- _item_unselect(item);
- if (dy < 0)
- {
- if (ady > adx)
- evas_object_smart_callback_call(item->wd->self, "drag,start,up",
- item);
- else
- {
- if (dx < 0)
- evas_object_smart_callback_call(item->wd->self,
- "drag,start,left", item);
- }
- }
- else
- {
- if (ady > adx)
- evas_object_smart_callback_call(item->wd->self,
- "drag,start,down", item);
- else
- {
- if (dx < 0)
- evas_object_smart_callback_call(item->wd->self,
- "drag,start,left", item);
- else
- evas_object_smart_callback_call(item->wd->self,
- "drag,start,right", item);
- }
- }
+ item->dragging = 1;
+ if (item->long_timer)
+ {
+ ecore_timer_del(item->long_timer);
+ item->long_timer = NULL;
+ }
+ if (!item->wd->wasselected)
+ _item_unselect(item);
+ if (dy < 0)
+ {
+ if (ady > adx)
+ evas_object_smart_callback_call(item->wd->self, "drag,start,up",
+ item);
+ else
+ {
+ if (dx < 0)
+ evas_object_smart_callback_call(item->wd->self,
+ "drag,start,left", item);
+ }
+ }
+ else
+ {
+ if (ady > adx)
+ evas_object_smart_callback_call(item->wd->self,
+ "drag,start,down", item);
+ else
+ {
+ if (dx < 0)
+ evas_object_smart_callback_call(item->wd->self,
+ "drag,start,left", item);
+ else
+ evas_object_smart_callback_call(item->wd->self,
+ "drag,start,right", item);
+ }
+ }
}
}
}
static void
-_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
+_mouse_down(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj,
+ void *event_info)
{
Elm_Gengrid_Item *item = data;
Evas_Event_Mouse_Down *ev = event_info;
evas_object_smart_callback_call(item->wd->self, "clicked", item);
if (item->long_timer) ecore_timer_del(item->long_timer);
if (item->realized)
- item->long_timer = ecore_timer_add(_elm_config->longpress_timeout, _long_press, item);
+ item->long_timer = ecore_timer_add(_elm_config->longpress_timeout,
+ _long_press, item);
else
item->long_timer = NULL;
}
static void
-_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+_mouse_up(void *data,
+ Evas *evas __UNUSED__,
+ Evas_Object *obj __UNUSED__,
+ void *event_info)
{
Elm_Gengrid_Item *item = data;
Evas_Event_Mouse_Up *ev = event_info;
else item->wd->on_hold = EINA_FALSE;
if (item->long_timer)
{
- ecore_timer_del(item->long_timer);
- item->long_timer = NULL;
+ ecore_timer_del(item->long_timer);
+ item->long_timer = NULL;
}
if (item->dragging)
{
- item->dragging = EINA_FALSE;
- evas_object_smart_callback_call(item->wd->self, "drag,stop", item);
- dragged = EINA_TRUE;
+ item->dragging = EINA_FALSE;
+ evas_object_smart_callback_call(item->wd->self, "drag,stop", item);
+ dragged = EINA_TRUE;
}
if (item->wd->on_hold)
{
- item->wd->longpressed = EINA_FALSE;
- item->wd->on_hold = EINA_FALSE;
- return;
+ item->wd->longpressed = EINA_FALSE;
+ item->wd->on_hold = EINA_FALSE;
+ return;
}
if (item->wd->longpressed)
{
- item->wd->longpressed = EINA_FALSE;
- if (!item->wd->wasselected) _item_unselect(item);
- item->wd->wasselected = EINA_FALSE;
- return;
+ item->wd->longpressed = EINA_FALSE;
+ if (!item->wd->wasselected) _item_unselect(item);
+ item->wd->wasselected = EINA_FALSE;
+ return;
}
if (dragged)
{
- if (item->want_unrealize) _item_unrealize(item);
+ if (item->want_unrealize) _item_unrealize(item);
}
if ((item->disabled) || (dragged)) return;
if (item->wd->multi)
{
- if (!item->selected)
- {
- _item_hilight(item);
- _item_select(item);
- }
- else _item_unselect(item);
+ if (!item->selected)
+ {
+ _item_hilight(item);
+ _item_select(item);
+ }
+ else _item_unselect(item);
}
else
{
- if (!item->selected)
- {
- while (item->wd->selected)
- _item_unselect(item->wd->selected->data);
- }
- else
- {
- const Eina_List *l, *l_next;
- Elm_Gengrid_Item *item2;
-
- EINA_LIST_FOREACH_SAFE(item->wd->selected, l, l_next, item2)
- if (item2 != item) _item_unselect(item2);
- }
- _item_hilight(item);
- _item_select(item);
+ if (!item->selected)
+ {
+ while (item->wd->selected)
+ _item_unselect(item->wd->selected->data);
+ }
+ else
+ {
+ const Eina_List *l, *l_next;
+ Elm_Gengrid_Item *item2;
+
+ EINA_LIST_FOREACH_SAFE(item->wd->selected, l, l_next, item2)
+ if (item2 != item) _item_unselect(item2);
+ }
+ _item_hilight(item);
+ _item_select(item);
}
}
if ((item->realized) || (item->delete_me)) return;
item->base.view = edje_object_add(evas_object_evas_get(item->wd->self));
edje_object_scale_set(item->base.view, elm_widget_scale_get(item->wd->self) *
- _elm_config->scale);
+ _elm_config->scale);
evas_object_smart_member_add(item->base.view, item->wd->pan_smart);
elm_widget_sub_object_add(item->wd->self, item->base.view);
snprintf(style, sizeof(style), "item/%s",
- item->gic->item_style ? item->gic->item_style : "default");
+ item->gic->item_style ? item->gic->item_style : "default");
_elm_theme_object_set(item->wd->self, item->base.view, "gengrid", style,
elm_widget_style_get(item->wd->self));
- item->spacer = evas_object_rectangle_add(evas_object_evas_get(item->wd->self));
+ item->spacer =
+ evas_object_rectangle_add(evas_object_evas_get(item->wd->self));
evas_object_color_set(item->spacer, 0, 0, 0, 0);
elm_widget_sub_object_add(item->wd->self, item->spacer);
evas_object_size_hint_min_set(item->spacer, 2 * _elm_config->scale, 1);
if (item->gic->func.label_get)
{
- const Eina_List *l;
- const char *key;
-
- item->labels = elm_widget_stringlist_get(edje_object_data_get(item->base.view,
- "labels"));
- EINA_LIST_FOREACH(item->labels, l, key)
- {
- char *s = item->gic->func.label_get
- ((void *)item->base.data, item->wd->self, l->data);
- if (s)
- {
- edje_object_part_text_set(item->base.view, l->data, s);
- free(s);
- }
- }
+ const Eina_List *l;
+ const char *key;
+
+ item->labels =
+ elm_widget_stringlist_get(edje_object_data_get(item->base.view,
+ "labels"));
+ EINA_LIST_FOREACH(item->labels, l, key)
+ {
+ char *s = item->gic->func.label_get
+ ((void *)item->base.data, item->wd->self, l->data);
+ if (s)
+ {
+ edje_object_part_text_set(item->base.view, l->data, s);
+ free(s);
+ }
+ }
}
if (item->gic->func.icon_get)
{
- const Eina_List *l;
- const char *key;
-
- item->icons = elm_widget_stringlist_get(edje_object_data_get(item->base.view,
- "icons"));
- EINA_LIST_FOREACH(item->icons, l, key)
- {
- Evas_Object *ic = item->gic->func.icon_get
- ((void *)item->base.data, item->wd->self, l->data);
- if (ic)
- {
- item->icon_objs = eina_list_append(item->icon_objs, ic);
- edje_object_part_swallow(item->base.view, key, ic);
- evas_object_show(ic);
- elm_widget_sub_object_add(item->wd->self, ic);
- }
- }
+ const Eina_List *l;
+ const char *key;
+
+ item->icons =
+ elm_widget_stringlist_get(edje_object_data_get(item->base.view,
+ "icons"));
+ EINA_LIST_FOREACH(item->icons, l, key)
+ {
+ Evas_Object *ic = item->gic->func.icon_get
+ ((void *)item->base.data, item->wd->self, l->data);
+ if (ic)
+ {
+ item->icon_objs = eina_list_append(item->icon_objs, ic);
+ edje_object_part_swallow(item->base.view, key, ic);
+ evas_object_show(ic);
+ elm_widget_sub_object_add(item->wd->self, ic);
+ }
+ }
}
if (item->gic->func.state_get)
{
- const Eina_List *l;
- const char *key;
-
- item->states = elm_widget_stringlist_get(edje_object_data_get(item->base.view,
- "states"));
- EINA_LIST_FOREACH(item->states, l, key)
- {
- Eina_Bool on = item->gic->func.state_get
- ((void *)item->base.data, item->wd->self, l->data);
- if (on)
- {
- snprintf(buf, sizeof(buf), "elm,state,%s,active", key);
- edje_object_signal_emit(item->base.view, buf, "elm");
- }
- }
+ const Eina_List *l;
+ const char *key;
+
+ item->states =
+ elm_widget_stringlist_get(edje_object_data_get(item->base.view,
+ "states"));
+ EINA_LIST_FOREACH(item->states, l, key)
+ {
+ Eina_Bool on = item->gic->func.state_get
+ ((void *)item->base.data, item->wd->self, l->data);
+ if (on)
+ {
+ snprintf(buf, sizeof(buf), "elm,state,%s,active", key);
+ edje_object_signal_emit(item->base.view, buf, "elm");
+ }
+ }
}
if ((!item->wd->item_width) && (!item->wd->item_height))
{
- edje_object_size_min_restricted_calc(item->base.view,
- &item->wd->item_width, &item->wd->item_height,
- item->wd->item_width, item->wd->item_height);
- elm_coords_finger_size_adjust(1, &item->wd->item_width,
- 1, &item->wd->item_height);
+ edje_object_size_min_restricted_calc(item->base.view,
+ &item->wd->item_width,
+ &item->wd->item_height,
+ item->wd->item_width,
+ item->wd->item_height);
+ elm_coords_finger_size_adjust(1, &item->wd->item_width,
+ 1, &item->wd->item_height);
}
evas_object_event_callback_add(item->base.view, EVAS_CALLBACK_MOUSE_DOWN,
- _mouse_down, item);
+ _mouse_down, item);
evas_object_event_callback_add(item->base.view, EVAS_CALLBACK_MOUSE_UP,
- _mouse_up, item);
+ _mouse_up, item);
evas_object_event_callback_add(item->base.view, EVAS_CALLBACK_MOUSE_MOVE,
- _mouse_move, item);
+ _mouse_move, item);
if (item->selected)
edje_object_signal_emit(item->base.view, "elm,state,selected", "elm");
if (item->tooltip.content_cb)
{
- elm_widget_item_tooltip_content_cb_set(item,
- item->tooltip.content_cb,
- item->tooltip.data, NULL);
- elm_widget_item_tooltip_style_set(item, item->tooltip.style);
+ elm_widget_item_tooltip_content_cb_set(item,
+ item->tooltip.content_cb,
+ item->tooltip.data, NULL);
+ elm_widget_item_tooltip_style_set(item, item->tooltip.style);
}
if (item->mouse_cursor)
if (!item->realized) return;
if (item->long_timer)
{
- ecore_timer_del(item->long_timer);
- item->long_timer = NULL;
+ ecore_timer_del(item->long_timer);
+ item->long_timer = NULL;
}
evas_object_del(item->base.view);
item->base.view = NULL;
}
static void
-_item_place(Elm_Gengrid_Item *item, Evas_Coord cx, Evas_Coord cy)
+_item_place(Elm_Gengrid_Item *item,
+ Evas_Coord cx,
+ Evas_Coord cy)
{
Evas_Coord x, y, ox, oy, cvx, cvy, cvw, cvh;
Evas_Coord tch, tcw, alignw = 0, alignh = 0, vw, vh;
int columns, items_visible = 0, items_row;
if (item->wd->item_height > 0)
- items_visible = vh / item->wd->item_height;
+ items_visible = vh / item->wd->item_height;
if (items_visible < 1)
- items_visible = 1;
+ items_visible = 1;
columns = item->wd->count / items_visible;
if (item->wd->count % items_visible)
- columns++;
+ columns++;
tcw = item->wd->item_width * columns;
alignw = (vw - tcw) * item->wd->align_x;
items_row = items_visible;
if (items_row > item->wd->count)
- items_row = item->wd->count;
+ items_row = item->wd->count;
tch = items_row * item->wd->item_height;
alignh = (vh - tch) * item->wd->align_y;
}
int rows, items_visible = 0, items_col;
if (item->wd->item_width > 0)
- items_visible = vw / item->wd->item_width;
+ items_visible = vw / item->wd->item_width;
if (items_visible < 1)
- items_visible = 1;
+ items_visible = 1;
rows = item->wd->count / items_visible;
if (item->wd->count % items_visible)
- rows++;
+ rows++;
tch = item->wd->item_height * rows;
alignh = (vh - tch) * item->wd->align_y;
items_col = items_visible;
if (items_col > item->wd->count)
- items_col = item->wd->count;
+ items_col = item->wd->count;
tcw = items_col * item->wd->item_width;
alignw = (vw - tcw) * item->wd->align_x;
}
Eina_Bool was_realized = item->realized;
if (ELM_RECTS_INTERSECT(x, y, item->wd->item_width, item->wd->item_height,
- cvx, cvy, cvw, cvh))
+ cvx, cvy, cvw, cvh))
{
- _item_realize(item);
- if (!was_realized)
- evas_object_smart_callback_call(item->wd->self, "realized", item);
- evas_object_move(item->base.view, x, y);
- evas_object_resize(item->base.view, item->wd->item_width,
- item->wd->item_height);
+ _item_realize(item);
+ if (!was_realized)
+ evas_object_smart_callback_call(item->wd->self, "realized", item);
+ evas_object_move(item->base.view, x, y);
+ evas_object_resize(item->base.view, item->wd->item_width,
+ item->wd->item_height);
}
else
{
_item_unrealize(item);
- if (was_realized)
- evas_object_smart_callback_call(item->wd->self, "unrealized", item);
+ if (was_realized)
+ evas_object_smart_callback_call(item->wd->self, "unrealized", item);
}
}
static Elm_Gengrid_Item *
-_item_create(Widget_Data *wd, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data)
+_item_create(Widget_Data *wd,
+ const Elm_Gengrid_Item_Class *gic,
+ const void *data,
+ Evas_Smart_Cb func,
+ const void *func_data)
{
Elm_Gengrid_Item *item;
if ((item->wd->no_select) || (item->delete_me)) return;
if (item->selected)
{
- if (item->wd->always_select) goto call;
- return;
+ if (item->wd->always_select) goto call;
+ return;
}
item->selected = EINA_TRUE;
item->wd->selected = eina_list_append(item->wd->selected, item);
item->hilighted = EINA_FALSE;
if (item->selected)
{
- item->selected = EINA_FALSE;
- item->wd->selected = eina_list_remove(item->wd->selected, item);
- evas_object_smart_callback_call(item->wd->self, "unselected", item);
+ item->selected = EINA_FALSE;
+ item->wd->selected = eina_list_remove(item->wd->selected, item);
+ evas_object_smart_callback_call(item->wd->self, "unselected", item);
}
}
count = wd->count;
if (wd->horizontal)
{
- minw = ceil(count / (float)nmax) * wd->item_width;
+ minw = ceil(count / (float)nmax) * wd->item_width;
minh = nmax * wd->item_height;
}
else
if ((minw != wd->minw) || (minh != wd->minh))
{
- wd->minh = minh;
- wd->minw = minw;
- evas_object_smart_callback_call(wd->pan_smart, "changed", NULL);
+ wd->minh = minh;
+ wd->minw = minw;
+ evas_object_smart_callback_call(wd->pan_smart, "changed", NULL);
}
wd->nmax = nmax;
}
static void
-_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
+_pan_set(Evas_Object *obj,
+ Evas_Coord x,
+ Evas_Coord y)
{
Pan *sd = evas_object_smart_data_get(obj);
if ((x == sd->wd->pan_x) && (y == sd->wd->pan_y)) return;
}
static void
-_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
+_pan_get(Evas_Object *obj,
+ Evas_Coord *x,
+ Evas_Coord *y)
{
Pan *sd = evas_object_smart_data_get(obj);
if (x) *x = sd->wd->pan_x;
}
static void
-_pan_child_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
+_pan_child_size_get(Evas_Object *obj,
+ Evas_Coord *w,
+ Evas_Coord *h)
{
Pan *sd = evas_object_smart_data_get(obj);
if (w) *w = sd->wd->minw;
}
static void
-_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
+_pan_max_get(Evas_Object *obj,
+ Evas_Coord *x,
+ Evas_Coord *y)
{
Pan *sd = evas_object_smart_data_get(obj);
Evas_Coord ow, oh;
}
static void
-_pan_min_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
+_pan_min_get(Evas_Object *obj,
+ Evas_Coord *x,
+ Evas_Coord *y)
{
Pan *sd = evas_object_smart_data_get(obj);
Evas_Coord mx, my;
if (!sd) return;
_pan_max_get(obj, &mx, &my);
if (x)
- *x = -mx * sd->wd->align_x;
+ *x = -mx * sd->wd->align_x;
if (y)
- *y = -my * sd->wd->align_y;
+ *y = -my * sd->wd->align_y;
}
static void
-_pan_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+_pan_resize(Evas_Object *obj,
+ Evas_Coord w,
+ Evas_Coord h)
{
Pan *sd = evas_object_smart_data_get(obj);
Evas_Coord ow, oh;
if (!sd->wd->nmax) return;
EINA_INLIST_FOREACH(sd->wd->items, item)
- {
- _item_place(item, cx, cy);
- if (sd->wd->horizontal)
- {
- cy = (cy + 1) % sd->wd->nmax;
- if (!cy) cx++;
- }
- else
- {
- cx = (cx + 1) % sd->wd->nmax;
- if (!cx) cy++;
- }
- }
+ {
+ _item_place(item, cx, cy);
+ if (sd->wd->horizontal)
+ {
+ cy = (cy + 1) % sd->wd->nmax;
+ if (!cy) cx++;
+ }
+ else
+ {
+ cx = (cx + 1) % sd->wd->nmax;
+ if (!cx) cy++;
+ }
+ }
evas_object_smart_callback_call(sd->wd->self, "changed", NULL);
}
static void
-_pan_move(Evas_Object *obj, Evas_Coord x __UNUSED__, Evas_Coord y __UNUSED__)
+_pan_move(Evas_Object *obj,
+ Evas_Coord x __UNUSED__,
+ Evas_Coord y __UNUSED__)
{
Pan *sd = evas_object_smart_data_get(obj);
if (!sd) return;
}
static void
-_hold_on(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+_hold_on(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_hold_off(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+_hold_off(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_freeze_on(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+_freeze_on(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_freeze_off(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+_freeze_off(void *data __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
}
static void
-_scr_drag_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_scr_drag_start(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, "scroll,drag,start", NULL);
}
static void
-_scr_drag_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_scr_drag_stop(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, "scroll,drag,stop", NULL);
}
static void
-_scr_scroll(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_scr_scroll(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
{
evas_object_smart_callback_call(data, "scroll", NULL);
}
wd->scr = elm_smart_scroller_add(e);
elm_smart_scroller_widget_set(wd->scr, obj);
- elm_smart_scroller_object_theme_set(obj, wd->scr, "gengrid", "base", "default");
+ elm_smart_scroller_object_theme_set(obj, wd->scr, "gengrid", "base",
+ "default");
elm_widget_resize_object_set(obj, wd->scr);
evas_object_smart_callback_add(wd->scr, "drag,start", _scr_drag_start, obj);
if (!smart)
{
- static Evas_Smart_Class sc;
-
- evas_object_smart_clipped_smart_set(&_pan_sc);
- sc = _pan_sc;
- sc.name = "elm_gengrid_pan";
- sc.version = EVAS_SMART_CLASS_VERSION;
- sc.add = _pan_add;
- sc.del = _pan_del;
- sc.resize = _pan_resize;
- sc.move = _pan_move;
- sc.calculate = _pan_calculate;
- smart = evas_smart_class_new(&sc);
+ static Evas_Smart_Class sc;
+
+ evas_object_smart_clipped_smart_set(&_pan_sc);
+ sc = _pan_sc;
+ sc.name = "elm_gengrid_pan";
+ sc.version = EVAS_SMART_CLASS_VERSION;
+ sc.add = _pan_add;
+ sc.del = _pan_del;
+ sc.resize = _pan_resize;
+ sc.move = _pan_move;
+ sc.calculate = _pan_calculate;
+ smart = evas_smart_class_new(&sc);
}
if (smart)
{
- wd->pan_smart = evas_object_smart_add(e, smart);
- wd->pan = evas_object_smart_data_get(wd->pan_smart);
- wd->pan->wd = wd;
+ wd->pan_smart = evas_object_smart_add(e, smart);
+ wd->pan = evas_object_smart_data_get(wd->pan_smart);
+ wd->pan->wd = wd;
}
elm_smart_scroller_extern_pan_set(wd->scr, wd->pan_smart,
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+elm_gengrid_item_size_set(Evas_Object *obj,
+ Evas_Coord w,
+ Evas_Coord h)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
+elm_gengrid_item_size_get(const Evas_Object *obj,
+ Evas_Coord *w,
+ Evas_Coord *h)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_align_set(Evas_Object *obj, double align_x, double align_y)
+elm_gengrid_align_set(Evas_Object *obj,
+ double align_x,
+ double align_y)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_align_get(const Evas_Object *obj, double *align_x, double *align_y)
+elm_gengrid_align_get(const Evas_Object *obj,
+ double *align_x,
+ double *align_y)
{
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- if (align_x) *align_x = wd->align_x;
- if (align_y) *align_y = wd->align_y;
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (align_x) *align_x = wd->align_x;
+ if (align_y) *align_y = wd->align_y;
}
/**
* @ingroup Gengrid
*/
EAPI Elm_Gengrid_Item *
-elm_gengrid_item_append(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic,
- const void *data, Evas_Smart_Cb func,
- const void *func_data)
+elm_gengrid_item_append(Evas_Object *obj,
+ const Elm_Gengrid_Item_Class *gic,
+ const void *data,
+ Evas_Smart_Cb func,
+ const void *func_data)
{
Elm_Gengrid_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
}
/**
- * Add item at start of the Gengrid.
- *
- * This adds an item to the beginning of the grid.
- *
- * @param obj The Gengrid object.
- * @param gic The item class for the item.
- * @param data The item data.
- * @param func Convenience function called when item is selected.
- * @param func_data Data passed to @p func above.
- * @return A handle to the item added or NULL if not possible.
- *
- * @see elm_gengrid_item_append()
- * @see elm_gengrid_item_insert_before()
- * @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
- *
- * @ingroup Gengrid
- */
+ * Add item at start of the Gengrid.
+ *
+ * This adds an item to the beginning of the grid.
+ *
+ * @param obj The Gengrid object.
+ * @param gic The item class for the item.
+ * @param data The item data.
+ * @param func Convenience function called when item is selected.
+ * @param func_data Data passed to @p func above.
+ * @return A handle to the item added or NULL if not possible.
+ *
+ * @see elm_gengrid_item_append()
+ * @see elm_gengrid_item_insert_before()
+ * @see elm_gengrid_item_insert_after()
+ * @see elm_gengrid_item_del()
+ *
+ * @ingroup Gengrid
+ */
EAPI Elm_Gengrid_Item *
-elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic,
- const void *data, Evas_Smart_Cb func,
- const void *func_data)
+elm_gengrid_item_prepend(Evas_Object *obj,
+ const Elm_Gengrid_Item_Class *gic,
+ const void *data,
+ Evas_Smart_Cb func,
+ const void *func_data)
{
Elm_Gengrid_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
}
/**
- * Insert and item before another in the Gengrid.
- *
- * This inserts an item before another in the grid.
- *
- * @param obj The Gengrid object.
- * @param gic The item class for the item.
- * @param data The item data.
- * @param relative The item to which insert before.
- * @param func Convenience function called when item is selected.
- * @param func_data Data passed to @p func above.
- * @return A handle to the item added or NULL if not possible.
- *
- * @see elm_gengrid_item_append()
- * @see elm_gengrid_item_prepend()
- * @see elm_gengrid_item_insert_after()
- * @see elm_gengrid_item_del()
- *
- * @ingroup Gengrid
+ * Insert and item before another in the Gengrid.
+ *
+ * This inserts an item before another in the grid.
+ *
+ * @param obj The Gengrid object.
+ * @param gic The item class for the item.
+ * @param data The item data.
+ * @param relative The item to which insert before.
+ * @param func Convenience function called when item is selected.
+ * @param func_data Data passed to @p func above.
+ * @return A handle to the item added or NULL if not possible.
+ *
+ * @see elm_gengrid_item_append()
+ * @see elm_gengrid_item_prepend()
+ * @see elm_gengrid_item_insert_after()
+ * @see elm_gengrid_item_del()
+ *
+ * @ingroup Gengrid
*/
EAPI Elm_Gengrid_Item *
-elm_gengrid_item_insert_before(Evas_Object *obj,
+elm_gengrid_item_insert_before(Evas_Object *obj,
const Elm_Gengrid_Item_Class *gic,
- const void *data,
- Elm_Gengrid_Item *relative,
- Evas_Smart_Cb func, const void *func_data)
+ const void *data,
+ Elm_Gengrid_Item *relative,
+ Evas_Smart_Cb func,
+ const void *func_data)
{
Elm_Gengrid_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
item = _item_create(wd, gic, data, func, func_data);
if (!item) return NULL;
wd->items = eina_inlist_prepend_relative
- (wd->items, EINA_INLIST_GET(item), EINA_INLIST_GET(relative));
+ (wd->items, EINA_INLIST_GET(item), EINA_INLIST_GET(relative));
if (wd->calc_job) ecore_job_del(wd->calc_job);
wd->calc_job = ecore_job_add(_calc_job, wd);
}
/**
- * Insert and item after another in the Gengrid.
- *
- * This inserts an item after another in the grid.
- *
- * @param obj The Gengrid object.
- * @param gic The item class for the item.
- * @param data The item data.
- * @param relative The item to which insert after.
- * @param func Convenience function called when item is selected.
- * @param func_data Data passed to @p func above.
- * @return A handle to the item added or NULL if not possible.
- *
- * @see elm_gengrid_item_append()
- * @see elm_gengrid_item_prepend()
- * @see elm_gengrid_item_insert_before()
- * @see elm_gengrid_item_del()
- *
- * @ingroup Gengrid
+ * Insert and item after another in the Gengrid.
+ *
+ * This inserts an item after another in the grid.
+ *
+ * @param obj The Gengrid object.
+ * @param gic The item class for the item.
+ * @param data The item data.
+ * @param relative The item to which insert after.
+ * @param func Convenience function called when item is selected.
+ * @param func_data Data passed to @p func above.
+ * @return A handle to the item added or NULL if not possible.
+ *
+ * @see elm_gengrid_item_append()
+ * @see elm_gengrid_item_prepend()
+ * @see elm_gengrid_item_insert_before()
+ * @see elm_gengrid_item_del()
+ *
+ * @ingroup Gengrid
*/
EAPI Elm_Gengrid_Item *
-elm_gengrid_item_insert_after(Evas_Object *obj,
+elm_gengrid_item_insert_after(Evas_Object *obj,
const Elm_Gengrid_Item_Class *gic,
- const void *data,
- Elm_Gengrid_Item *relative,
- Evas_Smart_Cb func, const void *func_data)
+ const void *data,
+ Elm_Gengrid_Item *relative,
+ Evas_Smart_Cb func,
+ const void *func_data)
{
Elm_Gengrid_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
item = _item_create(wd, gic, data, func, func_data);
if (!item) return NULL;
wd->items = eina_inlist_append_relative
- (wd->items, EINA_INLIST_GET(item), EINA_INLIST_GET(relative));
+ (wd->items, EINA_INLIST_GET(item), EINA_INLIST_GET(relative));
if (wd->calc_job) ecore_job_del(wd->calc_job);
wd->calc_job = ecore_job_add(_calc_job, wd);
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
if ((item->relcount > 0) || (item->walking > 0))
{
- item->delete_me = EINA_TRUE;
+ item->delete_me = EINA_TRUE;
elm_widget_item_pre_notify_del(item);
- if (item->selected)
- item->wd->selected = eina_list_remove(item->wd->selected, item);
- if (item->gic->func.del)
- item->gic->func.del((void *)item->base.data, item->wd->self);
- return;
+ if (item->selected)
+ item->wd->selected = eina_list_remove(item->wd->selected, item);
+ if (item->gic->func.del)
+ item->gic->func.del((void *)item->base.data, item->wd->self);
+ return;
}
_item_del(item);
* Set for what direction the Gengrid will expand.
*
* @param obj The Gengrid object.
- * @param setting If @c EINA_TRUE the Gengrid will expand horizontally or
- * vertically if @c EINA_FALSE.
+ * @param setting If @c EINA_TRUE the Gengrid will expand horizontally
+ * or vertically if @c EINA_FALSE.
*
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting)
+elm_gengrid_horizontal_set(Evas_Object *obj,
+ Eina_Bool setting)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
Elm_Gengrid_Item *item;
wd->clear_me = 1;
EINA_INLIST_FOREACH(wd->items, item)
- item->delete_me = 1;
+ item->delete_me = 1;
return;
}
wd->clear_me = 0;
/**
* Get the real evas object of the Gengrid item
*
- * This returns the actual evas object used for the specified Gengrid item.
- * This may be NULL as it may not be created, and may be deleted at any time
- * by Gengrid. Do not modify this object (move, resize, show, hide etc.) as
- * Gengrid is controlling it. This function is for querying, emitting custom
- * signals or hooking lower level callbacks for events. Do not delete this
- * object under any circumstances.
+ * This returns the actual evas object used for the specified Gengrid
+ * item. This may be NULL as it may not be created, and may be
+ * deleted at any time by Gengrid. Do not modify this object (move,
+ * resize, show, hide etc.) as Gengrid is controlling it. This
+ * function is for querying, emitting custom signals or hooking lower
+ * level callbacks for events. Do not delete this object under any
+ * circumstances.
*
* @param item The Gengrid item.
* @return the evas object associated to this item.
/**
* Update the contents of an item
*
- * This updates an item by calling all the item class functions again to get
- * the icons, labels and states. Use this when the original item data has
- * changed and the changes are desired to be reflected.
+ * This updates an item by calling all the item class functions again
+ * to get the icons, labels and states. Use this when the original
+ * item data has changed and the changes are desired to be reflected.
*
* @param item The item
*
/**
* Returns the data associated to a item
*
- * This returns the data value passed on the elm_gengrid_item_append() and
- * related item addition calls.
+ * This returns the data value passed on the elm_gengrid_item_append()
+ * and related item addition calls.
*
* @param item The Gengrid item.
* @return the data associated to this item.
*
* This set the data value passed on the elm_gengrid_item_append() and
* related item addition calls. This function will also call
- * elm_gengrid_item_update() so the item will be updated to reflect the
- * new data.
+ * elm_gengrid_item_update() so the item will be updated to reflect
+ * the new data.
*
* @param item The item
* @param data The new data pointer to set
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_data_set(Elm_Gengrid_Item *item, const void *data)
+elm_gengrid_item_data_set(Elm_Gengrid_Item *item,
+ const void *data)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
elm_widget_item_data_set(item, data);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_pos_get(const Elm_Gengrid_Item *item, unsigned int *x, unsigned int *y)
+elm_gengrid_item_pos_get(const Elm_Gengrid_Item *item,
+ unsigned int *x,
+ unsigned int *y)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
if (x) *x = item->x;
/**
* Enable or disable multi-select in the Gengrid.
*
- * This enables (EINA_TRUE) or disables (EINA_FALSE) multi-select in the Gengrid.
- * This allows more than 1 item to be selected.
+ * This enables (EINA_TRUE) or disables (EINA_FALSE) multi-select in
+ * the Gengrid. This allows more than 1 item to be selected.
*
* @param obj The Gengrid object.
* @param multi Multi-select enabled/disabled
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi)
+elm_gengrid_multi_select_set(Evas_Object *obj,
+ Eina_Bool multi)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
/**
* Get the selected item in the Gengrid
*
- * This gets the selected item in the Gengrid (if multi-select is enabled only
- * the first item in the list is selected - which is not very useful, so see
- * elm_gengrid_selected_items_get() for when multi-select is used).
+ * This gets the selected item in the Gengrid (if multi-select is
+ * enabled only the first item in the list is selected - which is not
+ * very useful, so see elm_gengrid_selected_items_get() for when
+ * multi-select is used).
*
* If no item is selected, NULL is returned.
*
/**
* Get a list of selected items in the Gengrid.
*
- * This returns a list of the selected items. This list pointer is only valid
- * so long as no items are selected or unselected (or unselected implictly by
- * deletion). The list contains Elm_Gengrid_Item pointers.
+ * This returns a list of the selected items. This list pointer is
+ * only valid so long as no items are selected or unselected (or
+ * unselected implictly by deletion). The list contains
+ * Elm_Gengrid_Item pointers.
*
* @param obj The Gengrid object.
* @return The list of selected items, or NULL if none are selected.
/**
* Set the selected state of a item.
*
- * This sets the selected state of a item. If multi-select is not enabled and
- * selected is EINA_TRUE, previously selected items are unselected.
+ * This sets the selected state of a item. If multi-select is not
+ * enabled and selected is EINA_TRUE, previously selected items are
+ * unselected.
*
* @param item The item
* @param selected The selected state.
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected)
+elm_gengrid_item_selected_set(Elm_Gengrid_Item *item,
+ Eina_Bool selected)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
Widget_Data *wd = item->wd;
if (selected)
{
- if (!wd->multi)
- {
- while (wd->selected)
- _item_unselect(wd->selected->data);
- }
- _item_hilight(item);
- _item_select(item);
+ if (!wd->multi)
+ {
+ while (wd->selected)
+ _item_unselect(wd->selected->data);
+ }
+ _item_hilight(item);
+ _item_select(item);
}
else
_item_unselect(item);
/**
* Sets the disabled state of a item.
*
- * A disabled item cannot be selected or unselected. It will also change
- * appearance to disabled. This sets the disabled state (1 disabled, 0 not
- * disabled).
+ * A disabled item cannot be selected or unselected. It will also
+ * change appearance to disabled. This sets the disabled state (1
+ * disabled, 0 not disabled).
*
* @param item The item
* @param disabled The disabled state
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_disabled_set(Elm_Gengrid_Item *item, Eina_Bool disabled)
+elm_gengrid_item_disabled_set(Elm_Gengrid_Item *item,
+ Eina_Bool disabled)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
if (item->disabled == disabled) return;
item->disabled = disabled;
if (item->realized)
{
- if (item->disabled)
- edje_object_signal_emit(item->base.view, "elm,state,disabled", "elm");
- else
- edje_object_signal_emit(item->base.view, "elm,state,enabled", "elm");
+ if (item->disabled)
+ edje_object_signal_emit(item->base.view, "elm,state,disabled", "elm");
+ else
+ edje_object_signal_emit(item->base.view, "elm,state,enabled", "elm");
}
}
}
static Evas_Object *
-_elm_gengrid_item_label_create(void *data, Evas_Object *obj, void *item __UNUSED__)
+_elm_gengrid_item_label_create(void *data,
+ Evas_Object *obj,
+ void *item __UNUSED__)
{
Evas_Object *label = elm_label_add(obj);
if (!label)
}
static void
-_elm_gengrid_item_label_del_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_elm_gengrid_item_label_del_cb(void *data,
+ Evas_Object *obj __UNUSED__,
+ void *event_info __UNUSED__)
{
eina_stringshare_del(data);
}
* @param item Target item
* @param text The text to set in the content
*
- * Setup the text as tooltip to object. The item can have only one tooltip,
- * so any previous tooltip data is removed.
+ * Setup the text as tooltip to object. The item can have only one
+ * tooltip, so any previous tooltip data is removed.
*
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_tooltip_text_set(Elm_Gengrid_Item *item, const char *text)
+elm_gengrid_item_tooltip_text_set(Elm_Gengrid_Item *item,
+ const char *text)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
text = eina_stringshare_add(text);
- elm_gengrid_item_tooltip_content_cb_set(item, _elm_gengrid_item_label_create, text, _elm_gengrid_item_label_del_cb);
+ elm_gengrid_item_tooltip_content_cb_set(item, _elm_gengrid_item_label_create,
+ text,
+ _elm_gengrid_item_label_del_cb);
}
/**
* Set the content to be shown in the tooltip item
*
- * Setup the tooltip to item. The item can have only one tooltip,
- * so any previous tooltip data is removed. @p func(with @p data) will
- * be called every time that need show the tooltip and it should
- * return a valid Evas_Object. This object is then managed fully by
- * tooltip system and is deleted when the tooltip is gone.
+ * Setup the tooltip to item. The item can have only one tooltip, so
+ * any previous tooltip data is removed. @p func(with @p data) will be
+ * called every time that need show the tooltip and it should return a
+ * valid Evas_Object. This object is then managed fully by tooltip
+ * system and is deleted when the tooltip is gone.
*
* @param item the gengrid item being attached a tooltip.
* @param func the function used to create the tooltip contents.
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_tooltip_content_cb_set(Elm_Gengrid_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb)
+elm_gengrid_item_tooltip_content_cb_set(Elm_Gengrid_Item *item,
+ Elm_Tooltip_Item_Content_Cb func,
+ const void *data,
+ Evas_Smart_Cb del_cb)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_GOTO(item, error);
if (item->tooltip.del_cb)
item->tooltip.del_cb((void *)item->tooltip.data,
- item->base.widget, item);
+ item->base.widget, item);
item->tooltip.content_cb = func;
item->tooltip.data = data;
item->tooltip.del_cb = del_cb;
if (item->base.view)
{
- elm_widget_item_tooltip_content_cb_set(item,
- item->tooltip.content_cb,
- item->tooltip.data, NULL);
- elm_widget_item_tooltip_style_set(item, item->tooltip.style);
+ elm_widget_item_tooltip_content_cb_set(item,
+ item->tooltip.content_cb,
+ item->tooltip.data, NULL);
+ elm_widget_item_tooltip_style_set(item, item->tooltip.style);
}
return;
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
if ((item->base.view) && (item->tooltip.content_cb))
- elm_widget_item_tooltip_unset(item);
+ elm_widget_item_tooltip_unset(item);
if (item->tooltip.del_cb)
item->tooltip.del_cb((void *)item->tooltip.data, item->base.widget, item);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_tooltip_style_set(Elm_Gengrid_Item *item, const char *style)
+elm_gengrid_item_tooltip_style_set(Elm_Gengrid_Item *item,
+ const char *style)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
eina_stringshare_replace(&item->tooltip.style, style);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_cursor_set(Elm_Gengrid_Item *item, const char *cursor)
+elm_gengrid_item_cursor_set(Elm_Gengrid_Item *item,
+ const char *cursor)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
eina_stringshare_replace(&item->mouse_cursor, cursor);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_cursor_style_set(Elm_Gengrid_Item *item, const char *style)
+elm_gengrid_item_cursor_style_set(Elm_Gengrid_Item *item,
+ const char *style)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
elm_widget_item_cursor_style_set(item, style);
* Set if the cursor set should be searched on the theme or should use
* the provided by the engine, only.
*
- * @note before you set if should look on theme you should define a cursor
- * with elm_object_cursor_set(). By default it will only look for cursors
- * provided by the engine.
+ * @note before you set if should look on theme you should define a
+ * cursor with elm_object_cursor_set(). By default it will only look
+ * for cursors provided by the engine.
*
* @param item widget item with cursor already set.
- * @param engine_only boolean to define it cursors should be looked only
- * between the provided by the engine or searched on widget's theme as well.
+ * @param engine_only boolean to define it cursors should be looked
+ * only between the provided by the engine or searched on widget's
+ * theme as well.
*
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_item_cursor_engine_only_set(Elm_Gengrid_Item *item, Eina_Bool engine_only)
+elm_gengrid_item_cursor_engine_only_set(Elm_Gengrid_Item *item,
+ Eina_Bool engine_only)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
elm_widget_item_cursor_engine_only_set(item, engine_only);
* Get the cursor engine only usage for this item cursor.
*
* @param item widget item with cursor already set.
- * @return engine_only boolean to define it cursors should be looked only
- * between the provided by the engine or searched on widget's theme as well. If
- * the object does not have a cursor set, then EINA_FALSE is returned.
+ * @return engine_only boolean to define it cursors should be looked
+ * only between the provided by the engine or searched on widget's
+ * theme as well. If the object does not have a cursor set, then
+ * EINA_FALSE is returned.
*
* @ingroup Gengrid
*/
/**
* Set the always select mode.
*
- * Cells will only call their selection func and callback when first becoming
- * selected. Any further clicks will do nothing, unless you enable always select
- * with elm_gengrid_always_select_mode_set(). This means even if selected,
+ * Cells will only call their selection func and callback when first
+ * becoming selected. Any further clicks will do nothing, unless you
+ * enable always select with
+ * elm_gengrid_always_select_mode_set(). This means even if selected,
* every click will make the selected callbacks be called.
*
* @param obj The Gengrid object
- * @param always_select The always select mode (EINA_TRUE = on, EINA_FALSE = off)
+ * @param always_select The always select mode (EINA_TRUE = on,
+ * EINA_FALSE = off)
*
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select)
+elm_gengrid_always_select_mode_set(Evas_Object *obj,
+ Eina_Bool always_select)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
/**
* Set no select mode.
*
- * This will turn off the ability to select items entirely and they will
- * neither appear selected nor call selected callback functions.
+ * This will turn off the ability to select items entirely and they
+ * will neither appear selected nor call selected callback functions.
*
* @param obj The Gengrid object
* @param no_select The no select mode (EINA_TRUE = on, EINA_FALSE = off)
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select)
+elm_gengrid_no_select_mode_set(Evas_Object *obj,
+ Eina_Bool no_select)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
/**
* Set bounce mode.
*
- * This will enable or disable the scroller bounce mode for the Gengrid. See
- * elm_scroller_bounce_set() for details.
+ * This will enable or disable the scroller bounce mode for the
+ * Gengrid. See elm_scroller_bounce_set() for details.
*
* @param obj The Gengrid object
* @param h_bounce Allow bounce horizontally
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce)
+elm_gengrid_bounce_set(Evas_Object *obj,
+ Eina_Bool h_bounce,
+ Eina_Bool v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce)
+elm_gengrid_bounce_get(const Evas_Object *obj,
+ Eina_Bool *h_bounce,
+ Eina_Bool *v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
/**
* Set gengrid scroll page size relative to viewport size.
*
- * The gengrid scroller is capable of limiting scrolling by the user to "pages"
- * That is to jump by and only show a "whole page" at a time as if the
- * continuous area of the scroller content is split into page sized pieces.
- * This sets the size of a page relative to the viewport of the scroller. 1.0 is
- * "1 viewport" is size (horizontally or vertically). 0.0 turns it off in that
- * axis. This is mutually exclusive with page size
- * (see elm_gengrid_page_size_set() for more information). Likewise 0.5
- * is "half a viewport". Sane usable valus are normally between 0.0 and 1.0
- * including 1.0. If you only want 1 axis to be page "limited", use 0.0 for
- * the other axis.
+ * The gengrid scroller is capable of limiting scrolling by the user
+ * to "pages" That is to jump by and only show a "whole page" at a
+ * time as if the continuous area of the scroller content is split
+ * into page sized pieces. This sets the size of a page relative to
+ * the viewport of the scroller. 1.0 is "1 viewport" is size
+ * (horizontally or vertically). 0.0 turns it off in that axis. This
+ * is mutually exclusive with page size (see
+ * elm_gengrid_page_size_set() for more information). Likewise 0.5 is
+ * "half a viewport". Sane usable valus are normally between 0.0 and
+ * 1.0 including 1.0. If you only want 1 axis to be page "limited",
+ * use 0.0 for the other axis.
*
* @param obj The gengrid object
* @param h_pagerel The horizontal page relative size
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel)
+elm_gengrid_page_relative_set(Evas_Object *obj,
+ double h_pagerel,
+ double v_pagerel)
{
Evas_Coord pagesize_h;
Evas_Coord pagesize_v;
if (!wd) return;
elm_smart_scroller_paging_get(wd->scr, NULL, NULL, &pagesize_h, &pagesize_v);
- elm_smart_scroller_paging_set(wd->scr, h_pagerel, v_pagerel, pagesize_h, pagesize_v);
-
+ elm_smart_scroller_paging_set(wd->scr, h_pagerel, v_pagerel, pagesize_h,
+ pagesize_v);
}
/**
* Set gengrid scroll page size.
*
- * See also elm_gengrid_page_relative_set(). This, instead of a page size
- * being relative to the viewport, sets it to an absolute fixed value, with
- * 0 turning it off for that axis.
+ * See also elm_gengrid_page_relative_set(). This, instead of a page
+ * size being relative to the viewport, sets it to an absolute fixed
+ * value, with 0 turning it off for that axis.
*
* @param obj The gengrid object
* @param h_pagesize The horizontal page size
* @ingroup Gengrid
*/
EAPI void
-elm_gengrid_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize)
-{
+elm_gengrid_page_size_set(Evas_Object *obj,
+ Evas_Coord h_pagesize,
+ Evas_Coord v_pagesize)
+{
double pagerel_h;
double pagerel_v;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_smart_scroller_paging_get(wd->scr, &pagerel_h, &pagerel_v, NULL, NULL);
- elm_smart_scroller_paging_set(wd->scr, pagerel_h, pagerel_v, h_pagesize, v_pagesize);
+ elm_smart_scroller_paging_set(wd->scr, pagerel_h, pagerel_v, h_pagesize,
+ v_pagesize);
}
/**
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
while (item)
{
- item = ELM_GENGRID_ITEM_FROM_INLIST(EINA_INLIST_GET(item)->next);
- if ((item) && (!item->delete_me)) break;
+ item = ELM_GENGRID_ITEM_FROM_INLIST(EINA_INLIST_GET(item)->next);
+ if ((item) && (!item->delete_me)) break;
}
return (Elm_Gengrid_Item *)item;
}
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
while (item)
{
- item = ELM_GENGRID_ITEM_FROM_INLIST(EINA_INLIST_GET(item)->prev);
- if ((item) && (!item->delete_me)) break;
+ item = ELM_GENGRID_ITEM_FROM_INLIST(EINA_INLIST_GET(item)->prev);
+ if ((item) && (!item->delete_me)) break;
}
return (Elm_Gengrid_Item *)item;
}
return item->base.widget;
}
-
/**
* Show the given item
*
- * This causes gengrid to jump to the given item @p item and show it (by scrolling),
- * if it is not fully visible.
+ * This causes gengrid to jump to the given item @p item and show it
+ * (by scrolling), if it is not fully visible.
*
* @param item The item
*
elm_smart_scroller_child_region_show(item->wd->scr,
item->x * wd->item_width + minx,
item->y * wd->item_height + miny,
- item->wd->item_width, item->wd->item_height);
+ item->wd->item_width,
+ item->wd->item_height);
}
/**
* Bring in the given item
*
- * This causes gengrig to jump to the given item @p item and show it (by scrolling),
- * if it is not fully visible. This may use animation to do so and take a
- * period of time
+ * This causes gengrig to jump to the given item @p item and show it
+ * (by scrolling), if it is not fully visible. This may use animation
+ * to do so and take a period of time
*
* @param item The item
*
elm_smart_scroller_region_bring_in(item->wd->scr,
item->x * wd->item_width + minx,
item->y * wd->item_height + miny,
- item->wd->item_width, item->wd->item_height);
+ item->wd->item_width,
+ item->wd->item_height);
}