Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_CheckButton.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17 /**
18  * @file                FUiCtrl_CheckButton.h
19  * @brief               This is the header file for the _CheckButton class.
20  *
21  * This header file contains the declarations of the %_CheckButton class.
22  */
23 #ifndef _FUI_CTRL_INTERNAL_CHECK_BUTTON_H_
24 #define _FUI_CTRL_INTERNAL_CHECK_BUTTON_H_
25
26 #include <FUiCtrlCheckButton.h>
27 #include "FUi_Control.h"
28 #include "FUiCtrl_IActionEventListener.h"
29 #include "FUiCtrl_ActionEvent.h"
30
31 namespace Tizen { namespace Ui
32 {
33 class _AccessibilityElement;
34 class _IAccessibilityListener;
35 }} // Tizen::Ui
36
37 namespace Tizen { namespace Ui { namespace Controls
38 {
39 class _CheckButtonPresenter;
40
41 /**
42  * @class _CheckButton
43  * @brief
44  * @since       1.0
45  *
46  *
47  *
48  *
49  */
50
51 class _OSP_EXPORT_ _CheckButton
52         : public Tizen::Ui::_Control
53         , virtual public Tizen::Base::Runtime::IEventListener
54         , virtual public Tizen::Ui::_IUiEventListener
55         , virtual public Tizen::Ui::_IUiEventPreviewer
56 {
57                 DECLARE_CLASS_BEGIN(_CheckButton, _Control);
58                 DECLARE_PROPERTY("normalColor", GetPropertyNormalColor, SetPropertyNormalColor);
59                 DECLARE_PROPERTY("disabledColor", GetPropertyDisabledColor, SetPropertyDisabledColor);
60                 DECLARE_PROPERTY("pressedColor", GetPropertyPressedColor, SetPropertyPressedColor);
61                 DECLARE_PROPERTY("highlightedColor", GetPropertyHighlightedColor, SetPropertyHighlightedColor);
62                 DECLARE_PROPERTY("normalTextColor", GetPropertyNormalTextColor, SetPropertyNormalTextColor);
63                 DECLARE_PROPERTY("disabledTextColor", GetPropertyDisabledTextColor, SetPropertyDisabledTextColor);
64                 DECLARE_PROPERTY("pressedTextColor", GetPropertyPressedTextColor, SetPropertyPressedTextColor);
65                 DECLARE_PROPERTY("highlightedTextColor", GetPropertyHighlightedTextColor, SetPropertyHighlightedTextColor);
66                 DECLARE_PROPERTY("normalTitleTextColor", GetPropertyNormalTitleTextColor, SetPropertyNormalTitleTextColor);
67                 DECLARE_PROPERTY("disabledTitleTextColor", GetPropertyDisabledTitleTextColor, SetPropertyDisabledTitleTextColor);
68                 DECLARE_PROPERTY("pressedTitleTextColor", GetPropertyPressedTitleTextColor, SetPropertyPressedTitleTextColor);
69                 DECLARE_PROPERTY("highlightedTitleTextColor", GetPropertyHighlightedTitleTextColor, SetPropertyHighlightedTitleTextColor);
70                 DECLARE_PROPERTY("checkedActionId", GetPropertyCheckedActionId, SetPropertyCheckedActionId);
71                 DECLARE_PROPERTY("uncheckedActionId", GetPropertyUncheckedActionId, SetPropertyUncheckedActionId);
72                 DECLARE_PROPERTY("selectedActionId", GetPropertySelectedActionId, SetPropertySelectedActionId);
73                 DECLARE_PROPERTY("text", GetPropertyText, SetPropertyText);
74                 DECLARE_PROPERTY("titleText", GetPropertyTitleText, SetPropertyTitleText);
75                 DECLARE_PROPERTY("selected", GetPropertySelected, SetPropertySelected);
76                 DECLARE_CLASS_END();
77
78                 result SetPropertyNormalColor(const Variant& color);
79                 Variant GetPropertyNormalColor(void) const;
80                 result SetPropertyDisabledColor(const Variant& color);
81                 Variant GetPropertyDisabledColor(void) const;
82                 result SetPropertyPressedColor(const Variant& color);
83                 Variant GetPropertyPressedColor(void) const;
84                 result SetPropertyHighlightedColor(const Variant& color);
85                 Variant GetPropertyHighlightedColor(void) const;
86
87                 result SetPropertyNormalTextColor(const Variant& color);
88                 Variant GetPropertyNormalTextColor(void) const;
89                 result SetPropertyDisabledTextColor(const Variant& color);
90                 Variant GetPropertyDisabledTextColor(void) const;
91                 result SetPropertyPressedTextColor(const Variant& color);
92                 Variant GetPropertyPressedTextColor(void) const;
93                 result SetPropertyHighlightedTextColor(const Variant& color);
94                 Variant GetPropertyHighlightedTextColor(void) const;
95
96                 result SetPropertyNormalTitleTextColor(const Variant& color);
97                 Variant GetPropertyNormalTitleTextColor(void) const;
98                 result SetPropertyDisabledTitleTextColor(const Variant& color);
99                 Variant GetPropertyDisabledTitleTextColor(void) const;
100                 result SetPropertyPressedTitleTextColor(const Variant& color);
101                 Variant GetPropertyPressedTitleTextColor(void) const;
102                 result SetPropertyHighlightedTitleTextColor(const Variant& color);
103                 Variant GetPropertyHighlightedTitleTextColor(void) const;
104
105                 result SetPropertyCheckedActionId(const Variant& actionId);
106                 Variant GetPropertyCheckedActionId(void) const;
107                 result SetPropertyUncheckedActionId(const Variant& actionId);
108                 Variant GetPropertyUncheckedActionId(void) const;
109                 result SetPropertySelectedActionId(const Variant& actionId);
110                 Variant GetPropertySelectedActionId(void) const;
111
112                 result SetPropertyText(const Variant& text);
113                 Variant GetPropertyText(void) const;
114
115                 result SetPropertyTitleText(const Variant& titleText);
116                 Variant GetPropertyTitleText(void) const;
117
118                 result SetPropertySelected(const Variant& selected);
119                 Variant GetPropertySelected(void) const;
120
121 public:
122         virtual ~_CheckButton(void);
123
124 public:
125         static _CheckButton* CreateCheckButtonN(void);
126
127         virtual void OnDraw(void);
128         virtual result OnAttachedToMainTree(void);
129         virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
130         virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
131         virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
132         virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
133         virtual void OnTouchMoveHandled(const _Control& control);
134         virtual void OnBoundsChanged(void);
135         virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
136         virtual void OnFontInfoRequested(unsigned long& style, int& size);
137
138 public:
139         result LoadDefaultBackgroundBitmap(void);
140
141         result SetSelected(bool select);
142         bool IsSelected(void) const;
143
144         result AddActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
145         result RemoveActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
146
147         result SetActionId(int checkedActionId, int uncheckedActionId, int selectedActionId = -1);
148         int GetCheckedActionId(void) const;
149         int GetUncheckedActionId(void) const;
150         int GetSelectedActionId(void) const;
151
152         result SetText(const Tizen::Base::String& text);
153         Tizen::Base::String GetText(void) const;
154         result SetTitleText(const Tizen::Base::String& title);
155         Tizen::Base::String GetTitleText(void) const;
156
157         result SetTextHorizontalAlignment(HorizontalAlignment alignment);
158         HorizontalAlignment GetTextHorizontalAlignment(void) const;
159         result SetTextVerticalAlignment(VerticalAlignment alignment);
160         VerticalAlignment GetTextVerticalAlignment(void) const;
161
162         result SetTextColor(const Tizen::Graphics::Color& color);
163         Tizen::Graphics::Color GetTextColor(void) const;
164         result SetDisabledTextColor(const Tizen::Graphics::Color& color);
165         Tizen::Graphics::Color GetDisabledTextColor(void) const;
166         result SetPressedTextColor(const Tizen::Graphics::Color& color);
167         Tizen::Graphics::Color GetPressedTextColor(void) const;
168         result SetHighlightedTextColor(const Tizen::Graphics::Color& color);
169         Tizen::Graphics::Color GetHighlightedTextColor(void) const;
170
171         result SetTitleTextColor(const Tizen::Graphics::Color& color);
172         Tizen::Graphics::Color GetTitleTextColor(void) const;
173         result SetDisabledTitleTextColor(const Tizen::Graphics::Color& color);
174         Tizen::Graphics::Color GetDisabledTitleTextColor(void) const;
175         result SetPressedTitleTextColor(const Tizen::Graphics::Color& color);
176         Tizen::Graphics::Color GetPressedTitleTextColor(void) const;
177         result SetHighlightedTitleTextColor(const Tizen::Graphics::Color& color);
178         Tizen::Graphics::Color GetHighlightedTitleTextColor(void) const;
179
180         result SetColor(CheckButtonStatus status, const Tizen::Graphics::Color& color);
181         Tizen::Graphics::Color GetColor(CheckButtonStatus status) const;
182
183         int GetTextSize(void) const;
184         int GetTitleTextSize(void) const;
185
186         result SetCheckButtonStyle(const CheckButtonStyle& checkButtonStyle);
187         result SetBackgroundStyle(const BackgroundStyle& backgroundStyle);
188         result SetShowTitle(bool showTitle);
189         result SetGroupStyle(const GroupStyle& groupStyle);
190         result SetCheckButtonStatus(CheckButtonStatus checkButtonStatus);
191
192         CheckButtonStyle GetCheckButtonStyle(void) const;
193         BackgroundStyle GetBackgroundStyle(void) const;
194         bool GetShowTitle(void) const;
195         GroupStyle GetGroupStyle(void) const;
196         CheckButtonStatus GetCheckButtonStatus(void) const;
197
198         Tizen::Graphics::Bitmap* GetMarkBgNormalBitmap(void) const;
199         Tizen::Graphics::Bitmap* GetMarkBgPressedBitmap(void) const;
200         Tizen::Graphics::Bitmap* GetMarkBitmap(void) const;
201
202         Tizen::Graphics::Bitmap* GetOnOffBgNormalBitmap(void) const;
203         Tizen::Graphics::Bitmap* GetOnOffBgPressedBitmap(void) const;
204         Tizen::Graphics::Bitmap* GetOnOffBitmap(void) const;
205
206         Tizen::Graphics::Bitmap* GetOnOffSlidingOnBitmap(void) const;
207         Tizen::Graphics::Bitmap* GetOnOffSlidingOffBitmap(void) const;
208         Tizen::Graphics::Bitmap* GetDimOnOffSlidingOnBitmap(void) const;
209         Tizen::Graphics::Bitmap* GetDimOnOffSlidingOffBitmap(void) const;
210
211         Tizen::Graphics::Bitmap* GetCircleBitmap(void) const;
212         Tizen::Graphics::Bitmap* GetCircleNormalEffectBitmap(void) const;
213         Tizen::Graphics::Bitmap* GetCirclePressedEffectBitmap(void) const;
214         Tizen::Graphics::Bitmap* GetDetailedBitmap(void) const;
215
216         Tizen::Graphics::Bitmap* GetBackgroundBitmap(GroupStyle groupStyle) const;
217         Tizen::Graphics::Bitmap* GetBackgroundNormalEffectBitmap(GroupStyle groupStyle) const;
218         Tizen::Graphics::Bitmap* GetBackgroundPressedEffectBitmap(GroupStyle groupStyle) const;
219
220         result AddRadioGroup(const _Control& radioGroup);
221         result RemoveRadioGroup(void);
222
223         result FireActionEvent(void);
224         _Control* GetRadioGroup(void);
225         void SendTouchReleasedEvent(const _Control& control);
226
227 protected:
228         result SetPresenter(const _CheckButtonPresenter& checkButtonPresenter);
229
230 private:
231         bool IsTouchAreaChanged(bool currentButtonArea);
232         void UpdateAccessibilityElement(void);
233         void UpdateAccessibilityCheckStatus(void);
234
235         _CheckButton(void);
236         _CheckButton(const _CheckButton& rhs);
237         _CheckButton& operator =(const _CheckButton& rhs);
238
239 public:
240         CheckButtonStyle __checkButtonStyle;
241         BackgroundStyle __backgroundStyle;
242         bool __showTitle;
243         GroupStyle __groupStyle;
244         CheckButtonStatus __checkButtonStatus;
245
246 private:
247         _CheckButtonPresenter* __pCheckButtonPresenter;
248         _ActionEvent* __pActionEvent;
249
250         bool __selected;
251
252         int __checkedActionId;
253         int __uncheckedActionId;
254         int __selectedActionId;
255
256         Tizen::Base::String __text;
257         Tizen::Base::String __titleText;
258
259         Tizen::Graphics::Color __normalTextColor;
260         Tizen::Graphics::Color __disabledTextColor;
261         Tizen::Graphics::Color __pressedTextColor;
262         Tizen::Graphics::Color __highlightedTextColor;
263
264         Tizen::Graphics::Color __normalTitleTextColor;
265         Tizen::Graphics::Color __disabledTitleTextColor;
266         Tizen::Graphics::Color __pressedTitleTextColor;
267         Tizen::Graphics::Color __highlightedTitleTextColor;
268
269         Tizen::Graphics::Color __normalColor;
270         Tizen::Graphics::Color __disabledColor;
271         Tizen::Graphics::Color __pressedColor;
272         Tizen::Graphics::Color __highlightedColor;
273
274         Tizen::Graphics::Bitmap* __pMarkBgNormalBitmap;
275         Tizen::Graphics::Bitmap* __pMarkBgPressedBitmap;
276         Tizen::Graphics::Bitmap* __pMarkBitmap;
277
278         Tizen::Graphics::Bitmap* __pOnOffBgNormalBitmap;
279         Tizen::Graphics::Bitmap* __pOnOffBgPressedBitmap;
280         Tizen::Graphics::Bitmap* __pOnOffBitmap;
281
282         Tizen::Graphics::Bitmap* __pOnOffSlidingOnBitmap;
283         Tizen::Graphics::Bitmap* __pOnOffSlidingOffBitmap;
284         Tizen::Graphics::Bitmap* __pDimOnOffSlidingOnBitmap;
285         Tizen::Graphics::Bitmap* __pDimOnOffSlidingOffBitmap;
286
287         Tizen::Graphics::Bitmap* __pCircleBitmap;
288         Tizen::Graphics::Bitmap* __pCircleNormalEffectBitmap;
289         Tizen::Graphics::Bitmap* __pCirclePressedEffectBitmap;
290         Tizen::Graphics::Bitmap* __pDetailedBitmap;
291
292         Tizen::Graphics::Bitmap* __pBackgroundBitmap;
293         Tizen::Graphics::Bitmap* __pBackgroundNormalEffectBitmap;
294         Tizen::Graphics::Bitmap* __pBackgroundPressedEffectBitmap;
295
296         Tizen::Graphics::Bitmap* __pBackgroundTopBitmap;
297         Tizen::Graphics::Bitmap* __pBackgroundTopNormalEffectBitmap;
298         Tizen::Graphics::Bitmap* __pBackgroundTopPressedEffectBitmap;
299
300         Tizen::Graphics::Bitmap* __pBackgroundMiddleBitmap;
301         Tizen::Graphics::Bitmap* __pBackgroundMiddleNormalEffectBitmap;
302         Tizen::Graphics::Bitmap* __pBackgroundMiddlePressedEffectBitmap;
303
304         Tizen::Graphics::Bitmap* __pBackgroundBottomBitmap;
305         Tizen::Graphics::Bitmap* __pBackgroundBottomNormalEffectBitmap;
306         Tizen::Graphics::Bitmap* __pBackgroundBottomPressedEffectBitmap;
307
308         HorizontalAlignment __horizontalAlignment;
309         VerticalAlignment __verticalAlignment;
310
311         int __textSize;
312         int __titleTextSize;
313
314         int __parentMoveDistance;
315         bool __previousTouchArea;
316
317         _Control* __pRadioGroup;
318
319         Tizen::Ui::_AccessibilityElement* __pButtonElement;
320         Tizen::Ui::_AccessibilityElement* __pDetailButtonElement;
321         Tizen::Ui::_IAccessibilityListener* __pAccessibilityListener;
322 }; // _CheckButton
323
324 }}} // Tizen::Ui::Controls
325
326 #endif  // _FUI_CTRL_INTERNAL_CHECK_BUTTON_H_