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.
17 #ifndef _FUICTRL_INTERNAL_FORM_IMPL_H_
18 #define _FUICTRL_INTERNAL_FORM_IMPL_H_
20 #include <FUiCtrlForm.h>
21 #include "FUi_ContainerImpl.h"
22 #include "FUiCtrl_Form.h"
23 #include "FUiCtrl_IFormBackEventListener.h"
25 namespace Tizen { namespace Ui {
26 class DataBindingContext;
27 class _OrientationAgent;
30 namespace Tizen { namespace Ui { namespace Controls {
34 class _TabImpl; // Ki-Dong,Hong.Temp
35 class _PublicActionEvent;
37 class _OSP_EXPORT_ _FormImpl
38 : public _ContainerImpl
39 , public Tizen::Ui::Controls::_IActionEventListener
40 , public Tizen::Ui::Controls::_IFormBackEventListener
41 , virtual public Tizen::Base::Runtime::IEventListener
44 class FormSizeInfo : public _ControlImpl::SizeInfo
46 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
51 virtual ~_FormImpl(void);
54 static _FormImpl* CreateFormImplN(Form* pControl, Layout* pPublicPortraitLayout = null, Layout* pPublicLandscapeLayout = null);
56 virtual const char* GetPublicClassName(void) const;
57 virtual const Form& GetPublic(void) const;
58 virtual Form& GetPublic(void);
59 virtual const _Form& GetCore(void) const;
60 virtual _Form& GetCore(void);
62 _ControlImpl* GetFocusControl(void);
64 void SetFormBackEventListener(const IFormBackEventListener* pFormBackEventListener);
66 unsigned long GetFormStyle(void) const;
67 _FooterImpl* GetFooter(void) const;
68 _HeaderImpl* GetHeader(void) const;
69 _TabImpl* GetTabImpl(void) const; // Ki-Dong,Hong.Temp
70 Tizen::Base::String GetTitleText(void) const;
71 HorizontalAlignment GetTitleTextHorizontalAlignment(void) const;
72 OverlayRegion* GetOverlayRegionN(const Tizen::Graphics::Rectangle& rect, OverlayRegionType regionType);
73 Tizen::Graphics::Canvas* GetClientAreaCanvasN(void) const;
74 int GetSoftkeyActionId(Softkey softkey) const;
75 int GetOptionkeyActionId(void) const;
76 Tizen::Base::String GetSoftkeyText(Softkey softkey) const;
78 void SetFormStyle(unsigned long formStyle);
79 result SetActionBarsTranslucent(unsigned long actionBars, bool translucent);
80 result SetActionBarsVisible(unsigned long actionBars, bool visible);
81 result SetTitleIcon(const Tizen::Graphics::Bitmap* pTitleBitmap);
82 result SetTitleText(const Tizen::Base::String& title, HorizontalAlignment alignment);
83 result SetSoftkeyEnabled(Softkey softkey, bool enable);
84 result SetOptionkeyActionId(int actionId);
85 result SetSoftkeyActionId(Softkey softkey, int actionId);
86 result SetSoftkeyText(Softkey softkey, const Tizen::Base::String& text);
87 result SetSoftkeyIcon(Softkey softkey, const Tizen::Graphics::Bitmap& normalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap);
89 bool HasFooter(void) const;
90 bool HasHeader(void) const;
91 bool HasIndicator(void) const;
92 bool HasTitle(void) const;
93 bool HasTab(void) const;
94 bool IsIndicatorVisible(void) const;
95 bool IsHeaderVisible(void) const;
96 bool IsFooterVisible(void) const;
97 bool IsIndicatorTranslucent(void) const;
98 bool IsHeaderTranslucent(void) const;
99 bool IsFooterTranslucent(void) const;
100 bool IsTabTranslucent(void) const; // Ki-Dong,Hong.Temp
101 bool HasOptionkey(void) const;
102 bool HasSoftkey(Softkey softkey) const;
103 bool IsSoftkeyEnabled(Softkey softkey) const;
105 Tizen::Graphics::Point TranslateToClientAreaPosition(const Tizen::Graphics::Point& position) const;
106 Tizen::Graphics::Point TranslateFromClientAreaPosition(const Tizen::Graphics::Point& clientPosition) const;
108 void AddOrientationEventListener(Tizen::Ui::IOrientationEventListener& listener);
109 void AddOptionkeyActionListener(const Tizen::Ui::IActionEventListener& listener);
110 void AddSoftkeyActionListener(Softkey softkey, const Tizen::Ui::IActionEventListener& listener);
111 void RemoveOrientationEventListener(Tizen::Ui::IOrientationEventListener& listener);
112 void RemoveOptionkeyActionListener(const Tizen::Ui::IActionEventListener& listener);
113 void RemoveSoftkeyActionListener(Softkey softkey, const Tizen::Ui::IActionEventListener& listener);
115 void SetOrientation(Tizen::Ui::Orientation orientation);
116 Tizen::Ui::Orientation GetOrientation(void) const;
117 Tizen::Ui::OrientationStatus GetOrientationStatus(void) const;
118 void UpdateOrientationStatus(bool draw = false);
120 // Invoked by operations
121 virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
123 bool DeflateClientRectHeight(int height);
125 virtual void OnDraw(void);
126 DataBindingContext* GetDataBindingContextN(void) const;
128 virtual result OnAttachedToMainTree(void);
129 virtual result OnDetachingFromMainTree(void);
130 virtual result OnAttaching(const _Control* pParent);
132 virtual bool IsOpaque(void) const;
134 virtual void OnFormBackRequested(Tizen::Ui::Controls::_Form& source);
136 static const _FormImpl* GetInstance(const Form& form);
138 static _FormImpl* GetInstance(Form& form);
141 _FormImpl(Form* pPublic, _Form* pCore, Layout* pPublicPortraitLayout, Layout* pPublicLandscapeLayout);
144 static _HeaderImpl* CreateHeaderN(void);
145 static _FooterImpl* CreateFooterN(void);
146 static _TabImpl* CreateTabImplN(void); // Ki-Dong,Hong.Temp
148 bool RemoveHeader(void);
149 bool RemoveFooter(void);
150 bool RemoveTabImpl(void); // Ki-Dong,Hong.Temp
152 _Softkey ConvertSoftkey(Softkey softkey) const;
154 // key event callback
155 virtual bool OnKeyReleased(const _ControlImpl& source, _KeyCode keyCode);
157 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
162 IFormBackEventListener* __pFormBackEventListener;
164 Tizen::Ui::_OrientationAgent* __pOriAgent;
165 Tizen::Ui::Controls::_PublicActionEvent* __pLeftSoftkeyActionEvent;
166 Tizen::Ui::Controls::_PublicActionEvent* __pRightSoftkeyActionEvent;
167 Tizen::Ui::Controls::_PublicActionEvent* __pOptionMenuActionEvent;
168 Tizen::Base::Collection::LinkedList __leftSoftkeyActionList;
169 Tizen::Base::Collection::LinkedList __rightSoftkeyActionList;
171 friend class _FrameImpl;
174 }}} // Tizen::Ui::Controls
176 #endif // _FUICTRL_INTERNAL_FORM_IMPL_H_