Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_ButtonImpl.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_ButtonImpl.h
19  * @brief               This is the header file for the _ButtonImpl class.
20  *
21  * This header file contains the declarations of the %_ButtonImpl class.
22  */
23 #ifndef _FUI_CTRL_INTERNAL_BUTTON_IMPL_H_
24 #define _FUI_CTRL_INTERNAL_BUTTON_IMPL_H_
25
26 #include <FUiCtrlButton.h>
27 #include <FGrpColor.h>
28 #include "FUi_ControlImpl.h"
29 #include "FUiCtrl_Button.h"
30 #include "FUiCtrl_IActionEventListener.h"
31 #include "FUiCtrl_PublicActionEvent.h"
32
33 namespace Tizen { namespace Graphics
34 {
35         class Dimension;
36 }} // Tizen::Graphics
37
38 namespace Tizen { namespace Ui { namespace Controls
39 {
40
41 class _ButtonImpl
42         : public _ControlImpl
43         , public _IActionEventListener
44         , virtual public Tizen::Base::Runtime::IEventListener
45 {
46 public:
47         class ButtonSizeInfo : public _ControlImpl::SizeInfo
48         {
49                 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
50         }; // ButtonSizeInfo
51
52 public:
53         virtual ~_ButtonImpl(void);
54         static _ButtonImpl* CreateButtonImplN(Button* pControl, const Tizen::Graphics::Rectangle& bounds);
55
56         virtual const char* GetPublicClassName(void) const;
57         virtual const Button& GetPublic(void) const;
58         virtual Button& GetPublic(void);
59         virtual const _Button& GetCore(void) const;
60         virtual _Button& GetCore(void);
61
62 public:
63         result SetText(const Tizen::Base::String& text);
64         Tizen::Base::String GetText(void) const;
65
66         result SetColor(ButtonStatus status, const Tizen::Graphics::Color& color);
67         Tizen::Graphics::Color GetColor(ButtonStatus status) const;
68
69         result AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
70         result RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
71
72         result SetActionId(int actionId);
73         int GetActionId(void) const;
74
75         result SetTextHorizontalAlignment(HorizontalAlignment alignment);
76         HorizontalAlignment GetTextHorizontalAlignment(void) const;
77         result SetTextVerticalAlignment(VerticalAlignment alignment);
78         VerticalAlignment GetTextVerticalAlignment(void) const;
79
80         result SetTextColor(const Tizen::Graphics::Color& color);
81         Tizen::Graphics::Color GetTextColor(void) const;
82         result SetDisabledTextColor(const Tizen::Graphics::Color& color);
83         Tizen::Graphics::Color GetDisabledTextColor(void) const;
84         result SetPressedTextColor(const Tizen::Graphics::Color& color);
85         Tizen::Graphics::Color GetPressedTextColor(void) const;
86         result SetHighlightedTextColor(const Tizen::Graphics::Color& color);
87         Tizen::Graphics::Color GetHighlightedTextColor(void) const;
88
89         result SetNormalBitmap(const Tizen::Graphics::Point& position, const Tizen::Graphics::Bitmap& bitmap);
90         result SetDisabledBitmap(const Tizen::Graphics::Point& position, const Tizen::Graphics::Bitmap& bitmap);
91         result SetPressedBitmap(const Tizen::Graphics::Point& position, const Tizen::Graphics::Bitmap& bitmap);
92
93         result SetNormalBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
94         result SetPressedBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
95         result SetHighlightedBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
96
97         result SetTextSize(int size);
98         int GetTextSize(void) const;
99
100         virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
101         virtual result OnAttachedToMainTree(void);
102
103         virtual bool OnTouchPressed(const _ControlImpl& source, const _TouchInfo& touchinfo);
104         virtual bool OnTouchReleased(const _ControlImpl& source, const _TouchInfo& touchinfo);
105         virtual bool OnTouchMoved(const _ControlImpl& source, const _TouchInfo& touchinfo);
106         virtual bool OnTouchCanceled(const _ControlImpl& source, const _TouchInfo& touchinfo);
107
108         virtual Tizen::Graphics::Dimension GetContentSize(void) const;
109
110 public:
111         static const Tizen::Graphics::Color GetColorOnError(void);
112
113         static _ButtonImpl* GetInstance(Button& button);
114         static const _ButtonImpl* GetInstance(const Button& button);
115
116 protected:
117         _ButtonStatus ConvertStatus(ButtonStatus status) const;
118
119 private:
120         _ButtonImpl(Button* pPublic, _Button* pCore);
121
122         _ButtonImpl(const _ButtonImpl& rhs);
123         _ButtonImpl& operator =(const _ButtonImpl& rhs);
124
125         _PublicActionEvent* __pPublicActionEvent;
126
127 }; // _ButtonImpl
128
129 }}} // Tizen::Ui::Controls
130
131 #endif //_FUI_CTRL_INTERNAL_BUTTON_IMPL_H_