elm genlist: Fixed genlist crash issue when huge amount of items are expanded/contrac...
[framework/uifw/elementary.git] / src / lib / elm_grid.h
1 /**
2  * @defgroup Grid Grid
3  * @ingroup Elementary
4  *
5  * The grid is a grid layout widget that lays out a series of children as a
6  * fixed "grid" of widgets using a given percentage of the grid width and
7  * height each using the child object.
8  *
9  * The Grid uses a "Virtual resolution" that is stretched to fill the grid
10  * widgets size itself. The default is 100 x 100, so that means the
11  * position and sizes of children will effectively be percentages (0 to 100)
12  * of the width or height of the grid widget
13  *
14  * @{
15  */
16
17 /**
18  * Add a new grid to the parent
19  *
20  * @param parent The parent object
21  * @return The new object or NULL if it cannot be created
22  *
23  * @ingroup Grid
24  */
25 EAPI Evas_Object *elm_grid_add(Evas_Object *parent);
26
27 /**
28  * Set the virtual size of the grid
29  *
30  * @param obj The grid object
31  * @param w The virtual width of the grid
32  * @param h The virtual height of the grid
33  *
34  * @ingroup Grid
35  */
36 EAPI void         elm_grid_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
37
38 /**
39  * Get the virtual size of the grid
40  *
41  * @param obj The grid object
42  * @param w Pointer to integer to store the virtual width of the grid
43  * @param h Pointer to integer to store the virtual height of the grid
44  *
45  * @ingroup Grid
46  */
47 EAPI void         elm_grid_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
48
49 /**
50  * Pack child at given position and size
51  *
52  * @param obj The grid object
53  * @param subobj The child to pack
54  * @param x The virtual x coord at which to pack it
55  * @param y The virtual y coord at which to pack it
56  * @param w The virtual width at which to pack it
57  * @param h The virtual height at which to pack it
58  *
59  * @ingroup Grid
60  */
61 EAPI void         elm_grid_pack(Evas_Object *obj, Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
62
63 /**
64  * Unpack a child from a grid object
65  *
66  * @param obj The grid object
67  * @param subobj The child to unpack
68  *
69  * @ingroup Grid
70  */
71 EAPI void         elm_grid_unpack(Evas_Object *obj, Evas_Object *subobj);
72
73 /**
74  * Faster way to remove all child objects from a grid object.
75  *
76  * @param obj The grid object
77  * @param clear If true, it will delete just removed children
78  *
79  * @ingroup Grid
80  */
81 EAPI void         elm_grid_clear(Evas_Object *obj, Eina_Bool clear);
82
83 /**
84  * Set packing of an existing child at to position and size
85  *
86  * @param subobj The child to set packing of
87  * @param x The virtual x coord at which to pack it
88  * @param y The virtual y coord at which to pack it
89  * @param w The virtual width at which to pack it
90  * @param h The virtual height at which to pack it
91  *
92  * @ingroup Grid
93  */
94 EAPI void         elm_grid_pack_set(Evas_Object *subobj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
95
96 /**
97  * Get packing of a child
98  *
99  * @param subobj The child to query
100  * @param x Pointer to integer to store the virtual x coord
101  * @param y Pointer to integer to store the virtual y coord
102  * @param w Pointer to integer to store the virtual width
103  * @param h Pointer to integer to store the virtual height
104  *
105  * @ingroup Grid
106  */
107 EAPI void         elm_grid_pack_get(Evas_Object *subobj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
108
109 /**
110  * Get the list of the children for the grid.
111  *
112  * @param obj The grid object
113  *
114  * @note This is a duplicate of the list kept by the grid internally.
115          It's up to the user to destroy it when it no longer needs it.
116                         It's possible to remove objects from the grid when walking this
117                         list, but these removals won't be reflected on it.
118  *
119  * @ingroup Grid
120  */
121 EAPI Eina_List *elm_grid_children_get(const Evas_Object *obj);
122
123 /**
124  * @}
125  */