Functions |
Evas_Object * | elm_box_add (Evas_Object *parent) |
| Adds a new box to the parent.
|
void | elm_box_horizontal_set (Evas_Object *obj, Eina_Bool horizontal) |
| Sets the horizontal orientation.
|
Eina_Bool | elm_box_horizontal_get (const Evas_Object *obj) |
| Gets the horizontal orientation.
|
void | elm_box_homogeneous_set (Evas_Object *obj, Eina_Bool homogeneous) |
| Sets the box to arrange its children homogeneously.
|
Eina_Bool | elm_box_homogeneous_get (const Evas_Object *obj) |
| Gets whether the box is using the homogeneous mode.
|
void | elm_box_pack_start (Evas_Object *obj, Evas_Object *subobj) |
| Adds an object to the beginning of the pack list.
|
void | elm_box_pack_end (Evas_Object *obj, Evas_Object *subobj) |
| Adds an object at the end of the pack list.
|
void | elm_box_pack_before (Evas_Object *obj, Evas_Object *subobj, Evas_Object *before) |
| Adds an object to the box before the indicated object.
|
void | elm_box_pack_after (Evas_Object *obj, Evas_Object *subobj, Evas_Object *after) |
| Adds an object to the box after the indicated object.
|
void | elm_box_clear (Evas_Object *obj) |
| Clears the box of all its children.
|
void | elm_box_unpack (Evas_Object *obj, Evas_Object *subobj) |
| Unpacks a box item.
|
void | elm_box_unpack_all (Evas_Object *obj) |
| Removes all the items from the box, without deleting them.
|
Eina_List * | elm_box_children_get (const Evas_Object *obj) |
| Retrieves a list of the objects packed into the box.
|
void | elm_box_padding_set (Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) |
| Sets the space (padding) between the box's elements.
|
void | elm_box_padding_get (const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical) |
| Gets the space (padding) between the box's elements.
|
void | elm_box_align_set (Evas_Object *obj, double horizontal, double vertical) |
| Sets the alignment of the whole bounding box of contents.
|
void | elm_box_align_get (const Evas_Object *obj, double *horizontal, double *vertical) |
| Gets the alignment of the whole bounding box of contents.
|
void | elm_box_recalculate (Evas_Object *obj) |
| Forces the box to recalculate its children packing.
|
void | elm_box_layout_set (Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, Ecore_Cb free_data) |
| Sets the layout defining function to be used by the box.
|
void | elm_box_layout_transition (Evas_Object *obj, Evas_Object_Box_Data *priv, void *data) |
| Special layout function that animates the transition from one layout to another.
|
Elm_Box_Transition * | elm_box_transition_new (const double duration, Evas_Object_Box_Layout start_layout, void *start_layout_data, Ecore_Cb start_layout_free_data, Evas_Object_Box_Layout end_layout, void *end_layout_data, Ecore_Cb end_layout_free_data, Ecore_Cb transition_end_cb, void *transition_end_data) |
| Creates a new Elm_Box_Transition to animate the switch of the layouts.
|
void | elm_box_transition_free (void *data) |
| Frees an Elm_Box_Transition instance created with elm_box_transition_new().
|
Typedefs |
typedef struct _Elm_Box_Transition | Elm_Box_Transition |
| The structure type which is an opaque handler containing the parameters to perform an animated transition of the layout that the box uses.
|
A box arranges objects in a linear fashion, governed by a layout function that defines the details of this arrangement.
By default, the box uses an internal function to set the layout to a single row, either vertical or horizontal. This layout is affected by a number of parameters, such as the homogeneous flag set by elm_box_homogeneous_set(), the values given by elm_box_padding_set() and elm_box_align_set(), and the hints set to each object in the box.
For this default layout, it's possible to change the orientation with elm_box_horizontal_set(). The box starts in the vertical orientation, placing its elements ordered from top to bottom. When horizontal is set, the order goes from left to right. If the box is set to be homogeneous, every object in it is assigned the same space, which is that of the largest object. Padding can be used to set some spacing between the cell given to each object. The alignment of the box, set with elm_box_align_set(), determines how the bounding box of all the elements is placed within the space given to the box widget itself.
The size hints of each object also affect how they are placed and sized within the box. evas_object_size_hint_min_set() gives the minimum size that the object can have, and the box uses it as the basis for all latter calculations. Elementary widgets set their own minimum size as needed, so there's rarely any need to use it manually.
evas_object_size_hint_weight_set(), when not in the homogeneous mode, is used to tell whether the object is allocated the minimum size it needs or if the space given to it should be expanded. It's important to realize that expanding the size given to the object is not the same thing as resizing the object. It could very well end being a small widget floating in a much larger empty space. If not set, the weight for objects normally is 0.0
for both axis, meaning the widget is not expanded. To take as much space as possible, set the weight to EVAS_HINT_EXPAND (defined to 1.0
) for the desired axis to expand.
Besides how much space is allocated for each object, it's possible to control how the widget is placed within that space using evas_object_size_hint_align_set(). By default, this value is 0.5
for both axes, meaning the object is centered, but any value from 0.0
(left or top, for the x
and y
axis, respectively) to 1.0
(right or bottom) can be used. The special value EVAS_HINT_FILL, which is -1.0
, means the object is resized to fill the entire space it is allocated.
In addition, customized functions to define the layout can be set, which allow the application developer to organize the objects within the box in a number of ways.
The special elm_box_layout_transition() function can be used to switch from one layout to another, animating the motion of the children of the box.
Typedef Documentation
Function Documentation
Adds a new box to the parent.
- Since :
- 2.3.1
- Parameters:
-
[in] | parent | The parent object |
- Returns:
- The new object, otherwise
NULL
if it cannot be created
Gets the alignment of the whole bounding box of contents.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[out] | horizontal | The horizontal alignment of elements |
[out] | vertical | The vertical alignment of elements |
- See also:
- elm_box_align_set()
Sets the alignment of the whole bounding box of contents.
This sets how the bounding box containing all the elements of the box, after their sizes and position has been calculated, is aligned within the space given for the whole box widget.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | horizontal | The horizontal alignment of elements |
[in] | vertical | The vertical alignment of elements |
Retrieves a list of the objects packed into the box.
- Since :
- 2.3.1
- Parameters:
-
- Returns:
- The children objects list
Clears the box of all its children.
This removes all the elements contained by the box, deleting the respective objects.
- Since :
- 2.3.1
- Parameters:
-
- See also:
- elm_box_unpack()
-
elm_box_unpack_all()
Gets whether the box is using the homogeneous mode.
- Since :
- 2.3.1
- Parameters:
-
- Returns:
EINA_TRUE
if it's homogeneous, otherwise EINA_FALSE
Sets the box to arrange its children homogeneously.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | homogeneous | The homogeneous flag |
Gets the horizontal orientation.
- Since :
- 2.3.1
- Parameters:
-
- Returns:
EINA_TRUE
if the box is set to the horizontal mode, otherwise EINA_FALSE
Sets the horizontal orientation.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | horizontal | The horizontal flag (EINA_TRUE = horizontal, EINA_FALSE = vertical) |
Sets the layout defining function to be used by the box.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | cb | The callback function used for the layout |
[in] | data | The data that is passed to the layout function |
[in] | free_data | The function called to free data |
- See also:
- elm_box_layout_transition()
Adds an object to the box before the indicated object.
This adds subobj to the box indicated before the object indicated with before. If before is not already in the box, the results are undefined. Before means either to the left of the indicated object or above it depending on the orientation.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | subobj | The object to add to the box |
[in] | before | The object before which to add it |
- See also:
- elm_box_pack_start()
-
elm_box_pack_end()
-
elm_box_pack_after()
-
elm_box_unpack()
-
elm_box_unpack_all()
-
elm_box_clear()
Gets the space (padding) between the box's elements.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[out] | horizontal | The horizontal space between elements |
[out] | vertical | The vertical space between elements |
- See also:
- elm_box_padding_set()
Sets the space (padding) between the box's elements.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | horizontal | The horizontal space between elements |
[in] | vertical | The vertical space between elements |
Forces the box to recalculate its children packing.
- Since :
- 2.3.1
- Parameters:
-
Creates a new Elm_Box_Transition to animate the switch of the layouts.
- Since :
- 2.3.1
- Parameters:
-
[in] | duration | The duration of the transition in seconds |
[in] | start_layout | The layout function that is used to start the animation |
[in] | start_layout_data | The data to be passed to the start_layout function |
[in] | start_layout_free_data | The function to free start_layout_data |
[in] | end_layout | The layout function that is used to end the animation |
[in] | end_layout_data | The data parameter passed to end_layout |
| end_layout_free_data | The data to be passed to the end_layout function |
| end_layout_free_data | The function to free end_layout_data |
[in] | transition_end_cb | The callback function called when the animation ends |
[in] | transition_end_data | The data to be passed to transition_end_cb |
- Returns:
- An instance of Elm_Box_Transition
- See also:
- elm_box_transition_new
-
elm_box_layout_transition
Unpacks a box item.
This removes the object given by subobj from the box obj without deleting it.
- Since :
- 2.3.1
- Parameters:
-
[in] | obj | The box object |
[in] | subobj | The object to unpack |
- See also:
- elm_box_unpack_all()
-
elm_box_clear()
Removes all the items from the box, without deleting them.
This clears the box from all its children, but doesn't delete the respective objects. If no other references of the box children exist, the objects is never deleted, and thus the application leaks the memory. Make sure when using this function that you hold a reference to all the objects in the box obj.
- Since :
- 2.3.1
- Parameters:
-
- See also:
- elm_box_clear()
-
elm_box_unpack()