1 #ifndef _EVAS_TEXTGRID_EO_LEGACY_H_ 2 #define _EVAS_TEXTGRID_EO_LEGACY_H_ 3 4 #ifndef _EVAS_TEXTGRID_EO_CLASS_TYPE 5 #define _EVAS_TEXTGRID_EO_CLASS_TYPE 6 7 typedef Eo Evas_Textgrid; 8 9 #endif 10 11 #ifndef _EVAS_TEXTGRID_EO_TYPES 12 #define _EVAS_TEXTGRID_EO_TYPES 13 14 /** The palette to use for the foreground and background colors. 15 * 16 * @since 1.7 17 * 18 * @ingroup Evas_Textgrid 19 */ 20 typedef enum 21 { 22 EVAS_TEXTGRID_PALETTE_NONE = 0, /**< No palette is used */ 23 EVAS_TEXTGRID_PALETTE_STANDARD, /**< Standard palette (around 16 colors) */ 24 EVAS_TEXTGRID_PALETTE_EXTENDED, /**< Extended palette (at max 256 colors) */ 25 EVAS_TEXTGRID_PALETTE_LAST /**< Sentinel value to indicate last enum field 26 * during iteration */ 27 } Evas_Textgrid_Palette; 28 29 /** The style to give to each character of the grid. 30 * 31 * @since 1.7 32 * 33 * @ingroup Evas_Textgrid 34 */ 35 typedef enum 36 { 37 EVAS_TEXTGRID_FONT_STYLE_NORMAL = 1 /* 1 >> 0 */, /**< Normal style */ 38 EVAS_TEXTGRID_FONT_STYLE_BOLD = 2 /* 1 >> 1 */, /**< Bold style */ 39 EVAS_TEXTGRID_FONT_STYLE_ITALIC = 4 /* 1 >> 2 */ /**< Oblique style */ 40 } Evas_Textgrid_Font_Style; 41 42 /** Evas textgrid cell data structure 43 * 44 * @ingroup Evas_Textgrid 45 */ 46 typedef struct _Evas_Textgrid_Cell Evas_Textgrid_Cell; 47 48 49 #endif 50 51 /** 52 * @brief This function is not implemented yet, do not use. 53 * 54 * @param[in] obj The object. 55 * @param[in] styles EVAS_TEXTGRID_FONT_STYLE_NORMAL 56 * 57 * @ingroup Evas_Object_Textgrid_Group 58 */ 59 EAPI void evas_object_textgrid_supported_font_styles_set(Evas_Textgrid *obj, Evas_Textgrid_Font_Style styles); 60 61 /** 62 * @brief This function is not implemented yet, do not use. 63 * 64 * @param[in] obj The object. 65 * 66 * @return EVAS_TEXTGRID_FONT_STYLE_NORMAL 67 * 68 * @ingroup Evas_Object_Textgrid_Group 69 */ 70 EAPI Evas_Textgrid_Font_Style evas_object_textgrid_supported_font_styles_get(const Evas_Textgrid *obj); 71 72 /** 73 * @brief Set the size of the textgrid object. 74 * 75 * This function sets the number of lines @c h and the number of columns @c w 76 * for the textgrid object @c obj. If @c w or @c h are less than or equal to 0, 77 * this function does nothing. 78 * 79 * @param[in] obj The object. 80 * @param[in] w The number of columns (width in cells) of the grid. 81 * @param[in] h The number of rows (height in cells) of the grid. 82 * 83 * @since 1.7 84 * 85 * @ingroup Evas_Object_Textgrid_Group 86 */ 87 EAPI void evas_object_textgrid_size_set(Evas_Textgrid *obj, int w, int h); 88 89 /** 90 * @brief Get the size of the textgrid object. 91 * 92 * This function retrieves the number of lines in the buffer @c h and the 93 * number of columns in the buffer @c w of the textgrid object @c obj. @c w or 94 * @c h can be @c null. On error, they are set to 0. 95 * 96 * @param[in] obj The object. 97 * @param[out] w The number of columns (width in cells) of the grid. 98 * @param[out] h The number of rows (height in cells) of the grid. 99 * 100 * @since 1.7 101 * 102 * @ingroup Evas_Object_Textgrid_Group 103 */ 104 EAPI void evas_object_textgrid_size_get(const Evas_Textgrid *obj, int *w, int *h); 105 106 /** 107 * @brief Retrieve the size of a cell of the given textgrid object in pixels. 108 * 109 * This functions retrieves the width and height, in pixels, of a cell of the 110 * textgrid object @c obj and stores them respectively in the buffers @c width 111 * and @c height. Their values depend on the monospace font and style used for 112 * the textgrid object. @c width and @c height can be @c null. On error, they 113 * are set to 0. 114 * 115 * See also @ref efl_text_font_size_set, @ref efl_text_font_family_set and 116 * @ref evas_object_textgrid_supported_font_styles_set 117 * 118 * @param[in] obj The object. 119 * @param[out] width A pointer to the location to store the cell's width in 120 * pixels. 121 * @param[out] height A pointer to the location to store the cell's height in 122 * pixels. 123 * 124 * @since 1.7 125 * 126 * @ingroup Evas_Object_Textgrid_Group 127 */ 128 EAPI void evas_object_textgrid_cell_size_get(const Evas_Textgrid *obj, int *width, int *height); 129 130 /** 131 * @brief Indicate for evas that part of a textgrid region (cells) has been 132 * updated. 133 * 134 * This function declares to evas that a region of cells was updated by code 135 * and needs refreshing. 136 * 137 * See also @ref evas_object_textgrid_cellrow_set, 138 * @ref evas_object_textgrid_cellrow_get and 139 * @ref evas_object_textgrid_size_set. 140 * 141 * @param[in] obj The object. 142 * @param[in] x The rect region of cells top-left x (column). 143 * @param[in] y The rect region of cells top-left y (row). 144 * @param[in] w The rect region size in number of cells (columns). 145 * @param[in] h The rect region size in number of cells (rows). 146 * 147 * @since 1.7 148 * 149 * @ingroup Evas_Object_Textgrid_Group 150 */ 151 EAPI void evas_object_textgrid_update_add(Evas_Textgrid *obj, int x, int y, int w, int h); 152 153 /** 154 * @brief Set the string at the given row of the given textgrid object. 155 * 156 * This function returns cells to the textgrid taken by 157 * evas_object_textgrid_cellrow_get. The row pointer @c row should be the same 158 * row pointer returned by evas_object_textgrid_cellrow_get for the same row 159 * @c y. 160 * 161 * See also @ref evas_object_textgrid_cellrow_get, 162 * @ref evas_object_textgrid_size_set and @ref evas_object_textgrid_update_add. 163 * 164 * @param[in] obj The object. 165 * @param[in] y The row index of the grid. 166 * @param[in] row The string as a sequence of #Evas_Textgrid_Cell. 167 * 168 * @since 1.7 169 * 170 * @ingroup Evas_Object_Textgrid_Group 171 */ 172 EAPI void evas_object_textgrid_cellrow_set(Evas_Textgrid *obj, int y, const Evas_Textgrid_Cell *row); 173 174 /** 175 * @brief Get the string at the given row of the given textgrid object. 176 * 177 * This function returns a pointer to the first cell of the line @c y of the 178 * textgrid object @c obj. If @c y is not between 0 and the number of lines of 179 * the grid - 1, or on error, this function return @c null. 180 * 181 * See also @ref evas_object_textgrid_cellrow_set, 182 * @ref evas_object_textgrid_size_set and @ref evas_object_textgrid_update_add. 183 * 184 * @param[in] obj The object. 185 * @param[in] y The row index of the grid. 186 * 187 * @return A pointer to the first cell of the given row. 188 * 189 * @since 1.7 190 * 191 * @ingroup Evas_Object_Textgrid_Group 192 */ 193 EAPI Evas_Textgrid_Cell *evas_object_textgrid_cellrow_get(const Evas_Textgrid *obj, int y); 194 195 /** 196 * @brief The set color to the given palette at the given index of the given 197 * textgrid object. 198 * 199 * This function sets the color for the palette of type @c pal at the index 200 * @c idx of the textgrid object @c obj. The ARGB components are given by @c r, 201 * @c g, @c b and @c a. This color can be used when setting the 202 * #Evas_Textgrid_Cell structure. The components must set a pre-multiplied 203 * color. If pal is #EVAS_TEXTGRID_PALETTE_NONE or #EVAS_TEXTGRID_PALETTE_LAST, 204 * or if @c idx is not between 0 and 255, or on error, this function does 205 * nothing. The color components are clamped between 0 and 255. If @c idx is 206 * greater than the latest set color, the colors between this last index and 207 * @c idx - 1 are set to black (0, 0, 0, 0). 208 * 209 * See also @ref evas_object_textgrid_palette_get. 210 * 211 * @param[in] obj The object. 212 * @param[in] pal The type of the palette to set the color. 213 * @param[in] idx The index of the palette to which the color is stored. 214 * @param[in] r The red component of the color. 215 * @param[in] g The green component of the color. 216 * @param[in] b The blue component of the color. 217 * @param[in] a The alpha component of the color. 218 * 219 * @since 1.7 220 * 221 * @ingroup Evas_Object_Textgrid_Group 222 */ 223 EAPI void evas_object_textgrid_palette_set(Evas_Textgrid *obj, Evas_Textgrid_Palette pal, int idx, int r, int g, int b, int a); 224 225 /** 226 * @brief The retrieve color to the given palette at the given index of the 227 * given textgrid object. 228 * 229 * This function retrieves the color for the palette of type @c pal at the 230 * index @c idx of the textgrid object @c obj. The ARGB components are stored 231 * in the buffers @c r, @c g, @c b and @c a. If @c idx is not between 0 and the 232 * index of the latest set color, or if @c pal is #EVAS_TEXTGRID_PALETTE_NONE 233 * or #EVAS_TEXTGRID_PALETTE_LAST, the values of the components are 0. @c r, 234 * @c g, @c b and @c a can be @c null. 235 * 236 * See also @ref evas_object_textgrid_palette_set. 237 * 238 * @param[in] obj The object. 239 * @param[in] pal The type of the palette to set the color. 240 * @param[in] idx The index of the palette to which the color is stored. 241 * @param[out] r A pointer to the red component of the color. 242 * @param[out] g A pointer to the green component of the color. 243 * @param[out] b A pointer to the blue component of the color. 244 * @param[out] a A pointer to the alpha component of the color. 245 * 246 * @since 1.7 247 * 248 * @ingroup Evas_Object_Textgrid_Group 249 */ 250 EAPI void evas_object_textgrid_palette_get(const Evas_Textgrid *obj, Evas_Textgrid_Palette pal, int idx, int *r, int *g, int *b, int *a); 251 252 #endif 253