2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiCtrlLabel.h
20 * @brief This is the header file for the %Label class.
22 * This header file contains the declarations of the %Label class and its helper classes.
25 #ifndef _FUI_CTRL_LABEL_H_
26 #define _FUI_CTRL_LABEL_H_
28 #include <FBaseObject.h>
29 #include <FBaseTypes.h>
30 #include <FBaseResult.h>
31 #include <FBaseString.h>
32 #include <FGrpBitmap.h>
33 #include <FGrpColor.h>
34 #include <FGrpPoint.h>
35 #include <FGrpRectangle.h>
36 #include <FUiControl.h>
37 #include <FUiContainer.h>
38 #include <FUiCtrlLabelTypes.h>
39 #include <FUiCtrlControlsTypes.h>
42 namespace Tizen { namespace Ui { namespace Controls
46 * @brief This class defines the common behavior of a %Label control.
50 * The %Label class displays a non-editable text field and does not accept any input from the user.
52 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/implementing_label.htm">Label</a>.
54 * The following example demonstrates how to use the %Label class.
57 // Sample code for LabelSample.h
61 : public Tizen::Ui::Controls::Form
67 bool Initialize(void);
68 virtual result OnInitializing(void);
71 Tizen::Ui::Controls::Label *__pLabel;
76 // Sample code for LabelSample.cpp
77 #include <FGraphics.h>
79 #include "LabelSample.h"
81 using namespace Tizen::Graphics;
82 using namespace Tizen::Ui::Controls;
85 LabelSample::Initialize(void)
87 Construct(FORM_STYLE_NORMAL);
92 LabelSample::OnInitializing(void)
96 // Creates an instance of Label
97 __pLabel = new Label();
98 __pLabel->Construct(Rectangle(100, 100, 200, 50), L"Label Text");
99 __pLabel->SetTextConfig(30, LABEL_TEXT_STYLE_BOLD);
100 __pLabel->SetBackgroundColor(Color::GetColor(COLOR_ID_BLUE));
102 // Adds the label to the form
103 AddControl(*__pLabel);
110 class _OSP_EXPORT_ Label
111 : public Tizen::Ui::Control
115 * This is the default constructor for this class.
122 * This is the destructor for this class.
126 virtual ~Label(void);
129 * Initializes this instance of %Label with the specified parameters.
133 * @return An error code
134 * @param[in] rect An instance of the Rectangle class @n
135 * This instance represents the x and y coordinates of the top-left corner of the created window along with
136 * the width and height of the window.
137 * @param[in] text The text for this label instance
138 * @exception E_SUCCESS The method is successful.
139 * @exception E_INVALID_ARG A specified input parameter is invalid.
140 * @exception E_SYSTEM A system error has occurred.
141 * @remarks A control is fully usable only after it has been added to a container, therefore some methods may fail if used earlier.
142 * To display text in multi-lines or to denote the end of line use '\\n'. @n
143 * The size of the control must be within the range defined by the minimum size and the maximum size.
145 result Construct(const Tizen::Graphics::Rectangle& rect, const Tizen::Base::String& text);
149 * Sets the specified text for the %Label control.
153 * @param[in] text The string to set
154 * @remarks To display text in multi-lines or to denote the end of line use '\\n'.
156 void SetText(const Tizen::Base::String& text);
159 * Gets the text of the %Label control.
163 * @return The text of the %Label control, @n
164 * else an empty string if an error occurs
166 Tizen::Base::String GetText(void) const;
169 * Sets the background bitmap of the %Label control.
173 * @param[in] bitmap The background bitmap
175 void SetBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
178 * Sets the horizontal alignment of the text of the %Label control.
182 * @param[in] alignment The horizontal text alignment
184 void SetTextHorizontalAlignment(HorizontalAlignment alignment);
187 * Gets the horizontal alignment of the text of the %Label control.
191 * @return The horizontal text alignment, @n
192 * else @c ALIGNMENT_LEFT if the instance is invalid
194 HorizontalAlignment GetTextHorizontalAlignment(void) const;
197 * Sets the vertical alignment of the text of the %Label control.
201 * @param[in] alignment The vertical text alignment
203 void SetTextVerticalAlignment(VerticalAlignment alignment);
206 * Gets the vertical alignment of the text of the %Label control.
210 * @return The vertical text alignment, @n
211 * else @c ALIGNMENT_TOP if the instance is invalid
213 VerticalAlignment GetTextVerticalAlignment(void) const;
216 * Sets the background color of the %Label control.
220 * @param[in] color The normal background color
222 void SetBackgroundColor(const Tizen::Graphics::Color& color);
225 * Gets the background color of the %Label control.
229 * @return The background color
231 Tizen::Graphics::Color GetBackgroundColor(void) const;
234 * Sets the text color of the %Label control.
238 * @param[in] color The color to be set
240 virtual void SetTextColor(const Tizen::Graphics::Color& color);
243 * Gets the text color of the %Label control.
247 * @return The text color
249 virtual Tizen::Graphics::Color GetTextColor(void) const;
252 * Sets the text attributes of the %Label control.
256 * @param[in] size The size of the text
257 * @param[in] style The style of the text
258 * @exception E_SUCCESS The method is successful.
259 * @exception E_INVALID_ARG A specified input parameter is invalid.
260 * @remarks The specific error code can be accessed using the GetLastResult() method. @n
261 * If @c size is less than the minimum size, this method fails. The minimum font size is 6 on devices of high screen density.
263 void SetTextConfig(int size, LabelTextStyle style);
266 * Gets the text size of the %Label control.
270 * @return The size of the text, @n
271 * else @c -1 if an error occurs
273 int GetTextSize(void) const;
276 * Gets the text style of the %Label control.
280 * @return The style of the text, @n
281 * else @c LABEL_TEXT_STYLE_NORMAL if the instance is invalid
283 LabelTextStyle GetTextStyle(void) const;
286 * Sets the top and left margins.
290 * @return An error code
291 * @param[in] topMargin The top margin.
292 * @param[in] leftMargin The left margin.
293 * @exception E_SUCCESS The method is successful.
294 * @exception E_INVALID_ARG The specified input parameter is invalid. @n
295 * The specified @c size must be greater than @c 0.
297 * @see GetTopMargin(), GetLeftMargin()
299 result SetMargin(int topMargin, int leftMargin);
302 * Gets the top margin.
306 * @return The size of the top margin, @n
307 * else @c -1 if an error occurs
310 int GetTopMargin(void) const;
313 * Gets the left margin.
317 * @return The size of the left margin, @n
318 * else @c -1 if an error occurs.
321 int GetLeftMargin(void) const;
324 friend class _LabelImpl;
328 // This is the copy constructor for this class.
330 Label(const Label& rhs);
333 // Assigns the value of the specified instance to the current instance of %Label.
335 Label& operator =(const Label& rhs);
339 }}} // Tizen::Ui::Controls
341 #endif // _FUI_CTRL_LABEL_H_