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_Tab.cpp
20 * @brief This is the implementation file for the _Tab class.
23 #include <FBaseErrorDefine.h>
24 #include <FBaseSysLog.h>
25 #include <FGrp_BitmapImpl.h>
26 #include "FUi_ResourceManager.h"
27 #include "FUi_UiTouchEvent.h"
28 #include "FUi_AccessibilityContainer.h"
29 #include "FUi_AccessibilityElement.h"
30 #include "FUi_TouchLongPressGestureDetector.h"
31 #include "FUiCtrl_Tab.h"
32 #include "FUi_CoordinateSystemUtils.h"
34 using namespace Tizen::Base;
35 using namespace Tizen::Graphics;
36 using namespace Tizen::Base::Runtime;
38 namespace Tizen { namespace Ui { namespace Controls {
41 : __pTabPresenter(null)
42 , __style(_TAB_STYLE_TEXT)
43 , __currentHighlightedItemIndex(-1)
44 , __tabStatus(_TAB_STATUS_NORMAL)
45 , __pActionEvent(null)
46 , __pGestureLongPress(null)
47 , __pFlickGesture(null)
48 , __pBackgroundBitmap(null)
49 , __pDisabledBackgroundBitmap(null)
50 , __pPressedItemBackgroundBitmap(null)
51 , __pPressedItemBackgroundEffectBitmap(null)
52 , __pSelectedItemBackgroundBitmap(null)
53 , __pHighlightedItemBackgroundBitmap(null)
58 __tabItems.Construct();
60 GET_COLOR_CONFIG(TAB::ITEM_BG_NORMAL, __itemBgColor[_TAB_STATUS_NORMAL]);
61 GET_COLOR_CONFIG(TAB::ITEM_BG_PRESSED, __itemBgColor[_TAB_STATUS_PRESSED]);
62 GET_COLOR_CONFIG(TAB::ITEM_BG_SELECTED, __itemBgColor[_TAB_STATUS_SELECTED]);
63 GET_COLOR_CONFIG(TAB::ITEM_BG_HIGHLIGHTED, __itemBgColor[_TAB_STATUS_HIGHLIGHTED]);
64 GET_COLOR_CONFIG(TAB::ITEM_BG_DISABLED, __itemBgColor[_TAB_STATUS_DISABLED]);
66 GET_COLOR_CONFIG(TAB::ITEM_TEXT_NORMAL, __itemTextColor[_TAB_STATUS_NORMAL]);
67 GET_COLOR_CONFIG(TAB::ITEM_TEXT_PRESSED, __itemTextColor[_TAB_STATUS_PRESSED]);
68 GET_COLOR_CONFIG(TAB::ITEM_TEXT_SELECTED, __itemTextColor[_TAB_STATUS_SELECTED]);
69 GET_COLOR_CONFIG(TAB::ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_TAB_STATUS_HIGHLIGHTED]);
70 GET_COLOR_CONFIG(TAB::ITEM_TEXT_DISABLED, __itemTextColor[_TAB_STATUS_DISABLED]);
73 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] A system error has occurred. Failed to load bitmap.");
75 _Control::SetResizable(false);
76 _Control::SetMovable(false);
78 _TabPresenter* pPresenter = new (std::nothrow) _TabPresenter;
79 SysTryReturnVoidResult(NID_UI_CTRL, pPresenter, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
81 r = SetPresenter(*pPresenter);
82 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] A system error has occurred. The _TabPresenter instance could not be set.");
84 r = pPresenter->Construct(*this);
85 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] A system error has occurred. The _TabPresenter instance construct failed.");
91 delete __pTabPresenter;
92 __pTabPresenter = null;
96 delete __pActionEvent;
97 __pActionEvent = null;
100 __tabItems.RemoveAll(true);
102 if (__pFlickGesture != null)
104 __pFlickGesture->RemoveGestureListener(*this);
105 RemoveGestureDetector(*__pFlickGesture);
107 delete __pFlickGesture;
108 __pFlickGesture = null;
111 if (__pGestureLongPress != null)
113 __pGestureLongPress->RemoveGestureListener(*this);
114 RemoveGestureDetector(*__pGestureLongPress);
116 delete __pGestureLongPress;
117 __pGestureLongPress = null;
120 if (__pBackgroundBitmap)
122 delete __pBackgroundBitmap;
123 __pBackgroundBitmap = null;
126 if (__pDisabledBackgroundBitmap)
128 delete __pDisabledBackgroundBitmap;
129 __pDisabledBackgroundBitmap = null;
132 if (__pPressedItemBackgroundBitmap)
134 delete __pPressedItemBackgroundBitmap;
135 __pPressedItemBackgroundBitmap = null;
138 if (__pPressedItemBackgroundEffectBitmap)
140 delete __pPressedItemBackgroundEffectBitmap;
141 __pPressedItemBackgroundEffectBitmap = null;
144 if (__pSelectedItemBackgroundBitmap)
146 delete __pSelectedItemBackgroundBitmap;
147 __pSelectedItemBackgroundBitmap = null;
150 if (__pHighlightedItemBackgroundBitmap)
152 delete __pHighlightedItemBackgroundBitmap;
153 __pHighlightedItemBackgroundBitmap = null;
156 RemoveAllAccessibilityElement();
160 _Tab::CreateTabN(void)
162 result r = E_SUCCESS;
164 _Tab* pTab = new (std::nothrow) _Tab;
165 SysTryReturn(NID_UI_CTRL, pTab, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
167 if (IsFailed(GetLastResult()))
172 pTab->AcquireHandle();
174 pTab->__pGestureLongPress = new (std::nothrow) _TouchLongPressGestureDetector;
175 SysTryCatch(NID_UI_CTRL, pTab->__pGestureLongPress, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
177 pTab->__pGestureLongPress->SetDuration(500);
178 pTab->AddGestureDetector(*(pTab->__pGestureLongPress));
179 r = pTab->__pGestureLongPress->AddGestureListener(*pTab);
180 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r = E_SYSTEM, "[E_SYSTEM] A system error has occurred. The _ITouchGestureEventListener instance could not be set.");
182 pTab->__pFlickGesture = new (std::nothrow) _TouchFlickGestureDetector;
183 SysTryCatch(NID_UI_CTRL, pTab->__pFlickGesture, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
185 r = pTab->AddGestureDetector(*(pTab->__pFlickGesture));
186 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating", GetErrorMessage(r));
188 r = pTab->__pFlickGesture->AddGestureListener(*pTab);
189 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r = E_SYSTEM, "[E_SYSTEM] A system error has occurred. The _ITouchGestureEventListener instance could not be set.");
194 if (pTab->__pGestureLongPress != null)
196 pTab->__pGestureLongPress->RemoveGestureListener(*pTab);
197 pTab->RemoveGestureDetector(*pTab->__pGestureLongPress);
199 delete pTab->__pGestureLongPress;
200 pTab->__pGestureLongPress = null;
202 if (pTab->__pFlickGesture != null)
204 pTab->__pFlickGesture->RemoveGestureListener(*pTab);
205 pTab->RemoveGestureDetector(*pTab->__pFlickGesture);
207 delete pTab->__pFlickGesture;
208 pTab->__pFlickGesture = null;
216 _Tab::SetPresenter(const _TabPresenter& tabPresenter)
219 __pTabPresenter = const_cast<_TabPresenter*>(&tabPresenter);
225 _Tab::AddItem(const Bitmap& icon, const String& text, int actionId)
227 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
229 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
230 return E_OUT_OF_RANGE;
233 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
238 __style = _TAB_STYLE_ICON_TEXT;
240 bool isDuplicate = CheckDuplicatedActionId(actionId);
241 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred. The tab already has an item with same action id (%d).", actionId);
243 int itemCount = __tabItems.GetCount();
245 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
247 _TabItem *pItem = new (std::nothrow) _TabItem;
248 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
250 pItem->SetIcon(icon);
251 pItem->SetText(text);
252 pItem->SetActionId(actionId);
253 pItem->SetUpdateState(true);
257 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
261 pItem->SetStatus(_TABITEM_STATUS_SELECTED);
264 __pTabPresenter->SetRecalculateItemBounds(true);
266 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
268 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
270 __currentHighlightedItemIndex = 0;
272 return __tabItems.Add(*pItem);
276 _Tab::AddItem(const Bitmap& icon, int actionId)
278 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
280 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
281 return E_OUT_OF_RANGE;
284 if (__style != _TAB_STYLE_ICON)
289 bool isDuplicate = CheckDuplicatedActionId(actionId);
290 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred. The tab already has an item with same action id (%d).", actionId);
292 int itemCount = __tabItems.GetCount();
294 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
296 _TabItem *pItem = new (std::nothrow) _TabItem;
297 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
299 pItem->SetIcon(icon);
300 pItem->SetActionId(actionId);
301 pItem->SetUpdateState(true);
305 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
309 pItem->SetStatus(_TABITEM_STATUS_SELECTED);
312 __pTabPresenter->SetRecalculateItemBounds(true);
314 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
316 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
318 __currentHighlightedItemIndex = 0;
320 return __tabItems.Add(*pItem);
324 _Tab::AddItem(const String& text, int actionId)
326 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
328 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
329 return E_OUT_OF_RANGE;
332 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
337 bool isDuplicate = CheckDuplicatedActionId(actionId);
338 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred. The tab already has an item with same action id (%d).", actionId);
340 int itemCount = __tabItems.GetCount();
342 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
344 _TabItem *pItem = new (std::nothrow) _TabItem;
345 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
347 pItem->SetText(text);
348 pItem->SetActionId(actionId);
349 pItem->SetUpdateState(true);
353 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
357 pItem->SetStatus(_TABITEM_STATUS_SELECTED);
360 __pTabPresenter->SetRecalculateItemBounds(true);
362 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
364 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
366 __currentHighlightedItemIndex = 0;
368 return __tabItems.Add(*pItem);
372 _Tab::InsertItemAt(int index, const Bitmap& icon, const String& text, int actionId)
374 result r = E_SUCCESS;
375 bool isSelected = false;
377 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
379 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
380 return E_OUT_OF_RANGE;
383 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
388 __style = _TAB_STYLE_ICON_TEXT;
390 bool isDuplicate = CheckDuplicatedActionId(actionId);
391 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred.The tab already has an item with same action id (%d).", actionId);
393 int itemCount = __tabItems.GetCount();
395 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
397 _TabItem *pItem = new (std::nothrow) _TabItem;
398 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
400 pItem->SetIcon(icon);
401 pItem->SetText(text);
402 pItem->SetActionId(actionId);
403 pItem->SetUpdateState(true);
405 int selectedIndex = GetSelectedItemIndex();
407 if (selectedIndex >= index)
409 _TabItem *pSelectedItem = null;
410 pSelectedItem = GetItemAt(selectedIndex);
411 if (pSelectedItem != null)
414 pSelectedItem->SetStatus(_TABITEM_STATUS_NORMAL);
419 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
422 __pTabPresenter->SetRecalculateItemBounds(true);
424 r = __tabItems.InsertAt(*pItem, index);
428 SetSelectedItemIndex(selectedIndex);
431 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
433 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
435 __currentHighlightedItemIndex = 0;
441 _Tab::InsertItemAt(int index, const Bitmap& icon, int actionId)
443 result r = E_SUCCESS;
444 bool isSelected = false;
446 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
448 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
449 return E_OUT_OF_RANGE;
452 if (__style != _TAB_STYLE_ICON)
457 bool isDuplicate = CheckDuplicatedActionId(actionId);
458 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred.The tab already has an item with same action id (%d).", actionId);
460 int itemCount = __tabItems.GetCount();
462 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
464 _TabItem *pItem = new (std::nothrow) _TabItem;
465 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
467 pItem->SetIcon(icon);
468 pItem->SetActionId(actionId);
469 pItem->SetUpdateState(true);
470 int selectedIndex = GetSelectedItemIndex();
472 if (selectedIndex >= index)
474 _TabItem *pSelectedItem = null;
475 pSelectedItem = GetItemAt(selectedIndex);
476 if (pSelectedItem != null)
479 pSelectedItem->SetStatus(_TABITEM_STATUS_NORMAL);
484 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
487 __pTabPresenter->SetRecalculateItemBounds(true);
489 r = __tabItems.InsertAt(*pItem, index);
493 SetSelectedItemIndex(selectedIndex);
496 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
498 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
500 __currentHighlightedItemIndex = 0;
506 _Tab::InsertItemAt(int index, const String& text, int actionId)
508 result r = E_SUCCESS;
509 bool isSelected = false;
511 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
513 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
514 return E_OUT_OF_RANGE;
517 bool isDuplicate = CheckDuplicatedActionId(actionId);
518 SysTryReturnResult(NID_UI_CTRL, isDuplicate == false, E_SYSTEM, "A system error has occurred.The tab already has an item with same action id (%d).", actionId);
520 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
525 int itemCount = __tabItems.GetCount();
527 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
529 _TabItem *pItem = new (std::nothrow) _TabItem;
530 SysTryReturnResult(NID_UI_CTRL, pItem != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
532 pItem->SetText(text);
533 pItem->SetActionId(actionId);
534 pItem->SetUpdateState(true);
535 int selectedIndex = GetSelectedItemIndex();
537 if (selectedIndex >= index)
539 _TabItem *pSelectedItem = null;
540 pSelectedItem = GetItemAt(selectedIndex);
541 if (pSelectedItem != null)
544 pSelectedItem->SetStatus(_TABITEM_STATUS_NORMAL);
549 pItem->SetStatus(_TABITEM_STATUS_NORMAL);
552 __pTabPresenter->SetRecalculateItemBounds(true);
554 r = __tabItems.InsertAt(*pItem, index);
558 SetSelectedItemIndex(selectedIndex);
561 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
563 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
565 __currentHighlightedItemIndex = 0;
571 _Tab::SetItemAt(int index, const Bitmap& icon, const String& text, int actionId)
573 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
575 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
576 return E_OUT_OF_RANGE;
579 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
584 __style = _TAB_STYLE_ICON_TEXT;
586 int itemCount = __tabItems.GetCount();
588 if ((index < 0) || (index >= itemCount))
590 return E_OUT_OF_RANGE;
593 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
595 if (GetItemIndex(actionId) != index)
600 _TabItem *pItem = static_cast<_TabItem*>(__tabItems.GetAt(index));
601 result r = GetLastResult();
602 SysTryReturnResult(NID_UI_CTRL, pItem != null, r, "[%s] Propagating.", GetErrorMessage(r));
604 pItem->SetIcon(icon);
605 pItem->SetText(text);
606 pItem->SetActionId(actionId);
607 pItem->SetUpdateState(true);
613 _Tab::SetItemAt(int index, const Bitmap& icon, int actionId)
615 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
617 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
618 return E_OUT_OF_RANGE;
621 if (__style != _TAB_STYLE_ICON)
626 int itemCount = __tabItems.GetCount();
628 if ((index < 0) || (index >= itemCount))
630 return E_OUT_OF_RANGE;
633 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
635 if (GetItemIndex(actionId) != index)
640 _TabItem *pItem = static_cast<_TabItem*>(__tabItems.GetAt(index));
641 result r = GetLastResult();
642 SysTryReturnResult(NID_UI_CTRL, pItem != null, r, "[%s] Propagating.", GetErrorMessage(r));
644 pItem->SetIcon(icon);
645 pItem->SetActionId(actionId);
646 pItem->SetUpdateState(true);
652 _Tab::SetItemAt(int index, const String& text, int actionId)
654 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
656 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
657 return E_OUT_OF_RANGE;
660 if (!((__style == _TAB_STYLE_TEXT) || (__style == _TAB_STYLE_ICON_TEXT)))
665 int itemCount = __tabItems.GetCount();
667 if ((index < 0) || (index >= itemCount))
669 return E_OUT_OF_RANGE;
672 SysTryReturnResult(NID_UI_CTRL, itemCount < _TAB_ITEM_MAXCOUNT, E_SYSTEM, "A system error has occurred. The tab has maximum number of items.");
674 if (GetItemIndex(actionId) != index)
679 _TabItem *pItem = static_cast<_TabItem*>(__tabItems.GetAt(index));
680 result r = GetLastResult();
681 SysTryReturnResult(NID_UI_CTRL, pItem != null, r, "[%s] Propagating.", GetErrorMessage(r));
683 pItem->SetText(text);
684 pItem->SetActionId(actionId);
685 pItem->SetUpdateState(true);
691 _Tab::RemoveItemAt(int index)
693 result r = E_SUCCESS;
694 int selectedIndex = GetSelectedItemIndex();
696 if (selectedIndex >= index)
698 _TabItem *pSelectedItem = null;
699 pSelectedItem = GetItemAt(selectedIndex);
700 if (pSelectedItem != null)
702 pSelectedItem->SetStatus(_TABITEM_STATUS_NORMAL);
705 __pTabPresenter->SetRecalculateItemBounds(true);
707 r = __tabItems.RemoveAt(index, true);
709 SetSelectedItemIndex(0);
711 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
713 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
715 if(GetItemCount() > 0)
717 __currentHighlightedItemIndex = 0;
721 __currentHighlightedItemIndex = -1;
728 _Tab::RemoveAllItems(void)
730 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
732 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
734 __currentHighlightedItemIndex = -1;
736 __pTabPresenter->SetRecalculateItemBounds(true);
737 SetSelectedItemIndex(0);
738 SetFirstDrawnItemIndex(-1);
740 __tabItems.RemoveAll(true);
746 _Tab::ChangeItemAt(const int srcIndex, const int destIndex)
748 _TabItem* pItem = null;
749 pItem = GetItemAt(srcIndex);
751 __tabItems.InsertAt(*pItem, destIndex);
753 if (srcIndex > destIndex)
755 __tabItems.RemoveAt((srcIndex + 1), false);
759 __tabItems.RemoveAt(srcIndex, false);
766 _Tab::GetItemIndex(int actionId)
768 int itemCount = __tabItems.GetCount();
770 _TabItem* pItem = null;
772 for (int i = 0; i < itemCount; i++)
774 pItem = GetItemAt(i);
776 if ((pItem != null) && (actionId == pItem->GetActionId()))
786 _Tab::CheckDuplicatedActionId(int actionId)
788 int itemIndex = GetItemIndex(actionId);
799 _Tab::LoadBitmap(void)
801 result r = E_SUCCESS;
802 Bitmap* pPressedItemBackgroundBitmap = null;
803 Bitmap* pItemBackgroundBitmap = null;
804 Bitmap* pDisabledBackgroundBitmap = null;
805 Bitmap* pSelectedItemBackgroundBitmap = null;
806 Bitmap* pPressedItemBackgroundEffectBitmap = null;
807 Bitmap* pHighlightedItemBackgroundBitmap = null;
808 Color pressedEffectColor;
809 GET_COLOR_CONFIG(TAB::ITEM_BG_EFFECT_PRESSED, pressedEffectColor);
811 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
812 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate disabled item background bitmap.");
814 if (pDisabledBackgroundBitmap)
816 __pDisabledBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), GetDisabledItemBackgroundColor());
817 SysTryLog(NID_UI_CTRL, (__pDisabledBackgroundBitmap != null), "Failed to locate disabled item background bitmap.");
819 delete pDisabledBackgroundBitmap;
822 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pItemBackgroundBitmap);
823 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate item background bitmap.");
825 if (pItemBackgroundBitmap)
827 __pBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pItemBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), GetItemBackgroundColor());
828 SysTryLog(NID_UI_CTRL, (__pBackgroundBitmap != null), "Failed to locate item background bitmap.");
830 delete pItemBackgroundBitmap;
833 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedItemBackgroundBitmap);
834 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate pressed item background bitmap.");
836 if (pPressedItemBackgroundBitmap)
838 __pPressedItemBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedItemBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), GetPressedItemBackgroundColor());
839 SysTryLog(NID_UI_CTRL, (__pPressedItemBackgroundBitmap != null), "Failed to locate pressed item background bitmap.");
841 delete pPressedItemBackgroundBitmap;
844 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedItemBackgroundBitmap);
845 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate selected item background bitmap.");
847 if (pSelectedItemBackgroundBitmap)
849 __pSelectedItemBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSelectedItemBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), GetSelectedItemBackgroundColor());
850 SysTryLog(NID_UI_CTRL, (__pSelectedItemBackgroundBitmap != null), "Failed to locate selected item background bitmap.");
852 delete pSelectedItemBackgroundBitmap;
855 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedItemBackgroundEffectBitmap);
856 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate selected item background bitmap.");
858 if (pPressedItemBackgroundEffectBitmap)
860 __pPressedItemBackgroundEffectBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedItemBackgroundEffectBitmap, Color::GetColor(COLOR_ID_MAGENTA), pressedEffectColor);
861 SysTryLog(NID_UI_CTRL, (__pPressedItemBackgroundEffectBitmap != null), "Failed to locate selected item background bitmap.");
863 delete pPressedItemBackgroundEffectBitmap;
866 r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedItemBackgroundBitmap);
867 SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate highlighted item background bitmap.");
869 if (pHighlightedItemBackgroundBitmap)
871 __pHighlightedItemBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedItemBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), GetHighlightedItemBackgroundColor());
872 SysTryLog(NID_UI_CTRL, (__pHighlightedItemBackgroundBitmap != null), "Failed to locate highlighted item background bitmap.");
874 delete pHighlightedItemBackgroundBitmap;
880 _Tab::SetBadgeIcon(int actionId, const Bitmap* pBadgeIcon)
882 result r = E_SUCCESS;
884 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
886 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
887 return E_OUT_OF_RANGE;
890 int itemIndex = GetItemIndexFromActionId(actionId);
892 _TabItem *pItem = null;
896 SysLog(NID_UI_CTRL, "[E_INVALID_ARG] Invalid argument(s) is used. The specified actionId is not found.");
897 return E_INVALID_ARG;
900 pItem = dynamic_cast<_TabItem*>(__tabItems.GetAt(itemIndex));
904 pItem->SetBadgeIcon(*pBadgeIcon);
906 r = __tabItems.SetAt(*pItem, itemIndex, false);
913 _Tab::GetItemCount(void) const
915 return __tabItems.GetCount();
919 _Tab::GetItemIndexFromActionId(int actionId) const
921 if (actionId < _TAB_ACTION_ID_MIN || actionId > _TAB_ACTION_ID_MAX)
923 SysLog(NID_UI_CTRL, "[E_OUT_OF_RANGE] The actionId (%d) is out of range.", actionId);
928 int itemCount = __tabItems.GetCount();
930 for (index = 0; index < itemCount; index++)
932 const _TabItem *pItem = dynamic_cast<const _TabItem*>(__tabItems.GetAt(index));
936 if (pItem->GetActionId() == actionId)
947 _Tab::GetItemActionIdAt(int index) const
949 if (__tabItems.GetAt(index) == null )
954 const _TabItem *pItem = dynamic_cast<const _TabItem*>(__tabItems.GetAt(index));
955 SysTryReturn(NID_UI_CTRL, pItem != null, E_SYSTEM, E_SYSTEM,"[E_SYSTEM] A system error has occurred. Failed to get an item at index (%d).", index);
957 return pItem->GetActionId();
961 _Tab::GetItemAt(int index)
963 if (__tabItems.GetAt(index) == null )
968 _TabItem *pItem = static_cast<_TabItem*>(__tabItems.GetAt(index));
969 result r = GetLastResult();
970 SysTryReturn(NID_UI_CTRL, pItem != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
976 _Tab::SetSelectedItemIndex(int index)
978 __pTabPresenter->SetSelectedItemIndex(index);
983 _Tab::GetSelectedItemIndex(void) const
985 return __pTabPresenter->GetSelectedItemIndex();
989 _Tab::SetFirstDrawnItemIndex(int index)
991 __pTabPresenter->SetFirstDrawnItemIndex(index);
996 _Tab::GetFirstDrawnItemIndex(void) const
998 return __pTabPresenter->GetFirstDrawnItemIndex();
1002 _Tab::SetEditModeEnabled(bool isEnabled)
1004 return __pTabPresenter->SetEditModeEnabled(isEnabled);
1008 _Tab::IsEditModeEnabled(void) const
1010 return __pTabPresenter->IsEditModeEnabled();
1014 _Tab::SetBackgroundBitmap(const Bitmap& bitmap)
1018 Tizen::Graphics::Bitmap* pBitmap = _BitmapImpl::CloneN(bitmap);
1020 SysTryReturn(NID_UI_CTRL, (pBitmap), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1022 if (__pBackgroundBitmap)
1024 delete __pBackgroundBitmap;
1025 __pBackgroundBitmap = null;
1028 __pBackgroundBitmap = pBitmap;
1030 if (__pDisabledBackgroundBitmap)
1032 delete __pDisabledBackgroundBitmap;
1033 __pDisabledBackgroundBitmap = null;
1040 _Tab::GetBackgroundBitmap(void) const
1042 return __pBackgroundBitmap;
1046 _Tab::GetDisabledBackgroundBitmap(void) const
1048 return __pDisabledBackgroundBitmap;
1052 _Tab::GetPressedItemBackgroundBitmap(void) const
1054 return __pPressedItemBackgroundBitmap;
1058 _Tab::GetPressedItemBackgroundEffectBitmap(void) const
1060 return __pPressedItemBackgroundEffectBitmap;
1064 _Tab::SetSelectedItemBackgroundBitmap(const Bitmap& bitmap)
1068 Tizen::Graphics::Bitmap* pBitmap = _BitmapImpl::CloneN(bitmap);
1070 SysTryReturn(NID_UI_CTRL, (pBitmap), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1072 if (__pSelectedItemBackgroundBitmap)
1074 delete __pSelectedItemBackgroundBitmap;
1075 __pSelectedItemBackgroundBitmap = null;
1077 __pSelectedItemBackgroundBitmap = pBitmap;
1078 __pTabPresenter->FreeHorizontalLineBitmap();
1085 _Tab::GetSelectedItemBackgroundBitmap(void) const
1087 return __pSelectedItemBackgroundBitmap;
1091 _Tab::SetHighlightedItemBackgroundBitmap(const Bitmap& bitmap)
1095 Tizen::Graphics::Bitmap* pBitmap = _BitmapImpl::CloneN(bitmap);
1097 SysTryReturn(NID_UI_CTRL, (pBitmap), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1099 if (__pHighlightedItemBackgroundBitmap)
1101 delete __pHighlightedItemBackgroundBitmap;
1102 __pHighlightedItemBackgroundBitmap = null;
1105 __pHighlightedItemBackgroundBitmap = pBitmap;
1111 _Tab::GetHighlightedItemBackgroundBitmap(void) const
1113 return __pHighlightedItemBackgroundBitmap;
1117 _Tab::SetItemBackgroundColor(Color color)
1119 __itemBgColor[_TAB_STATUS_NORMAL] = color;
1124 _Tab::GetItemBackgroundColor(void) const
1126 return __itemBgColor[_TAB_STATUS_NORMAL];
1130 _Tab::GetPressedItemBackgroundColor(void) const
1132 return __itemBgColor[_TAB_STATUS_PRESSED];
1136 _Tab::SetSelectedItemBackgroundColor(Color color)
1138 __itemBgColor[_TAB_STATUS_SELECTED] = color;
1143 _Tab::GetSelectedItemBackgroundColor(void) const
1145 return __itemBgColor[_TAB_STATUS_SELECTED];
1149 _Tab::SetHighlightedItemBackgroundColor(Color color)
1151 __itemBgColor[_TAB_STATUS_HIGHLIGHTED] = color;
1156 _Tab::GetHighlightedItemBackgroundColor(void) const
1158 return __itemBgColor[_TAB_STATUS_HIGHLIGHTED];
1162 _Tab::GetDisabledItemBackgroundColor(void) const
1164 return __itemBgColor[_TAB_STATUS_DISABLED];
1168 _Tab::SetTextColor(const Color& textColor)
1170 __itemTextColor[_TAB_STATUS_NORMAL] = textColor;
1175 _Tab::GetTextColor(void) const
1177 return __itemTextColor[_TAB_STATUS_NORMAL];
1181 _Tab::GetDisabledTextColor(void) const
1183 return __itemTextColor[_TAB_STATUS_DISABLED];
1187 _Tab::SetPressedTextColor(const Color& textColor)
1189 __itemTextColor[_TAB_STATUS_PRESSED] = textColor;
1194 _Tab::GetPressedTextColor(void) const
1196 return __itemTextColor[_TAB_STATUS_PRESSED];
1200 _Tab::SetSelectedTextColor(const Color& textColor)
1202 __itemTextColor[_TAB_STATUS_SELECTED] = textColor;
1207 _Tab::GetSelectedTextColor(void) const
1209 return __itemTextColor[_TAB_STATUS_SELECTED];
1213 _Tab::SetHighlightedTextColor(const Color& color)
1215 __itemTextColor[_TAB_STATUS_HIGHLIGHTED] = color;
1220 _Tab::GetHighlightedTextColor(void) const
1222 return __itemTextColor[_TAB_STATUS_HIGHLIGHTED];
1226 _Tab::SetStyle(int style)
1233 _Tab::GetStyle(void) const
1235 return _TabStyle(__style);
1239 _Tab::GetCurrentHighlightedItemIndex(void) const
1241 return __currentHighlightedItemIndex;
1245 _Tab::AddActionEventListener(const _IActionEventListener& listener)
1249 if (__pActionEvent == null)
1251 __pActionEvent = _ActionEvent::CreateInstanceN(*this);
1253 if (__pActionEvent == null || IsFailed(GetLastResult()))
1255 SetLastResult(E_SYSTEM);
1256 delete __pActionEvent;
1260 __pActionEvent->AddListener(listener);
1265 _Tab::RemoveActionEventListener(const _IActionEventListener& listener)
1269 __pActionEvent->RemoveListener(listener);
1274 _Tab::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
1276 if (this != &source)
1281 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
1283 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
1285 __currentHighlightedItemIndex = -1;
1287 return __pTabPresenter->OnTouchPressed(source, touchinfo);
1291 _Tab::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
1293 if (this != &source)
1298 __pTabPresenter->OnTouchReleased(source, touchinfo);
1300 int index = __pTabPresenter->GetItemIndexFromPosition(touchinfo.GetCurrentPosition());
1302 _TabItem* pItem = __pTabPresenter->GetItemAt(index);
1311 IEventArg* pEventArg = _ActionEvent::CreateActionEventArgN(pItem->GetActionId());
1312 SysTryReturn(NID_UI_CTRL, pEventArg, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1314 __pActionEvent->Fire(*pEventArg);
1321 _Tab::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
1323 if (this != &source)
1328 return __pTabPresenter->OnTouchMoved(source, touchinfo);
1332 _Tab::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
1334 return __pTabPresenter->OnLongPressGestureDetected();
1338 _Tab::OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture)
1344 _Tab::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
1347 return __pTabPresenter->OnFlickGestureDetected(gesture);
1351 _Tab::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
1360 __pTabPresenter->Draw();
1366 _Tab::OnBoundsChanged(void)
1368 __pTabPresenter->OnBoundsChanged();
1372 _Tab::OnAttachedToMainTree(void)
1374 _AccessibilityContainer* pContainer = null;
1376 pContainer = GetAccessibilityContainer();
1380 pContainer->Activate(true);
1381 pContainer->AddListener(*this);
1388 _Tab::OnFontChanged(Font* pFont)
1390 __pTabPresenter->OnFontChanged(pFont);
1395 _Tab::OnFontInfoRequested(unsigned long& style, float& size)
1397 __pTabPresenter->OnFontInfoRequested(style, size);
1402 _Tab::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
1404 if (this != &source)
1408 _KeyCode keyCode = keyInfo.GetKeyCode();
1409 int itemCount = __pTabPresenter->GetItemCount();
1415 if (keyCode == _KEY_RIGHT)
1417 if (__currentHighlightedItemIndex < (itemCount - 1))
1419 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
1421 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
1424 __currentHighlightedItemIndex++;
1426 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
1428 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
1430 __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_RIGHT);
1435 if (keyCode == _KEY_LEFT)
1437 if (__currentHighlightedItemIndex >= -1)
1439 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
1441 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
1443 if (__currentHighlightedItemIndex == -1)
1445 __currentHighlightedItemIndex = 0;
1447 if (__currentHighlightedItemIndex > 0)
1449 __currentHighlightedItemIndex--;
1451 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
1453 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
1455 __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
1460 if (keyCode == _KEY_ENTER && __currentHighlightedItemIndex != -1)
1462 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_SELECTED);
1463 __pTabPresenter->SetSelectedItemIndex(__currentHighlightedItemIndex);
1471 _Tab::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
1477 _Tab::OnFocusGained(const _Control & source)
1479 if (this != &source)
1484 if(__pTabPresenter->GetItemCount() > 0)
1486 __currentHighlightedItemIndex = 0;
1490 __currentHighlightedItemIndex = -1;
1496 _Tab::OnFocusLost(const _Control & source)
1498 if (this != &source)
1503 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
1505 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
1507 __currentHighlightedItemIndex = -1;
1515 if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
1517 __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
1519 __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
1524 _Tab::AddAccessibilityElement(const FloatRectangle& itemBounds, const String& itemText, _TabItemStatus status)
1526 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
1528 if (pContainer != null)
1530 _AccessibilityElement* pAccessibilityElement = new (std::nothrow) _AccessibilityElement(true);
1531 SysTryReturnVoidResult(NID_UI_CTRL, pAccessibilityElement != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1533 pAccessibilityElement->SetTrait(L"Tab");
1534 pAccessibilityElement->SetHint(L"Double tap to move to contents");
1535 pAccessibilityElement->SetBounds(itemBounds);
1537 if (GetStyle() != _TAB_STYLE_ICON)
1539 pAccessibilityElement->SetLabel(itemText);
1542 if (status == _TABITEM_STATUS_SELECTED)
1544 pAccessibilityElement->SetStatus("Selected");
1545 pAccessibilityElement->SetHintDisabled(true);
1549 pAccessibilityElement->SetStatus("");
1550 pAccessibilityElement->SetHintDisabled(false);
1553 pContainer->AddElement(*pAccessibilityElement);
1554 __accessibilityElements.Add(pAccessibilityElement);
1561 _Tab::RemoveAllAccessibilityElement(void)
1563 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
1565 if (pContainer == null)
1570 _AccessibilityElement* pAccessibilityElement = null;
1572 while (__accessibilityElements.GetCount() > 0)
1574 if ((__accessibilityElements.GetAt(0, pAccessibilityElement)) == E_SUCCESS)
1576 pContainer->RemoveElement(*pAccessibilityElement);
1577 __accessibilityElements.RemoveAt(0);
1581 __accessibilityElements.RemoveAt(0);
1589 _Tab::OnChangeLayout(_ControlOrientation orientation)
1591 __pTabPresenter->OnChangeLayout(orientation);
1597 _Tab::OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1601 return __pTabPresenter->OnAccessibilityFocusMovedNext(control, element);
1605 _Tab::OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1609 return __pTabPresenter->OnAccessibilityFocusMovedPrevious(control, element);
1613 _Tab::OnAccessibilityReadingElement(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1618 _Tab::OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1624 _Tab::OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1630 _Tab::OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1636 _Tab::OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element)
1642 _Tab::OnAccessibilityValueIncreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&)
1648 _Tab::OnAccessibilityValueDecreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&)
1653 }}} // Tizen::Ui::Controls