Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_PopupImpl.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 /**
19  * @file                FUiCtrl_PopupImpl.h
20  * @brief       This is the implementation file for the _PopupImpl class.
21  *
22  * This header file contains the declarations of the %_PopupImpl class.
23  */
24
25 #ifndef _FUI_CTRL_POPUP_IMPL_H_
26 #define _FUI_CTRL_POPUP_IMPL_H_
27
28
29 // Includes
30 #include <FUiCtrlPopup.h>
31 #include "FUi_WindowImpl.h"
32 #include "FUiCtrl_Popup.h"
33
34
35 namespace Tizen { namespace Ui
36 {
37 class DataBindingContext;
38 }}      // Tizen::Ui
39
40
41 namespace Tizen { namespace Ui { namespace Controls
42 {
43
44
45 class _PopupImpl
46         : public _WindowImpl
47 {
48 public:
49         class PopupSizeInfo
50                 : public _ControlImpl::SizeInfo
51         {
52                 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
53                 virtual Tizen::Graphics::Dimension GetDefaultMaximumSize(_ControlOrientation orientation) const;
54         };      // PopupSizeInfo
55
56 public:
57         _PopupImpl(Popup* pPublic, _Popup* pCore, Layout* pPublicPortraitLayout = null, Layout* pPublicLandscapeLayout = null);
58         virtual ~_PopupImpl(void);
59
60         virtual const char* GetPublicClassName(void) const;
61         virtual const Popup& GetPublic(void) const;
62         virtual Popup& GetPublic(void);
63         virtual const _Popup& GetCore(void) const;
64         virtual _Popup& GetCore(void);
65
66 public:
67         static _PopupImpl* CreatePopupImplN(Popup* pControl, const Tizen::Graphics::Dimension& dim, Layout* pPublicPortraitLayout = null, Layout* pPublicLandscapeLayout = null);
68         result Initialize(bool hasTitle, const Tizen::Graphics::Dimension& dim);
69
70         virtual result DoModal(int& modalResult);
71         result EndModal(int modalResult);
72
73         Tizen::Graphics::Canvas* GetClientAreaCanvasN(void) const;
74         Tizen::Graphics::Rectangle GetClientAreaBounds(void) const;
75
76         Tizen::Graphics::Point TranslateFromClientAreaPosition(const Tizen::Graphics::Point& clientPosition) const;
77         Tizen::Graphics::Point TranslateToClientAreaPosition(const Tizen::Graphics::Point& position) const;
78
79         DataBindingContext* GetDataBindingContextN(void) const;
80
81         Tizen::Graphics::Rectangle GetCenterAlignedRect(int width, int height) const;
82
83         virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
84         virtual void OnBoundsChanged(void);
85
86 public:
87         result SetColor(const Tizen::Graphics::Color& color);
88         Tizen::Graphics::Color GetColor(void) const;
89
90         virtual result SetTitleText(const Tizen::Base::String& title);
91         Tizen::Base::String GetTitleText(void) const;
92
93         result SetTitleTextColor(const Tizen::Graphics::Color& color);
94         Tizen::Graphics::Color GetTitleTextColor(void) const;
95
96         int GetMinWidth(void) const;
97         int GetMinHeight(void) const;
98
99         int GetMaxWidth(void) const;
100         int GetMaxHeight(void) const;
101
102 public:
103         static _PopupImpl* GetInstance(Popup& pPopup);
104         static const _PopupImpl* GetInstance(const Popup& pPopup);
105
106 private:
107         _PopupImpl(const _PopupImpl& rhs);
108         _PopupImpl& operator =(const _PopupImpl& rhs);
109
110 protected:
111         bool _isModal;
112
113 private:
114         bool __init;
115         bool __centerAlign;
116         bool __callBoundsChange;
117 }; // _PopupImpl
118
119
120 }}} // Tizen::Ui::Controls
121
122 #endif //_FUI_CTRL_POPUP_IMPL_H_