259 lines
7.3 KiB
C
259 lines
7.3 KiB
C
#ifndef _ELM_LABEL_EO_H_
|
|
#define _ELM_LABEL_EO_H_
|
|
|
|
#ifndef _ELM_LABEL_EO_CLASS_TYPE
|
|
#define _ELM_LABEL_EO_CLASS_TYPE
|
|
|
|
typedef Eo Elm_Label;
|
|
|
|
#endif
|
|
|
|
#ifndef _ELM_LABEL_EO_TYPES
|
|
#define _ELM_LABEL_EO_TYPES
|
|
|
|
/** Slide mode of a label widget
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
typedef enum
|
|
{
|
|
ELM_LABEL_SLIDE_MODE_NONE = 0, /**< No slide effect. */
|
|
ELM_LABEL_SLIDE_MODE_AUTO, /**< Slide only if the label area is bigger than
|
|
* the text width length. */
|
|
ELM_LABEL_SLIDE_MODE_ALWAYS /**< Slide always. */
|
|
} Elm_Label_Slide_Mode;
|
|
|
|
|
|
#endif
|
|
/** Elementary label class
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
#define ELM_LABEL_CLASS elm_label_class_get()
|
|
|
|
EWAPI const Efl_Class *elm_label_class_get(void) EINA_CONST;
|
|
|
|
/**
|
|
* @brief Control wrap width of the label
|
|
*
|
|
* This function sets the maximum width size hint of the label.
|
|
*
|
|
* @warning This is only relevant if the label is inside a container.
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] w The wrap width in pixels at a minimum where words need to wrap
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_wrap_width_set(Eo *obj, int w);
|
|
|
|
/**
|
|
* @brief Control wrap width of the label
|
|
*
|
|
* This function sets the maximum width size hint of the label.
|
|
*
|
|
* @warning This is only relevant if the label is inside a container.
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return The wrap width in pixels at a minimum where words need to wrap
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI int elm_obj_label_wrap_width_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Control the slide speed of the label
|
|
*
|
|
* @note If you set the duration of the slide using
|
|
* @ref elm_obj_label_slide_duration_set you cannot get the correct speed using
|
|
* this function until the label is actually rendered and resized.
|
|
*
|
|
* See @ref elm_obj_label_slide_duration_set
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] speed The speed of the slide animation in px per seconds
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_slide_speed_set(Eo *obj, double speed);
|
|
|
|
/**
|
|
* @brief Control the slide speed of the label
|
|
*
|
|
* @note If you set the duration of the slide using
|
|
* @ref elm_obj_label_slide_duration_set you cannot get the correct speed using
|
|
* this function until the label is actually rendered and resized.
|
|
*
|
|
* See @ref elm_obj_label_slide_duration_set
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return The speed of the slide animation in px per seconds
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI double elm_obj_label_slide_speed_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Control the slide mode of the label widget.
|
|
*
|
|
* By default, slide mode is none. Possible values for @c mode are:
|
|
* @ref ELM_LABEL_SLIDE_MODE_NONE - no slide effect
|
|
* @ref ELM_LABEL_SLIDE_MODE_AUTO - slide only if the label area is bigger than
|
|
* the text width length @ref ELM_LABEL_SLIDE_MODE_ALWAYS - slide always
|
|
*
|
|
* @warning @ref ELM_LABEL_SLIDE_MODE_AUTO, @ref ELM_LABEL_SLIDE_MODE_ALWAYS
|
|
* only work with the themes "slide_short", "slide_long" and "slide_bounce".
|
|
* Warning: @ref ELM_LABEL_SLIDE_MODE_AUTO, @ref ELM_LABEL_SLIDE_MODE_ALWAYS
|
|
* don't work if the line wrap(elm_label_line_wrap_set()) or
|
|
* ellipsis(elm_label_ellipsis_set()) is set.
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] mode The slide mode
|
|
*
|
|
* @since 1.8
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_slide_mode_set(Eo *obj, Elm_Label_Slide_Mode mode);
|
|
|
|
/**
|
|
* @brief Control the slide mode of the label widget.
|
|
*
|
|
* By default, slide mode is none. Possible values for @c mode are:
|
|
* @ref ELM_LABEL_SLIDE_MODE_NONE - no slide effect
|
|
* @ref ELM_LABEL_SLIDE_MODE_AUTO - slide only if the label area is bigger than
|
|
* the text width length @ref ELM_LABEL_SLIDE_MODE_ALWAYS - slide always
|
|
*
|
|
* @warning @ref ELM_LABEL_SLIDE_MODE_AUTO, @ref ELM_LABEL_SLIDE_MODE_ALWAYS
|
|
* only work with the themes "slide_short", "slide_long" and "slide_bounce".
|
|
* Warning: @ref ELM_LABEL_SLIDE_MODE_AUTO, @ref ELM_LABEL_SLIDE_MODE_ALWAYS
|
|
* don't work if the line wrap(elm_label_line_wrap_set()) or
|
|
* ellipsis(elm_label_ellipsis_set()) is set.
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return The slide mode
|
|
*
|
|
* @since 1.8
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI Elm_Label_Slide_Mode elm_obj_label_slide_mode_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Control the slide duration of the label
|
|
*
|
|
* @note If you set the speed of the slide using
|
|
* @ref elm_obj_label_slide_speed_set you cannot get the correct duration using
|
|
* this function until the label is actually rendered and resized.
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] duration The duration in seconds in moving text from slide begin
|
|
* position to slide end position
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_slide_duration_set(Eo *obj, double duration);
|
|
|
|
/**
|
|
* @brief Control the slide duration of the label
|
|
*
|
|
* @note If you set the speed of the slide using
|
|
* @ref elm_obj_label_slide_speed_set you cannot get the correct duration using
|
|
* this function until the label is actually rendered and resized.
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return The duration in seconds in moving text from slide begin position to
|
|
* slide end position
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI double elm_obj_label_slide_duration_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Control the wrapping behavior of the label
|
|
*
|
|
* By default no wrapping is done. Possible values for @c wrap are:
|
|
* @c ELM_WRAP_NONE - No wrapping @c ELM_WRAP_CHAR - wrap between characters
|
|
* @c ELM_WRAP_WORD - wrap between words @c ELM_WRAP_MIXED - Word wrap, and if
|
|
* that fails, char wrap
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] wrap To wrap text or not
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_line_wrap_set(Eo *obj, Elm_Wrap_Type wrap);
|
|
|
|
/**
|
|
* @brief Control the wrapping behavior of the label
|
|
*
|
|
* By default no wrapping is done. Possible values for @c wrap are:
|
|
* @c ELM_WRAP_NONE - No wrapping @c ELM_WRAP_CHAR - wrap between characters
|
|
* @c ELM_WRAP_WORD - wrap between words @c ELM_WRAP_MIXED - Word wrap, and if
|
|
* that fails, char wrap
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return To wrap text or not
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI Elm_Wrap_Type elm_obj_label_line_wrap_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Control the ellipsis behavior of the label
|
|
*
|
|
* If set to true and the text doesn't fit in the label an ellipsis("...") will
|
|
* be shown at the end of the widget.
|
|
*
|
|
* Warning This doesn't work with slide(elm_label_slide_set()) or if the chosen
|
|
* wrap method was @c ELM_WRAP_WORD.
|
|
*
|
|
* @param[in] obj The object.
|
|
* @param[in] ellipsis To ellipsis text or not
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_ellipsis_set(Eo *obj, Eina_Bool ellipsis);
|
|
|
|
/**
|
|
* @brief Control the ellipsis behavior of the label
|
|
*
|
|
* If set to true and the text doesn't fit in the label an ellipsis("...") will
|
|
* be shown at the end of the widget.
|
|
*
|
|
* Warning This doesn't work with slide(elm_label_slide_set()) or if the chosen
|
|
* wrap method was @c ELM_WRAP_WORD.
|
|
*
|
|
* @param[in] obj The object.
|
|
*
|
|
* @return To ellipsis text or not
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI Eina_Bool elm_obj_label_ellipsis_get(const Eo *obj);
|
|
|
|
/**
|
|
* @brief Start slide effect.
|
|
*
|
|
* See @ref elm_obj_label_slide_mode_set.
|
|
* @param[in] obj The object.
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
EOAPI void elm_obj_label_slide_go(Eo *obj);
|
|
|
|
EWAPI extern const Efl_Event_Description _ELM_LABEL_EVENT_SLIDE_END;
|
|
|
|
/** Called when slide stopped
|
|
*
|
|
* @ingroup Elm_Label
|
|
*/
|
|
#define ELM_LABEL_EVENT_SLIDE_END (&(_ELM_LABEL_EVENT_SLIDE_END))
|
|
|
|
#endif
|