76014e86c9e4730b76cec99c6d5f181a88c27b01
[platform/framework/native/uifw.git] / src / ui / inc / FUiCtrl_MessageBox.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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 /**
19  * @file                FUiCtrl_MessageBox.h
20  * @brief       This is the header file for the _MessageBox class.
21  *
22  * This header file contains the declarations of the %_MessageBox class.
23  */
24
25 #ifndef _FUI_CTRL_INTERNAL_MESSAGEBOX_H_
26 #define _FUI_CTRL_INTERNAL_MESSAGEBOX_H_
27
28 #include <FSysISettingEventListener.h>
29 #include <FUiCtrlMessageBox.h>
30 #include "FUiCtrl_Popup.h"
31 #include "FUi_IAccessibilityListener.h"
32
33 namespace Tizen { namespace Ui { namespace Controls
34 {
35
36 class _MessageBoxPresenter;
37
38 /**
39  * @class _MessageBox
40  * @brief
41  * @since       2.0
42  *
43  *
44  *
45  *
46  */
47 class _OSP_EXPORT_ _MessageBox
48         : public _Popup
49         , virtual public Tizen::Base::Runtime::IEventListener
50         , virtual public _IUiEventListener
51         , virtual public _IUiEventPreviewer
52         , virtual public Tizen::System::ISettingEventListener
53         , public _IAccessibilityListener
54 {
55 // Lifecycle
56 public:
57         virtual ~_MessageBox(void);
58
59 // Operations
60 public:
61         static _MessageBox* CreateMessageBoxN(void);
62         result Initialize(const Tizen::Base::String& title, const Tizen::Base::String& text, MessageBoxStyle style, unsigned long timeout);
63
64         virtual result ShowAndWait(int& modalResult);
65
66         float GetTotalHeight(void) const;
67
68         virtual void OnDraw(void);
69
70         virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
71         virtual void OnFontInfoRequested(unsigned long& style, float& size);
72
73         virtual void OnActivated(void);
74         virtual void OnDeactivated(void);
75
76         virtual void OnChangeLayout(_ControlOrientation orientation);
77
78         virtual void OnBoundsChanged(void);
79         virtual void OnSettingChanged(Tizen::Base::String& key);
80
81         virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element);
82         virtual bool OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element);
83         virtual bool OnAccessibilityReadingElement(const _AccessibilityContainer& control, const _AccessibilityElement& element);
84         virtual bool OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element);
85         virtual bool OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element);
86         virtual bool OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element);
87         virtual bool OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element);
88         virtual bool OnAccessibilityValueIncreased(const _AccessibilityContainer& control, const _AccessibilityElement& element);
89         virtual bool OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element);
90
91         bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo){return false;}
92         bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
93
94         Tizen::Graphics::Bitmap* GetButtonBackgroundBitmap(void);
95         Tizen::Graphics::Bitmap* GetButtonBackgroundEffectBitmap(void);
96         Tizen::Graphics::Bitmap* GetTitleBackgroundBitmap(void);
97         Tizen::Graphics::Bitmap* GetTitleBackgroundEffectBitmap(void);
98 // Accessors
99 public:
100         MessageBoxStyle GetMsgBoxStyle(void) const;
101
102         unsigned long GetTimeout(void) const;
103
104         Tizen::Base::String GetText(void) const;
105
106         void SetTextColor(const Tizen::Graphics::Color& color);
107         Tizen::Graphics::Color GetTextColor(void) const;
108
109 protected:
110         result SetPresenter(const _MessageBoxPresenter& msgboxPresenter);
111         virtual _PopupPresenter* GetPresenter(void);
112
113         // Touch Event Listener
114         virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
115         virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
116         virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
117         virtual void InitializeAccessibilityElement(void);
118
119 private:
120         _MessageBox(void);
121
122         _MessageBox(const _MessageBox& rhs);
123         _MessageBox& operator =(const _MessageBox& rhs);
124
125 // Attributes
126 private:
127         _MessageBoxPresenter* __pMsgboxPresenter;
128
129         MessageBoxStyle __msgboxStyle;
130
131         Tizen::Graphics::Color __textColor;
132
133
134         Tizen::Graphics::Bitmap* __pButtonEffectBitmap;
135         Tizen::Graphics::Bitmap* __pTitleEffectBitmap;
136         Tizen::Graphics::Bitmap* __pComposedButtonBitmap;
137         Tizen::Graphics::Bitmap* __pComposedTitleBitmap;
138         Tizen::Base::String __text;
139
140         unsigned long __timeout;
141
142 };  // _MessageBox
143
144
145 }}} // Tizen::Ui::Controls
146
147 #endif  // _FUI_CTRL_INTERNAL_MESSAGEBOX_H_
148