2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0/
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 FUiCtrl_TabImpl.cpp
20 * @brief This is the implementation file for the _TabImpl class.
24 #include <FUiControl.h>
25 #include "FUi_ResourceManager.h"
26 #include "FUiCtrl_TabImpl.h"
28 using namespace Tizen::Base;
29 using namespace Tizen::Ui;
30 using namespace Tizen::Graphics;
32 namespace Tizen { namespace Ui { namespace Controls {
34 _TabImpl::_TabImpl(Tab* pPublic, _Tab* pCore)
35 : _ControlImpl(pPublic, pCore)
36 , __pActionEvent(null)
40 _TabImpl::~_TabImpl(void)
44 delete __pActionEvent;
45 __pActionEvent = null;
50 _TabImpl::CreateTabImplN(Tab* pPublic)
55 Rectangle rect(0, 0, 0, 0);
58 pCore = _Tab::CreateTabN();
61 _TabImpl* pTabImpl = new (std::nothrow) _TabImpl(pPublic, pCore);
62 SysTryCatch(NID_UI_CTRL, pTabImpl, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
73 _TabImpl::GetTab(void)
75 return dynamic_cast<Tab*>(&(_ControlImpl::GetPublic()));
80 _TabImpl::GetPublicClassName(void) const
82 return "Controls::Tab";
87 _TabImpl::GetPublic(void) const
89 return static_cast<const Tab&>(_ControlImpl::GetPublic());
94 _TabImpl::GetPublic(void)
96 return static_cast<Tab&>(_ControlImpl::GetPublic());
101 _TabImpl::GetCore(void) const
103 return static_cast<const _Tab&>(_ControlImpl::GetCore());
108 _TabImpl::GetCore(void)
110 return static_cast<_Tab&>(_ControlImpl::GetCore());
115 _TabImpl::GetInstance(Tab& pTab)
117 return static_cast<_TabImpl*>(pTab._pControlImpl);
122 _TabImpl::GetInstance(const Tab& pTab)
124 return static_cast<const _TabImpl*>(pTab._pControlImpl);
129 _TabImpl::CreateTabN(void)
131 result r = E_SUCCESS;
133 Tab* pTab = new (std::nothrow) Tab;
134 SysTryReturn(NID_UI_CTRL, (pTab != null), null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
136 r = pTab->Construct();
137 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, E_SYSTEM, "[E_SYSTEM] A system error has occurred. Failed to construct Tab instance.");
143 _TabImpl::DeleteTab(Tab* pTab)
154 _TabImpl::IsMovable(void) const
160 _TabImpl::IsResizable(void) const
167 _TabImpl::AddItem(const Bitmap& icon, const String& text, int actionId)
171 result r = GetCore().AddItem(icon, text, actionId);
175 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to add item to tab.");
184 _TabImpl::AddItem(const Bitmap& icon, int actionId)
188 result r = GetCore().AddItem(icon, actionId);
192 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to add item to tab.");
200 _TabImpl::AddItem(const String& text, int actionId)
204 result r = GetCore().AddItem(text, actionId);
208 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to add item to tab.");
217 _TabImpl::InsertItemAt(int index, const Bitmap& icon, const String& text, int actionId)
221 result r = GetCore().InsertItemAt(index, icon, text, actionId);
225 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to insert item to tab.");
234 _TabImpl::InsertItemAt(int index, const Bitmap& icon, int actionId)
238 result r = GetCore().InsertItemAt(index, icon, actionId);
242 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to insert item to tab.");
251 _TabImpl::InsertItemAt(int index, const String& text, int actionId)
255 result r = GetCore().InsertItemAt(index, text, actionId);
259 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to insert item to tab.");
268 _TabImpl::SetItemAt(int index, const Bitmap& icon, const String& text, int actionId)
272 result r = GetCore().SetItemAt(index, icon, text, actionId);
276 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to set item to tab.");
285 _TabImpl::SetItemAt(int index, const Bitmap& icon, int actionId)
289 result r = GetCore().SetItemAt(index, icon, actionId);
293 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to set item to tab.");
302 _TabImpl::SetItemAt(int index, const String& text, int actionId)
306 result r = GetCore().SetItemAt(index, text, actionId);
310 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to set item to tab.");
319 _TabImpl::RemoveItemAt(int index)
323 return GetCore().RemoveItemAt(index);
328 _TabImpl::RemoveAllItems(void)
332 return GetCore().RemoveAllItems();
337 _TabImpl::SetBadgeIcon(int actionId, const Bitmap* pBadgeIcon)
341 return GetCore().SetBadgeIcon(actionId, pBadgeIcon);
346 _TabImpl::GetItemCount(void) const
350 return GetCore().GetItemCount();
355 _TabImpl::GetItemIndexFromActionId(int actionId) const
359 return GetCore().GetItemIndexFromActionId(actionId);
364 _TabImpl::GetItemActionIdAt(int index) const
368 return GetCore().GetItemActionIdAt(index);
373 _TabImpl::SetSelectedItem(int index)
377 GetCore().SetSelectedItemIndex(index);
382 _TabImpl::GetSelectedItemIndex(void) const
386 return GetCore().GetSelectedItemIndex();
391 _TabImpl::SetEditModeEnabled(bool enable)
395 GetCore().SetEditModeEnabled(enable);
400 _TabImpl::IsEditModeEnabled(void) const
404 return GetCore().IsEditModeEnabled();
409 _TabImpl::SetBackgroundBitmap(const Bitmap& bitmap)
413 return GetCore().SetBackgroundBitmap(bitmap);
418 _TabImpl::SetFocusedItemBackgroundBitmap(const Bitmap& bitmap)
422 return GetCore().SetSelectedItemBackgroundBitmap(bitmap);
427 _TabImpl::SetTextColor(const Color& textColor)
431 GetCore().SetTextColor(textColor);
436 _TabImpl::GetTextColor(void) const
440 return GetCore().GetTextColor();
445 _TabImpl::SetSelectedTextColor(const Color& textColor)
449 GetCore().SetSelectedTextColor(textColor);
454 _TabImpl::GetSelectedTextColor(void) const
458 return GetCore().GetSelectedTextColor();
463 _TabImpl::SetHighlightedItemBackgroundBitmap(const Bitmap& bitmap)
467 return GetCore().SetHighlightedItemBackgroundBitmap(bitmap);
472 _TabImpl::SetHighlightedTextColor(const Color& color)
476 GetCore().SetHighlightedTextColor(color);
481 _TabImpl::GetHighlightedTextColor(void) const
485 return GetCore().GetHighlightedTextColor();
490 _TabImpl::AddActionEventListener(IActionEventListener& listener)
494 if (__pActionEvent == null)
496 __pActionEvent = _PublicActionEvent::CreateInstanceN(GetPublic());
498 if (__pActionEvent == null || IsFailed(GetLastResult()))
500 SysLog(NID_UI_CTRL, "[E_SYSTEM] A system error has occurred. Failed to construct a _PublicActionEvent instance.");
501 SetLastResult(E_SYSTEM);
502 delete __pActionEvent;
507 __pActionEvent->AddListener(listener);
509 GetCore().AddActionEventListener(*this);
514 _TabImpl::RemoveActionEventListener(IActionEventListener& listener)
516 __pActionEvent->RemoveListener(listener);
518 GetCore().RemoveActionEventListener(*this);
523 _TabImpl::OnActionPerformed(const _Control& source, int actionId)
525 if (__pActionEvent != null)
527 __pActionEvent->Fire(*_PublicActionEvent::CreateActionEventArgN(actionId));
532 }}} // Tizen::Ui::Controls