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.
18 * @file FUiCtrlOptionMenu.cpp
19 * @brief This is the implementation file for the OptionMenu class.
22 #include <FUiCtrlOptionMenu.h>
23 #include <FBaseSysLog.h>
25 #include "FUiCtrl_OptionMenuImpl.h"
27 using namespace Tizen::Base;
29 namespace Tizen { namespace Ui { namespace Controls
32 OptionMenu::OptionMenu(void)
36 OptionMenu::~OptionMenu(void)
41 OptionMenu::Construct(void)
44 SysAssertf((_OptionMenuImpl::GetInstance(*this) == null),
45 "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
47 // Create _OptionMenuImpl
48 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::CreateOptionMenuImplN(*this);
49 result r = GetLastResult();
50 SysTryReturn(NID_UI_CTRL, pOptionMenuImpl != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
52 // Set _OptionMenuImpl
53 _pControlImpl = pOptionMenuImpl;
59 OptionMenu::AddActionEventListener(IActionEventListener& listener)
63 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
64 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
66 result r = pOptionMenuImpl->AddActionEventListener(listener);
67 SysTryReturnVoidResult(NID_UI_CTRL, (r == E_SUCCESS), r, "[%s] Propagating.", GetErrorMessage(r));
71 OptionMenu::RemoveActionEventListener(IActionEventListener& listener)
75 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
76 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
78 result r = pOptionMenuImpl->RemoveActionEventListener(listener);
79 SysTryReturnVoidResult(NID_UI_CTRL, (r == E_SUCCESS), r, "[%s] Propagating.", GetErrorMessage(r));
83 OptionMenu::AddItem(const String& text, int actionId)
87 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
88 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
90 result r = pOptionMenuImpl->AddItem(text, actionId);
91 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
97 OptionMenu::InsertItemAt(int mainIndex, const String& text, int actionId)
101 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
102 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
104 result r = pOptionMenuImpl->InsertItemAt(mainIndex, text, actionId);
105 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
111 OptionMenu::SetItemAt(int mainIndex, const String& text, int actionId)
115 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
116 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
118 result r = pOptionMenuImpl->SetItemAt(mainIndex, text, actionId);
119 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
125 OptionMenu::RemoveItemAt(int mainIndex)
129 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
130 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
132 result r = pOptionMenuImpl->RemoveItemAt(mainIndex);
133 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
139 OptionMenu::GetItemCount(void) const
143 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
144 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
146 int count = pOptionMenuImpl->GetItemCount();
147 result r = GetLastResult();
148 SysTryReturn(NID_UI_CTRL, (count >= 0), -1, r, "[%s] Propagating.", GetErrorMessage(r));
154 OptionMenu::GetItemIndexFromActionId(int actionId) const
158 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
159 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
161 int index = pOptionMenuImpl->GetItemIndexFromActionId(actionId);
162 result r = GetLastResult();
163 SysTryReturn(NID_UI_CTRL, (index >= 0), -1, r, "[%s] Propagating.", GetErrorMessage(r));
169 OptionMenu::GetItemActionIdAt(int mainIndex) const
173 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
174 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
176 int actionId = pOptionMenuImpl->GetItemActionIdAt(mainIndex);
177 result r = GetLastResult();
178 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), -1, r, "[%s] Propagating.", GetErrorMessage(r));
184 OptionMenu::AddSubItem(int mainIndex, const String& text, int actionId)
188 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
189 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
191 result r = pOptionMenuImpl->AddSubItem(mainIndex, text, actionId);
192 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
198 OptionMenu::InsertSubItemAt(int mainIndex, int subIndex, const String& text, int actionId)
202 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
203 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
205 result r = pOptionMenuImpl->InsertSubItemAt(mainIndex, subIndex, text, actionId);
206 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
212 OptionMenu::SetSubItemAt(int mainIndex, int subIndex, const String& text, int actionId)
216 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
217 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
219 result r = pOptionMenuImpl->SetSubItemAt(mainIndex, subIndex, text, actionId);
220 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
226 OptionMenu::RemoveSubItemAt(int mainIndex, int subIndex)
230 _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
231 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
233 result r = pOptionMenuImpl->RemoveSubItemAt(mainIndex, subIndex);
234 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
240 OptionMenu::GetSubItemCount(int mainIndex) const
244 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
245 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
247 int count = pOptionMenuImpl->GetSubItemCount(mainIndex);
248 result r = GetLastResult();
249 SysTryReturn(NID_UI_CTRL, (count >= 0), -1, r, "[%s] Propagating.", GetErrorMessage(r));
255 OptionMenu::GetSubItemIndexFromActionId(int actionId) const
259 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
260 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
262 int index = pOptionMenuImpl->GetSubItemIndexFromActionId(actionId);
263 result r = GetLastResult();
264 SysTryReturn(NID_UI_CTRL, (index >= 0), -1, r, "[%s] Propagating.", GetErrorMessage(r));
270 OptionMenu::GetSubItemActionIdAt(int mainIndex, int subIndex) const
274 const _OptionMenuImpl* pOptionMenuImpl = _OptionMenuImpl::GetInstance(*this);
275 SysAssertf((pOptionMenuImpl != null), "Not yet constructed. Construct() should be called before use.");
277 int actionId = pOptionMenuImpl->GetSubItemActionIdAt(mainIndex, subIndex);
278 result r = GetLastResult();
279 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), -1, r, "[%s] Propagating.", GetErrorMessage(r));
284 }}} //Tizen::Ui::Controls