efl/legacy/elementary/src/lib/elm_actionslider.h

155 lines
5.5 KiB
C
Raw Normal View History

/**
* @addtogroup Actionslider Actionslider
*
* @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.
*
* Signals that you can add callbacks for are:
*
* "selected" - when user selects an enabled position (the label is passed
* as event info)".
* @n
* "pos_changed" - when the indicator reaches any of the positions("left",
* "right" or "center").
*
* See an example of actionslider usage @ref actionslider_example_page "here"
* @{
*/
typedef enum _Elm_Actionslider_Pos
{
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
*/
EAPI Evas_Object *elm_actionslider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
/**
* Set actionslider labels.
*
* @param obj The actionslider object
* @param left_label The label to be set on the left.
* @param center_label The label to be set on the center.
* @param right_label The label to be set on the right.
* @deprecated use elm_object_text_set() instead.
*/
EINA_DEPRECATED EAPI void elm_actionslider_labels_set(Evas_Object *obj, const char *left_label, const char *center_label, const char *right_label) EINA_ARG_NONNULL(1);
/**
* Get actionslider labels.
*
* @param obj The actionslider object
* @param left_label A char** to place the left_label of @p obj into.
* @param center_label A char** to place the center_label of @p obj into.
* @param right_label A char** to place the right_label of @p obj into.
* @deprecated use elm_object_text_set() instead.
*/
EINA_DEPRECATED EAPI void elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
/**
* Get actionslider selected label.
*
* @param obj The actionslider object
* @return The selected label
*/
EAPI const char *elm_actionslider_selected_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set actionslider indicator position.
*
* @param obj The actionslider object.
* @param pos The position of the indicator.
*/
EAPI void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
/**
* Get actionslider indicator position.
*
* @param obj The actionslider object.
* @return The position of the indicator.
*/
EAPI Elm_Actionslider_Pos elm_actionslider_indicator_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EAPI void elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
/**
* Get actionslider magnet position.
*
* @param obj The actionslider object.
* @return The positions with magnet property.
*/
EAPI Elm_Actionslider_Pos elm_actionslider_magnet_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EAPI void elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos) EINA_ARG_NONNULL(1);
/**
* Get actionslider enabled position.
*
* @param obj The actionslider object.
* @return The enabled positions.
*/
EAPI Elm_Actionslider_Pos elm_actionslider_enabled_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the label used on the indicator.
*
* @param obj The actionslider object
* @param label The label to be set on the indicator.
* @deprecated use elm_object_text_set() instead.
*/
EINA_DEPRECATED EAPI void elm_actionslider_indicator_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
/**
* Get the label used on the indicator object.
*
* @param obj The actionslider object
* @return The indicator label
* @deprecated use elm_object_text_get() instead.
*/
EINA_DEPRECATED EAPI const char *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @}
*/