Merge remote-tracking branch 'remotes/origin/upstream'
[framework/uifw/elementary.git] / src / lib / elm_label.h
1 /**
2  * @defgroup Label Label
3  *
4  * @image html img/widget/label/preview-00.png
5  * @image latex img/widget/label/preview-00.eps
6  *
7  * @brief Widget to display text, with simple html-like markup.
8  *
9  * The Label widget @b doesn't allow text to overflow its boundaries, if the
10  * text doesn't fit the geometry of the label it will be ellipsized or be
11  * cut. Elementary provides several styles for this widget:
12  * @li default - No animation
13 <<<<<<< HEAD
14  * @li marker - Centers the text in the label and make it bold by default
15  * @li slide_long - The entire text appears from the right of the screen and
16  * slides until it disappears in the left of the screen(reappering on the
17 =======
18  * @li marker - Centers the text in the label and makes it bold by default
19  * @li slide_long - The entire text appears from the right of the screen and
20  * slides until it disappears in the left of the screen(reappearing on the
21 >>>>>>> remotes/origin/upstream
22  * right again).
23  * @li slide_short - The text appears in the left of the label and slides to
24  * the right to show the overflow. When all of the text has been shown the
25  * position is reset.
26  * @li slide_bounce - The text appears in the left of the label and slides to
27  * the right to show the overflow. When all of the text has been shown the
28  * animation reverses, moving the text to the left.
29  *
30  * Custom themes can of course invent new markup tags and style them any way
31  * they like.
32  *
33  * The following signals may be emitted by the label widget:
34  * @li "language,changed": The program's language changed.
35  *
36  * See @ref tutorial_label for a demonstration of how to use a label widget.
37  * @{
38  */
39
40 /**
41  * @brief Add a new label to the parent
42  *
43  * @param parent The parent object
44  * @return The new object or NULL if it cannot be created
45  */
46 EAPI Evas_Object                *elm_label_add(Evas_Object *parent);
47
48 /**
49  * @brief Set the wrapping behavior of the label
50  *
51  * @param obj The label object
52  * @param wrap To wrap text or not
53  *
54  * By default no wrapping is done. Possible values for @p wrap are:
55  * @li ELM_WRAP_NONE - No wrapping
56  * @li ELM_WRAP_CHAR - wrap between characters
57  * @li ELM_WRAP_WORD - wrap between words
58  * @li ELM_WRAP_MIXED - Word wrap, and if that fails, char wrap
59  */
60 EAPI void                        elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap);
61
62 /**
63  * @brief Get the wrapping behavior of the label
64  *
65  * @param obj The label object
66  * @return Wrap type
67  *
68  * @see elm_label_line_wrap_set()
69  */
70 EAPI Elm_Wrap_Type               elm_label_line_wrap_get(const Evas_Object *obj);
71
72 /**
73  * @brief Set wrap width of the label
74  *
75  * @param obj The label object
76  * @param w The wrap width in pixels at a minimum where words need to wrap
77  *
78  * This function sets the maximum width size hint of the label.
79  *
80  * @warning This is only relevant if the label is inside a container.
81  */
82 EAPI void                        elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w);
83
84 /**
85  * @brief Get wrap width of the label
86  *
87  * @param obj The label object
88  * @return The wrap width in pixels at a minimum where words need to wrap
89  *
90  * @see elm_label_wrap_width_set()
91  */
92 EAPI Evas_Coord                  elm_label_wrap_width_get(const Evas_Object *obj);
93
94 /**
95 <<<<<<< HEAD
96  * @brief Set wrap height of the label
97  *
98  * @param obj The label object
99  * @param h The wrap height in pixels at a minimum where words need to wrap
100  *
101  * This function sets the maximum height size hint of the label.
102  *
103  * @warning This is only relevant if the label is inside a container.
104  */
105 EAPI void                        elm_label_wrap_height_set(Evas_Object *obj, Evas_Coord h);
106
107 /**
108  * @brief get wrap width of the label
109  *
110  * @param obj The label object
111  * @return The wrap height in pixels at a minimum where words need to wrap
112  */
113 EAPI Evas_Coord                  elm_label_wrap_height_get(const Evas_Object *obj);
114
115 /**
116  * @brief Set the font size on the label object.
117  *
118  * @param obj The label object
119  * @param size font size
120  *
121  * @warning NEVER use this. It is for hyper-special cases only. use styles
122  * instead. e.g. "default", "marker", "slide_long" etc.
123  */
124 EAPI void                        elm_label_fontsize_set(Evas_Object *obj, int fontsize);
125
126 /**
127  * @brief Set the text color on the label object
128  *
129  * @param obj The label object
130  * @param r Red property background color of The label object
131  * @param g Green property background color of The label object
132  * @param b Blue property background color of The label object
133  * @param a Alpha property background color of The label object
134  *
135  * @warning NEVER use this. It is for hyper-special cases only. use styles
136  * instead. e.g. "default", "marker", "slide_long" etc.
137  */
138 EAPI void                        elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
139
140 /**
141  * @brief Set the text align on the label object
142  *
143  * @param obj The label object
144  * @param align align mode ("left", "center", "right")
145  *
146  * @warning NEVER use this. It is for hyper-special cases only. use styles
147  * instead. e.g. "default", "marker", "slide_long" etc.
148  */
149 EAPI void                        elm_label_text_align_set(Evas_Object *obj, const char *alignmode);
150
151 /**
152  * @brief Set background color of the label
153  *
154  * @param obj The label object
155  * @param r Red property background color of The label object
156  * @param g Green property background color of The label object
157  * @param b Blue property background color of The label object
158  * @param a Alpha property background alpha of The label object
159  *
160  * @warning NEVER use this. It is for hyper-special cases only. use styles
161  * instead. e.g. "default", "marker", "slide_long" etc.
162  */
163 EAPI void                        elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
164
165 /**
166 =======
167 >>>>>>> remotes/origin/upstream
168  * @brief Set the ellipsis behavior of the label
169  *
170  * @param obj The label object
171  * @param ellipsis To ellipsis text or not
172  *
173  * If set to true and the text doesn't fit in the label an ellipsis("...")
174  * will be shown at the end of the widget.
175  *
176  * @warning This doesn't work with slide(elm_label_slide_set()) or if the
177 <<<<<<< HEAD
178  * choosen wrap method was ELM_WRAP_WORD.
179 =======
180  * chosen wrap method was ELM_WRAP_WORD.
181 >>>>>>> remotes/origin/upstream
182  */
183 EAPI void                        elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis);
184
185 /**
186 <<<<<<< HEAD
187  * @brief Set the text slide of the label
188  *
189  * @param obj The label object
190  * @param slide To start slide or stop
191 =======
192  * @brief Get the ellipsis behavior of the label
193  *
194  * @param obj The label object
195  * @return If true, an ellipsis will be shown at the end of the label area.
196  *
197  * @see elm_label_ellipsis_set()
198  */
199 EAPI Eina_Bool                   elm_label_ellipsis_get(const Evas_Object *obj);
200
201 /**
202  * @brief Set sliding effect of label widget.
203  *
204  * @param obj The label object
205  * @param slide If true, sliding effect will be shown
206 >>>>>>> remotes/origin/upstream
207  *
208  * If set to true, the text of the label will slide/scroll through the length of
209  * label.
210  *
211  * @warning This only works with the themes "slide_short", "slide_long" and
212  * "slide_bounce".
213  */
214 EAPI void                        elm_label_slide_set(Evas_Object *obj, Eina_Bool slide);
215
216 /**
217 <<<<<<< HEAD
218  * @brief Get the text slide mode of the label
219  *
220  * @param obj The label object
221  * @return slide slide mode value
222  *
223  * @see elm_label_slide_set()
224  */
225 EAPI Eina_Bool                   elm_label_slide_get(Evas_Object *obj);
226 =======
227  * @brief Get whether sliding effect is shown or not.
228  *
229  * @param obj The label object
230  * @return If true, sliding effect is shown.
231  *
232  * @see elm_label_slide_set()
233  */
234 EAPI Eina_Bool                   elm_label_slide_get(const Evas_Object *obj);
235 >>>>>>> remotes/origin/upstream
236
237 /**
238  * @brief Set the slide duration(speed) of the label
239  *
240  * @param obj The label object
241 <<<<<<< HEAD
242  * @return The duration in seconds in moving text from slide begin position
243 =======
244  * @param duration The duration in seconds in moving text from slide begin position
245 >>>>>>> remotes/origin/upstream
246  * to slide end position
247  */
248 EAPI void                        elm_label_slide_duration_set(Evas_Object *obj, double duration);
249
250 /**
251  * @brief Get the slide duration(speed) of the label
252  *
253  * @param obj The label object
254  * @return The duration time in moving text from slide begin position to slide end position
255  *
256  * @see elm_label_slide_duration_set()
257  */
258 <<<<<<< HEAD
259 EAPI double                      elm_label_slide_duration_get(Evas_Object *obj);
260 =======
261 EAPI double                      elm_label_slide_duration_get(const Evas_Object *obj);
262 >>>>>>> remotes/origin/upstream
263
264 /**
265  * @}
266  */