#include <Elementary.h>
+
#include "elm_priv.h"
/**
Eina_Bool homogeneous:1;
};
-static void _del_hook(Evas_Object * obj);
+static void _del_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object * obj, int mode);
+static void _sizing_eval(Evas_Object *obj, int mode);
-static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj,
- void *event_info);
-static void _changed_size_min(void *data, Evas *e, Evas_Object *obj,
- void *event_info);
+static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _changed_size_min(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _sub_del(void *data, Evas_Object *obj, void *event_info);
static void _show_event(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void
-_del_pre_hook(Evas_Object * obj)
+_del_pre_hook(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
- evas_object_event_callback_del_full(wd->tbl,
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- evas_object_event_callback_del_full(wd->tbl, EVAS_CALLBACK_RESIZE,
- _changed_size_min, obj);
+ evas_object_event_callback_del_full(wd->tbl, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
+ evas_object_event_callback_del_full(wd->tbl, EVAS_CALLBACK_RESIZE, _changed_size_min, obj);
evas_object_del(wd->tbl);
wd->tbl = NULL;
evas_object_del(wd->scr);
}
static void
-_del_hook(Evas_Object * obj)
+_del_hook(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
}
static Eina_Bool
-_arrange_table(Evas_Object * obj)
+_arrange_table(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (wd)
{
- if (wd->tbl)
- {
- int index =
- eina_list_count(evas_object_table_children_get(wd->tbl));
- if (!index)
- return EINA_FALSE;
-
- elm_gridbox_item_size_set(obj, wd->itemsize_h, wd->itemsize_v);
- l = evas_object_table_children_get(wd->tbl);
-
- EINA_LIST_FOREACH(l, l_temp, item)
- {
- evas_object_table_unpack(wd->tbl, item);
- elm_widget_sub_object_del(wd->tbl, item);
- evas_object_table_pack(wd->tbl, item, i % wd->x, i / wd->x, 1,
- 1);
- i++;
- }
- }
+ if (wd->tbl)
+ {
+ int index = eina_list_count(evas_object_table_children_get(wd->tbl));
+ if (!index) return EINA_FALSE;
+
+ elm_gridbox_item_size_set(obj, wd->itemsize_h, wd->itemsize_v);
+ l = evas_object_table_children_get(wd->tbl);
+
+ EINA_LIST_FOREACH(l, l_temp, item)
+ {
+ evas_object_table_unpack(wd->tbl, item);
+ elm_widget_sub_object_del(wd->tbl, item);
+ evas_object_table_pack(wd->tbl, item, i % wd->x, i / wd->x, 1, 1);
+ i++;
+ }
+ }
}
-
return EINA_TRUE;
}
static void
-_sizing_eval(Evas_Object * obj, int mode)
+_sizing_eval(Evas_Object *obj, int mode)
{
Widget_Data *wd = elm_widget_data_get(obj);
evas_object_size_hint_max_set(obj, maxw, maxh);
evas_object_geometry_get(wd->scr, NULL, NULL, &w, &h);
- if (w < minw)
- w = minw;
- if (h < minh)
- h = minh;
- if ((maxw >= 0) && (w > maxw))
- w = maxw;
+ if (w < minw) w = minw;
+ if (h < minh) h = minh;
+ if ((maxw >= 0) && (w > maxw))
+ w = maxw;
if ((maxh >= 0) && (h > maxh))
- h = maxh;
+ h = maxh;
evas_object_resize(obj, w, h);
wd->minw = w;
wd->minh = h;
if (w < wd->itemsize_h || h < wd->itemsize_v)
- return;
+ return;
if (wd->homogeneous)
{
- wd->x = w / wd->itemsize_h;
- wd->y = h / wd->itemsize_v;
- wd->horizontal = (wd->minw - wd->x * wd->itemsize_h) / wd->x;
- wd->vertical = (wd->minh - wd->y * wd->itemsize_v) / wd->y;
- elm_gridbox_padding_set(obj, wd->horizontal, wd->vertical);
+ wd->x = w / wd->itemsize_h;
+ wd->y = h / wd->itemsize_v;
+ wd->horizontal = (wd->minw - wd->x * wd->itemsize_h) / wd->x;
+ wd->vertical = (wd->minh - wd->y * wd->itemsize_v) / wd->y;
+ elm_gridbox_padding_set(obj, wd->horizontal, wd->vertical);
}
if (!mode)
- _arrange_table(obj);
+ _arrange_table(obj);
}
static void
{
Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd)
- return;
+ if (!wd) return;
evas_object_smart_callback_call(wd->scr, "scroll-freeze-on", NULL);
}
static void
-_freeze_off(void *data, Evas_Object * obj, void *event_info)
+_freeze_off(void *data, Evas_Object *obj, void *event_info)
{
Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd)
- return;
+ if (!wd) return;
evas_object_smart_callback_call(wd->scr, "scroll-freeze-off", NULL);
}
* @ingroup Gridbox
*/
EAPI Evas_Object *
-elm_gridbox_add(Evas_Object * parent)
+elm_gridbox_add(Evas_Object *parent)
{
Evas_Object *obj;
elm_scroller_content_set(wd->scr, wd->tbl);
evas_object_show(wd->tbl);
- evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_RESIZE,
- _changed_size_min, obj);
- evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_SHOW, _show_event,
- obj);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_RESIZE, _changed_size_min, obj);
+ evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_SHOW, _show_event, obj);
evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
evas_object_smart_callback_add(obj, "scroll-freeze-on", _freeze_on, obj);
* @ingroup Gridbox
*/
EAPI void
-elm_gridbox_padding_set(Evas_Object * obj, Evas_Coord horizontal,
- Evas_Coord vertical)
+elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical)
{
Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd)
- return;
+ if (!wd) return;
wd->horizontal = horizontal;
wd->vertical = vertical;
if (wd->tbl)
- evas_object_table_padding_set(wd->tbl, horizontal, vertical);
+ evas_object_table_padding_set(wd->tbl, horizontal, vertical);
}
/**
* @ingroup Gridbox
*/
EAPI void
-elm_gridbox_item_size_set(Evas_Object * obj, Evas_Coord h_itemsize,
- Evas_Coord v_itemsize)
+elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize, Evas_Coord v_itemsize)
{
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Coord w, h;
- if (!wd)
- return;
+ if (!wd) return;
wd->itemsize_h = h_itemsize;
wd->itemsize_v = v_itemsize;
evas_object_size_hint_min_get(wd->scr, &minw, &minh);
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
if (w < minw)
- w = minw;
+ w = minw;
if (h < minh)
- h = minh;
+ h = minh;
wd->x = w / h_itemsize;
wd->y = h / v_itemsize;
if (!wd->x)
- wd->x = 1;
+ wd->x = 1;
if (!wd->y)
- wd->y = 1;
+ wd->y = 1;
_sizing_eval(obj, 1);
}
* @ingroup Gridbox
*/
EAPI void
-elm_gridbox_pack(Evas_Object * obj, Evas_Object * subobj)
+elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj)
{
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gridbox
*/
EAPI Eina_Bool
-elm_gridbox_unpack(Evas_Object * obj, Evas_Object * subobj)
+elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj)
{
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gridbox
*/
EAPI Eina_List *
-elm_gridbox_children_get(Evas_Object * obj)
+elm_gridbox_children_get(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
* @ingroup Gridbox
*/
EAPI void
-elm_gridbox_homogenous_padding_set(Evas_Object * obj, Eina_Bool homogenous)
+elm_gridbox_homogenous_padding_set(Evas_Object *obj, Eina_Bool homogenous)
{
Widget_Data *wd = elm_widget_data_get(obj);