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 FUiCtrlCheckButton.h
20 * @brief This is the header file for the %CheckButton class.
22 * This header file contains the declarations of the %CheckButton class and its helper classes.
25 #ifndef _FUI_CTRL_CHECK_BUTTON_H_
26 #define _FUI_CTRL_CHECK_BUTTON_H_
28 #include <FBaseResult.h>
29 #include <FBaseObject.h>
30 #include <FBaseTypes.h>
31 #include <FUiControl.h>
32 #include <FUiContainer.h>
33 #include <FUiCtrlButton.h>
34 #include <FUiCtrlControlsTypes.h>
36 namespace Tizen { namespace Ui { namespace Controls
39 * @enum CheckButtonStatus
41 * Defines the %CheckButton status.
45 enum CheckButtonStatus
47 CHECK_BUTTON_STATUS_NORMAL, /**< The normal status */
48 CHECK_BUTTON_STATUS_DISABLED, /**< The disabled status */
49 CHECK_BUTTON_STATUS_PRESSED, /**< The pressed status */
50 CHECK_BUTTON_STATUS_HIGHLIGHTED /**< The highlighted status */
54 * @enum CheckButtonStyle
56 * Defines the %CheckButton style.
62 CHECK_BUTTON_STYLE_MARK, /**< The mark style for multiple selection */
63 CHECK_BUTTON_STYLE_MARK_WITH_DIVIDER, /**< @if OSPDEPREC @deprecated This enumeration field is deprecated because the use of the divider style is no longer recommended @n
64 Instead of using the divider style, use the detailed button style. @endif */
65 CHECK_BUTTON_STYLE_ONOFF, /**< @if OSPDEPREC @deprecated This enumeration field is deprecated because the use of the on-off style is no longer recommended @n
66 Instead of using the on-off style, use the on-off sliding style @endif*/
67 CHECK_BUTTON_STYLE_ONOFF_WITH_DIVIDER, /**< @if OSPDEPREC @deprecated This enumeration field is deprecated because the use of the on-off style is no longer recommended @endif */
68 CHECK_BUTTON_STYLE_RADIO, /**< The radio style for single selection */
69 CHECK_BUTTON_STYLE_RADIO_WITH_DIVIDER, /**< @if OSPDEPREC @deprecated This enumeration field is deprecated because the use of the divider style is no longer recommended @n
70 Instead of using the divider style, use the detailed button style @endif*/
71 CHECK_BUTTON_STYLE_ONOFF_SLIDING, /**< The slider style on/off */
72 CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON, /**< The mark style with detail button */
73 CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON, /**< The radio style with detail button */
74 CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER, /**< The slider style On/Off with divider @b Since: @b 2.1 */
79 * @brief This class defines the common behavior of a %CheckButton control.
83 * The %CheckButton class displays a rectangular area, which can be selected, and shows the current selection.
85 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/implementing_button.htm">Buttons</a>.
87 * The following example demonstrates how to use the %CheckButton class.
91 // Sample code for CheckButtonSample.h
94 class CheckButtonSample
95 : public Tizen::Ui::Controls::Form
96 , public Tizen::Ui::IActionEventListener
99 CheckButtonSample(void)
100 : __pCheckButton(null){}
102 bool Initialize(void);
103 virtual result OnInitializing(void);
105 // IActionEventListener
106 virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
109 static const int ID_BUTTON_CHECKED = 101;
110 static const int ID_BUTTON_UNCHECKED = 102;
111 static const int ID_BUTTON_SELECTED = 103;
113 Tizen::Ui::Controls::CheckButton* __pCheckButton;
119 // Sample Code for CheckButtonSample.cpp
120 #include <FGraphics.h>
122 #include "CheckButtonSample.h"
124 using namespace Tizen::Graphics;
125 using namespace Tizen::Ui::Controls;
128 CheckButtonSample::Initialize(void)
130 Construct(FORM_STYLE_NORMAL);
135 CheckButtonSample::OnInitializing(void)
137 result r = E_SUCCESS;
139 // Creates a CheckButton
140 __pCheckButton = new CheckButton();
141 __pCheckButton->Construct(Rectangle(50, 50, 400, 100),
142 CHECK_BUTTON_STYLE_RADIO_WITH_DIVIDER, BACKGROUND_STYLE_DEFAULT, false, L"CheckButton");
143 __pCheckButton->SetActionId(ID_BUTTON_CHECKED, ID_BUTTON_UNCHECKED, ID_BUTTON_SELECTED);
144 __pCheckButton->AddActionEventListener(*this);
146 // Add a CheckButton to the Form
147 AddControl(*__pCheckButton);
152 // Implements an IActionEventListener
154 CheckButtonSample::OnActionPerformed(const Control& source, int actionId)
158 case ID_BUTTON_CHECKED:
161 case ID_BUTTON_UNCHECKED:
164 case ID_BUTTON_SELECTED:
175 class _OSP_EXPORT_ CheckButton
176 : public Tizen::Ui::Control
180 * This is the default constructor for this class.
187 * This is the destructor for this class.
191 virtual ~CheckButton(void);
194 * Initializes this instance of %CheckButton with the specified parameters.
198 * @return An error code
199 * @param[in] rect An instance of the Rectangle class @n
200 * This instance represents the x and y coordinates of the top-left corner of the created window
201 * along with the width and height of the window.
202 * @param[in] style The style of the %CheckButton control
203 * @param[in] backgroundStyle The background style set of the %CheckButton control
204 * @param[in] showTitle Set to @c true to enable the title, @n
206 * @param[in] text The text of the %CheckButton control
207 * @param[in] groupStyle The group style of the %CheckButton control
208 * @exception E_SUCCESS The method is successful.
209 * @exception E_INVALID_ARG A specified input parameter is invalid.@n
210 * The specified size is less than the minimum size of the control.
211 * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
212 * The background style of BACKGROUND_STYLE_NONE does not work with group styles except GROUP_STYLE_NONE.
213 * @exception E_SYSTEM A system error has occurred.
214 * @remarks A control is fully usable only after it has been added to a container, therefore some methods may fail if used earlier. @n
216 result Construct(const Tizen::Graphics::Rectangle& rect, CheckButtonStyle style, BackgroundStyle backgroundStyle =
217 BACKGROUND_STYLE_DEFAULT, bool showTitle = false, const Tizen::Base::String& text = L"", GroupStyle groupStyle = GROUP_STYLE_NONE);
220 * Initializes this instance of %CheckButton with the specified parameters.
224 * @return An error code
225 * @param[in] rect An instance of the Rectangle class @n
226 * This instance represents the x and y coordinates of the top-left corner of the created window
227 * along with the width and height of the window.
228 * @param[in] style The style of the %CheckButton control
229 * @param[in] backgroundStyle The background style set of the %CheckButton control
230 * @param[in] showTitle Set to @c true to enable the title, @n
232 * @param[in] text The text of the %CheckButton control
233 * @param[in] groupStyle The group style of the %CheckButton control
234 * @exception E_SUCCESS The method is successful.
235 * @exception E_INVALID_ARG A specified input parameter is invalid.@n
236 * The specified size is less than the minimum size of the control.
237 * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation. @n
238 * The background style of BACKGROUND_STYLE_NONE does not work with group styles except GROUP_STYLE_NONE.
239 * @exception E_SYSTEM A system error has occurred.
240 * @remarks A control is fully usable only after it has been added to a container, therefore some methods may fail if used earlier. @n
242 result Construct(const Tizen::Graphics::FloatRectangle& rect, CheckButtonStyle style, BackgroundStyle backgroundStyle =
243 BACKGROUND_STYLE_DEFAULT, bool showTitle = false, const Tizen::Base::String& text = L"", GroupStyle groupStyle = GROUP_STYLE_NONE);
246 * Sets the selected status of the %CheckButton control.
250 * @param[in] select Set to @c true if the %CheckButton control is selected, @n
253 void SetSelected(bool select);
256 * Checks whether the %CheckButton control has been selected.
260 * @return @c true if the %CheckButton is selected, @n
263 bool IsSelected(void) const;
267 * Adds an IActionEventListener instance. @n
268 * The added listener can listen to events on the context of the given event dispatcher when they are fired.
272 * @param[in] listener The event listener to be added
274 void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
277 * Removes an IActionEventListener instance. @n
278 * The removed listener cannot listen to events when they are fired.
282 * @param[in] listener The event listener to be removed
284 void RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
287 * Sets the action IDs for the %CheckButton control.
291 * @param[in] checkedActionId The action ID for the checked state
292 * @param[in] uncheckedActionId The action ID for the unchecked state
293 * @param[in] selectedActionId The action ID for the selected state
295 void SetActionId(int checkedActionId, int uncheckedActionId, int selectedActionId = -1);
298 * Gets the action ID for the checked state.
302 * @return An integer value representing the action ID
304 int GetCheckedActionId(void) const;
307 * Gets the action ID for the unchecked state.
311 * @return An integer value representing the action ID
313 int GetUncheckedActionId(void) const;
316 * Gets the action ID for the selected state.
320 * @return An integer value representing the action ID
322 int GetSelectedActionId(void) const;
326 * Sets the text that the %CheckButton control displays.
330 * @param[in] text The text of the %CheckButton control
332 void SetText(const Tizen::Base::String& text);
335 * Sets the horizontal alignment of the text of the %CheckButton control.
339 * @param[in] alignment The horizontal text alignment
341 void SetTextHorizontalAlignment(HorizontalAlignment alignment);
344 * Sets the vertical alignment of the text of the %CheckButton control.
348 * @param[in] alignment The vertical text alignment
350 void SetTextVerticalAlignment(VerticalAlignment alignment);
354 * Gets the text of the %CheckButton control.
358 * @return The text of the %CheckButton control
360 Tizen::Base::String GetText(void) const;
363 * Gets the horizontal alignment of the text of the %CheckButton control.
366 * @return The horizontal text alignment
368 HorizontalAlignment GetTextHorizontalAlignment(void) const;
371 * Gets the vertical alignment of the text of the %CheckButton control.
374 * @return The vertical text alignment
376 VerticalAlignment GetTextVerticalAlignment(void) const;
379 * Sets the title text of the %CheckButton control.
382 * @return An error code
383 * @param[in] title The title text to be set
384 * @exception E_SUCCESS The method is successful.
385 * @exception E_SYSTEM A system error has occurred.
387 result SetTitleText(const Tizen::Base::String& title);
390 * Gets the title text of the %CheckButton control.
393 * @return The title text
395 Tizen::Base::String GetTitleText(void) const;
399 * Sets the text color of the %CheckButton control.
403 * @param[in] color The text color to be set
405 void SetTextColor(const Tizen::Graphics::Color& color);
408 * Gets the text color of the %CheckButton control.
412 * @return The text color
414 Tizen::Graphics::Color GetTextColor(void) const;
418 * Sets the title text color of the %CheckButton control.
422 * @param[in] color The text color to be set
424 void SetTitleTextColor(const Tizen::Graphics::Color& color);
427 * Gets the title text color of the %CheckButton control.
431 * @return The text color
433 Tizen::Graphics::Color GetTitleTextColor(void) const;
436 * Sets the color of the %CheckButton control for the specified status.
439 * @return An error code
440 * @param[in] color The color to be set
441 * @param[in] status The status
442 * @exception E_SUCCESS The method is successful.
443 * @exception E_INVALID_OPERATION The current state of the instance prohibits the execution of the specified operation.@n
444 * The operation is not supported if the background style is BACKGROUND_STYLE_NONE.
445 * @exception E_SYSTEM A system error has occurred.
447 result SetColor(CheckButtonStatus status, const Tizen::Graphics::Color& color);
450 * Gets the color of the %CheckButton control for the specified status.
453 * @return The color, @n
454 * else RGBA (0, 0, 0, 0) if an error occurs
455 * @param[in] status The status
456 * @exception E_SUCCESS The method is successful.
457 * @exception E_INVALID_OPERATION The background style is not proper.
458 * @remarks The specific error code can be accessed using the GetLastResult() method.
460 Tizen::Graphics::Color GetColor(CheckButtonStatus status) const;
463 * Sets the text color of the %CheckButton control for the pressed status.
467 * @return An error code
468 * @param[in] color The text color to be set
469 * @exception E_SUCCESS The method is successful.
470 * @exception E_SYSTEM A system error has occurred.
472 result SetPressedTextColor(const Tizen::Graphics::Color& color);
475 * Gets the text color of the %CheckButton control for the pressed status.
478 * @return The text color, @n
479 * else RGBA (0, 0, 0, 0) if an error occurs
480 * @exception E_SUCCESS The method is successful.
481 * @remarks The specific error code can be accessed using the GetLastResult() method.
483 Tizen::Graphics::Color GetPressedTextColor(void) const;
486 * Sets the title text color of the %CheckButton control for the pressed status.
490 * @return An error code
491 * @param[in] color The pressed title text color
492 * @exception E_SUCCESS The method is successful.
493 * @exception E_SYSTEM A system error has occurred.
495 result SetPressedTitleTextColor(const Tizen::Graphics::Color& color);
498 * Gets the title text color of the %CheckButton for the pressed status.
502 * @return The title text color, @n
503 * else RGBA (0, 0, 0, 0) if an error occurs
504 * @exception E_SUCCESS The method is successful.
505 * @remarks The specific error code can be accessed using the GetLastResult() method.
507 Tizen::Graphics::Color GetPressedTitleTextColor(void) const;
510 * Sets the text color of the %CheckButton control for the highlighted status.
514 * @return An error code
515 * @param[in] color The text color to be set
516 * @exception E_SUCCESS The method is successful.
517 * @exception E_SYSTEM A system error has occurred.
519 result SetHighlightedTextColor(const Tizen::Graphics::Color& color);
522 * Gets the text color of the %CheckButton control for the highlighted status.
526 * @return The text color, @n
527 * else RGBA (0, 0, 0, 0) if an error occurs
528 * @exception E_SUCCESS The method is successful.
529 * @remarks The specific error code can be accessed using the GetLastResult() method.
531 Tizen::Graphics::Color GetHighlightedTextColor(void) const;
534 * Sets the title text color of the %CheckButton control for the highlighted status.
538 * @return An error code
539 * @param[in] color The highlighted title text color
540 * @exception E_SUCCESS The method is successful.
541 * @exception E_SYSTEM A system error has occurred.
543 result SetHighlightedTitleTextColor(const Tizen::Graphics::Color& color);
546 * Gets the title text color of the %CheckButton control for the highlighted status.
550 * @return The title text color, @n
551 * else RGBA (0, 0, 0, 0) if an error occurs
552 * @exception E_SUCCESS The method is successful.
553 * @remarks The specific error code can be accessed using the GetLastResult() method.
555 Tizen::Graphics::Color GetHighlightedTitleTextColor(void) const;
558 * Sets the text color of the %CheckButton control for the disabled status.
562 * @return An error code
563 * @param[in] color The text color to be set
564 * @exception E_SUCCESS The method is successful.
565 * @exception E_SYSTEM A system error has occurred.
567 result SetDisabledTextColor(const Tizen::Graphics::Color& color);
570 * Gets the text color of the %CheckButton control for the disabled status.
574 * @return The text color, @n
575 * else RGBA (0, 0, 0, 0) if an error occurs
576 * @exception E_SUCCESS The method is successful.
577 * @remarks The specific error code can be accessed using the GetLastResult() method.
579 Tizen::Graphics::Color GetDisabledTextColor(void) const;
582 * Sets the title text color of the %CheckButton control for the disabled status.
586 * @return An error code
587 * @param[in] color The disabled title text color
588 * @exception E_SUCCESS The method is successful.
589 * @exception E_SYSTEM A system error has occurred.
591 result SetDisabledTitleTextColor(const Tizen::Graphics::Color& color);
594 * Gets the title text color of %CheckButton for the disabled status.
598 * @return The title text color, @n
599 * else RGBA (0, 0, 0, 0) if an error occurs
600 * @exception E_SUCCESS The method is successful.
601 * @remarks The specific error code can be accessed using the GetLastResult() method.
603 Tizen::Graphics::Color GetDisabledTitleTextColor(void) const;
606 friend class _CheckButtonImpl;
609 friend class RadioGroup;
612 // This is the copy constructor for this class.
614 CheckButton(const CheckButton& rhs);
617 // Assigns the value of the specified instance to the current instance of %CheckButton.
619 CheckButton& operator =(const CheckButton& rhs);
623 }}} // Tizen::Ui::Controls
625 #endif // _FUI_CTRL_CHECK_BUTTON_H_