efl/src/lib/evas/canvas/evas_text_eo.legacy.h

456 lines
14 KiB
C

#ifndef _EVAS_TEXT_EO_LEGACY_H_
#define _EVAS_TEXT_EO_LEGACY_H_
#ifndef _EVAS_TEXT_EO_CLASS_TYPE
#define _EVAS_TEXT_EO_CLASS_TYPE
typedef Eo Evas_Text;
#endif
#ifndef _EVAS_TEXT_EO_TYPES
#define _EVAS_TEXT_EO_TYPES
#endif
/**
* @brief Controls the shadow color for the given text object.
*
* Shadow effects are fading colors decorating the text underneath it. They
* will be shown if the object is set to one of the following styles:
*
* - @c EVAS_TEXT_STYLE_TYPE_SHADOW - @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_FAR_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SOFT_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_SOFT_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_FAR_SOFT_SHADOW
*
* One can also change the direction where the shadow grows to, with
* @ref evas_object_text_style_get
*
* See @ref evas_object_text_shadow_color_get
*
* @param[in] obj The object.
* @param[in] r The red component of the given color.
* @param[in] g The green component of the given color.
* @param[in] b The blue component of the given color.
* @param[in] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_shadow_color_set(Evas_Text *obj, int r, int g, int b, int a);
/**
* @brief Controls the shadow color for the given text object.
*
* Shadow effects are fading colors decorating the text underneath it. They
* will be shown if the object is set to one of the following styles:
*
* - @c EVAS_TEXT_STYLE_TYPE_SHADOW - @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_FAR_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SOFT_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_SOFT_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_FAR_SOFT_SHADOW
*
* One can also change the direction where the shadow grows to, with
* @ref evas_object_text_style_get
*
* See @ref evas_object_text_shadow_color_get
*
* @note Use @c NULL pointers on the color components you're not interested in:
* they'll be ignored by the function.
*
* @param[in] obj The object.
* @param[out] r The red component of the given color.
* @param[out] g The green component of the given color.
* @param[out] b The blue component of the given color.
* @param[out] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_shadow_color_get(const Evas_Text *obj, int *r, int *g, int *b, int *a);
/**
* @brief Controls the ellipsis that should be used for the text object.
*
* This is a value between 0.0 and 1.0 indicating the position of the text to
* be shown. 0.0 means the start will be shown and the end trimmed, 1.0 means
* the beginning will be trimmed and the end will be shown, and any value in
* between will cause ellipsis to be added in both end of the text and the
* requested part to be shown. -1.0 means ellipsis is turned off.
*
* @param[in] obj The object.
* @param[in] ellipsis The ellipsis. Allowed values: -1.0 or 0.0-1.0
*
* @since 1.8
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_ellipsis_set(Evas_Text *obj, double ellipsis);
/**
* @brief Controls the ellipsis that should be used for the text object.
*
* This is a value between 0.0 and 1.0 indicating the position of the text to
* be shown. 0.0 means the start will be shown and the end trimmed, 1.0 means
* the beginning will be trimmed and the end will be shown, and any value in
* between will cause ellipsis to be added in both end of the text and the
* requested part to be shown. -1.0 means ellipsis is turned off.
*
* @param[in] obj The object.
*
* @return The ellipsis. Allowed values: -1.0 or 0.0-1.0
*
* @since 1.8
*
* @ingroup Evas_Object_Text_Group
*/
EAPI double evas_object_text_ellipsis_get(const Evas_Text *obj);
/**
* @brief Sets the BiDi delimiters used in the textblock.
*
* BiDi delimiters are use for in-paragraph separation of bidi segments. This
* is useful for example in recipients fields of e-mail clients where bidi
* oddities can occur when mixing RTL and LTR.
*
* @param[in] obj The object.
* @param[in] delim A null terminated string of delimiters, e.g ",|".
*
* @since 1.1
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_bidi_delimiters_set(Evas_Text *obj, const char *delim);
/**
* @brief Sets the BiDi delimiters used in the textblock.
*
* BiDi delimiters are use for in-paragraph separation of bidi segments. This
* is useful for example in recipients fields of e-mail clients where bidi
* oddities can occur when mixing RTL and LTR.
*
* @param[in] obj The object.
*
* @return A null terminated string of delimiters, e.g ",|".
*
* @since 1.1
*
* @ingroup Evas_Object_Text_Group
*/
EAPI const char *evas_object_text_bidi_delimiters_get(const Evas_Text *obj);
/**
* @brief Controls the outline color for the given text object.
*
* Outline effects (colored lines around text glyphs) will be shown if the
* object is set to one of the following styles: -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE - @c EVAS_TEXT_STYLE_TYPE_SOFT_OUTLINE -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SOFT_SHADOW
*
* @param[in] obj The object.
* @param[in] r The red component of the given color.
* @param[in] g The green component of the given color.
* @param[in] b The blue component of the given color.
* @param[in] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_outline_color_set(Evas_Text *obj, int r, int g, int b, int a);
/**
* @brief Controls the outline color for the given text object.
*
* Outline effects (colored lines around text glyphs) will be shown if the
* object is set to one of the following styles: -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE - @c EVAS_TEXT_STYLE_TYPE_SOFT_OUTLINE -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SHADOW -
* @c EVAS_TEXT_STYLE_TYPE_OUTLINE_SOFT_SHADOW
*
* @param[in] obj The object.
* @param[out] r The red component of the given color.
* @param[out] g The green component of the given color.
* @param[out] b The blue component of the given color.
* @param[out] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_outline_color_get(const Evas_Text *obj, int *r, int *g, int *b, int *a);
/**
* @brief Sets the 'glow 2' color for the given text object.
*
* 'Glow 2' effects are glowing colors decorating the text's (immediate)
* surroundings. They will be shown if the object is set to the
* @c EVAS_TEXT_STYLE_TYPE_GLOW style. See also
* @ref evas_object_text_glow_color_get.
*
* @param[in] obj The object.
* @param[in] r The red component of the given color.
* @param[in] g The green component of the given color.
* @param[in] b The blue component of the given color.
* @param[in] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_glow2_color_set(Evas_Text *obj, int r, int g, int b, int a);
/**
* @brief Sets the 'glow 2' color for the given text object.
*
* 'Glow 2' effects are glowing colors decorating the text's (immediate)
* surroundings. They will be shown if the object is set to the
* @c EVAS_TEXT_STYLE_TYPE_GLOW style. See also
* @ref evas_object_text_glow_color_get.
*
* @param[in] obj The object.
* @param[out] r The red component of the given color.
* @param[out] g The green component of the given color.
* @param[out] b The blue component of the given color.
* @param[out] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_glow2_color_get(const Evas_Text *obj, int *r, int *g, int *b, int *a);
/**
* @brief Controls the style to apply on the given text object.
*
* Text object styles are one of the values in @ref Evas_Text_Style_Type Some
* of those values are combinations of more than one style, and some account
* for the direction of the rendering of shadow effects.
*
* @note One may use the helper macros #EVAS_TEXT_STYLE_BASIC_SET and
* #EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET to assemble a style value.
*
* @param[in] obj The object.
* @param[in] style Style type
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_style_set(Evas_Text *obj, Evas_Text_Style_Type style);
/**
* @brief Controls the style to apply on the given text object.
*
* Text object styles are one of the values in @ref Evas_Text_Style_Type Some
* of those values are combinations of more than one style, and some account
* for the direction of the rendering of shadow effects.
*
* @note One may use the helper macros #EVAS_TEXT_STYLE_BASIC_SET and
* #EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET to assemble a style value.
*
* @param[in] obj The object.
*
* @return Style type
*
* @ingroup Evas_Object_Text_Group
*/
EAPI Evas_Text_Style_Type evas_object_text_style_get(const Evas_Text *obj);
/**
* @brief Sets the glow color for the given text object.
*
* Glow effects are glowing colors decorating the text's surroundings. They
* will be shown if the object is set to the @c EVAS_TEXT_STYLE_TYPE_GLOW
* style.
*
* @note Glow effects are placed from a short distance of the text itself, but
* not touching it. For glowing effects right on the borders of the glyphs, see
* 'glow 2' effects.
*
* @param[in] obj The object.
* @param[in] r The red component of the given color.
* @param[in] g The green component of the given color.
* @param[in] b The blue component of the given color.
* @param[in] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_glow_color_set(Evas_Text *obj, int r, int g, int b, int a);
/**
* @brief Sets the glow color for the given text object.
*
* Glow effects are glowing colors decorating the text's surroundings. They
* will be shown if the object is set to the @c EVAS_TEXT_STYLE_TYPE_GLOW
* style.
*
* @note Glow effects are placed from a short distance of the text itself, but
* not touching it. For glowing effects right on the borders of the glyphs, see
* 'glow 2' effects.
*
* @param[in] obj The object.
* @param[out] r The red component of the given color.
* @param[out] g The green component of the given color.
* @param[out] b The blue component of the given color.
* @param[out] a The alpha component of the given color.
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_glow_color_get(const Evas_Text *obj, int *r, int *g, int *b, int *a);
/**
* @brief Maximal descent property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_max_descent_get(const Evas_Text *obj);
/**
* @brief Gets the text style pad of a text object.
*
* @param[in] obj The object.
* @param[out] l The left pad (or @c NULL).
* @param[out] r The right pad (or @c NULL).
* @param[out] t The top pad (or @c NULL).
* @param[out] b The bottom pad (or @c NULL).
*
* @ingroup Evas_Object_Text_Group
*/
EAPI void evas_object_text_style_pad_get(const Evas_Text *obj, int *l, int *r, int *t, int *b);
/**
* @brief Retrieves the direction of the text currently being displayed in the
* text object.
*
* @param[in] obj The object.
*
* @return Bidirectional type
*
* @ingroup Evas_Object_Text_Group
*/
EAPI Efl_Text_Bidirectional_Type evas_object_text_direction_get(const Evas_Text *obj);
/**
* @brief Ascent property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_ascent_get(const Evas_Text *obj);
/**
* @brief Horizontal advance property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_horiz_advance_get(const Evas_Text *obj);
/**
* @brief Inset property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_inset_get(const Evas_Text *obj);
/**
* @brief Maximal ascent property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_max_ascent_get(const Evas_Text *obj);
/**
* @brief Vertical advance property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_vert_advance_get(const Evas_Text *obj);
/**
* @brief descent property
*
* @param[in] obj The object.
*
* @return Evas coordinate
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_descent_get(const Evas_Text *obj);
/**
* @brief Returns the logical position of the last char in the text up to the
* pos given.
*
* This is NOT the position of the last char because of the possibility of RTL
* in the text.
*
* @param[in] obj The object.
* @param[in] x X coordinate
* @param[in] y Y coordinate
*
* @return Logical position of the last char
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_last_up_to_pos(const Evas_Text *obj, int x, int y);
/**
* @brief Get character coordinates
*
* @param[in] obj The object.
* @param[in] x X coordinate
* @param[in] y Y coordinate
* @param[out] cx X coordinate
* @param[out] cy Y coordinate
* @param[out] cw Width
* @param[out] ch Height
*
* @return Logical position of char
*
* @ingroup Evas_Object_Text_Group
*/
EAPI int evas_object_text_char_coords_get(const Evas_Text *obj, int x, int y, int *cx, int *cy, int *cw, int *ch);
/**
* @brief Retrieve position and dimension information of a character within a
* text @ref Efl_Canvas_Object
*
* This function is used to obtain the X, Y, width and height of the character
* located at @c pos within the @ref Efl_Canvas_Object @c obj. @c obj must be a
* text object Any of the @c Evas_Coord parameters ($cx, @c cy, @c cw, @c ch)
* may be @c NULL in which case no value will be assigned to that parameter.
*
* @param[in] obj The object.
* @param[in] pos The character position to request co-ordinates for.
* @param[out] cx A pointer to an int to store the X value in (can be NULL).
* @param[out] cy A pointer to an int to store the Y value in (can be NULL).
* @param[out] cw A pointer to an int to store the Width value in (can be
* NULL).
* @param[out] ch A pointer to an int to store the Height value in (can be
* NULL).
*
* @return @c false on success, @c true otherwise
*
* @ingroup Evas_Object_Text_Group
*/
EAPI Eina_Bool evas_object_text_char_pos_get(const Evas_Text *obj, int pos, int *cx, int *cy, int *cw, int *ch);
#endif