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.
19 * @file FUiCtrlPopup.cpp
20 * @brief This is the implementation file for Popup class.
23 #include <unique_ptr.h>
24 #include <FUiCtrlPopup.h>
25 #include <FBaseSysLog.h>
26 #include "FUi_UiBuilder.h"
27 #include "FUiCtrl_PopupImpl.h"
31 namespace Tizen { namespace Ui { namespace Controls
46 Popup::Construct(bool hasTitle, const Tizen::Graphics::Dimension& dim)
50 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
51 SysAssertf(pPopupImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
53 pPopupImpl = _PopupImpl::CreatePopupImplN(this, dim);
55 SysTryReturn(NID_UI_CTRL, pPopupImpl != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
58 _pControlImpl = pPopupImpl;
60 r = pPopupImpl->Initialize(hasTitle, dim);
61 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
74 Popup::Construct(const Tizen::Base::String& resourceId)
78 // Parse UiBuilder XML file
79 unique_ptr<_UiBuilder> pBuilder(new _UiBuilder());
80 SysTryReturn(NID_UI_CTRL, pBuilder, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
81 result r = pBuilder->Construct(resourceId, this);
82 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
83 r = pBuilder->Parse();
84 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
90 Popup::Construct(const Tizen::Ui::Layout& layout, bool hasTitle, const Tizen::Graphics::Dimension& dim)
92 return Construct(layout, layout, hasTitle, dim);
96 Popup::Construct(const Tizen::Ui::Layout& portraitLayout, const Tizen::Ui::Layout& landscapeLayout,
97 bool hasTitle, const Tizen::Graphics::Dimension& dim)
101 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
102 SysAssertf(pPopupImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
104 pPopupImpl = _PopupImpl::CreatePopupImplN(this, dim,
105 &(const_cast <Tizen::Ui::Layout&>(portraitLayout)),
106 &(const_cast <Tizen::Ui::Layout&>(landscapeLayout)));
109 SysTryReturn(NID_UI_CTRL, pPopupImpl != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
112 _pControlImpl = pPopupImpl;
114 r = pPopupImpl->Initialize(hasTitle, dim);
115 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
126 Popup::DoModal(int& modalResult)
128 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
129 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
131 return pPopupImpl->DoModal(modalResult);
135 Popup::EndModal(int modalResult)
137 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
138 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
140 return pPopupImpl->EndModal(modalResult);
143 Tizen::Graphics::Rectangle
144 Popup::GetClientAreaBounds(void) const
146 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
147 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
149 return pPopupImpl->GetClientAreaBounds();
152 Tizen::Graphics::Canvas*
153 Popup::GetClientAreaCanvasN(void) const
155 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
156 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
158 return pPopupImpl->GetClientAreaCanvasN();
161 Tizen::Graphics::Point
162 Popup::TranslateToClientAreaPosition(const Tizen::Graphics::Point& position) const
164 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
165 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
167 return pPopupImpl->TranslateToClientAreaPosition(position);
170 Tizen::Graphics::Point
171 Popup::TranslateFromClientAreaPosition(const Tizen::Graphics::Point& clientPosition) const
173 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
174 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
176 return pPopupImpl->TranslateFromClientAreaPosition(clientPosition);
179 Tizen::Graphics::Color
180 Popup::GetColor(void) const
182 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
183 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
185 return pPopupImpl->GetColor();
189 Popup::SetColor(const Tizen::Graphics::Color& color)
191 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
192 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
194 return pPopupImpl->SetColor(color);
198 Popup::GetTitleText(void) const
200 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
201 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
203 return pPopupImpl->GetTitleText();
207 Popup::SetTitleText(const Tizen::Base::String& title)
209 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
210 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
212 result r = pPopupImpl->SetTitleText(title);
213 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[E_SYSTEM] A system error occurred.");
218 Tizen::Graphics::Color
219 Popup::GetTitleTextColor(void) const
221 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
222 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
224 return pPopupImpl->GetTitleTextColor();
228 Popup::SetTitleTextColor(const Tizen::Graphics::Color& color)
230 _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
231 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
233 return pPopupImpl->SetTitleTextColor(color);
237 Popup::GetDataBindingContextN(void) const
239 const _PopupImpl* pPopupImpl = _PopupImpl::GetInstance(*this);
240 SysAssertf(pPopupImpl != null, "Not-yet constructed. Construct() should be called before use.");
242 return pPopupImpl->GetDataBindingContextN();
246 }}} // Tizen::Ui::Controls