forked from enlightenment/efl
256 lines
7.4 KiB
C
256 lines
7.4 KiB
C
/**
|
|
* @addtogroup Actionslider Actionslider
|
|
* @ingroup Elementary
|
|
*
|
|
* @image html actionslider_inheritance_tree.png
|
|
* @image latex actionslider_inheritance_tree.eps
|
|
*
|
|
* @image html img/widget/actionslider/preview-00.png
|
|
* @image latex img/widget/actionslider/preview-00.eps
|
|
*
|
|
* An actionslider is a switcher for 2 or 3 labels with customizable magnet
|
|
* properties. The user drags and releases the indicator, to choose a label.
|
|
*
|
|
* Labels occupy the following positions.
|
|
* a. Left
|
|
* b. Right
|
|
* c. Center
|
|
*
|
|
* Positions can be enabled or disabled.
|
|
*
|
|
* Magnets can be set on the above positions.
|
|
*
|
|
* When the indicator is released, it will move to its nearest
|
|
* "enabled and magnetized" position.
|
|
*
|
|
* @note By default all positions are set as enabled.
|
|
*
|
|
* This widget inherits from the @ref Layout one, so that all the
|
|
* functions acting on it also work for actionslider objects.
|
|
*
|
|
* This widget emits the following signals, besides the ones sent from
|
|
* @ref Layout:
|
|
* @li @c "selected" - when user selects an enabled position (the
|
|
* label is passed as event info).
|
|
* @li @c "pos_changed" - when the indicator reaches any of the
|
|
* positions("left", "right" or "center").
|
|
*
|
|
* Default text parts of the actionslider widget that you can use for are:
|
|
* @li "indicator" - An indicator label of the actionslider
|
|
* @li "left" - A left label of the actionslider
|
|
* @li "right" - A right label of the actionslider
|
|
* @li "center" - A center label of the actionslider
|
|
*
|
|
* Supported elm_object common APIs.
|
|
* @li @ref elm_object_part_text_set
|
|
* @li @ref elm_object_part_text_get
|
|
*
|
|
* See an example of actionslider usage @ref actionslider_example_page "here"
|
|
* @{
|
|
*/
|
|
|
|
#define ELM_OBJ_ACTIONSLIDER_CLASS elm_obj_actionslider_class_get()
|
|
|
|
const Eo_Class *elm_obj_actionslider_class_get(void) EINA_CONST;
|
|
|
|
extern EAPI Eo_Op ELM_OBJ_ACTIONSLIDER_BASE_ID;
|
|
|
|
enum
|
|
{
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_INDICATOR_POS_SET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_INDICATOR_POS_GET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_MAGNET_POS_SET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_MAGNET_POS_GET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_ENABLED_POS_SET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_ENABLED_POS_GET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_SELECTED_LABEL_GET,
|
|
ELM_OBJ_ACTIONSLIDER_SUB_ID_LAST
|
|
};
|
|
|
|
#define ELM_OBJ_ACTIONSLIDER_ID(sub_id) (ELM_OBJ_ACTIONSLIDER_BASE_ID + sub_id)
|
|
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_indicator_pos_set
|
|
* @since 1.8
|
|
*
|
|
* Set actionslider indicator position.
|
|
*
|
|
* @param[in] pos
|
|
*
|
|
* @see elm_actionslider_indicator_pos_set
|
|
*/
|
|
#define elm_obj_actionslider_indicator_pos_set(pos) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_INDICATOR_POS_SET), EO_TYPECHECK(Elm_Actionslider_Pos, pos)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_indicator_pos_get
|
|
* @since 1.8
|
|
*
|
|
* Get actionslider indicator position.
|
|
*
|
|
* @param[out] ret
|
|
*
|
|
* @see elm_actionslider_indicator_pos_get
|
|
*/
|
|
#define elm_obj_actionslider_indicator_pos_get(ret) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_INDICATOR_POS_GET), EO_TYPECHECK(Elm_Actionslider_Pos *, ret)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_magnet_pos_set
|
|
* @since 1.8
|
|
*
|
|
* Set actionslider magnet position. To make multiple positions magnets or
|
|
* them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT)
|
|
*
|
|
* @param[in] pos
|
|
*
|
|
* @see elm_actionslider_magnet_pos_set
|
|
*/
|
|
#define elm_obj_actionslider_magnet_pos_set(pos) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_MAGNET_POS_SET), EO_TYPECHECK(Elm_Actionslider_Pos, pos)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_magnet_pos_get
|
|
* @since 1.8
|
|
*
|
|
* Get actionslider magnet position.
|
|
*
|
|
* @param[out] ret
|
|
*
|
|
* @see elm_actionslider_magnet_pos_get
|
|
*/
|
|
#define elm_obj_actionslider_magnet_pos_get(ret) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_MAGNET_POS_GET), EO_TYPECHECK(Elm_Actionslider_Pos *, ret)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_enabled_pos_set
|
|
* @since 1.8
|
|
*
|
|
* Set actionslider enabled position. To set multiple positions as enabled or
|
|
* them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT).
|
|
*
|
|
* @param[in] pos
|
|
*
|
|
* @see elm_actionslider_enabled_pos_set
|
|
*/
|
|
#define elm_obj_actionslider_enabled_pos_set(pos) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_ENABLED_POS_SET), EO_TYPECHECK(Elm_Actionslider_Pos, pos)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_enabled_pos_get
|
|
* @since 1.8
|
|
*
|
|
* Get actionslider enabled position.
|
|
*
|
|
* @param[out] ret
|
|
*
|
|
* @see elm_actionslider_enabled_pos_get
|
|
*/
|
|
#define elm_obj_actionslider_enabled_pos_get(ret) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_ENABLED_POS_GET), EO_TYPECHECK(Elm_Actionslider_Pos *, ret)
|
|
|
|
/**
|
|
* @def elm_obj_actionslider_selected_label_get
|
|
* @since 1.8
|
|
*
|
|
* Get actionslider selected label.
|
|
*
|
|
* @param[out] ret
|
|
*
|
|
* @see elm_actionslider_selected_label_get
|
|
*/
|
|
#define elm_obj_actionslider_selected_label_get(ret) ELM_OBJ_ACTIONSLIDER_ID(ELM_OBJ_ACTIONSLIDER_SUB_ID_SELECTED_LABEL_GET), EO_TYPECHECK(const char **, ret)
|
|
|
|
|
|
typedef enum
|
|
{
|
|
ELM_ACTIONSLIDER_NONE = 0,
|
|
ELM_ACTIONSLIDER_LEFT = 1 << 0,
|
|
ELM_ACTIONSLIDER_CENTER = 1 << 1,
|
|
ELM_ACTIONSLIDER_RIGHT = 1 << 2,
|
|
ELM_ACTIONSLIDER_ALL = (1 << 3) - 1
|
|
} Elm_Actionslider_Pos;
|
|
|
|
/**
|
|
* Add a new actionslider to the parent.
|
|
*
|
|
* @param parent The parent object
|
|
* @return The new actionslider object or NULL if it cannot be created
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI Evas_Object *elm_actionslider_add(Evas_Object *parent);
|
|
|
|
/**
|
|
* Get actionslider selected label.
|
|
*
|
|
* @param obj The actionslider object
|
|
* @return The selected label
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI const char *elm_actionslider_selected_label_get(const Evas_Object *obj);
|
|
|
|
/**
|
|
* Set actionslider indicator position.
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @param pos The position of the indicator.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
|
|
|
|
/**
|
|
* Get actionslider indicator position.
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @return The position of the indicator.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI Elm_Actionslider_Pos elm_actionslider_indicator_pos_get(const Evas_Object *obj);
|
|
|
|
/**
|
|
* Set actionslider magnet position. To make multiple positions magnets @c or
|
|
* them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT)
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @param pos Bit mask indicating the magnet positions.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI void elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
|
|
|
|
/**
|
|
* Get actionslider magnet position.
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @return The positions with magnet property.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI Elm_Actionslider_Pos elm_actionslider_magnet_pos_get(const Evas_Object *obj);
|
|
|
|
/**
|
|
* Set actionslider enabled position. To set multiple positions as enabled @c or
|
|
* them together(e.g.: ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT).
|
|
*
|
|
* @note All the positions are enabled by default.
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @param pos Bit mask indicating the enabled positions.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI void elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
|
|
|
|
/**
|
|
* Get actionslider enabled position.
|
|
*
|
|
* @param obj The actionslider object.
|
|
* @return The enabled positions.
|
|
*
|
|
* @ingroup Actionslider
|
|
*/
|
|
EAPI Elm_Actionslider_Pos elm_actionslider_enabled_pos_get(const Evas_Object *obj);
|
|
|
|
/**
|
|
* @}
|
|
*/
|