#ifndef _EFL_UI_BOX_EO_H_
#define _EFL_UI_BOX_EO_H_

#ifndef _EFL_UI_BOX_EO_CLASS_TYPE
#define _EFL_UI_BOX_EO_CLASS_TYPE

typedef Eo Efl_Ui_Box;

#endif

#ifndef _EFL_UI_BOX_EO_TYPES
#define _EFL_UI_BOX_EO_TYPES


#endif
#ifdef EFL_BETA_API_SUPPORT
/**
 * @brief The box widget.
 *
 * A box arranges objects in a linear fashion, governed by a layout function
 * that defines the details of this arrangement.
 *
 * By default, the box will use an internal function to set the layout to a
 * single row, either vertical or horizontal. This layout is affected by a
 * number of parameters. The values given by @ref efl_pack_padding_set and
 * @ref efl_pack_align_set and the hints set to each object in the box.
 *
 * FIXME: THIS CLASS NEEDS GOOD UP TO DATE DOCUMENTATION. LEGACY BOX AND UI BOX
 * BEHAVE SLIGHTLY DIFFERENTLY AND USE VASTLY DIFFERENT APIS.
 *
 * @ingroup Efl_Ui_Box
 */
#define EFL_UI_BOX_CLASS efl_ui_box_class_get()

EWAPI const Efl_Class *efl_ui_box_class_get(void);

/**
 * @brief Control homogeneous mode.
 *
 * This will enable the homogeneous mode where children are of the same weight
 * and of the same min size which is determined by maximum min size of
 * children.
 *
 * @param[in] obj The object.
 * @param[in] homogeneous @c true if the box is homogeneous, @c false otherwise
 *
 * @ingroup Efl_Ui_Box
 */
EOAPI void efl_ui_box_homogeneous_set(Eo *obj, Eina_Bool homogeneous);

/**
 * @brief Control homogeneous mode.
 *
 * This will enable the homogeneous mode where children are of the same weight
 * and of the same min size which is determined by maximum min size of
 * children.
 *
 * @param[in] obj The object.
 *
 * @return @c true if the box is homogeneous, @c false otherwise
 *
 * @ingroup Efl_Ui_Box
 */
EOAPI Eina_Bool efl_ui_box_homogeneous_get(const Eo *obj);
#endif /* EFL_BETA_API_SUPPORT */

#endif
