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.
18 * @file FUiCtrl_Toolbar.cpp
19 * @brief This is the implementation file for the _Toolbar class.
22 #include <FBaseSysLog.h>
23 #include <FGrp_BitmapImpl.h>
24 #include "FUi_CoordinateSystemUtils.h"
25 #include "FUi_AccessibilityContainer.h"
26 #include "FUi_AccessibilityElement.h"
27 #include "FUi_AccessibilityManager.h"
28 #include "FUi_IAccessibilityListener.h"
29 #include "FUi_CoordinateSystemUtils.h"
30 #include "FUi_TouchLongPressGestureDetector.h"
31 #include "FUi_ResourceManager.h"
32 #include "FUiCtrl_ActionEvent.h"
33 #include "FUiCtrl_Toolbar.h"
34 #include "FUiCtrl_ToolbarPresenter.h"
35 #include "FUiCtrl_Label.h"
36 #include "FUiCtrl_Form.h"
38 using namespace Tizen::Base;
39 using namespace Tizen::Base::Collection;
40 using namespace Tizen::Graphics;
41 using namespace Tizen::Ui;
42 using namespace Tizen::Base::Utility;
46 class FooterItemAccessibilityListener
47 : public _IAccessibilityListener
50 FooterItemAccessibilityListener(const Tizen::Ui::Controls::_Toolbar* toolbar)
53 __pToolbar = const_cast<Tizen::Ui::Controls::_Toolbar*>(toolbar);
55 virtual ~FooterItemAccessibilityListener(void){}
56 virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
57 virtual bool OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
58 virtual bool OnAccessibilityReadingElement(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
59 virtual bool OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
60 virtual bool OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element)
62 FloatRectangle rect = element.GetAbsoluteBounds();
63 Dimension screen = _ResourceManager::GetInstance()->GetLogicalScreenSizen();
64 int screenW = _ControlManager::GetInstance()->GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT ? screen.width : screen.height;
67 __pToolbar->GetPresenter()->AdjustItemPositionX(-(rect.x));
68 __pToolbar->Invalidate(true);
70 else if(rect.x + rect.width > screenW)
73 if(rect.x + rect.width > screenW)
75 adjustX = -(rect.x + rect.width - screenW);
81 __pToolbar->GetPresenter()->AdjustItemPositionX(adjustX);
82 __pToolbar->Invalidate(true);
86 virtual bool OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
87 virtual bool OnAccessibilityValueIncreased(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
88 virtual bool OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
89 virtual bool OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element)
91 _AccessibilityManager::GetInstance()->RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM_OF_CONTENTS);
95 Tizen::Ui::Controls::_Toolbar* __pToolbar;
99 namespace Tizen { namespace Ui { namespace Controls
102 IMPLEMENT_PROPERTY(_Toolbar);
104 _Toolbar::_Toolbar(void)
106 , __pToolbarPresenter(null)
107 , __pActionEventListener(null)
108 , __pBackEventListener(null)
109 , __pMenuEventListener(null)
110 , __pLongPressGesture(null)
111 , __pFlickGesture(null)
112 , __pToolbarBackgroundBitmap(null)
113 , __pToolbarBackgroundEffectBitmap(null)
116 , __descriptionText(L"")
117 , __titleTextAlignment(ALIGNMENT_LEFT)
119 , __pTitleBadgeIcon(null)
123 , __style(TOOLBAR_TITLE)
124 , __transparent(false)
125 , __isUserBackgroundBitmap(false)
126 , __highlightedItemIndex(0)
127 , __lastHighlightedItemIndex(0)
128 , __highlighted(false)
129 , __titleTextArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
130 , __itemArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
131 , __pTitleTextElement(null)
132 , __pAccessibilityListener(null)
134 _AccessibilityContainer* pContainer = null;
136 __pButtonItems[LEFT_BUTTON] = null;
137 __pButtonItems[RIGHT_BUTTON] = null;
138 __pButtonItems[MIDDLE_BUTTON] = null;
140 for (int i = 0; i < TOOLBAR_ANIMATION_POSITION_MAX; i++)
142 __pAnimation[i] = null;
143 __pAnimationFrameList[i] = null;
148 if (__header == true)
150 GET_COLOR_CONFIG(HEADER::BG_NORMAL, bgColor);
154 GET_COLOR_CONFIG(FOOTER::BG_NORMAL, bgColor);
159 _Control::SetResizable(false);
161 _Control::SetMovable(false);
163 _ToolbarPresenter* pPresenter = new (std::nothrow) _ToolbarPresenter();
165 SetPresenter(*pPresenter);
167 pPresenter->Construct(*this);
169 pPresenter->Install();
171 pContainer = GetAccessibilityContainer();
175 pContainer->Activate(true);
178 for (int i = 0; i < TOOLBAR_ITEM_MAX_STATE_COUNT; i++)
180 __isItemBgColorSetByUser[i] = false;
181 __isItemTextColorSetByUser[i] = false;
184 for (int i = 0; i < TOOLBAR_BUTTON_MAX_STATE_COUNT; i++)
186 __isButtonBgColorSetByUser[i] = false;
187 __isButtonTextColorSetByUser[i] = false;
189 __pAccessibilityListener = new (std::nothrow) FooterItemAccessibilityListener(this);
191 SetFocusNavigateEnabled(false);
194 _Toolbar::~_Toolbar(void)
196 RemoveAllItems(); //__pMoreButton would be deleted in this function
199 if (__pToolbarPresenter)
201 delete __pToolbarPresenter;
202 __pToolbarPresenter = null;
205 if (__pActionEventListener)
207 __pActionEventListener = null;
210 if (__pBackEventListener)
212 __pBackEventListener = null;
215 if (__pMenuEventListener)
217 __pMenuEventListener = null;
220 if (__pLongPressGesture != null)
222 __pLongPressGesture->RemoveGestureListener(*this);
223 RemoveGestureDetector(*__pLongPressGesture);
225 delete __pLongPressGesture;
226 __pLongPressGesture = null;
229 if (__pFlickGesture != null)
231 __pFlickGesture->RemoveGestureListener(*this);
232 RemoveGestureDetector(*__pFlickGesture);
234 delete __pFlickGesture;
235 __pFlickGesture = null;
238 if (__pToolbarBackgroundBitmap)
240 delete __pToolbarBackgroundBitmap;
241 __pToolbarBackgroundBitmap = null;
244 if (__pToolbarBackgroundEffectBitmap)
246 delete __pToolbarBackgroundEffectBitmap;
247 __pToolbarBackgroundEffectBitmap = null;
256 for (int i = 0; i < TOOLBAR_ANIMATION_POSITION_MAX; i++)
258 if (__pAnimationFrameList[i])
260 __pAnimationFrameList[i]->RemoveAll(true);
262 delete __pAnimationFrameList[i];
263 __pAnimationFrameList[i] = null;
267 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE])
269 DetachChild(*__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE]);
270 delete __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE];
271 __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE] = null;
274 if (__pTitleBadgeIcon)
276 DetachChild(*__pTitleBadgeIcon);
278 delete __pTitleBadgeIcon;
279 __pTitleBadgeIcon = null;
282 if (__pTitleTextElement)
284 __pTitleTextElement->Activate(false);
285 __pTitleTextElement = null;
288 if(__pAccessibilityListener)
290 delete __pAccessibilityListener;
291 __pAccessibilityListener = null;
297 _Toolbar::CreateToolbarN(bool header)
299 _Toolbar* pToolbar = new (std::nothrow) _Toolbar();
300 SysTryReturn(NID_UI_CTRL, pToolbar, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
302 pToolbar->Initialize(header);
303 pToolbar->AcquireHandle();
305 pToolbar->SetTouchPressThreshold(SENSITIVE);
311 _Toolbar::Initialize(bool header)
319 _Toolbar::IsHeader(void)
325 _Toolbar::InitToolbarColor(void)
327 if (__header == true)
329 if (__transparent == true) // header && transparent
331 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_TITLE_TEXT_NORMAL, __transTitleTextColor);
332 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_DESCRIPTION_TEXT_NORMAL, __transDescriptionTextColor);
334 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
336 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
337 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
338 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
339 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
340 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
342 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
343 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
344 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
345 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
346 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
348 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
350 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
351 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
352 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
353 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
354 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
356 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
357 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
358 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
359 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
360 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
362 else // TOOLBAR_TITLE, TOOLBAR_HEADER_SEGMENTED, TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
364 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
365 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
366 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
367 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
368 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
370 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
371 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
372 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
373 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
374 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
377 __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
378 __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
379 __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
380 __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
381 __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED].SetAlpha(0x00);
383 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
384 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
385 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
386 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
388 __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
389 __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
390 __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
391 __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
393 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
394 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
395 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
396 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
398 else // header && not transparent
400 GET_COLOR_CONFIG(HEADER::TITLE_TEXT_NORMAL, __titleTextColor);
401 GET_COLOR_CONFIG(HEADER::DESCRIPTION_TEXT_NORMAL, __descriptionTextColor);
403 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
405 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
407 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
409 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
411 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
413 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
415 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
417 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
419 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
421 //if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
423 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
426 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
428 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
430 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
432 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
434 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
436 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
438 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
440 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
442 //if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
444 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
447 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) // header
449 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
451 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
453 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
455 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
457 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
459 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
461 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
463 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
465 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
467 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
470 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
472 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
474 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
476 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
478 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
480 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
482 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
484 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
486 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
488 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
491 else // TOOLBAR_TITLE, TOOLBAR_HEADER_SEGMENTED, TOOLBAR_HEADER_SEGMENTED_WITH_TITLE,
493 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
495 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
497 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
499 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
501 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
503 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
505 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
507 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
509 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
511 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
514 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
516 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
518 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
520 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
522 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
524 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
526 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
528 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
530 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
532 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
536 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL])
538 GET_COLOR_CONFIG(HEADER::BUTTON_BG_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
540 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED])
542 GET_COLOR_CONFIG(HEADER::BUTTON_BG_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
544 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED])
546 GET_COLOR_CONFIG(HEADER::BUTTON_BG_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
548 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
550 GET_COLOR_CONFIG(HEADER::BUTTON_BG_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
553 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL])
555 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
557 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED])
559 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
561 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED])
563 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
565 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
567 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
573 if (__transparent == true) // footer && transparent
575 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
577 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
578 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
579 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
580 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
581 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
583 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
584 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
585 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
586 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
587 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
589 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
591 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
592 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
593 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
594 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
595 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
597 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
598 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
599 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
600 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
601 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
603 else // TOOLBAR_SEGMENTED
605 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
606 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
607 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
608 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
609 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
611 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
612 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
613 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
614 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
615 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
618 __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
619 __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
620 __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
621 __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
622 __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED].SetAlpha(0x00);
625 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
626 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
627 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
628 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
630 __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
631 __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
632 __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
633 __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
635 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
636 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
637 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
638 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
640 else // footer && not transparent
642 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
644 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
646 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
648 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
650 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
652 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
654 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
656 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
658 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
660 //if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
662 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
665 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
667 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
669 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
671 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
673 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
675 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
677 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
679 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
681 //if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
683 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
686 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
688 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
690 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
692 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
694 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
696 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
698 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
700 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
702 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
704 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
706 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
709 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
711 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
713 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
715 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
717 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
719 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
721 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
723 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
725 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
727 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
730 else // TOOLBAR_SEGMENTED
732 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
734 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
736 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
738 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
740 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
742 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
744 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
746 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
748 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
750 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
753 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
755 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
757 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
759 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
761 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
763 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
765 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
767 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
769 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
771 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
775 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL])
777 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
779 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED])
781 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
783 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED])
785 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
787 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
789 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
792 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL])
794 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
796 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED])
798 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
800 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED])
802 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
804 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
806 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
815 _Toolbar::InitializeLongPressGesture(void)
817 result r = E_SUCCESS;
819 __pLongPressGesture = new (std::nothrow) _TouchLongPressGestureDetector();
820 SysTryReturn(NID_UI_CTRL, __pLongPressGesture, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Failed to create touch long press gesture.");
822 __pLongPressGesture->SetDuration(500);
824 r = AddGestureDetector(*__pLongPressGesture);
825 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture detector", GetErrorMessage(r));
827 r = __pLongPressGesture->AddGestureListener(*(dynamic_cast<_ITouchLongPressGestureEventListener*>(this)));
828 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture listener", GetErrorMessage(r));
834 _Toolbar::InitializeFlickGesture(void)
836 result r = E_SUCCESS;
838 __pFlickGesture = new (std::nothrow) _TouchFlickGestureDetector();
839 SysTryReturn(NID_UI_CTRL, __pFlickGesture, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Failed to create flick gesture.");
841 r = AddGestureDetector(*__pFlickGesture);
842 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture detector", GetErrorMessage(r));
844 r = __pFlickGesture->AddGestureListener(*(dynamic_cast<_ITouchFlickGestureEventListener*>(this)));
845 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture listener", GetErrorMessage(r));
851 _Toolbar::Construct(void)
853 result r = E_SUCCESS;
859 _Toolbar::AddItem(_Button* pButton)
861 SysTryReturnResult(NID_UI_CTRL, (__itemCount < TAB_ITEM_MAX), E_MAX_EXCEEDED,
862 "[E_MAX_EXCEEDED] The number of items have exceeded the maximum limit.");
864 if (__pActionEventListener != null)
866 pButton->AddActionEventListener(*__pActionEventListener);
869 __pItems.push_back(pButton);
872 SetFocusNavigateEnabled(true);
874 AttachChild(*pButton);
876 ApplyUserGUI(TOOLBAR_ITEM, pButton);
880 AddAccessibilityElement(pButton);
886 _Toolbar::GetBackgroundBitmap(void) const
888 result r = E_SUCCESS;
890 _Toolbar* pToolbar = const_cast<_Toolbar*>(this);
892 if (!pToolbar->__pToolbarBackgroundBitmap)
896 r = GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundBitmap);
897 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
901 r = GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundBitmap);
902 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
906 return pToolbar->__pToolbarBackgroundBitmap;
910 _Toolbar::GetBackgroundEffectBitmap(void) const
912 result r = E_SUCCESS;
914 _Toolbar* pToolbar = const_cast<_Toolbar*>(this);
916 if (!pToolbar->__pToolbarBackgroundEffectBitmap)
920 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
921 if (customTheme == false)
923 r = GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundEffectBitmap);
924 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
929 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
930 if (customTheme == false)
932 r = GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundEffectBitmap);
933 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
938 return pToolbar->__pToolbarBackgroundEffectBitmap;
942 _Toolbar::GetButton(ToolbarButton position) const
944 SysTryReturn(NID_UI_CTRL, (position >= LEFT_BUTTON && position < BUTTON_MAX), null, E_OUT_OF_RANGE,
945 ("[E_OUT_OF_RANGE] The position is out of range."));
947 return __pButtonItems[position];
951 _Toolbar::GetTitleBadgeIcon(void) const
953 return __pTitleBadgeIcon;
957 _Toolbar::GetButtonColor(_ButtonStatus status) const
963 case _BUTTON_STATUS_NORMAL:
964 color = GetProperty(L"normalButtonColor");
966 case _BUTTON_STATUS_DISABLED:
967 color = GetProperty(L"disabledButtonColor");
969 case _BUTTON_STATUS_PRESSED:
970 color = GetProperty(L"pressedButtonColor");
972 case _BUTTON_STATUS_HIGHLIGHTED:
973 color = GetProperty(L"highlightedButtonColor");
976 color = GetProperty(L"normalButtonColor");
980 return color.ToColor();
984 _Toolbar::GetButtonStatus(ToolbarButton position) const
986 return __pButtonItems[position]->GetButtonStatus();
990 _Toolbar::GetButtonTextColor(_ButtonStatus status) const
996 case _BUTTON_STATUS_NORMAL:
997 color = GetProperty(L"normalButtonTextColor");
999 case _BUTTON_STATUS_DISABLED:
1000 color = GetProperty(L"disabledButtonTextColor");
1002 case _BUTTON_STATUS_PRESSED:
1003 color = GetProperty(L"pressedButtonTextColor");
1005 case _BUTTON_STATUS_HIGHLIGHTED:
1006 color = GetProperty(L"highlightedButtonTextColor");
1009 color = GetProperty(L"normalButtonTextColor");
1013 return color.ToColor();
1017 _Toolbar::GetColor(void) const
1019 Variant color = GetProperty(L"color");
1021 return color.ToColor();
1025 _Toolbar::GetDescriptionText(void) const
1027 Variant text = GetProperty(L"descriptionText");
1029 return text.ToString();
1033 _Toolbar::GetDescriptionTextColor(void) const
1035 Variant color = GetProperty(L"descriptionTextColor");
1037 return color.ToColor();
1041 _Toolbar::GetFirstEnabledItemIndex(void) const
1043 int firstEnabledItemIndex = -1;
1045 for (int i = 0; i < __itemCount; i++)
1047 if(__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
1049 firstEnabledItemIndex = i;
1054 return firstEnabledItemIndex;
1058 _Toolbar::GetItem(int itemIndex) const
1060 if (__pItems.at(itemIndex) == null)
1062 SysLogException(NID_UI_CTRL, E_SYSTEM, "[E_SYSTEM] Unable to get item.");
1066 return __pItems.at(itemIndex);
1070 _Toolbar::GetItemColor(_ButtonStatus status) const
1076 case _BUTTON_STATUS_NORMAL:
1077 color = GetProperty(L"normalItemColor");
1079 case _BUTTON_STATUS_DISABLED:
1080 color = GetProperty(L"disabledItemColor");
1082 case _BUTTON_STATUS_PRESSED:
1083 color = GetProperty(L"pressedItemColor");
1085 case _BUTTON_STATUS_HIGHLIGHTED:
1086 color = GetProperty(L"highlightedItemColor");
1088 case _BUTTON_STATUS_SELECTED:
1089 color = GetProperty(L"selectedItemColor");
1092 color = GetProperty(L"normalItemColor");
1096 return color.ToColor();
1100 _Toolbar::GetItemCount(void) const
1106 _Toolbar::GetItemIndexFromPosition(const FloatPoint& point) const
1108 if (__itemCount <= 0)
1113 for (int i = 0; i < __itemCount; i++)
1115 FloatRectangle bounds = __pItems.at(i)->GetBoundsF();
1117 if (bounds.Contains(point) && __pItems.at(i)->GetVisibleState() == true)
1127 _Toolbar::GetItemStatus(int itemIndex, _ButtonStatus& status) const
1129 status = _BUTTON_STATUS_NORMAL;
1131 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex <= __itemCount), E_OUT_OF_RANGE,
1132 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
1134 status = __pItems.at(itemIndex)->GetButtonStatus();
1140 _Toolbar::GetItemTextColor(_ButtonStatus status) const
1146 case _BUTTON_STATUS_NORMAL:
1147 color = GetProperty(L"normalItemTextColor");
1149 case _BUTTON_STATUS_DISABLED:
1150 color = GetProperty(L"disabledItemTextColor");
1152 case _BUTTON_STATUS_PRESSED:
1153 color = GetProperty(L"pressedItemTextColor");
1155 case _BUTTON_STATUS_HIGHLIGHTED:
1156 color = GetProperty(L"highlightedItemTextColor");
1158 case _BUTTON_STATUS_SELECTED:
1159 color = GetProperty(L"selectedItemTextColor");
1162 color = GetProperty(L"normalItemTextColor");
1166 return color.ToColor();
1170 _Toolbar::GetSelectedItemIndex(void) const
1172 return __pToolbarPresenter->GetSelectedItemIndex();
1176 _Toolbar::GetStyle(void) const
1178 return ToolbarStyle(__style);
1182 _Toolbar::GetTitleIcon(void) const
1184 return __pTitleIcon;
1188 _Toolbar::GetTitleText(void) const
1190 Variant text = GetProperty(L"titleText");
1191 return text.ToString();
1195 _Toolbar::GetTitleTextColor(void) const
1197 Variant color = GetProperty(L"titleTextColor");
1198 return color.ToColor();
1202 _Toolbar::GetTitleTextHorizontalAlignment(void) const
1204 return __titleTextAlignment;
1208 _Toolbar::IsInitialDraw(void) const
1210 return __pToolbarPresenter->IsInitialDraw();
1214 _Toolbar::IsTabEditModeEnabled(void) const
1216 return __pToolbarPresenter->IsTabEditModeEnabled();
1220 _Toolbar::IsTransparent(void) const
1222 return __transparent;
1227 _Toolbar::GetWaitingAnimationStatus(ToolbarAnimationPosition animationPos) const
1229 if (animationPos < TOOLBAR_ANIMATION_POSITION_TITLE || animationPos >= TOOLBAR_ANIMATION_POSITION_MAX)
1231 return ANIMATION_STOPPED;
1234 if (__pAnimation[animationPos] == null)
1236 return ANIMATION_STOPPED;
1239 return __pAnimation[animationPos]->GetStatus();
1243 _Toolbar::InsertItemAt(int itemIndex, _Button* pButton)
1245 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex <= __itemCount), E_OUT_OF_RANGE,
1246 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
1248 if (__pActionEventListener != null)
1250 pButton->AddActionEventListener(*__pActionEventListener);
1253 __pItems.insert(__pItems.begin() + itemIndex, pButton);
1256 SetFocusNavigateEnabled(true);
1258 AttachChild(*pButton);
1260 ApplyUserGUI(TOOLBAR_ITEM, pButton);
1264 AddAccessibilityElement(pButton);
1270 _Toolbar::IsButtonSet(ToolbarButton position) const
1272 if (__pButtonItems[position] != null)
1281 _Toolbar::MoveItem(const int srcIndex, const int destIndex)
1283 if (srcIndex == destIndex)
1285 SetItemSelected(destIndex, true, false);
1290 if (srcIndex < 0 || destIndex < 0 || srcIndex > __itemCount || destIndex > __itemCount)
1292 return E_INVALID_OPERATION;
1295 _Button* pSrcButton = null;
1296 pSrcButton = GetItem(srcIndex);
1297 SysTryReturnResult(NID_UI_CTRL, pSrcButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the pressed index.");
1299 _Button* pDestButton = null;
1300 pDestButton = GetItem(destIndex);
1301 SysTryReturnResult(NID_UI_CTRL, pDestButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the released index.");
1303 if (pDestButton->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
1305 SetItemSelected(GetSelectedItemIndex(), true, false);
1307 return E_INVALID_OPERATION;
1310 __pItems.erase(__pItems.begin() + destIndex);
1311 __pItems.insert(__pItems.begin() + destIndex, pSrcButton);
1313 __pItems.erase(__pItems.begin() + srcIndex);
1314 __pItems.insert(__pItems.begin() + srcIndex, pDestButton);
1316 for (int i = 0; i < __itemCount; i++)
1318 if (__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
1320 __pItems.at(i)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
1323 _AccessibilityElement* pElement = __pItems.at(i)->GetAccessibilityContainer()->GetChildElement(0);
1326 pElement->SetStatus(L"");
1327 pElement->SetHintDisabled(false);
1331 SetItemSelected(destIndex, true, false);
1341 _Toolbar::PauseWaitingAnimation(ToolbarAnimationPosition animationPos)
1343 SysTryReturnResult(NID_UI_CTRL,
1344 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
1345 "[E_INVALID_ARG] The animationPos is invalid.");
1346 SysTryReturnResult(NID_UI_CTRL, (__pAnimation[animationPos]), E_INVALID_STATE,
1347 "[E_INVALID_STATE] __pAnimation isn't constructed.");
1349 __pAnimation[animationPos]->Pause();
1355 _Toolbar::PlayWaitingAnimation(ToolbarAnimationPosition animationPos)
1357 SysTryReturnResult(NID_UI_CTRL,
1358 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
1359 "[E_INVALID_ARG] The animationPos is invalid.");
1361 if ((animationPos == TOOLBAR_ANIMATION_POSITION_TITLE && __style != TOOLBAR_TITLE)
1362 || (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT && __pButtonItems[LEFT_BUTTON] == null)
1363 || (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT && __pButtonItems[RIGHT_BUTTON] == null))
1365 return E_UNSUPPORTED_OPERATION;
1368 if (__pAnimation[animationPos])
1370 if (__pAnimation[animationPos]->GetStatus() == ANIMATION_PLAYING)
1377 SetAnimation(animationPos);
1380 if (__pAnimation[animationPos])
1382 __pAnimation[animationPos]->Play();
1389 _Toolbar::RemoveAllButtons(void)
1391 for (int i = 0; i < BUTTON_MAX; i++)
1393 _Button* pButtonItem = __pButtonItems[i];
1395 if (pButtonItem != null)
1397 if (i == LEFT_BUTTON)
1399 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT] != null)
1401 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1404 else if (i == RIGHT_BUTTON)
1406 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT] != null)
1408 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1412 if (pButtonItem->GetChildCount() != 0)
1414 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pButtonItem->GetChild(0));
1415 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1417 pButtonItem->DetachChild(*pTempBadgeIcon);
1419 delete pTempBadgeIcon;
1420 pTempBadgeIcon = null;
1423 DetachChild(*pButtonItem);
1427 __pButtonItems[i] = null;
1435 _Toolbar::RemoveAllItems(void)
1439 int itemCount = __pItems.size();
1441 _Button* pItem = null;
1443 // frees item nodes from the memory
1446 for (int i = itemCount - 1; i >= 0; i--)
1448 pItem = __pItems.at(i);
1452 if (pItem->GetChildCount() != 0)
1454 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pItem->GetChild(0));
1455 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1457 pItem->DetachChild(*pTempBadgeIcon);
1459 delete pTempBadgeIcon;
1460 pTempBadgeIcon = null;
1463 DetachChild(*pItem);
1474 __pToolbarPresenter->SetInitialDrawState(true);
1476 SetItemSelected(-1);
1482 _Toolbar::RemoveButtonAt(ToolbarButton position)
1484 if (__pButtonItems[position] != null)
1486 if (position == LEFT_BUTTON)
1488 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT] != null)
1490 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1493 else if (position == RIGHT_BUTTON)
1495 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT] != null)
1497 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1501 if (__pButtonItems[position]->GetChildCount() != 0)
1503 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(0));
1504 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1506 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1508 delete pTempBadgeIcon;
1509 pTempBadgeIcon = null;
1512 DetachChild(*__pButtonItems[position]);
1513 delete __pButtonItems[position];
1514 __pButtonItems[position] = null;
1517 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
1519 SetFocusNavigateEnabled(false);
1528 _Toolbar::RemoveItemAt(int itemIndex)
1530 SysTryReturnResult(NID_UI_CTRL, (__itemCount > 0 && itemIndex < __itemCount && itemIndex >= 0), E_INVALID_ARG,
1531 "[E_INVALID_ARG] itemIndex is invalid.");
1533 _Button* pItem = __pItems.at(itemIndex);
1535 SysTryReturnResult(NID_UI_CTRL, (pItem != null), E_INVALID_STATE, "[E_INVALID_ARG] No item at the designated index.");
1537 if (pItem->GetChildCount() != 0)
1539 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pItem->GetChild(0));
1540 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1542 pItem->DetachChild(*pTempBadgeIcon);
1544 delete pTempBadgeIcon;
1545 pTempBadgeIcon = null;
1548 // Free 'pItem' from the item nodes
1549 DetachChild(*pItem);
1555 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
1557 SetFocusNavigateEnabled(false);
1560 __pItems.erase(__pItems.begin() + itemIndex);
1568 _Toolbar::SetBackgroundBitmap(const Bitmap& bitmap)
1570 result r = E_SYSTEM;
1572 Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap);
1576 if (__pToolbarBackgroundBitmap)
1578 delete __pToolbarBackgroundBitmap;
1581 __pToolbarBackgroundBitmap = pClonedBitmap;
1582 __isUserBackgroundBitmap = true;
1591 _Toolbar::IsUserBackgroundBitmap() const
1593 return __isUserBackgroundBitmap;
1597 _Toolbar::SetButton(ToolbarButton position, _Button* pButton)
1599 SysTryReturnResult(NID_UI_CTRL, (pButton), E_INVALID_ARG, "[E_INVALID_ARG] The pButton is invalid.");
1601 float buttonWidth = pButton->GetSizeF().width;
1603 float toolbarWidth = GetBoundsF().width;
1605 if (CalculateMinimumToolbarWidth() > toolbarWidth)
1607 toolbarWidth = CalculateMinimumToolbarWidth();
1610 float horizontalMargin = 0.0f;
1611 float verticalMargin = 0.0f;
1613 if (__header == true && __style != TOOLBAR_TEXT)
1615 float buttonItemGap = 0.0f;
1616 float buttonTopMargin = 0.0f;
1618 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), buttonTopMargin);
1619 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_GAP, GetOrientation(), buttonItemGap);
1624 if (__pButtonItems[LEFT_BUTTON])
1626 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth , buttonTopMargin));
1627 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(toolbarWidth - buttonWidth *2 - buttonItemGap, buttonTopMargin));
1631 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth , buttonTopMargin));
1635 if (__pButtonItems[RIGHT_BUTTON])
1637 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth * 2 - buttonItemGap, buttonTopMargin));
1641 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth, buttonTopMargin));
1649 else // footer or HEADER_STYLE_BUTTON
1654 pButton->SetPosition(FloatPoint(horizontalMargin, verticalMargin));
1658 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth - horizontalMargin, verticalMargin));
1662 pButton->SetPosition(FloatPoint((toolbarWidth - buttonWidth - horizontalMargin)/2, verticalMargin));
1670 if (__pActionEventListener != null)
1672 pButton->AddActionEventListener(*__pActionEventListener);
1675 if (__pButtonItems[position])
1677 if (position == LEFT_BUTTON)
1679 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT] != null)
1681 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1684 else if (position == RIGHT_BUTTON)
1686 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT] != null)
1688 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1692 if (__pButtonItems[position]->GetChildCount() != 0)
1694 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(0));
1695 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1697 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1699 delete pTempBadgeIcon;
1700 pTempBadgeIcon = null;
1703 DetachChild(*__pButtonItems[position]);
1705 delete __pButtonItems[position];
1706 __pButtonItems[position] = null;
1709 __pButtonItems[position] = pButton;
1711 AttachChild(*pButton);
1713 SetFocusNavigateEnabled(true);
1715 if (__style != TOOLBAR_SOFTKEY)
1717 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[position]);
1721 AddAccessibilityElement(position, pButton);
1726 _Toolbar::SetButtonColor(_ButtonStatus status, const Color& color)
1730 case _BUTTON_STATUS_NORMAL:
1731 __isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1732 return SetProperty(L"normalButtonColor", Variant(color));
1734 case _BUTTON_STATUS_DISABLED:
1735 __isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
1736 return SetProperty(L"disabledButtonColor", Variant(color));
1738 case _BUTTON_STATUS_PRESSED:
1739 __isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
1740 return SetProperty(L"pressedButtonColor", Variant(color));
1742 case _BUTTON_STATUS_HIGHLIGHTED:
1743 __isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
1744 return SetProperty(L"highlightedButtonColor", Variant(color));
1747 __isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1748 return SetProperty(L"normalButtonColor", Variant(color));
1754 _Toolbar::SetButtonEnabled(ToolbarButton position, bool enabled)
1756 SysTryReturnResult(NID_UI_CTRL, __pButtonItems[position], E_INVALID_OPERATION,
1757 "[E_INVALID_OPERATION] No button item is at the position.");
1761 __pButtonItems[position]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
1763 SetFocusNavigateEnabled(true);
1765 _AccessibilityElement* pElement = __pButtonItems[position]->GetAccessibilityContainer()->GetChildElement(0);
1768 pElement->SetStatus(L"");
1769 pElement->SetHintDisabled(false);
1774 __pButtonItems[position]->SetButtonStatus(_BUTTON_STATUS_DISABLED);
1776 bool AllItemDisabled = true;
1778 for (int i = 0; i < __itemCount ; i++)
1780 if (__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
1782 AllItemDisabled = false;
1787 bool AllButtonDisabled = false;
1789 if (__pButtonItems[LEFT_BUTTON])
1791 if (__pButtonItems[RIGHT_BUTTON])
1793 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED
1794 && __pButtonItems[RIGHT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
1796 AllButtonDisabled = true;
1801 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
1803 AllButtonDisabled = true;
1809 if (__pButtonItems[RIGHT_BUTTON])
1811 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
1813 AllButtonDisabled = true;
1818 AllButtonDisabled = true;
1822 if (AllItemDisabled == true && AllButtonDisabled == true)
1824 SetFocusNavigateEnabled(false);
1827 _AccessibilityElement* pElement = __pButtonItems[position]->GetAccessibilityContainer()->GetChildElement(0);
1830 pElement->SetStatus(L"");
1831 pElement->SetHintDisabled(false);
1839 _Toolbar::SetButtonTextColor(_ButtonStatus status, const Color& color)
1843 case _BUTTON_STATUS_NORMAL:
1844 __isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1845 return SetProperty(L"normalButtonTextColor", Variant(color));
1847 case _BUTTON_STATUS_DISABLED:
1848 __isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
1849 return SetProperty(L"disabledButtonTextColor", Variant(color));
1851 case _BUTTON_STATUS_PRESSED:
1852 __isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
1853 return SetProperty(L"pressedButtonTextColor", Variant(color));
1855 case _BUTTON_STATUS_HIGHLIGHTED:
1856 __isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
1857 return SetProperty(L"highlightedButtonTextColor", Variant(color));
1860 __isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1861 return SetProperty(L"normalButtonTextColor", Variant(color));
1867 _Toolbar::SetButtonBadgeIcon(ToolbarButton position, const Bitmap* pBadgeIcon)
1871 childCount = __pButtonItems[position]->GetChildCount();
1873 if (childCount != 0)
1875 for(int i = 0; i < childCount; i++)
1877 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1881 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1883 delete pTempBadgeIcon;
1884 pTempBadgeIcon = null;
1889 if (pBadgeIcon == null)
1894 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
1896 float height = 0.0f;
1898 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
1900 _Label* pBadgeIconLabel = _Label::CreateLabelN();
1902 if (pBadgeIconLabel)
1904 pBadgeIconLabel->SetBounds(FloatRectangle(bounds.width - height, 0, height, height));
1905 pBadgeIconLabel->SetBackgroundBitmap(*pBadgeIcon);
1907 __pButtonItems[position]->AttachChild(*pBadgeIconLabel);
1908 __pButtonItems[position]->SetChildAlwaysOnTop(*pBadgeIconLabel);
1915 _Toolbar::SetButtonNumberedBadgeIcon(ToolbarButton position, int number)
1919 childCount = __pButtonItems[position]->GetChildCount();
1921 _Label* existingBadgeIcon = null;
1925 if (childCount != 0)
1927 for(int i = 0; i < childCount; i++)
1929 existingBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1931 if (existingBadgeIcon)
1933 __pButtonItems[position]->DetachChild(*existingBadgeIcon);
1935 delete existingBadgeIcon;
1936 existingBadgeIcon = null;
1947 bool needToCreateNewIcon = true;
1948 float sideMargin = 0.0f;
1950 GET_SHAPE_CONFIG(HEADER::BADGE_SIDE_MARGIN, GetOrientation(), sideMargin);
1952 if (childCount != 0)
1954 for(int i = 0; i < childCount; i++)
1956 existingBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1958 if (existingBadgeIcon)
1960 if (existingBadgeIcon->GetText() == L"")
1962 __pButtonItems[position]->DetachChild(*existingBadgeIcon);
1964 delete existingBadgeIcon;
1965 existingBadgeIcon = null;
1967 needToCreateNewIcon = true;
1971 needToCreateNewIcon = false;
1977 if (needToCreateNewIcon)
1979 _Label* pLabel = _Label::CreateLabelN();
1981 SysTryReturnResult(NID_UI_CTRL, pLabel, E_INVALID_STATE,
1982 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
1984 Bitmap* pNumberedBadgeIconBitmap = null;
1985 Bitmap* pNumberedBadgeIconEffectBitmap = null;
1986 Bitmap* pColorReplacedBitmap = null;
1987 Color badgeIconBgNormalColor;
1988 Color badgeIconTextNormalColor;
1990 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
1992 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
1993 if (customTheme == false)
1995 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
1998 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
1999 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
2001 if (pNumberedBadgeIconBitmap)
2003 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
2004 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
2006 pLabel->SetBackgroundBitmap(*pColorReplacedBitmap);
2008 delete pColorReplacedBitmap;
2009 delete pNumberedBadgeIconBitmap;
2012 if (pNumberedBadgeIconEffectBitmap)
2014 pLabel->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
2016 delete pNumberedBadgeIconEffectBitmap;
2019 pLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
2020 pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
2021 pLabel->SetTextColor(badgeIconTextNormalColor);
2022 pLabel->SetMargin(sideMargin, 0.0f, sideMargin, 0.0f);
2024 __pButtonItems[position]->AttachChild(*pLabel);
2025 __pButtonItems[position]->SetChildAlwaysOnTop(*pLabel);
2027 existingBadgeIcon = pLabel;
2030 SysTryReturnResult(NID_UI_CTRL, (existingBadgeIcon), E_INVALID_STATE, "[E_INVALID_STATE] Failed to set a BadgeIcon.");
2032 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
2034 if (existingBadgeIcon)
2036 float fontSize = 0.0f;
2037 float height = 0.0f;
2039 float minWidth = 0.0f;
2041 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE, GetOrientation(), fontSize);
2042 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
2043 GET_SHAPE_CONFIG(HEADER::BADGE_MIN_WIDTH, GetOrientation(), minWidth);
2046 existingBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
2048 Integer tempNumber(number);
2049 existingBadgeIcon->SetText(tempNumber.ToString());
2051 width = existingBadgeIcon->GetTextExtentSizeF();
2053 if (width < minWidth)
2058 width += sideMargin * 2;
2060 existingBadgeIcon->SetBounds(FloatRectangle(bounds.width - width, 0.0f, width, height));
2068 _Toolbar::SetColor(const Color& color)
2070 return SetProperty(L"color", Variant(color));
2074 _Toolbar::SetDescriptionText(const String& text)
2076 return SetProperty(L"descriptionText", Variant(text));
2080 _Toolbar::SetDescriptionTextColor(const Color& color)
2082 return SetProperty(L"descriptionTextColor", Variant(color));
2086 _Toolbar::SetItemAt(int itemIndex, const _Button* pButton)
2088 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_OUT_OF_RANGE,
2089 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
2091 if (pButton->GetActionId() < TOOLBAR_ACTION_ID_MIN)
2093 SysLog(NID_UI_CTRL, "[E_INVALID_ARG] The actionId is invalid.");
2094 return E_OUT_OF_RANGE;
2097 SysTryReturnResult(NID_UI_CTRL, (null != __pItems.at(itemIndex)), E_INVALID_OPERATION,
2098 "[E_INVALID_OPERATION] No button item is at the position.");
2100 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2102 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2103 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
2105 __pItems.at(itemIndex)->DetachChild(*pTempBadgeIcon);
2107 delete pTempBadgeIcon;
2108 pTempBadgeIcon = null;
2111 __pItems.at(itemIndex)->SetText(pButton->GetText());
2112 __pItems.at(itemIndex)->SetActionId(pButton->GetActionId());
2114 Bitmap* pIconBitmap = null;
2115 FloatPoint iconPosition(0.0f, 0.0f);
2117 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_NORMAL));
2121 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_NORMAL);
2123 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_NORMAL, iconPosition, *pIconBitmap);
2124 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_PRESSED, iconPosition, *pIconBitmap);
2125 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_SELECTED, iconPosition, *pIconBitmap);
2126 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, iconPosition, *pIconBitmap);
2127 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_DISABLED, iconPosition, *pIconBitmap);
2130 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_PRESSED));
2134 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_PRESSED);
2136 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_PRESSED, iconPosition, *pIconBitmap);
2139 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_SELECTED));
2143 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_SELECTED);
2145 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_SELECTED, iconPosition, *pIconBitmap);
2148 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED));
2152 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_HIGHLIGHTED);
2154 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, iconPosition, *pIconBitmap);
2157 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_DISABLED));
2161 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_DISABLED);
2163 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_DISABLED, iconPosition, *pIconBitmap);
2166 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(itemIndex));
2170 RealignItem(__pItems.at(itemIndex), __pItems.at(itemIndex)->GetTextExtentSizeF());
2178 _Toolbar::SetItemBadgeIcon(int itemIndex, const Bitmap* pBadgeIcon)
2180 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_INVALID_ARG,
2181 "[E_INVALID_ARG] The itemIndex is invalid.");
2183 SysTryReturnResult(NID_UI_CTRL, (__pItems.at(itemIndex)), E_INVALID_STATE,
2184 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2186 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2188 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2192 __pItems.at(itemIndex)->DetachChild(*pTempBadgeIcon);
2194 delete pTempBadgeIcon;
2195 pTempBadgeIcon = null;
2199 if (pBadgeIcon == null)
2204 FloatRectangle bounds = __pItems.at(itemIndex)->GetBoundsF();
2206 _Label* pBadgeIconLabel = _Label::CreateLabelN();
2208 float height = 0.0f;
2210 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
2212 if (pBadgeIconLabel)
2214 pBadgeIconLabel->SetBounds(FloatRectangle(bounds.width - height, 0.0f, height, height));
2215 pBadgeIconLabel->SetBackgroundBitmap(*pBadgeIcon);
2217 __pItems.at(itemIndex)->AttachChild(*pBadgeIconLabel);
2218 __pItems.at(itemIndex)->SetChildAlwaysOnTop(*pBadgeIconLabel);
2225 _Toolbar::SetItemColor(_ButtonStatus status, const Color& color)
2229 case _BUTTON_STATUS_NORMAL:
2230 __isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2231 return SetProperty(L"normalItemColor", Variant(color));
2233 case _BUTTON_STATUS_DISABLED:
2234 __isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
2235 return SetProperty(L"disabledItemColor", Variant(color));
2237 case _BUTTON_STATUS_PRESSED:
2238 __isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
2239 return SetProperty(L"pressedItemColor", Variant(color));
2241 case _BUTTON_STATUS_HIGHLIGHTED:
2242 __isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
2243 return SetProperty(L"highlightedItemColor", Variant(color));
2245 case _BUTTON_STATUS_SELECTED:
2246 __isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED] = true;
2247 return SetProperty(L"selectedItemColor", Variant(color));
2250 __isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2251 return SetProperty(L"normalItemColor", Variant(color));
2257 _Toolbar::SetItemEnabled(int itemIndex, bool enabled)
2259 SysTryReturnResult(NID_UI_CTRL, (null != __pItems.at(itemIndex)), E_INVALID_OPERATION,
2260 "[E_INVALID_OPERATION] No button item is at the position.");
2262 result r = E_SUCCESS;
2266 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2269 pElement->SetStatus(L"");
2270 pElement->SetHintDisabled(false);
2273 r = __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2275 SetFocusNavigateEnabled(true);
2281 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2284 pElement->SetStatus(L"");
2285 pElement->SetHintDisabled(true);
2288 r = __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_DISABLED);
2290 bool AllItemDisabled = true;
2292 for (int i = 0; i < __itemCount ; i++)
2294 if (__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
2296 AllItemDisabled = false;
2301 bool AllButtonDisabled = false;
2303 if (__pButtonItems[LEFT_BUTTON])
2305 if (__pButtonItems[RIGHT_BUTTON])
2307 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED
2308 && __pButtonItems[RIGHT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
2310 AllButtonDisabled = true;
2315 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
2317 AllButtonDisabled = true;
2323 if (__pButtonItems[RIGHT_BUTTON])
2325 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
2327 AllButtonDisabled = true;
2332 AllButtonDisabled = true;
2336 if (AllItemDisabled == true && AllButtonDisabled == true)
2338 SetFocusNavigateEnabled(false);
2348 _Toolbar::SetItemNumberedBadgeIcon(int itemIndex, int number)
2350 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_INVALID_ARG,
2351 "[E_INVALID_ARG] The itemIndex is invalid.");
2353 SysTryReturnResult(NID_UI_CTRL, (number >= 0 && number < 100000), E_INVALID_ARG,
2354 "[E_INVALID_ARG] The number is out of bounds.");
2356 SysTryReturnResult(NID_UI_CTRL, (__pItems.at(itemIndex)), E_INVALID_STATE,
2357 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2361 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2363 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2365 if (existingBadgeIcon)
2367 __pItems.at(itemIndex)->DetachChild(*existingBadgeIcon);
2369 delete existingBadgeIcon;
2370 existingBadgeIcon = null;
2380 float sideMargin = 0.0f;
2382 GET_SHAPE_CONFIG(HEADER::BADGE_SIDE_MARGIN, GetOrientation(), sideMargin);
2384 if (__pItems.at(itemIndex)->GetChildCount() == 0)
2386 _Label* pLabel = _Label::CreateLabelN();
2388 SysTryReturnResult(NID_UI_CTRL, pLabel, E_INVALID_STATE,
2389 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2391 Bitmap* pNumberedBadgeIconBitmap = null;
2392 Bitmap* pNumberedBadgeIconEffectBitmap = null;
2393 Bitmap* pColorReplacedBitmap = null;
2394 Color badgeIconBgNormalColor;
2395 Color badgeIconTextNormalColor;
2397 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
2399 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
2400 if (customTheme == false)
2402 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
2405 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
2406 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
2408 if (pNumberedBadgeIconBitmap)
2410 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
2411 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
2413 pLabel->SetBackgroundBitmap(*pColorReplacedBitmap);
2415 delete pColorReplacedBitmap;
2416 delete pNumberedBadgeIconBitmap;
2419 if (pNumberedBadgeIconEffectBitmap)
2421 pLabel->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
2423 delete pNumberedBadgeIconEffectBitmap;
2426 pLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
2427 pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
2428 pLabel->SetTextColor(badgeIconTextNormalColor);
2429 pLabel->SetMargin(sideMargin, 0.0f, sideMargin, 0.0f);
2431 __pItems.at(itemIndex)->AttachChild(*pLabel);
2432 __pItems.at(itemIndex)->SetChildAlwaysOnTop(*pLabel);
2435 // SetItemNumberedBadgeIcon
2437 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2439 FloatRectangle bounds = __pItems.at(itemIndex)->GetBoundsF();
2441 if (existingBadgeIcon)
2443 float fontSize = 0.0f;
2444 float height = 0.0f;
2446 float minWidth = 0.0f;
2448 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE, GetOrientation(), fontSize);
2449 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
2450 GET_SHAPE_CONFIG(HEADER::BADGE_MIN_WIDTH, GetOrientation(), minWidth);
2452 existingBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
2454 Integer tempNumber(number);
2455 existingBadgeIcon->SetText(tempNumber.ToString());
2457 width = existingBadgeIcon->GetTextExtentSizeF();
2459 if (width < minWidth)
2464 width += sideMargin * 2;
2466 existingBadgeIcon->SetBounds(FloatRectangle(bounds.width - width, 0.0f, width, height));
2475 _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
2477 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= -1 && itemIndex < __itemCount), E_INVALID_STATE,
2478 "[E_INVALID_STATE] Failed to process SetItemSelected()");
2480 result r = E_SUCCESS;
2482 int currentSelectedItemIndex = 0;
2483 currentSelectedItemIndex = GetSelectedItemIndex();
2485 r = __pToolbarPresenter->SetItemSelected(itemIndex, adjust);
2487 if (itemIndex != -1 && itemIndex == currentSelectedItemIndex && __pItems.at(itemIndex) != null) // same item selected
2489 if (!IsInitialDraw() && fire)
2491 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2494 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
2496 for (int i = 0; i < __itemCount; i++)
2498 __pItems.at(i)->ShowUnderlineBitmap(false);
2501 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2503 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2506 pElement->SetStatusWithStringId("IDS_TPLATFORM_BODY_SELECTED_T_TTS");
2507 pElement->SetHintDisabled(true);
2513 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2518 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_INVALID_STATE, "[E_INVALID_STATE] Failed to process SetItemSelected()");
2520 if (__pItems.at(itemIndex) != null)
2522 if (!IsInitialDraw() && fire)
2524 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2526 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
2527 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2529 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2532 pElement->SetStatusWithStringId("IDS_TPLATFORM_BODY_SELECTED_T_TTS");
2533 pElement->SetHintDisabled(true);
2537 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2542 if (currentSelectedItemIndex != -1 && __pItems.at(currentSelectedItemIndex) != null)
2544 if (currentSelectedItemIndex != __highlightedItemIndex)
2546 __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2549 __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
2551 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2554 pElement->SetStatus(L"");
2555 pElement->SetHintDisabled(false);
2559 if (__pItems.at(itemIndex) != null)
2561 __pItems.at(itemIndex)->Draw();
2568 _Toolbar::SetItemHighlighted(int itemIndex, bool fire, bool adjust)
2570 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= -1 && itemIndex < __itemCount), E_INVALID_STATE,
2571 "[E_INVALID_STATE] Failed to process SetItemHighlighted()");
2573 result r = E_SUCCESS;
2575 int currentSelectedItemIndex = 0;
2576 currentSelectedItemIndex = GetSelectedItemIndex();
2578 r = __pToolbarPresenter->SetItemSelected(itemIndex, adjust);
2580 if (itemIndex != -1 && itemIndex == currentSelectedItemIndex && __pItems.at(itemIndex) != null) // same item selected
2582 if (!IsInitialDraw() && fire)
2584 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2587 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
2588 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2589 __pItems.at(itemIndex)->Draw();
2591 __highlightedItemIndex = itemIndex;
2592 __lastHighlightedItemIndex = __highlightedItemIndex;
2593 __highlighted = true;
2595 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2598 pElement->SetStatus(L"Highlighted");
2599 pElement->SetHintDisabled(true);
2605 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2610 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_INVALID_STATE, "[E_INVALID_STATE] Failed to process SetItemHighlighted()");
2612 if (__pItems.at(itemIndex) != null)
2614 if (!IsInitialDraw() && fire)
2616 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2619 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
2620 __pItems.at(itemIndex)->Draw();
2622 for (int i = 0; i < __itemCount; i++)
2624 __pItems.at(i)->ShowUnderlineBitmap(false);
2627 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2628 __pItems.at(itemIndex)->Draw();
2630 __highlightedItemIndex = itemIndex;
2631 __lastHighlightedItemIndex = __highlightedItemIndex;
2632 __highlighted = true;
2634 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2637 pElement->SetStatus(L"Highlighted");
2638 pElement->SetHintDisabled(true);
2642 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2647 if (currentSelectedItemIndex != -1 && __pItems.at(currentSelectedItemIndex) != null)
2649 __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2650 __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
2651 __pItems.at(currentSelectedItemIndex)->Draw();
2653 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2656 pElement->SetStatus(L"");
2657 pElement->SetHintDisabled(false);
2665 _Toolbar::SetItemTextColor(_ButtonStatus status, const Color& color)
2669 case _BUTTON_STATUS_NORMAL:
2670 __isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2671 return SetProperty(L"normalItemTextColor", Variant(color));
2673 case _BUTTON_STATUS_DISABLED:
2674 __isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
2675 return SetProperty(L"disabledItemTextColor", Variant(color));
2677 case _BUTTON_STATUS_PRESSED:
2678 __isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
2679 return SetProperty(L"pressedItemTextColor", Variant(color));
2681 case _BUTTON_STATUS_HIGHLIGHTED:
2682 __isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
2683 return SetProperty(L"highlightedItemTextColor", Variant(color));
2685 case _BUTTON_STATUS_SELECTED:
2686 __isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED] = true;
2687 return SetProperty(L"selectedItemTextColor", Variant(color));
2690 __isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2691 return SetProperty(L"normalItemTextColor", Variant(color));
2697 _Toolbar::SetStyle(ToolbarStyle style)
2701 __pToolbarPresenter->SetInitialDrawState(true);
2703 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
2705 SetTabEditModeEnabled(true);
2708 AdjustToolbarBounds();
2714 __descriptionText = L"";
2716 __highlightedItemIndex = 0;
2717 __lastHighlightedItemIndex = 0;
2718 __highlighted = false;
2720 if (__style == TOOLBAR_TITLE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
2722 if(__pTitleTextElement)
2724 __pTitleTextElement->SetLabel(L"");
2729 if(__pTitleTextElement)
2731 GetAccessibilityContainer()->RemoveElement(*__pTitleTextElement);
2732 __pTitleTextElement = null;
2736 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
2738 SetFocusNavigateEnabled(false);
2742 SetFocusNavigateEnabled(true);
2749 _Toolbar::AdjustToolbarBounds(void)
2752 float height = 0.0f;
2754 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
2755 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
2757 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2759 width = portraitSize.width;
2763 width = landscapeSize.width;
2768 if (__header == true)
2770 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
2772 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2773 GET_SHAPE_CONFIG(HEADER::TITLE_TOTAL_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), height);
2774 SetSize(FloatDimension(width, height));
2776 else if (__style == TOOLBAR_TEXT && GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE) // sip & landscape => footer height
2778 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2779 GET_SHAPE_CONFIG(FOOTER::HEIGHT, GetOrientation(), height);
2780 SetSize(FloatDimension(width, height));
2782 else if (__style == TOOLBAR_TAB_LARGE)
2784 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2785 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_HEIGHT, GetOrientation(), height);
2786 SetSize(FloatDimension(width, height));
2790 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2791 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), height);
2792 SetSize(FloatDimension(width, height));
2797 //GET_SHAPE_CONFIG(FOOTER::WIDTH, GetOrientation(), width);
2799 if (__style == TOOLBAR_SOFTKEY)
2801 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), height);
2803 else if (__style == TOOLBAR_TAB_LARGE)
2805 GET_SHAPE_CONFIG(FOOTER::TAB_LARGE_HEIGHT, GetOrientation(), height);
2809 GET_SHAPE_CONFIG(FOOTER::HEIGHT, GetOrientation(), height);
2812 SetSize(FloatDimension(width, height));
2815 SetResizable(false);
2817 _Form* pParent = dynamic_cast<_Form*>(GetParent());
2819 if (pParent != null)
2821 pParent->AdjustClientBounds();
2823 if (__header == false)
2825 FloatRectangle bounds(0.0f, pParent->GetClientBoundsF().y + pParent->GetClientBoundsF().height, width, height);
2826 FloatDimension dimension(width, height);
2827 dimension = pParent->TranslateSize(dimension);
2828 bounds.height = dimension.height;
2830 if ((__transparent == true || !GetVisibleState()) && __style != TOOLBAR_COMMAND)
2832 bounds.y -= bounds.height;
2835 pParent->SetFooterBounds(bounds);
2843 _Toolbar::SetTabEditModeEnabled(bool enable)
2845 return __pToolbarPresenter->SetTabEditModeEnabled(enable);
2849 _Toolbar::SetTitleIcon(const Bitmap& bitmap)
2851 result r = E_SYSTEM;
2853 Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap);
2859 delete __pTitleIcon;
2862 __pTitleIcon = pClonedBitmap;
2871 _Toolbar::SetTitleText(const String& text, HorizontalAlignment alignment)
2873 result r = E_SYSTEM;
2875 __titleTextAlignment = alignment;
2879 r = __pToolbarPresenter->SetTitleText(__titleText, __titleTextAlignment);
2881 if (__pTitleTextElement == null)
2883 __pTitleTextElement = new (std::nothrow) _AccessibilityElement(true);
2884 SysTryReturnResult(NID_UI_CTRL, __pTitleTextElement, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
2885 GetAccessibilityContainer()->SetPriority(ACCESSIBILITY_PRIORITY_TOP);
2886 GetAccessibilityContainer()->AddElement(*__pTitleTextElement);
2889 if( __descriptionText.IsEmpty())
2891 __pTitleTextElement->SetLabel(__titleText);
2892 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
2896 __pTitleTextElement->SetLabel(__titleText + L"," + __descriptionText);
2898 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
2899 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
2901 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
2903 __pTitleTextElement->SetTraitWithStringId("IDS_TPLATFORM_BODY_TITLE");
2904 __pTitleTextElement->SetName(L"HeaderTitleText");
2910 _Toolbar::SetTitleTextColor(const Color& color)
2912 __titleTextColor = color;
2919 _Toolbar::SetTransparent(bool transparent)
2921 if (__style == TOOLBAR_SOFTKEY)
2926 __transparent = transparent;
2930 __isUserBackgroundBitmap = true;
2933 Bitmap* pMagentaBackgroundBitmap = null;
2935 if (__pToolbarBackgroundBitmap)
2937 delete __pToolbarBackgroundBitmap;
2938 __pToolbarBackgroundBitmap = null;
2941 if (__pToolbarBackgroundEffectBitmap)
2943 delete __pToolbarBackgroundEffectBitmap;
2944 __pToolbarBackgroundEffectBitmap = null;
2948 if (__transparent == true)
2950 if (__header == true)
2952 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2954 bool customTheme = IS_CUSTOM_BITMAP(HEADER::TRANSLUCENT_BG_NORMAL);
2955 if (customTheme == false)
2957 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2962 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2964 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::TRANSLUCENT_BG_NORMAL);
2965 if (customTheme == false)
2967 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2973 if (__header == true)
2975 GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2977 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
2978 if (customTheme == false)
2980 GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2985 GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2987 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
2988 if (customTheme == false)
2990 GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2995 if (__transparent == true)
2999 if (__header == true)
3001 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_BG_NORMAL, tempColor);
3005 GET_COLOR_CONFIG(FOOTER::TRANSLUCENT_BG_NORMAL, tempColor);
3008 if (pMagentaBackgroundBitmap)
3010 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
3011 Color::GetColor(COLOR_ID_MAGENTA), tempColor);
3013 if (__pToolbarBackgroundBitmap)
3015 __pToolbarBackgroundBitmap->SetAlphaConstant(0x7F);
3019 SetTitleTextColor(__transTitleTextColor);
3020 SetDescriptionTextColor(__transDescriptionTextColor);
3022 for (int i = 0; i < __itemCount ; i ++)
3024 if (__pItems.at(i) != null)
3026 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3030 for (int i = 0; i < BUTTON_MAX; i++)
3032 if (__pButtonItems[i] != null)
3034 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3038 else // not transparent
3040 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
3041 Color::GetColor(COLOR_ID_MAGENTA), GetColor());
3043 SetTitleTextColor(__titleTextColor);
3044 SetDescriptionTextColor(__descriptionTextColor);
3046 for (int i = 0; i < __itemCount ; i ++)
3048 if (__pItems.at(i) != null)
3050 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3054 for (int i = 0; i < BUTTON_MAX; i++)
3056 if (__pButtonItems[i] != null)
3058 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3063 delete pMagentaBackgroundBitmap;
3071 _Toolbar::SetTransparent(bool transparent)
3073 if (__style == TOOLBAR_SOFTKEY)
3078 __transparent = transparent;
3082 Bitmap* pMagentaBackgroundBitmap = null;
3084 if (__isUserBackgroundBitmap == false)
3086 if (__pToolbarBackgroundBitmap)
3088 delete __pToolbarBackgroundBitmap;
3089 __pToolbarBackgroundBitmap = null;
3092 if (__pToolbarBackgroundEffectBitmap)
3094 delete __pToolbarBackgroundEffectBitmap;
3095 __pToolbarBackgroundEffectBitmap = null;
3098 if (__transparent == true)
3100 if (__header == true)
3102 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
3104 bool customTheme = IS_CUSTOM_BITMAP(HEADER::TRANSLUCENT_BG_NORMAL);
3105 if (customTheme == false)
3107 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
3112 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
3114 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::TRANSLUCENT_BG_NORMAL);
3115 if (customTheme == false)
3117 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
3123 if (__header == true)
3125 GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
3127 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
3128 if (customTheme == false)
3130 GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
3135 GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
3137 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
3138 if (customTheme == false)
3140 GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
3145 if (__transparent == true)
3147 __isUserBackgroundBitmap = true;
3151 if (__header == true)
3153 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_BG_NORMAL, tempColor);
3157 GET_COLOR_CONFIG(FOOTER::TRANSLUCENT_BG_NORMAL, tempColor);
3160 if (pMagentaBackgroundBitmap)
3162 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
3163 Color::GetColor(COLOR_ID_MAGENTA), tempColor);
3165 if (__pToolbarBackgroundBitmap)
3167 __pToolbarBackgroundBitmap->SetAlphaConstant(0x7F);
3171 SetTitleTextColor(__transTitleTextColor);
3172 SetDescriptionTextColor(__transDescriptionTextColor);
3174 for (int i = 0; i < __itemCount ; i ++)
3176 if (__pItems.at(i) != null)
3178 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3182 for (int i = 0; i < BUTTON_MAX; i++)
3184 if (__pButtonItems[i] != null)
3186 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3190 else // not transparent
3192 __isUserBackgroundBitmap = false;
3194 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
3195 Color::GetColor(COLOR_ID_MAGENTA), GetColor());
3197 SetTitleTextColor(__titleTextColor);
3198 SetDescriptionTextColor(__descriptionTextColor);
3200 for (int i = 0; i < __itemCount ; i ++)
3202 if (__pItems.at(i) != null)
3204 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3208 for (int i = 0; i < BUTTON_MAX; i++)
3210 if (__pButtonItems[i] != null)
3212 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3217 else // __isUserBackgroundBitmap == true
3219 if (__transparent == true)
3221 SetTitleTextColor(__transTitleTextColor);
3222 SetDescriptionTextColor(__transDescriptionTextColor);
3224 for (int i = 0; i < __itemCount ; i ++)
3226 if (__pItems.at(i) != null)
3228 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3232 for (int i = 0; i < BUTTON_MAX; i++)
3234 if (__pButtonItems[i] != null)
3236 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3240 else // not transparent
3242 SetTitleTextColor(__titleTextColor);
3243 SetDescriptionTextColor(__descriptionTextColor);
3245 for (int i = 0; i < __itemCount ; i ++)
3247 if (__pItems.at(i) != null)
3249 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
3253 for (int i = 0; i < BUTTON_MAX; i++)
3255 if (__pButtonItems[i] != null)
3257 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
3263 delete pMagentaBackgroundBitmap;
3270 _Toolbar::SetWaitingAnimationPosition(ToolbarAnimationPosition animationPos, float x, float y)
3272 if (__pAnimation[animationPos])
3274 __pAnimation[animationPos]->SetPosition(FloatPoint(x, y));
3281 _Toolbar::StopWaitingAnimation(ToolbarAnimationPosition animationPos)
3283 SysTryReturnResult(NID_UI_CTRL,
3284 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
3285 "[E_INVALID_ARG] The animationPos is invalid.");
3286 SysTryReturnResult(NID_UI_CTRL, (__pAnimation[animationPos]), E_INVALID_STATE,
3287 "[E_INVALID_STATE] __pAnimation isn't constructed.");
3289 __pAnimation[animationPos]->Stop();
3291 if (animationPos == TOOLBAR_ANIMATION_POSITION_TITLE)
3293 DetachChild(*__pAnimation[animationPos]);
3295 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT && __pButtonItems[LEFT_BUTTON] != null)
3297 __pButtonItems[LEFT_BUTTON]->DetachChild(*__pAnimation[animationPos]);
3299 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT && __pButtonItems[RIGHT_BUTTON] != null)
3301 __pButtonItems[RIGHT_BUTTON]->DetachChild(*__pAnimation[animationPos]);
3304 delete __pAnimation[animationPos];
3305 __pAnimation[animationPos] = null;
3311 _Toolbar::OnAnimationStopped(const _Control& source)
3315 if (&source == __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT])
3317 __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT]->Play();
3319 else if (&source == __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT])
3321 __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT]->Play();
3323 else if (__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE])
3325 __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE]->Play();
3332 _Toolbar::OnAttachedToMainTree(void)
3334 AdjustToolbarBounds();
3339 _Toolbar::AddAccessibilityElement(ToolbarButton position, _Button* pButton)
3345 name = L"LeftButtonText";
3348 name = L"RightButtonText";
3351 name = L"MiddleButtonText";
3357 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
3358 _AccessibilityElement* pButtonElement = null;
3360 _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
3362 if (pButtonContainer)
3364 pButtonContainer->SetPriority(__header?ACCESSIBILITY_PRIORITY_TOP:ACCESSIBILITY_PRIORITY_BOTTOM);
3365 pContainer->AddChildContainer(*pButtonContainer);
3366 pButtonElement = pButtonContainer->GetChildElement(L"ButtonText");
3371 pButtonElement->SetName(name);
3373 pButtonElement->SetTraitWithStringId("IDS_TPLATFORM_BODY_BUTTON_T_TTS");
3374 pButtonElement->SetBounds(FloatRectangle(0.0f, 0.0f, pButton->GetBoundsF().width, pButton->GetBoundsF().height));
3379 _Toolbar::AddAccessibilityElement(_Button* pButton)
3381 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
3382 if(pContainer == null)
3388 if(__header == true)
3390 priorty = ACCESSIBILITY_PRIORITY_TOP;
3394 priorty = ACCESSIBILITY_PRIORITY_BOTTOM;
3396 pContainer->SetPriority(priorty);
3398 ToolbarStyle style = GetStyle();
3403 case TOOLBAR_HEADER_SEGMENTED:
3405 case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
3407 case TOOLBAR_SEGMENTED:
3408 name = L"Segment" + Integer::ToString(__itemCount);
3409 name.Append(L"Text");
3410 trait = L"Segmented control";
3412 case TOOLBAR_TAB_WITH_TITLE:
3414 case TOOLBAR_TAB_LARGE:
3417 name = L"Tab" + Integer::ToString(__itemCount);
3418 name.Append(L"Text");
3422 name = L"Button" + Integer::ToString(__itemCount);
3423 name.Append(L"Text");
3428 if (pButton != null)
3430 _AccessibilityElement* pElement = null;
3431 _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
3433 if (pButtonContainer)
3435 pButtonContainer->SetPriority(priorty);
3436 pContainer->AddChildContainer(*pButtonContainer);
3437 pElement = pButtonContainer->GetChildElement(L"ButtonText");
3442 pElement->SetName(name);
3443 pElement->SetTrait(trait);
3444 if(style == TOOLBAR_HEADER_SEGMENTED || style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
3445 || style == TOOLBAR_SEGMENTED || style == TOOLBAR_TAB_WITH_TITLE
3446 || style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
3448 pElement->SetHintWithStringId("IDS_TPLATFORM_BODY_DOUBLE_TAP_TO_MOVE_TO_CONTENT_T_TTS");
3449 pButton->GetAccessibilityContainer()->AddListener(*__pAccessibilityListener);
3458 _Toolbar::OnBoundsChanged(void)
3462 if(__pTitleTextElement)
3464 if( __descriptionText.IsEmpty())
3466 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
3470 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
3471 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
3473 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
3480 _Toolbar::OnFontChanged(Font* pFont)
3482 __pToolbarPresenter->OnFontChanged(pFont);
3488 _Toolbar::OnFontInfoRequested(unsigned long& style, int& size)
3490 __pToolbarPresenter->OnFontInfoRequested(style, size);
3496 _Toolbar::OnAncestorVisibleStateChanged(const _Control& control)
3498 __pToolbarPresenter->OnAncestorVisibleStateChanged(control);
3500 _Control::OnAncestorVisibleStateChanged(control);
3505 _Toolbar::OnDrawFocus(void)
3507 if (IsFocusModeStateEnabled() == true)
3509 if (__itemCount == 0)
3511 if (__pButtonItems[LEFT_BUTTON])
3513 if (__pButtonItems[RIGHT_BUTTON])
3515 if (__highlightedItemIndex == __itemCount)
3517 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3519 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3522 else if (__highlightedItemIndex == __itemCount + 1)
3524 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3526 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3532 if (__highlightedItemIndex == __itemCount)
3534 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3536 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3543 if (__pButtonItems[RIGHT_BUTTON])
3545 if (__highlightedItemIndex == __itemCount)
3547 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3549 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3555 else // __itemCount != 0
3557 if (__highlightedItemIndex < __itemCount)
3559 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
3561 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3563 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3569 if (__pButtonItems[LEFT_BUTTON])
3571 if (__pButtonItems[RIGHT_BUTTON])
3573 if (__highlightedItemIndex == __itemCount)
3575 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3577 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3580 else if (__highlightedItemIndex == __itemCount + 1)
3582 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3584 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3590 if (__highlightedItemIndex == __itemCount)
3592 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3594 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3601 if (__pButtonItems[RIGHT_BUTTON])
3603 if (__highlightedItemIndex == __itemCount)
3605 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3607 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3619 } //_Toolbar::OnDrawFocus(void)
3622 _Toolbar::OnChildControlFocusMoved(const _Control& control)
3624 __pToolbarPresenter->OnChildControlFocusMoved(control);
3630 _Toolbar::IsChildControlFocusManage(void) const
3632 __pToolbarPresenter->IsChildControlFocusManage();
3638 _Toolbar::OnFocusableStateChanged(bool focusalbeState)
3640 __pToolbarPresenter->OnFocusableStateChanged(focusalbeState);
3646 _Toolbar::OnFocusModeStateChanged(void)
3648 if (__itemCount == 0)
3650 if (__pButtonItems[LEFT_BUTTON])
3652 if (__pButtonItems[RIGHT_BUTTON])
3654 if (__highlightedItemIndex == __itemCount)
3656 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3658 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3659 __pButtonItems[LEFT_BUTTON]->Invalidate();
3662 else if (__highlightedItemIndex == __itemCount + 1)
3664 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3666 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3667 __pButtonItems[RIGHT_BUTTON]->Invalidate();
3673 if (__highlightedItemIndex == __itemCount)
3675 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3677 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3678 __pButtonItems[LEFT_BUTTON]->Invalidate();
3685 if (__pButtonItems[RIGHT_BUTTON])
3687 if (__highlightedItemIndex == __itemCount)
3689 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3691 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3692 __pButtonItems[RIGHT_BUTTON]->Invalidate();
3698 else // __itemCount != 0
3700 if (__highlightedItemIndex < __itemCount)
3702 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
3704 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3706 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3707 __pItems.at(__highlightedItemIndex)->Invalidate();
3713 if (__pButtonItems[LEFT_BUTTON])
3715 if (__pButtonItems[RIGHT_BUTTON])
3717 if (__highlightedItemIndex == __itemCount)
3719 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3721 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3722 __pButtonItems[LEFT_BUTTON]->Invalidate();
3725 else if (__highlightedItemIndex == __itemCount + 1)
3727 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3729 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3730 __pButtonItems[RIGHT_BUTTON]->Invalidate();
3736 if (__highlightedItemIndex == __itemCount)
3738 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3740 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3741 __pButtonItems[LEFT_BUTTON]->Invalidate();
3748 if (__pButtonItems[RIGHT_BUTTON])
3750 if (__highlightedItemIndex == __itemCount)
3752 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3754 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3755 __pButtonItems[RIGHT_BUTTON]->Invalidate();
3762 int selectedItemIndex = GetSelectedItemIndex();
3764 if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
3766 __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
3767 __pItems.at(selectedItemIndex)->Invalidate();
3771 //Invalidate(true);//fix title slide restart
3774 } // OnFocusModeStateChanged
3777 _Toolbar::OnFocusGained(const _Control& source)
3779 if (IsFocusModeStateEnabled() == true)
3781 if (__header == true && __style != TOOLBAR_TEXT) // right align
3783 if (__itemCount != 0)
3785 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
3786 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3788 __highlightedItemIndex = GetSelectedItemIndex();
3790 else // not segmented
3792 __highlightedItemIndex = 0;
3796 OnHeaderFocusGained(source);
3800 if (__itemCount != 0)
3802 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
3803 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3805 __highlightedItemIndex = GetSelectedItemIndex();
3807 else // not segmented
3809 __highlightedItemIndex = 0;
3813 OnFooterFocusGained(source);
3823 _Toolbar::OnHeaderFocusGained(const _Control& source)
3825 if (__itemCount == 0)
3827 if (__pButtonItems[LEFT_BUTTON])
3829 if (__pButtonItems[RIGHT_BUTTON])
3831 if (__highlightedItemIndex == __itemCount)
3833 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3835 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3836 __lastHighlightedItemIndex = __highlightedItemIndex;
3837 __highlighted = true;
3841 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3843 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3844 __highlightedItemIndex++;
3845 __lastHighlightedItemIndex = __highlightedItemIndex;
3846 __highlighted = true;
3850 else if (__highlightedItemIndex == __itemCount + 1)
3852 if (__pButtonItems[RIGHT_BUTTON])
3854 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3856 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3857 __lastHighlightedItemIndex = __highlightedItemIndex;
3858 __highlighted = true;
3865 if (__highlightedItemIndex == __itemCount)
3867 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3869 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3870 __lastHighlightedItemIndex = __highlightedItemIndex;
3871 __highlighted = true;
3878 if (__pButtonItems[RIGHT_BUTTON])
3880 if (__highlightedItemIndex == __itemCount)
3882 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3884 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3885 __lastHighlightedItemIndex = __highlightedItemIndex;
3886 __highlighted = true;
3892 else // itemCount != 0
3894 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
3896 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3898 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3900 __lastHighlightedItemIndex = __highlightedItemIndex;
3901 __highlighted = true;
3905 if (__highlightedItemIndex < __itemCount - 1)
3907 __highlightedItemIndex++;
3909 OnHeaderFocusGained(source);
3911 else if (__highlightedItemIndex == __itemCount - 1)
3913 if (__pButtonItems[LEFT_BUTTON])
3915 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3917 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3919 __highlightedItemIndex = __itemCount;
3920 __lastHighlightedItemIndex = __highlightedItemIndex;
3921 __highlighted = true;
3925 if (__pButtonItems[RIGHT_BUTTON])
3927 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3929 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3931 __highlightedItemIndex = __itemCount + 1;
3932 __lastHighlightedItemIndex = __highlightedItemIndex;
3933 __highlighted = true;
3938 else if (__pButtonItems[RIGHT_BUTTON])
3940 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3942 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3944 __highlightedItemIndex = __itemCount;
3945 __lastHighlightedItemIndex = __highlightedItemIndex;
3946 __highlighted = true;
3958 _Toolbar::OnFooterFocusGained(const _Control& source)
3960 if (__itemCount == 0)
3962 if (__pButtonItems[LEFT_BUTTON])
3964 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3966 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3968 __highlightedItemIndex = __itemCount;
3969 __lastHighlightedItemIndex = __highlightedItemIndex;
3970 __highlighted = true;
3974 if (__pButtonItems[RIGHT_BUTTON])
3976 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3978 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3980 __highlightedItemIndex = __itemCount + 1;
3981 __lastHighlightedItemIndex = __highlightedItemIndex;
3982 __highlighted = true;
3987 else if (__pButtonItems[RIGHT_BUTTON])
3989 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3991 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3993 __highlightedItemIndex = __itemCount;
3994 __lastHighlightedItemIndex = __highlightedItemIndex;
3995 __highlighted = true;
3999 else // itemCount != 0
4001 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
4002 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
4004 __highlightedItemIndex = GetSelectedItemIndex();
4006 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4008 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4010 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4012 __lastHighlightedItemIndex = __highlightedItemIndex;
4013 __highlighted = true;
4017 else // not segmented
4019 if (__pButtonItems[LEFT_BUTTON])
4021 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4023 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4025 __highlightedItemIndex = __itemCount;
4026 __lastHighlightedItemIndex = __highlightedItemIndex;
4027 __highlighted = true;
4031 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4033 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4035 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4037 __lastHighlightedItemIndex = __highlightedItemIndex;
4038 __highlighted = true;
4042 for (__highlightedItemIndex = 0; __highlightedItemIndex < __itemCount; __highlightedItemIndex++)
4044 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4046 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4048 __lastHighlightedItemIndex = __highlightedItemIndex;
4049 __highlighted = true;
4055 if (__highlightedItemIndex == __itemCount)
4057 if (__pButtonItems[RIGHT_BUTTON])
4059 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4061 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4063 __highlightedItemIndex = __itemCount + 1;
4064 __lastHighlightedItemIndex = __highlightedItemIndex;
4065 __highlighted = true;
4075 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4077 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4079 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4081 __lastHighlightedItemIndex = __highlightedItemIndex;
4082 __highlighted = true;
4086 for (__highlightedItemIndex = 0; __highlightedItemIndex < __itemCount; __highlightedItemIndex++)
4088 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4090 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4092 __lastHighlightedItemIndex = __highlightedItemIndex;
4093 __highlighted = true;
4099 if (__highlightedItemIndex == __itemCount)
4101 if (__pButtonItems[RIGHT_BUTTON])
4103 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4105 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4107 __highlightedItemIndex = __itemCount;
4108 __lastHighlightedItemIndex = __highlightedItemIndex;
4109 __highlighted = true;
4123 _Toolbar::OnFocusLost(const _Control& source)
4125 if (__itemCount == 0)
4127 if (__pButtonItems[LEFT_BUTTON])
4129 if (__pButtonItems[RIGHT_BUTTON])
4131 if (__highlightedItemIndex == __itemCount)
4133 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4135 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4138 else if (__highlightedItemIndex == __itemCount + 1)
4140 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4142 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4148 if (__highlightedItemIndex == __itemCount)
4150 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4152 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4159 if (__pButtonItems[RIGHT_BUTTON])
4161 if (__highlightedItemIndex == __itemCount)
4163 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4165 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4171 else // __itemCount != 0
4173 if (__highlightedItemIndex < __itemCount)
4175 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4177 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4179 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4185 if (__pButtonItems[LEFT_BUTTON])
4187 if (__pButtonItems[RIGHT_BUTTON])
4189 if (__highlightedItemIndex == __itemCount)
4191 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4193 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4196 else if (__highlightedItemIndex == __itemCount + 1)
4198 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4200 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4206 if (__highlightedItemIndex == __itemCount)
4208 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4210 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4217 if (__pButtonItems[RIGHT_BUTTON])
4219 if (__highlightedItemIndex == __itemCount)
4221 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4223 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4230 int selectedItemIndex = GetSelectedItemIndex();
4232 if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
4234 if (__pItems.at(selectedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4236 __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4247 _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
4249 _KeyCode keyCode = keyInfo.GetKeyCode();
4251 int selectedItemIndex = GetSelectedItemIndex();
4253 if (IsFocusModeStateEnabled() == true && keyCode == _KEY_RIGHT)
4255 __highlighted = false;
4257 if (__header == true && __style != TOOLBAR_TEXT) // right align
4259 if (__itemCount != 0)
4261 if (__highlightedItemIndex < (__itemCount - 1)) // 0,1
4263 if (__highlightedItemIndex == selectedItemIndex)
4265 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4267 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4269 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4275 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4277 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4279 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4284 __highlightedItemIndex++;
4286 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4288 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4290 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4292 __lastHighlightedItemIndex = __highlightedItemIndex;
4293 __highlighted = true;
4295 if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
4297 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
4299 __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
4305 OnKeyReleased(source, keyInfo);
4311 if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])
4313 if (__highlightedItemIndex == __itemCount - 1)
4315 if (__highlightedItemIndex == selectedItemIndex)
4317 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4319 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4321 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4327 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4329 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4331 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4338 if (__pButtonItems[LEFT_BUTTON])
4340 if (__pButtonItems[RIGHT_BUTTON])
4342 if (__highlightedItemIndex == __itemCount - 1)
4344 __highlightedItemIndex++;
4346 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4348 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4350 __lastHighlightedItemIndex = __highlightedItemIndex;
4351 __highlighted = true;
4355 OnKeyReleased(source, keyInfo);
4358 else if (__highlightedItemIndex == __itemCount)
4360 __highlightedItemIndex++;
4362 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4364 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4367 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4369 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4371 __lastHighlightedItemIndex = __highlightedItemIndex;
4372 __highlighted = true;
4376 OnKeyReleased(source, keyInfo);
4382 if (__highlightedItemIndex == __itemCount - 1)
4384 __highlightedItemIndex++;
4386 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4388 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4390 __lastHighlightedItemIndex = __highlightedItemIndex;
4391 __highlighted = true;
4395 OnKeyReleased(source, keyInfo);
4402 if (__pButtonItems[RIGHT_BUTTON])
4404 if (__highlightedItemIndex == __itemCount - 1)
4406 __highlightedItemIndex++;
4408 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4410 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4412 __lastHighlightedItemIndex = __highlightedItemIndex;
4413 __highlighted = true;
4417 OnKeyReleased(source, keyInfo);
4424 if (__highlighted == false)
4426 __highlightedItemIndex = __lastHighlightedItemIndex;
4428 if (__highlightedItemIndex < __itemCount)
4430 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4432 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4434 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4438 else if (__highlightedItemIndex == __itemCount)
4440 if (__pButtonItems[LEFT_BUTTON])
4442 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4444 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4447 else if (__pButtonItems[RIGHT_BUTTON])
4449 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4451 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4455 else if (__highlightedItemIndex == __itemCount + 1)
4457 if (__pButtonItems[RIGHT_BUTTON])
4459 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4461 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4466 __highlighted = true;
4469 else // itemCount == 0
4471 if (__pButtonItems[LEFT_BUTTON])
4473 if (__pButtonItems[RIGHT_BUTTON])
4475 if (__highlightedItemIndex == 0)
4477 __highlightedItemIndex++;
4479 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4481 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4484 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4486 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4488 __lastHighlightedItemIndex = __highlightedItemIndex;
4489 __highlighted = true;
4493 OnKeyReleased(source, keyInfo);
4499 if (__highlighted == false)
4501 __highlightedItemIndex = __lastHighlightedItemIndex;
4503 if (__highlightedItemIndex == __itemCount)
4505 if (__pButtonItems[LEFT_BUTTON])
4507 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4509 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4512 else if (__pButtonItems[RIGHT_BUTTON])
4514 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4516 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4520 else if (__highlightedItemIndex == __itemCount + 1)
4522 if (__pButtonItems[RIGHT_BUTTON])
4524 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4526 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4531 __highlighted = true;
4535 else // footer // right key
4537 if (__itemCount != 0)
4539 if (__pButtonItems[LEFT_BUTTON])
4541 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
4543 if (__highlightedItemIndex == __itemCount)
4545 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4547 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4550 __highlightedItemIndex = 0;
4552 if (__pItems.at(__highlightedItemIndex))
4554 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4556 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4558 __lastHighlightedItemIndex = __highlightedItemIndex;
4559 __highlighted = true;
4563 OnKeyReleased(source, keyInfo);
4567 else if (__highlightedItemIndex < __itemCount - 1)
4569 if (__highlightedItemIndex == selectedItemIndex)
4571 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4573 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4575 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4581 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4583 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4585 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4590 __highlightedItemIndex++;
4592 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4594 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4596 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4598 __lastHighlightedItemIndex = __highlightedItemIndex;
4599 __highlighted = true;
4603 OnKeyReleased(source, keyInfo);
4607 else if (__highlightedItemIndex == __itemCount -1)
4609 if (__highlightedItemIndex == selectedItemIndex)
4611 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4613 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4615 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4621 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4623 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4625 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4630 __highlightedItemIndex = __itemCount + 1;
4632 if (__pButtonItems[RIGHT_BUTTON])
4634 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4636 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4638 __lastHighlightedItemIndex = __highlightedItemIndex;
4639 __highlighted = true;
4643 OnKeyReleased(source, keyInfo);
4650 if (__highlightedItemIndex == __itemCount)
4652 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4654 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4657 __highlightedItemIndex = 0;
4659 if (__pItems.at(__highlightedItemIndex))
4661 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4663 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4665 __lastHighlightedItemIndex = __highlightedItemIndex;
4666 __highlighted = true;
4670 OnKeyReleased(source, keyInfo);
4674 else if (__highlightedItemIndex < __itemCount - 1)
4676 if (__highlightedItemIndex == selectedItemIndex)
4678 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4680 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4682 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4688 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4690 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4692 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4697 __highlightedItemIndex++;
4699 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4701 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4703 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4705 __lastHighlightedItemIndex = __highlightedItemIndex;
4706 __highlighted = true;
4710 OnKeyReleased(source, keyInfo);
4718 if (__pButtonItems[RIGHT_BUTTON]) // Item R, B
4720 if (__highlightedItemIndex < __itemCount - 1)
4722 if (__highlightedItemIndex == selectedItemIndex)
4724 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4726 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4728 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4734 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4736 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4738 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4743 __highlightedItemIndex++;
4745 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4747 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4749 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4751 __lastHighlightedItemIndex = __highlightedItemIndex;
4752 __highlighted = true;
4756 OnKeyReleased(source, keyInfo);
4760 else if (__highlightedItemIndex == __itemCount -1)
4762 if (__highlightedItemIndex == selectedItemIndex)
4764 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4766 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4768 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4774 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4776 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4778 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4783 __highlightedItemIndex++;
4785 if (__pButtonItems[RIGHT_BUTTON])
4787 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4789 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4791 __lastHighlightedItemIndex = __highlightedItemIndex;
4792 __highlighted = true;
4796 OnKeyReleased(source, keyInfo);
4803 if (__highlightedItemIndex < __itemCount - 1)
4805 if (__highlightedItemIndex == selectedItemIndex)
4807 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4809 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4811 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4817 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4819 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4821 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4826 __highlightedItemIndex++;
4828 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4830 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4832 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4834 __lastHighlightedItemIndex = __highlightedItemIndex;
4835 __highlighted = true;
4837 if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
4839 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
4841 __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
4847 OnKeyReleased(source, keyInfo);
4854 if (__highlighted == false)
4856 __highlightedItemIndex = __lastHighlightedItemIndex;
4858 if (__highlightedItemIndex < __itemCount)
4860 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
4862 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4864 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4868 else if (__highlightedItemIndex == __itemCount)
4870 if (__pButtonItems[LEFT_BUTTON])
4872 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4874 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4877 else if (__pButtonItems[RIGHT_BUTTON])
4879 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4881 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4885 else if (__highlightedItemIndex == __itemCount + 1)
4887 if (__pButtonItems[RIGHT_BUTTON])
4889 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4891 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4896 __highlighted = true;
4899 else // __itemCount = 0
4901 if (__pButtonItems[LEFT_BUTTON])
4903 if (__pButtonItems[RIGHT_BUTTON])
4905 if (__highlightedItemIndex == 0)
4907 __highlightedItemIndex++;
4909 if (__pButtonItems[LEFT_BUTTON])
4911 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4913 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4917 if (__pButtonItems[RIGHT_BUTTON])
4919 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4921 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4923 __lastHighlightedItemIndex = __highlightedItemIndex;
4924 __highlighted = true;
4928 OnKeyReleased(source, keyInfo);
4935 if (__highlighted == false)
4937 __highlightedItemIndex = __lastHighlightedItemIndex;
4939 if (__highlightedItemIndex == __itemCount)
4941 if (__pButtonItems[LEFT_BUTTON])
4943 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4945 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4948 else if (__pButtonItems[RIGHT_BUTTON])
4950 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4952 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4956 else if (__highlightedItemIndex == __itemCount + 1)
4958 if (__pButtonItems[RIGHT_BUTTON])
4960 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4962 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4967 __highlighted = true;
4974 else if (IsFocusModeStateEnabled() == true && keyCode == _KEY_LEFT)
4976 __highlighted = false;
4978 if (__header == true && __style != TOOLBAR_TEXT) // right align
4980 if (__itemCount != 0)
4982 if (__highlightedItemIndex == __itemCount + 1)
4984 __highlightedItemIndex--;
4986 if (__pButtonItems[RIGHT_BUTTON])
4988 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4990 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4994 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4996 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4998 __lastHighlightedItemIndex = __highlightedItemIndex;
4999 __highlighted = true;
5003 OnKeyReleased(source, keyInfo);
5006 else if (__highlightedItemIndex == __itemCount)
5008 __highlightedItemIndex--;
5010 if (__pButtonItems[LEFT_BUTTON])
5012 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5014 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5017 else if (__pButtonItems[RIGHT_BUTTON])
5019 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5021 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5025 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5027 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5029 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5031 __lastHighlightedItemIndex = __highlightedItemIndex;
5032 __highlighted = true;
5036 OnKeyReleased(source, keyInfo);
5040 else if (__highlightedItemIndex > 0)
5042 if (__highlightedItemIndex == selectedItemIndex)
5044 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5046 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5048 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5054 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5056 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5058 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5063 __highlightedItemIndex--;
5065 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5067 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5069 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5071 __lastHighlightedItemIndex = __highlightedItemIndex;
5072 __highlighted = true;
5074 if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
5076 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5078 __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
5084 OnKeyReleased(source, keyInfo);
5089 if (__highlighted == false)
5091 __highlightedItemIndex = __lastHighlightedItemIndex;
5093 if (__highlightedItemIndex < __itemCount)
5095 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5097 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5099 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5103 else if (__highlightedItemIndex == __itemCount)
5105 if (__pButtonItems[LEFT_BUTTON])
5107 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5109 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5112 else if (__pButtonItems[RIGHT_BUTTON])
5114 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5116 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5120 else if (__highlightedItemIndex == __itemCount + 1)
5122 if (__pButtonItems[RIGHT_BUTTON])
5124 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5126 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5131 __highlighted = true;
5134 else // __itemCount == 0
5136 if (__highlightedItemIndex == __itemCount + 1)
5138 __highlightedItemIndex--;
5140 if (__pButtonItems[RIGHT_BUTTON])
5142 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5144 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5148 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5150 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5152 __lastHighlightedItemIndex = __highlightedItemIndex;
5153 __highlighted = true;
5157 OnKeyReleased(source, keyInfo);
5161 if (__highlighted == false)
5163 __highlightedItemIndex = __lastHighlightedItemIndex;
5165 if (__highlightedItemIndex == __itemCount)
5167 if (__pButtonItems[LEFT_BUTTON])
5169 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5171 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5174 else if (__pButtonItems[RIGHT_BUTTON])
5176 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5178 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5182 else if (__highlightedItemIndex == __itemCount + 1)
5184 if (__pButtonItems[RIGHT_BUTTON])
5186 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5188 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5193 __highlighted = true;
5197 else // footer << leftkey
5199 if (__itemCount != 0)
5201 if (__pButtonItems[LEFT_BUTTON])
5203 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
5205 if (__highlightedItemIndex == 0)
5207 if (__highlightedItemIndex == selectedItemIndex)
5209 if (__pItems.at(__highlightedItemIndex))
5211 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5213 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5219 if (__pItems.at(__highlightedItemIndex))
5221 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5223 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5228 __highlightedItemIndex = __itemCount;
5230 if (__pButtonItems[LEFT_BUTTON])
5232 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5234 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5236 __lastHighlightedItemIndex = __highlightedItemIndex;
5237 __highlighted = true;
5245 else if (__highlightedItemIndex < __itemCount)
5247 if (__highlightedItemIndex == selectedItemIndex)
5249 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5251 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5253 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5259 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5261 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5263 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5268 __highlightedItemIndex--;
5270 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5272 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5274 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5276 __lastHighlightedItemIndex = __highlightedItemIndex;
5277 __highlighted = true;
5281 OnKeyReleased(source, keyInfo);
5285 else if (__highlightedItemIndex == __itemCount + 1)
5287 if (__pButtonItems[RIGHT_BUTTON])
5289 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5291 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5295 __highlightedItemIndex = __itemCount - 1;
5297 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5299 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5301 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5303 __lastHighlightedItemIndex = __highlightedItemIndex;
5304 __highlighted = true;
5308 OnKeyReleased(source, keyInfo);
5315 if (__highlightedItemIndex == 0)
5317 if (__highlightedItemIndex == selectedItemIndex)
5319 if (__pItems.at(__highlightedItemIndex))
5321 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5323 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5329 if (__pItems.at(__highlightedItemIndex))
5331 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5333 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5338 __highlightedItemIndex = __itemCount;
5340 if (__pButtonItems[LEFT_BUTTON])
5342 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5344 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5346 __lastHighlightedItemIndex = __highlightedItemIndex;
5347 __highlighted = true;
5355 else if (__highlightedItemIndex < __itemCount)
5357 if (__highlightedItemIndex == selectedItemIndex)
5359 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5361 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5363 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5369 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5371 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5373 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5378 __highlightedItemIndex--;
5380 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5382 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5384 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5386 __lastHighlightedItemIndex = __highlightedItemIndex;
5387 __highlighted = true;
5391 OnKeyReleased(source, keyInfo);
5399 if (__pButtonItems[RIGHT_BUTTON]) // Item R
5401 if (__highlightedItemIndex == 0)
5405 else if (__highlightedItemIndex < __itemCount)
5407 if (__highlightedItemIndex == selectedItemIndex)
5409 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5411 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5413 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5419 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5421 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5423 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5428 __highlightedItemIndex--;
5430 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5432 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5434 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5436 __lastHighlightedItemIndex = __highlightedItemIndex;
5437 __highlighted = true;
5441 OnKeyReleased(source, keyInfo);
5445 else if (__highlightedItemIndex == __itemCount)
5447 if (__pButtonItems[RIGHT_BUTTON])
5449 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5451 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5455 __highlightedItemIndex--;
5457 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5459 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5461 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5463 __lastHighlightedItemIndex = __highlightedItemIndex;
5464 __highlighted = true;
5468 OnKeyReleased(source, keyInfo);
5475 if (__highlightedItemIndex == 0)
5479 else if (__highlightedItemIndex < __itemCount)
5481 if (__highlightedItemIndex == selectedItemIndex)
5483 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5485 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5487 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5493 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5495 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5497 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5502 __highlightedItemIndex--;
5504 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5506 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5508 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5510 __lastHighlightedItemIndex = __highlightedItemIndex;
5511 __highlighted = true;
5513 if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
5515 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5517 __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
5523 OnKeyReleased(source, keyInfo);
5530 if (__highlighted == false)
5532 __highlightedItemIndex = __lastHighlightedItemIndex;
5534 if (__highlightedItemIndex < __itemCount)
5536 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5538 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5540 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5544 else if (__highlightedItemIndex == __itemCount)
5546 if (__pButtonItems[LEFT_BUTTON])
5548 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5550 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5553 else if (__pButtonItems[RIGHT_BUTTON])
5555 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5557 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5561 else if (__highlightedItemIndex == __itemCount + 1)
5563 if (__pButtonItems[RIGHT_BUTTON])
5565 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5567 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5572 __highlighted = true;
5575 else // __itemCount == 0
5577 if (__pButtonItems[LEFT_BUTTON])
5579 if (__pButtonItems[RIGHT_BUTTON])
5581 if (__highlightedItemIndex == __itemCount + 1)
5583 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5585 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5588 __highlightedItemIndex--;
5590 if (__pButtonItems[LEFT_BUTTON])
5592 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5594 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5596 __lastHighlightedItemIndex = __highlightedItemIndex;
5597 __highlighted = true;
5608 if (__highlighted == false)
5610 __highlightedItemIndex = __lastHighlightedItemIndex;
5612 if (__highlightedItemIndex == __itemCount)
5614 if (__pButtonItems[LEFT_BUTTON])
5616 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5618 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5621 else if (__pButtonItems[RIGHT_BUTTON])
5623 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5625 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5629 else if (__highlightedItemIndex == __itemCount + 1)
5631 if (__pButtonItems[RIGHT_BUTTON])
5633 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5635 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5640 __highlighted = true;
5647 else if (IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
5649 if (__itemCount != 0)
5651 if (__pButtonItems[LEFT_BUTTON])
5653 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
5655 if (__highlightedItemIndex < __itemCount)
5657 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5658 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5660 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5662 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5664 SetItemHighlighted(__highlightedItemIndex, true, false);
5670 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5672 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5674 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5675 __pItems.at(__highlightedItemIndex)->Invalidate();
5677 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5679 __lastHighlightedItemIndex = __highlightedItemIndex;
5680 __highlighted = true;
5685 else if (__highlightedItemIndex == __itemCount)
5687 if (__pButtonItems[LEFT_BUTTON])
5689 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5691 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5692 __pButtonItems[LEFT_BUTTON]->Invalidate();
5694 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5696 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5697 __highlighted = true;
5701 else if (__highlightedItemIndex == __itemCount + 1)
5703 if (__pButtonItems[RIGHT_BUTTON])
5705 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5707 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5708 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5710 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5712 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount + 1;
5713 __highlighted = true;
5720 if (__highlightedItemIndex < __itemCount)
5722 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5723 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5725 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5727 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5729 SetItemHighlighted(__highlightedItemIndex, true, false);
5735 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5737 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5739 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5740 __pItems.at(__highlightedItemIndex)->Invalidate();
5742 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5744 __lastHighlightedItemIndex = __highlightedItemIndex;
5745 __highlighted = true;
5750 else if (__highlightedItemIndex == __itemCount)
5752 if (__pButtonItems[LEFT_BUTTON])
5754 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5756 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5757 __pButtonItems[LEFT_BUTTON]->Invalidate();
5759 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5761 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5762 __highlighted = true;
5770 if (__pButtonItems[RIGHT_BUTTON]) // Item R
5772 if (__highlightedItemIndex < __itemCount)
5774 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5775 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5777 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5779 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5781 SetItemHighlighted(__highlightedItemIndex, true, false);
5787 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5789 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5791 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5792 __pItems.at(__highlightedItemIndex)->Invalidate();
5794 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5796 __lastHighlightedItemIndex = __highlightedItemIndex;
5797 __highlighted = true;
5802 else if (__highlightedItemIndex == __itemCount)
5804 if (__pButtonItems[RIGHT_BUTTON])
5806 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5808 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5809 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5811 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5813 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5814 __highlighted = true;
5821 if (__highlightedItemIndex < __itemCount)
5823 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5824 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5826 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5828 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5830 SetItemHighlighted(__highlightedItemIndex, true, false);
5836 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
5838 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5840 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5841 __pItems.at(__highlightedItemIndex)->Invalidate();
5843 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5845 __lastHighlightedItemIndex = __highlightedItemIndex;
5846 __highlighted = true;
5854 else // __itemCount == 0
5856 if (__pButtonItems[LEFT_BUTTON])
5858 if (__pButtonItems[RIGHT_BUTTON]) // L R
5860 if (__highlightedItemIndex == 0)
5862 if (__pButtonItems[LEFT_BUTTON])
5864 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5866 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5867 __pButtonItems[LEFT_BUTTON]->Invalidate();
5869 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5871 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5872 __highlighted = true;
5876 else if (__highlightedItemIndex == 1)
5878 if (__pButtonItems[RIGHT_BUTTON])
5880 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5882 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5883 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5885 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5887 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount + 1;
5888 __highlighted = true;
5895 if (__highlightedItemIndex == 0)
5897 if (__pButtonItems[LEFT_BUTTON])
5899 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5901 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5902 __pButtonItems[LEFT_BUTTON]->Invalidate();
5904 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5906 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5907 __highlighted = true;
5915 if (__pButtonItems[RIGHT_BUTTON]) // R
5917 if (__highlightedItemIndex == 0)
5919 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5921 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5922 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5924 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5926 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5927 __highlighted = true;
5939 _Toolbar::OnChangeLayout(_ControlOrientation orientationStatus)
5941 float toolbarWidth = GetBoundsF().width;
5943 if (CalculateMinimumToolbarWidth() > toolbarWidth)
5945 toolbarWidth = CalculateMinimumToolbarWidth();
5948 AdjustToolbarBounds();
5952 __pToolbarPresenter->OnChangeLayout(orientationStatus);
5958 _Toolbar::OnDraw(void)
5962 __pToolbarPresenter->Draw();
5964 if(__pTitleTextElement)
5966 if( __descriptionText.IsEmpty())
5968 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
5972 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
5973 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
5975 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
5982 _Toolbar::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
5984 return __pToolbarPresenter->OnLongPressGestureDetected();
5988 _Toolbar::OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture)
5994 _Toolbar::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
5996 return __pToolbarPresenter->OnFlickGestureDetected(gesture);
6000 _Toolbar::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
6006 _Toolbar::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
6010 return __pToolbarPresenter->OnTouchPressed(source, touchinfo);
6014 _Toolbar::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
6018 return __pToolbarPresenter->OnTouchReleased(source, touchinfo);
6022 _Toolbar::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
6026 return __pToolbarPresenter->OnTouchMoved(source, touchinfo);
6030 _Toolbar::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
6034 return __pToolbarPresenter->OnTouchCanceled(source, touchinfo);
6038 _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
6040 _KeyCode keyCode = keyInfo.GetKeyCode();
6042 if (IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
6044 if (__itemCount != 0)
6046 if (__pButtonItems[LEFT_BUTTON])
6048 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
6050 if (__highlightedItemIndex < __itemCount)
6052 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
6054 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6056 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6060 else if (__highlightedItemIndex == __itemCount)
6062 if (__pButtonItems[LEFT_BUTTON])
6064 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6066 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6070 else if (__highlightedItemIndex == __itemCount + 1)
6072 if (__pButtonItems[RIGHT_BUTTON])
6074 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6076 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6083 if (__highlightedItemIndex < __itemCount)
6085 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
6087 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6089 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6093 else if (__highlightedItemIndex == __itemCount)
6095 if (__pButtonItems[LEFT_BUTTON])
6097 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6099 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6107 if (__pButtonItems[RIGHT_BUTTON]) // Item R
6109 if (__highlightedItemIndex < __itemCount)
6111 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
6113 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6115 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6119 else if (__highlightedItemIndex == __itemCount)
6121 if (__pButtonItems[RIGHT_BUTTON])
6123 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6125 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6132 if (__highlightedItemIndex < __itemCount)
6134 if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
6136 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6138 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6145 else // __itemCount == 0
6147 if (__pButtonItems[LEFT_BUTTON])
6149 if (__pButtonItems[RIGHT_BUTTON]) // L R
6151 if (__highlightedItemIndex == 0)
6153 if (__pButtonItems[LEFT_BUTTON])
6155 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6157 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6161 else if (__highlightedItemIndex == 1)
6163 if (__pButtonItems[RIGHT_BUTTON])
6165 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6167 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6174 if (__highlightedItemIndex == 0)
6176 if (__pButtonItems[LEFT_BUTTON])
6178 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6180 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6188 if (__pButtonItems[RIGHT_BUTTON]) // R
6190 if (__highlightedItemIndex == 0)
6192 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
6194 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
6208 _Toolbar::AddActionEventListener(const Controls::_IActionEventListener& listener)
6210 __pActionEventListener = const_cast<Controls::_IActionEventListener*>(&listener);
6212 for (int i = 0; i < __itemCount; i++)
6214 __pItems.at(i)->AddActionEventListener(listener);
6217 for (int j = 0; j <= MIDDLE_BUTTON; j++)
6219 if (__pButtonItems[j])
6221 __pButtonItems[j]->AddActionEventListener(listener);
6229 _Toolbar::RemoveActionEventListener(const Controls::_IActionEventListener& listener)
6231 __pActionEventListener = null;
6233 //for (int i = 0; i < __itemCount; i++)
6235 //__pItems.at(i)->RemoveActionEventListener(listener);
6238 //for (int j = 0; j < MIDDLE_BUTTON; j++)
6240 // if (__pButtonItems[j])
6242 // __pButtonItems[j]->RemoveActionEventListener(listener);
6251 _Toolbar::SetBackEventListener(const Controls::_IActionEventListener& listener, int actionId)
6253 __backActionId = actionId;
6254 __pBackEventListener = const_cast<_IActionEventListener*>(&listener);
6260 _Toolbar::SetMenuEventListener(const Controls::_IActionEventListener& listener, int actionId)
6262 __menuActionId = actionId;
6263 __pMenuEventListener = const_cast<_IActionEventListener*>(&listener);
6269 _Toolbar::SetPresenter(const _ToolbarPresenter& toolbarPresenter)
6271 __pToolbarPresenter = const_cast<_ToolbarPresenter*>(&toolbarPresenter);
6277 _Toolbar::GetPresenter(void) const
6279 return __pToolbarPresenter;
6283 _Toolbar::ApplyUserGUI(ButtonType buttonType, _Button* pButton)
6285 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_ARG, "[E_INVALID_ARG] The pButton is invalid.");
6287 if (TOOLBAR_BUTTON == buttonType)
6289 Bitmap* pNormalBackgroundBitmap = null;
6290 Bitmap* pDisabledBackgroundBitmap = null;
6291 Bitmap* pPressedBackgroundBitmap = null;
6292 Bitmap* pHighlightedBackgroundBitmap = null;
6294 Bitmap* pNormalBackgroundEffectBitmap = null;
6295 Bitmap* pDisabledBackgroundEffectBitmap = null;
6296 Bitmap* pPressedBackgroundEffectBitmap = null;
6297 Bitmap* pHighlightedBackgroundEffectBitmap = null;
6299 Bitmap* pColorReplacedBitmap = null;
6301 bool customTheme = false;
6303 if (__header == true)
6305 if (__transparent == true)
6307 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6308 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6309 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6310 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6312 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL);
6313 if (customTheme == false)
6315 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6318 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED);
6319 if (customTheme == false)
6321 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6324 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED);
6325 if (customTheme == false)
6327 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6330 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED);
6331 if (customTheme == false)
6333 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6338 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6339 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6340 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6341 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6343 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_NORMAL);
6344 if (customTheme == false)
6346 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6349 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_DISABLED);
6350 if (customTheme == false)
6352 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6355 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_PRESSED);
6356 if (customTheme == false)
6358 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6361 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_HIGHLIGHTED);
6362 if (customTheme == false)
6364 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6370 if (__transparent == true)
6372 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6373 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6374 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6375 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6377 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL);
6378 if (customTheme == false)
6380 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6383 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED);
6384 if (customTheme == false)
6386 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6389 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED);
6390 if (customTheme == false)
6392 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6395 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED);
6396 if (customTheme == false)
6398 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6403 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6404 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6405 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6406 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6408 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_NORMAL);
6409 if (customTheme == false)
6411 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6414 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_DISABLED);
6415 if (customTheme == false)
6417 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6420 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_PRESSED);
6421 if (customTheme == false)
6423 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6426 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_HIGHLIGHTED);
6427 if (customTheme == false)
6429 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6434 if (__transparent == true)
6436 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
6437 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
6438 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
6439 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
6441 if (pNormalBackgroundBitmap)
6443 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
6444 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
6445 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
6447 delete pColorReplacedBitmap;
6448 delete pNormalBackgroundBitmap;
6451 if (pDisabledBackgroundBitmap)
6453 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
6454 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
6455 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
6457 delete pColorReplacedBitmap;
6458 delete pDisabledBackgroundBitmap;
6461 if (pPressedBackgroundBitmap)
6463 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
6464 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
6465 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
6467 delete pColorReplacedBitmap;
6468 delete pPressedBackgroundBitmap;
6471 if (pHighlightedBackgroundBitmap)
6473 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
6474 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
6475 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
6477 delete pColorReplacedBitmap;
6478 delete pHighlightedBackgroundBitmap;
6483 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
6484 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
6485 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
6486 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
6488 if (pNormalBackgroundBitmap)
6490 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
6491 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
6492 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
6494 delete pColorReplacedBitmap;
6495 delete pNormalBackgroundBitmap;
6498 if (pDisabledBackgroundBitmap)
6500 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
6501 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
6502 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
6504 delete pColorReplacedBitmap;
6505 delete pDisabledBackgroundBitmap;
6508 if (pPressedBackgroundBitmap)
6510 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
6511 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
6512 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
6514 delete pColorReplacedBitmap;
6515 delete pPressedBackgroundBitmap;
6518 if (pHighlightedBackgroundBitmap)
6520 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
6521 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
6522 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
6524 delete pColorReplacedBitmap;
6525 delete pHighlightedBackgroundBitmap;
6529 if (__style != TOOLBAR_SOFTKEY)
6531 if (pNormalBackgroundEffectBitmap)
6533 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *pNormalBackgroundEffectBitmap);
6534 delete pNormalBackgroundEffectBitmap;
6536 if (pDisabledBackgroundEffectBitmap)
6538 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_DISABLED, *pDisabledBackgroundEffectBitmap);
6539 delete pDisabledBackgroundEffectBitmap;
6541 if (pPressedBackgroundEffectBitmap)
6543 pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *pPressedBackgroundEffectBitmap);
6544 delete pPressedBackgroundEffectBitmap;
6546 if (pHighlightedBackgroundEffectBitmap)
6548 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pHighlightedBackgroundEffectBitmap);
6549 delete pHighlightedBackgroundEffectBitmap;
6553 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
6555 Bitmap* pSubTitleEffectBitmap = null;
6556 Bitmap* pReColorSubTitleEffectBitmap = null;
6558 Color subTitleEffectColor;
6560 GET_BITMAP_CONFIG_N(HEADER::SUB_TITLE_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, pSubTitleEffectBitmap);
6561 GET_COLOR_CONFIG(HEADER::SUB_TITLE_EFFECT_NORMAL, subTitleEffectColor);
6563 pReColorSubTitleEffectBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSubTitleEffectBitmap, Color::GetColor(COLOR_ID_MAGENTA), subTitleEffectColor);
6565 if (pReColorSubTitleEffectBitmap)
6567 pButton->SetSubTitleEffectBitmap(*pReColorSubTitleEffectBitmap);
6570 delete pSubTitleEffectBitmap;
6571 delete pReColorSubTitleEffectBitmap;
6573 } //if (TOOLBAR_BUTTON == buttonType)
6574 else if (TOOLBAR_ITEM == buttonType)
6576 Bitmap* pNormalBackgroundBitmap = null;
6577 Bitmap* pDisabledBackgroundBitmap = null;
6578 Bitmap* pPressedBackgroundBitmap = null;
6579 Bitmap* pHighlightedBackgroundBitmap = null;
6580 Bitmap* pSelectedBackgroundBitmap = null;
6582 Bitmap* pNormalBackgroundEffectBitmap = null;
6583 Bitmap* pDisabledBackgroundEffectBitmap = null;
6584 Bitmap* pPressedBackgroundEffectBitmap = null;
6585 Bitmap* pHighlightedBackgroundEffectBitmap = null;
6586 Bitmap* pSelectedBackgroundEffectBitmap = null;
6588 Bitmap* pColorReplacedBitmap = null;
6590 bool customTheme = false;
6592 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
6594 if (__header == true)
6596 if (__transparent == true)
6598 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6599 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6600 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6601 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6603 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL);
6604 if (customTheme == false)
6606 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6609 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED);
6610 if (customTheme == false)
6612 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6615 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED);
6616 if (customTheme == false)
6618 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6621 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6622 if (customTheme == false)
6624 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6629 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6630 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6631 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6632 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6634 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_NORMAL);
6635 if (customTheme == false)
6637 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6640 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_DISABLED);
6641 if (customTheme == false)
6643 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6646 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_PRESSED);
6647 if (customTheme == false)
6649 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6652 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED);
6653 if (customTheme == false)
6655 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6661 if (__transparent == true)
6663 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6664 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6665 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6666 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6668 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL);
6669 if (customTheme == false)
6671 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6674 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED);
6675 if (customTheme == false)
6677 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6680 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED);
6681 if (customTheme == false)
6683 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6686 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6687 if (customTheme == false)
6689 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6694 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6695 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6696 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6697 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6699 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_NORMAL);
6700 if (customTheme == false)
6702 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6705 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_DISABLED);
6706 if (customTheme == false)
6708 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6711 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_PRESSED);
6712 if (customTheme == false)
6714 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6717 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED);
6718 if (customTheme == false)
6720 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6725 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
6726 || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
6728 if (__header == true)
6730 if (__transparent == true)
6732 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6733 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6734 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6735 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6736 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6739 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL);
6740 if (customTheme == false)
6742 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6745 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED);
6746 if (customTheme == false)
6748 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6751 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED);
6752 if (customTheme == false)
6754 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6757 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6758 if (customTheme == false)
6760 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6763 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED);
6764 if (customTheme == false)
6766 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6771 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6772 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6773 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6774 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6775 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6777 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_NORMAL);
6778 if (customTheme == false)
6780 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6783 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_DISABLED);
6784 if (customTheme == false)
6786 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6789 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_PRESSED);
6790 if (customTheme == false)
6792 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6795 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED);
6796 if (customTheme == false)
6798 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6801 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_SELECTED);
6802 if (customTheme == false)
6804 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6810 if (__transparent == true)
6812 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6813 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6814 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6815 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6816 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6818 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL);
6819 if (customTheme == false)
6821 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6824 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED);
6825 if (customTheme == false)
6827 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6830 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED);
6831 if (customTheme == false)
6833 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6836 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6837 if (customTheme == false)
6839 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6842 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED);
6843 if (customTheme == false)
6845 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6850 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6851 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6852 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6853 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6854 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6856 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_NORMAL);
6857 if (customTheme == false)
6859 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6862 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_DISABLED);
6863 if (customTheme == false)
6865 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6868 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_PRESSED);
6869 if (customTheme == false)
6871 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6874 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED);
6875 if (customTheme == false)
6877 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6880 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_SELECTED);
6881 if (customTheme == false)
6883 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6888 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
6890 if (__header == true)
6892 if (__transparent == true)
6894 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6895 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6896 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6897 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6898 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6900 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL);
6901 if (customTheme == false)
6903 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6906 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED);
6907 if (customTheme == false)
6909 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6912 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED);
6913 if (customTheme == false)
6915 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6918 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6919 if (customTheme == false)
6921 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6924 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED);
6925 if (customTheme == false)
6927 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6932 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6933 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6934 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6935 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6936 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6938 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_NORMAL);
6939 if (customTheme == false)
6941 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6944 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_DISABLED);
6945 if (customTheme == false)
6947 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6950 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_PRESSED);
6951 if (customTheme == false)
6953 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6956 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_HIGHLIGHTED);
6957 if (customTheme == false)
6959 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6962 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_SELECTED);
6963 if (customTheme == false)
6965 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6971 if (__transparent == true)
6973 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6974 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6975 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6976 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6977 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6979 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL);
6980 if (customTheme == false)
6982 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6985 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED);
6986 if (customTheme == false)
6988 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6991 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED);
6992 if (customTheme == false)
6994 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6997 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6998 if (customTheme == false)
7000 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
7003 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED);
7004 if (customTheme == false)
7006 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
7011 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
7012 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
7013 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
7014 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
7015 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
7017 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_NORMAL);
7018 if (customTheme == false)
7020 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
7023 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_DISABLED);
7024 if (customTheme == false)
7026 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
7029 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_PRESSED);
7030 if (customTheme == false)
7032 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
7035 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_HIGHLIGHTED);
7036 if (customTheme == false)
7038 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
7041 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_SELECTED);
7042 if (customTheme == false)
7044 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
7050 if (__transparent == true)
7052 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
7053 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
7054 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
7055 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
7056 pButton->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
7058 if (pNormalBackgroundBitmap)
7060 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
7061 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
7062 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
7064 delete pColorReplacedBitmap;
7065 delete pNormalBackgroundBitmap;
7068 if (pDisabledBackgroundBitmap)
7070 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
7071 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
7072 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
7074 delete pColorReplacedBitmap;
7075 delete pDisabledBackgroundBitmap;
7078 if (pPressedBackgroundBitmap)
7080 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
7081 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
7082 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
7084 delete pColorReplacedBitmap;
7085 delete pPressedBackgroundBitmap;
7088 if (pHighlightedBackgroundBitmap)
7090 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
7091 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
7092 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
7094 delete pColorReplacedBitmap;
7095 delete pHighlightedBackgroundBitmap;
7098 if (pSelectedBackgroundBitmap)
7100 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSelectedBackgroundBitmap,
7101 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
7102 pButton->SetBackgroundBitmap(_BUTTON_STATUS_SELECTED, *pColorReplacedBitmap);
7104 delete pColorReplacedBitmap;
7105 delete pSelectedBackgroundBitmap;
7110 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
7111 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
7112 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
7113 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
7114 pButton->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
7116 if (pNormalBackgroundBitmap)
7118 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
7119 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
7120 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
7122 delete pColorReplacedBitmap;
7123 delete pNormalBackgroundBitmap;
7126 if (pDisabledBackgroundBitmap)
7128 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
7129 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
7130 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
7132 delete pColorReplacedBitmap;
7133 delete pDisabledBackgroundBitmap;
7136 if (pPressedBackgroundBitmap)
7138 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
7139 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
7140 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
7142 delete pColorReplacedBitmap;
7143 delete pPressedBackgroundBitmap;
7146 if (pHighlightedBackgroundBitmap)
7148 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
7149 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
7150 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
7152 delete pColorReplacedBitmap;
7153 delete pHighlightedBackgroundBitmap;
7156 if (pSelectedBackgroundBitmap)
7158 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSelectedBackgroundBitmap,
7159 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
7160 pButton->SetBackgroundBitmap(_BUTTON_STATUS_SELECTED, *pColorReplacedBitmap);
7162 delete pColorReplacedBitmap;
7163 delete pSelectedBackgroundBitmap;
7167 if (__style != TOOLBAR_SOFTKEY)
7169 if (pNormalBackgroundEffectBitmap)
7171 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *pNormalBackgroundEffectBitmap);
7172 delete pNormalBackgroundEffectBitmap;
7174 if (pDisabledBackgroundEffectBitmap)
7176 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_DISABLED, *pDisabledBackgroundEffectBitmap);
7177 delete pDisabledBackgroundEffectBitmap;
7179 if (pPressedBackgroundEffectBitmap)
7181 pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *pPressedBackgroundEffectBitmap);
7182 delete pPressedBackgroundEffectBitmap;
7184 if (pHighlightedBackgroundEffectBitmap)
7186 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pHighlightedBackgroundEffectBitmap);
7187 delete pHighlightedBackgroundEffectBitmap;
7189 if (pSelectedBackgroundEffectBitmap)
7191 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_SELECTED, *pSelectedBackgroundEffectBitmap);
7192 delete pSelectedBackgroundEffectBitmap;
7196 if (__style == TOOLBAR_TAB_LARGE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7198 pButton->SetTabTextSlide(true);
7200 Bitmap* pTabTextDimLeftBitmap = null;
7201 Bitmap* pTabTextDimRightBitmap = null;
7202 Bitmap* pReColorTabTextDimLeftBitmap = null;
7203 Bitmap* pReColorTabTextDimRightBitmap = null;
7205 Color tabTextDimColor;
7207 if (__header == true)
7209 GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap);
7210 GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap);
7211 if (__transparent == true)
7213 GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor);
7214 tabTextDimColor.SetAlpha(0x00);
7218 GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_NORMAL, tabTextDimColor);
7219 tabTextDimColor.SetAlpha(0x00);
7224 GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap);
7225 GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap);
7226 if (__transparent == true)
7228 GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor);
7229 tabTextDimColor.SetAlpha(0x00);
7233 GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_NORMAL, tabTextDimColor);
7234 tabTextDimColor.SetAlpha(0x00);
7238 pReColorTabTextDimLeftBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimLeftBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor);
7239 pReColorTabTextDimRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimRightBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor);
7241 if (pReColorTabTextDimLeftBitmap)
7243 pButton->SetTabTextDimLeftBitmap(*pReColorTabTextDimLeftBitmap);
7246 if (pReColorTabTextDimRightBitmap)
7248 pButton->SetTabTextDimRightBitmap(*pReColorTabTextDimRightBitmap);
7251 delete pTabTextDimLeftBitmap;
7252 delete pTabTextDimRightBitmap;
7253 delete pReColorTabTextDimLeftBitmap;
7254 delete pReColorTabTextDimRightBitmap;
7257 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7259 Bitmap* pSubTitleEffectBitmap = null;
7260 Bitmap* pReColorSubTitleEffectBitmap = null;
7262 Color subTitleEffectColor;
7264 GET_BITMAP_CONFIG_N(HEADER::SUB_TITLE_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, pSubTitleEffectBitmap);
7265 GET_COLOR_CONFIG(HEADER::SUB_TITLE_EFFECT_NORMAL, subTitleEffectColor);
7267 pReColorSubTitleEffectBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSubTitleEffectBitmap, Color::GetColor(COLOR_ID_MAGENTA), subTitleEffectColor);
7269 if (pReColorSubTitleEffectBitmap)
7271 pButton->SetSubTitleEffectBitmap(*pReColorSubTitleEffectBitmap);
7274 delete pSubTitleEffectBitmap;
7275 delete pReColorSubTitleEffectBitmap;
7277 } //if (TOOLBAR_ITEM == buttonType)
7283 _Toolbar::CalculateMinimumToolbarWidth(void)
7285 float totalWidth = 0.0f;
7286 float itemMinimumWidth = 0.0f;
7287 float horizontalMargin = 0.0f;
7289 if (__header == true && __style == TOOLBAR_TEXT)
7291 if (IsButtonSet(LEFT_BUTTON))
7293 //if (__pButtonItems[LEFT_BUTTON]->GetText().IsEmpty())
7295 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7299 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
7302 totalWidth += itemMinimumWidth;
7304 if (IsButtonSet(RIGHT_BUTTON))
7306 //if (__pButtonItems[RIGHT_BUTTON]->GetText().IsEmpty())
7308 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7312 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
7315 totalWidth += itemMinimumWidth;
7318 else // footer or HEADER_TITLE_BUTTON
7320 if (IsButtonSet(LEFT_BUTTON))
7322 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7323 totalWidth += itemMinimumWidth;
7326 if (IsButtonSet(RIGHT_BUTTON))
7328 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7329 totalWidth += itemMinimumWidth;
7333 if (__style == TOOLBAR_TITLE)
7335 GET_SHAPE_CONFIG(HEADER::TITLE_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7336 totalWidth += itemMinimumWidth;
7338 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_HEADER_SEGMENTED)
7340 GET_SHAPE_CONFIG(HEADER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7341 GET_SHAPE_CONFIG(HEADER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
7342 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
7344 else if (__style == TOOLBAR_SEGMENTED)
7346 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7347 GET_SHAPE_CONFIG(FOOTER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
7348 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
7352 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7354 if ((__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) && __itemCount > 4)
7356 totalWidth += itemMinimumWidth * 4;
7360 totalWidth += itemMinimumWidth * __itemCount;
7368 _Toolbar::CalculateMinimumToolbarWidthF(void)
7370 float totalWidth = 0.0f;
7371 float itemMinimumWidth = 0.0f;
7372 float horizontalMargin = 0.0f;
7374 if (__header == true && __style == TOOLBAR_TEXT)
7376 if (IsButtonSet(LEFT_BUTTON))
7378 //if (__pButtonItems[LEFT_BUTTON]->GetText().IsEmpty())
7380 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7384 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
7387 totalWidth += itemMinimumWidth;
7389 if (IsButtonSet(RIGHT_BUTTON))
7391 //if (__pButtonItems[RIGHT_BUTTON]->GetText().IsEmpty())
7393 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7397 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
7400 totalWidth += itemMinimumWidth;
7403 else // footer or HEADER_TITLE_BUTTON
7405 if (IsButtonSet(LEFT_BUTTON))
7407 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7408 totalWidth += itemMinimumWidth;
7411 if (IsButtonSet(RIGHT_BUTTON))
7413 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
7414 totalWidth += itemMinimumWidth;
7418 if (__style == TOOLBAR_TITLE)
7420 GET_SHAPE_CONFIG(HEADER::TITLE_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7421 totalWidth += itemMinimumWidth;
7423 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_HEADER_SEGMENTED)
7425 GET_SHAPE_CONFIG(HEADER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7426 GET_SHAPE_CONFIG(HEADER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
7427 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
7429 else if (__style == TOOLBAR_SEGMENTED)
7431 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7432 GET_SHAPE_CONFIG(FOOTER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
7433 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
7437 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
7439 if ((__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) && __itemCount > 4)
7441 totalWidth += itemMinimumWidth * 4;
7445 totalWidth += itemMinimumWidth * __itemCount;
7453 _Toolbar::RealignItem(_Button* pButton, float textExtentSize)
7455 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_STATE, "[E_INVALID_STATE] pButton doesn't exist.");
7457 float buttonItemWidth = pButton->GetSizeF().width;
7458 float buttonItemHeight = pButton->GetSizeF().height;
7459 float sideMargin = 0.0f;
7460 float buttonTextTopMargin = 0.0f;
7461 float iconTextGap = 0.0f;
7462 float contentLength = 0.0f;
7463 float segmentedTextAreaHeight = 0.0f;
7464 float revisedTopMargin = 5.0f;
7465 float largeTabTopMargin = 0.0f;
7466 float largeTabTextHeight = 0.0f;
7468 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
7469 GET_SHAPE_CONFIG(HEADER::ICON_TEXT_GAP, GetOrientation(), iconTextGap);
7470 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedTextAreaHeight);
7471 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_TOP_MARGIN, GetOrientation(), largeTabTopMargin);
7472 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_TEXT_HEIGHT, GetOrientation(), largeTabTextHeight);
7474 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
7476 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_BUTTON_STYLE_SIDE_MARGIN, GetOrientation(), sideMargin);
7477 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_TOP_MARGIN, GetOrientation(), buttonTextTopMargin);
7479 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
7481 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
7483 buttonTextTopMargin = (buttonItemHeight - segmentedTextAreaHeight) / 2 - revisedTopMargin;
7485 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7487 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
7489 buttonTextTopMargin = 0;
7492 if (pButton->GetText() != L"")
7494 float iconAreaWidth = 0.0f;
7496 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
7498 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_NORMAL)->GetWidthF();
7499 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7501 if (contentLength > buttonItemWidth - sideMargin * 2)
7503 contentLength = buttonItemWidth - sideMargin * 2;
7506 if (__style == TOOLBAR_TAB_LARGE)
7508 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7509 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7510 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7514 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7515 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7516 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7519 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7521 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_PRESSED)->GetWidthF();
7522 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7524 if (contentLength > buttonItemWidth - sideMargin * 2)
7526 contentLength = buttonItemWidth - sideMargin * 2;
7529 if (__style == TOOLBAR_TAB_LARGE)
7531 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7532 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7533 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7537 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7538 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7539 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7542 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7544 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_SELECTED)->GetWidthF();
7545 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7547 if (contentLength > buttonItemWidth - sideMargin * 2)
7549 contentLength = buttonItemWidth - sideMargin * 2;
7552 if (__style == TOOLBAR_TAB_LARGE)
7554 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7555 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7556 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7560 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7561 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7562 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7565 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7567 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)->GetWidthF();
7568 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7570 if (contentLength > buttonItemWidth - sideMargin * 2)
7572 contentLength = buttonItemWidth - sideMargin * 2;
7575 if (__style == TOOLBAR_TAB_LARGE)
7577 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7578 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7579 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7583 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7584 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7585 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7588 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7590 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_DISABLED)->GetWidthF();
7591 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7593 if (contentLength > buttonItemWidth - sideMargin * 2)
7595 contentLength = buttonItemWidth - sideMargin * 2;
7598 if (__style == TOOLBAR_TAB_LARGE)
7600 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7601 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7602 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7606 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7607 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7608 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7612 if (iconAreaWidth != 0)
7614 if (__style == TOOLBAR_TAB_LARGE)
7616 pButton->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
7617 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, largeTabTopMargin + iconAreaWidth,
7618 buttonItemWidth - sideMargin * 2, largeTabTextHeight));
7620 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7622 pButton->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
7623 pButton->SetUserDefinedTextArea(FloatRectangle((buttonItemWidth - contentLength) / 2 + iconAreaWidth + iconTextGap, (buttonItemHeight - largeTabTextHeight) / 2,
7624 buttonItemWidth - iconAreaWidth - iconTextGap - sideMargin * 2, largeTabTextHeight));
7628 pButton->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
7629 pButton->SetUserDefinedTextArea(FloatRectangle((buttonItemWidth - contentLength) / 2 + iconAreaWidth + iconTextGap,
7630 buttonTextTopMargin, buttonItemWidth - iconAreaWidth - iconTextGap - sideMargin * 2, buttonItemHeight - buttonTextTopMargin * 2));
7635 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7637 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, (buttonItemHeight - largeTabTextHeight) / 2,
7638 buttonItemWidth - sideMargin * 2, largeTabTextHeight));
7642 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, buttonTextTopMargin, buttonItemWidth - sideMargin * 2, buttonItemHeight - buttonTextTopMargin * 2));
7648 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
7650 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7651 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7652 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7653 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7655 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7657 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7658 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7659 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7660 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7662 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7664 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7665 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7666 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7667 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7669 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7671 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7672 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7673 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7674 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7676 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7678 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7679 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7680 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7681 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7684 pButton->SetMargin(sideMargin, buttonTextTopMargin, sideMargin, buttonTextTopMargin);
7691 _Toolbar::RealignButtonItem(_Button* pButton)
7693 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_STATE, "[E_INVALID_STATE] pButton doesn't exist.");
7695 float buttonItemWidth = pButton->GetSizeF().width;
7696 float buttonItemHeight = pButton->GetSizeF().height;
7698 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
7700 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7701 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7702 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7703 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7705 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7707 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7708 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7709 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7710 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7712 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7714 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7715 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7716 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7717 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7719 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7721 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7722 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7723 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7724 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7726 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7728 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7729 FloatPoint((buttonItemWidth - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7730 (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7731 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7734 if (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL) != null)
7736 pButton->SetEffectBitmap(_BUTTON_STATUS_NORMAL,
7737 FloatPoint((buttonItemWidth - (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7738 (buttonItemHeight - (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7739 *(pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL)));
7742 if (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED) != null)
7744 pButton->SetEffectBitmap(_BUTTON_STATUS_PRESSED,
7745 FloatPoint((buttonItemWidth - (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7746 (buttonItemHeight - (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7747 *(pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED)));
7749 if (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7751 pButton->SetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7752 FloatPoint((buttonItemWidth - (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7753 (buttonItemHeight - (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7754 *(pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7756 if (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED) != null)
7758 pButton->SetEffectBitmap(_BUTTON_STATUS_DISABLED,
7759 FloatPoint((buttonItemWidth - (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7760 (buttonItemHeight - (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7761 *(pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED)));
7763 if (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED) != null)
7765 pButton->SetEffectBitmap(_BUTTON_STATUS_SELECTED,
7766 FloatPoint((buttonItemWidth - (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7767 (buttonItemHeight - (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7768 *(pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED)));
7775 _Toolbar::RearrangeItems(void)
7777 __titleTextArea = _Control::GetBoundsF();
7779 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
7780 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
7782 if (CalculateMinimumToolbarWidth() > __titleTextArea.width)
7784 __titleTextArea.width = CalculateMinimumToolbarWidth();
7787 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
7789 if (__titleTextArea.width > portraitSize.width)
7791 __titleTextArea.width = portraitSize.width;
7796 if (__titleTextArea.width > landscapeSize.width)
7798 __titleTextArea.width = landscapeSize.width;
7802 __itemArea = __titleTextArea;
7804 if (__header == true && __style != TOOLBAR_TEXT) // right align
7806 float headerLeftButtonWidth = 0.0f;
7807 float headerRightButtonWidth = 0.0f;
7808 float headerTopMargin = 0.0f;
7809 float vmargin = 0.0f;
7810 float buttonItemGap = 0.0f;
7811 float headerButtonItemHeight = 0.0f;
7812 float headerLeftMargin = 0.0f;
7813 float headerRightMargin = 0.0f;
7815 GET_SHAPE_CONFIG(HEADER::TOP_MARGIN, GetOrientation(), headerTopMargin);
7816 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_GAP, GetOrientation(), buttonItemGap);
7817 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), headerLeftMargin);
7818 GET_SHAPE_CONFIG(HEADER::RIGHT_MARGIN, GetOrientation(), headerRightMargin);
7820 if (__pButtonItems[LEFT_BUTTON])
7822 headerLeftButtonWidth = CoordinateSystem::AlignToDevice(__pButtonItems[LEFT_BUTTON]->GetSizeF()).width;
7825 if (__pButtonItems[RIGHT_BUTTON])
7827 headerRightButtonWidth = CoordinateSystem::AlignToDevice(__pButtonItems[RIGHT_BUTTON]->GetSizeF()).width;
7830 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7832 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
7833 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), headerButtonItemHeight);
7835 else if (__style == TOOLBAR_TAB_WITH_TITLE)
7837 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), vmargin);
7838 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), headerButtonItemHeight);
7842 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), vmargin);
7843 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetOrientation(), headerButtonItemHeight);
7846 __titleTextArea.x = headerLeftMargin;
7847 __titleTextArea.y = headerTopMargin;
7849 if (__pButtonItems[RIGHT_BUTTON])
7851 if (__pButtonItems[LEFT_BUTTON])
7853 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth, vmargin,
7854 headerRightButtonWidth, headerButtonItemHeight));
7855 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth , vmargin,
7856 headerLeftButtonWidth, headerButtonItemHeight));
7858 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7860 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7864 __titleTextArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7866 if (__style != TOOLBAR_TAB_WITH_TITLE)
7868 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7874 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth, vmargin,
7875 headerRightButtonWidth, headerButtonItemHeight));
7877 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7879 __itemArea.width -= (headerRightButtonWidth);
7883 __titleTextArea.width -= (headerRightButtonWidth);
7885 if (__style != TOOLBAR_TAB_WITH_TITLE)
7887 __itemArea.width -= (headerRightButtonWidth);
7892 else if (__pButtonItems[LEFT_BUTTON])
7894 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerLeftButtonWidth, vmargin,
7895 headerLeftButtonWidth, headerButtonItemHeight));
7897 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7899 __itemArea.width -= (headerLeftButtonWidth);
7903 __titleTextArea.width -= (headerLeftButtonWidth);
7905 if (__style != TOOLBAR_TAB_WITH_TITLE)
7907 __itemArea.width -= (headerLeftButtonWidth);
7912 if ((__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7913 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
7915 // segment style with no button's right margin is same as left
7916 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7917 __itemArea.width -= (headerLeftMargin + headerLeftMargin);
7919 else if (!(__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE))
7921 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7922 __itemArea.width -= (headerLeftMargin + headerRightMargin);
7925 if (__style == TOOLBAR_TAB_WITH_TITLE)
7927 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7930 float processingAnimationIconSize = 0.0f;
7932 GET_SHAPE_CONFIG(HEADER::PROCESSING_ANIMATION_ICON_SIZE, GetOrientation(), processingAnimationIconSize);
7934 if (__pButtonItems[LEFT_BUTTON] && GetWaitingAnimationStatus(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT) != ANIMATION_STOPPED)
7936 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT,
7937 (__pButtonItems[LEFT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
7938 (__pButtonItems[LEFT_BUTTON]->GetSizeF().height - processingAnimationIconSize) / 2);
7941 if (__pButtonItems[RIGHT_BUTTON] && GetWaitingAnimationStatus(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT) != ANIMATION_STOPPED)
7943 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT,
7944 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
7945 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().height - processingAnimationIconSize) / 2);
7948 else // footer or edit or HEADER_STYLE_BUTTON // side align
7950 float footerButtonItemWidth = 0.0f;
7951 float footerButtonItemHeight = 0.0f;
7952 float sipButtonItemTopMargin = 0.0f;
7953 float footerLeftMargin = 0.0f;
7954 FloatDimension softkeyDimension(0.0f, 0.0f);
7956 if (__header == true && __style == TOOLBAR_TEXT)
7958 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), footerButtonItemWidth);
7960 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT) // sip && portrait
7962 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7966 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7971 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), footerButtonItemWidth);
7972 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7975 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_TOP_MARGIN, GetOrientation(), sipButtonItemTopMargin);
7976 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
7977 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_RECT_WITH_TEXT, GetOrientation(), softkeyDimension);
7979 if (__pButtonItems[MIDDLE_BUTTON])
7981 __pButtonItems[MIDDLE_BUTTON]->SetPosition(FloatPoint((__itemArea.width - __pButtonItems[MIDDLE_BUTTON]->GetSizeF().width) / 2,
7982 __itemArea.height - __pButtonItems[MIDDLE_BUTTON]->GetSizeF().height));
7985 // footer or edit or HEADER_STYLE_BUTTON // side align
7986 if (__pButtonItems[RIGHT_BUTTON])
7988 if (__pButtonItems[LEFT_BUTTON])
7990 if (__style != TOOLBAR_SOFTKEY)
7992 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - footerButtonItemWidth,
7993 0.0f, footerButtonItemWidth + 1, footerButtonItemHeight));
7995 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, 0.0f,
7996 footerButtonItemWidth, footerButtonItemHeight));
8000 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
8002 __pButtonItems[RIGHT_BUTTON]->SetPosition(FloatPoint(__itemArea.width - __pButtonItems[RIGHT_BUTTON]->GetSizeF().width,
8003 __itemArea.height - __pButtonItems[RIGHT_BUTTON]->GetSizeF().height));
8007 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - softkeyDimension.width, __itemArea.height - softkeyDimension.height,
8008 softkeyDimension.width + 1, softkeyDimension.height));
8011 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
8013 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(0.0f, __itemArea.height - __pButtonItems[LEFT_BUTTON]->GetSizeF().height));
8017 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, __itemArea.height - softkeyDimension.height,
8018 softkeyDimension.width, softkeyDimension.height));
8024 if (__style != TOOLBAR_SOFTKEY)
8026 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - footerButtonItemWidth,
8027 0.0f, footerButtonItemWidth + 1, footerButtonItemHeight));
8031 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
8033 __pButtonItems[RIGHT_BUTTON]->SetPosition(FloatPoint(__itemArea.width - __pButtonItems[RIGHT_BUTTON]->GetSizeF().width,
8034 __itemArea.height - __pButtonItems[RIGHT_BUTTON]->GetSizeF().height));
8038 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - softkeyDimension.width, __itemArea.height - softkeyDimension.height,
8039 softkeyDimension.width + 1, softkeyDimension.height));
8044 else if (__pButtonItems[LEFT_BUTTON])
8046 if (__style != TOOLBAR_SOFTKEY)
8048 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, 0.0f,
8049 footerButtonItemWidth, footerButtonItemHeight));
8053 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
8055 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(0.0f, __itemArea.height - __pButtonItems[LEFT_BUTTON]->GetSizeF().height));
8059 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, __itemArea.height - softkeyDimension.height,
8060 softkeyDimension.width, softkeyDimension.height));
8066 if (__style != TOOLBAR_SOFTKEY)
8068 for (int i = 0; i < BUTTON_MAX; i++)
8070 if (__pButtonItems[i] != null)
8072 RealignButtonItem(__pButtonItems[i]);
8077 __pToolbarPresenter->SetUsableAreaBounds(__titleTextArea);
8079 if (0 == __itemCount)
8086 case TOOLBAR_HEADER_SEGMENTED:
8088 case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
8089 RearrangeHeaderSegmentedItems();
8092 case TOOLBAR_SEGMENTED:
8093 RearrangeFooterSegmentedItems();
8098 case TOOLBAR_TAB_LARGE:
8100 case TOOLBAR_TAB_WITH_TITLE:
8101 RearrangeTabItmes();
8105 RearrangeButtonItems();
8113 _Toolbar::RearrangeHeaderSegmentedItems(void)
8115 float segmentedItemHeight = 0.0f;
8116 float leftMargin = 0.0f;
8117 float vmargin = 0.0f;
8118 float blockWidth[__itemCount];
8119 float fontSize = 0.0f;
8120 float multilineFontSize = 0.0f;
8122 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), leftMargin);
8124 if (__style == TOOLBAR_HEADER_SEGMENTED)
8126 segmentedItemHeight = __itemArea.height;
8127 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), vmargin);
8129 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
8131 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
8132 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
8135 if (__itemCount == 1 || __itemCount == 2)
8137 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
8139 blockWidth[0] = blockWidth[1] = GetSizeF().width / 2;
8143 blockWidth[0] = blockWidth[1] = (__itemArea.width + leftMargin) / 2;
8146 for (int i = 0; i < __itemCount ; i++)
8148 __pItems.at(i)->SetBounds(FloatRectangle(blockWidth[0] * i, vmargin, blockWidth[i], segmentedItemHeight));
8150 if (__pItems.at(i)->GetChildCount() != 0)
8152 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8154 if (existingBadgeIcon)
8156 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[1] - existingBadgeIcon->GetSizeF().width, 0));
8157 existingBadgeIcon = null;
8162 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
8164 if (__style == TOOLBAR_HEADER_SEGMENTED)
8166 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
8168 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
8170 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8173 else if (__itemCount == 3)
8175 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
8177 blockWidth[0] = blockWidth[1] = blockWidth[2] = GetSizeF().width / 3;
8179 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
8180 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], vmargin, blockWidth[1], segmentedItemHeight));
8181 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2], vmargin, blockWidth[2], segmentedItemHeight));
8185 blockWidth[0] = blockWidth[1] = blockWidth[2] = (__itemArea.width + leftMargin) / 3;
8187 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
8188 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], vmargin, blockWidth[1], segmentedItemHeight));
8189 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1],
8190 vmargin, blockWidth[2], segmentedItemHeight));
8193 for (int i = 0; i < 3; i++)
8195 __pItems.at(i)->SetBounds(CoordinateSystem::AlignToDevice(__pItems.at(i)->GetBoundsF()));
8199 for (int i = 0; i < __itemCount; i++)
8201 if (__pItems.at(i)->GetChildCount() != 0)
8203 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8205 if (existingBadgeIcon)
8207 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8208 existingBadgeIcon = null;
8213 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize); // 26
8215 if (__style == TOOLBAR_HEADER_SEGMENTED)
8217 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize); // 26
8219 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
8221 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); //24
8224 else if (__itemCount == 4)
8226 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
8228 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = GetSizeF().width / 4;
8230 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
8231 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], vmargin, blockWidth[1], segmentedItemHeight));
8232 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1],
8233 vmargin, blockWidth[2], segmentedItemHeight));
8234 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2],
8235 vmargin, blockWidth[3], segmentedItemHeight));
8239 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = (__itemArea.width + leftMargin) / 4;
8241 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
8242 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], vmargin, blockWidth[1], segmentedItemHeight));
8243 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1],
8244 vmargin, blockWidth[2], segmentedItemHeight));
8245 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2],
8246 vmargin, blockWidth[3], segmentedItemHeight));
8249 for (int i = 0; i < __itemCount ; i++)
8251 if (__pItems.at(i)->GetChildCount() != 0)
8253 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8255 if (existingBadgeIcon)
8257 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8258 existingBadgeIcon = null;
8263 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize);
8264 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize);
8267 for (int i = 0; i < __itemCount; i++)
8269 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8270 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8272 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8279 _Toolbar::RearrangeFooterSegmentedItems(void)
8281 float segmentedItemHeight = __itemArea.height;
8283 float leftMargin = 0.0f;
8284 float rightMargin = 0.0f;
8285 float footerLeftMargin = 0.0f;
8286 float iconSize = 0.0f;
8287 float blockWidth[__itemCount];
8288 float fontSize = 0.0f;
8289 float multilineFontSize = 0.0f;
8291 float itemButtonLeftGap = 0.0f;
8292 float itemButtonRightGap = 0.0f;
8294 float dividerWidth = 0.0f;
8297 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), leftMargin);
8298 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
8299 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_ICON_SIZE, GetOrientation(), iconSize);
8300 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
8302 rightMargin = leftMargin;
8304 if (__itemCount == 1)
8306 if (__pButtonItems[LEFT_BUTTON])
8308 if (__pButtonItems[RIGHT_BUTTON])
8310 leftMargin = footerLeftMargin;
8311 itemButtonLeftGap = footerLeftMargin;
8312 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
8316 leftMargin = footerLeftMargin;
8317 itemButtonLeftGap = footerLeftMargin;
8318 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
8323 if (__pButtonItems[RIGHT_BUTTON])
8325 rightMargin = footerLeftMargin;
8326 itemButtonRightGap = footerLeftMargin;
8327 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
8332 itemButtonLeftGap = 0;
8335 blockWidth[0] = __itemArea.width;
8337 if (__pButtonItems[LEFT_BUTTON])
8339 if (__pButtonItems[RIGHT_BUTTON])
8341 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth * 2, segmentedItemHeight));
8345 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8350 if (__pButtonItems[RIGHT_BUTTON])
8352 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8356 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8360 for (int i = 0; i < __itemCount ; i++)
8362 if (__pItems.at(i)->GetChildCount() != 0)
8364 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8366 if (existingBadgeIcon)
8368 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8369 existingBadgeIcon = null;
8374 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize);
8375 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize);
8377 else if ( __itemCount == 2)
8379 if (__pButtonItems[LEFT_BUTTON])
8381 if (__pButtonItems[RIGHT_BUTTON])
8383 leftMargin = footerLeftMargin;
8384 itemButtonLeftGap = footerLeftMargin;
8385 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
8389 leftMargin = footerLeftMargin;
8390 itemButtonLeftGap = footerLeftMargin;
8391 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
8396 if (__pButtonItems[RIGHT_BUTTON])
8398 rightMargin = footerLeftMargin;
8399 itemButtonRightGap = footerLeftMargin;
8400 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
8405 itemButtonLeftGap = 0;
8408 blockWidth[0] = blockWidth[1] = __itemArea.width / 2;
8410 if (__pButtonItems[LEFT_BUTTON])
8412 if (__pButtonItems[RIGHT_BUTTON])
8414 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8415 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] - dividerWidth, segmentedItemHeight));
8419 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8420 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] + 1, segmentedItemHeight));
8425 if (__pButtonItems[RIGHT_BUTTON])
8427 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8428 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] - dividerWidth, segmentedItemHeight));
8432 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8433 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8438 for (int i = 0; i < __itemCount ; i++)
8440 if (__pItems.at(i)->GetChildCount() != 0)
8442 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8444 if (existingBadgeIcon)
8446 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8447 existingBadgeIcon = null;
8452 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize);
8453 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize);
8455 else if (__itemCount == 3)
8457 if (__pButtonItems[LEFT_BUTTON])
8459 if (__pButtonItems[RIGHT_BUTTON])
8461 leftMargin = footerLeftMargin;
8462 itemButtonLeftGap = footerLeftMargin;
8463 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
8467 leftMargin = footerLeftMargin;
8468 itemButtonLeftGap = footerLeftMargin;
8469 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
8474 if (__pButtonItems[RIGHT_BUTTON])
8476 rightMargin = footerLeftMargin;
8477 itemButtonRightGap = footerLeftMargin;
8478 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
8483 itemButtonLeftGap = 0;
8487 if (fmod(__itemArea.width, __itemCount) == 0)
8490 blockWidth[0] = blockWidth[1] = blockWidth[2] = __itemArea.width / __itemCount;
8494 width = __itemArea.width / __itemCount;
8495 blockWidth[0] = blockWidth[1] = blockWidth[2] = width;
8496 int balanceWidth = Math::Round((fmod(__itemArea.width, 3) + 0.00001f) * 10.0f);
8497 while (balanceWidth > 0)
8499 for (int i = 0; i < __itemCount; i++)
8501 if (balanceWidth > 0)
8503 blockWidth[i] += 0.1f;
8504 balanceWidth = balanceWidth - 1;
8514 if (__pButtonItems[LEFT_BUTTON])
8516 if (__pButtonItems[RIGHT_BUTTON])
8518 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8519 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8520 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1],
8521 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] - dividerWidth, segmentedItemHeight));
8525 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8526 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8527 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],
8528 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8533 if (__pButtonItems[RIGHT_BUTTON])
8535 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8536 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8537 __pItems.at(2)->SetBounds(FloatRectangle(__itemArea.width - blockWidth[2],
8538 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] - dividerWidth, segmentedItemHeight));
8542 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8543 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8544 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],
8545 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8549 for (int i = 0; i < 3; i++)
8551 __pItems.at(i)->SetBounds(CoordinateSystem::AlignToDevice(__pItems.at(i)->GetBoundsF()));
8555 for (int i = 0; i < __itemCount ; i++)
8557 if (__pItems.at(i)->GetChildCount() != 0)
8559 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8561 if (existingBadgeIcon)
8563 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8564 existingBadgeIcon = null;
8569 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize);
8570 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize);
8572 else if (__itemCount == 4)
8576 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = __itemArea.width / 4;
8578 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8579 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + blockWidth[0], (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8580 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1],
8581 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8582 __pItems.at(3)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2],
8583 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[3], segmentedItemHeight));
8585 for (int i = 0; i < __itemCount ; i++)
8587 if (__pItems.at(i)->GetChildCount() != 0)
8589 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8591 if (existingBadgeIcon)
8593 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8594 existingBadgeIcon = null;
8599 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize);
8600 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize);
8603 for (int i = 0; i < __itemCount ; i++)
8605 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8606 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8608 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8615 _Toolbar::RearrangeTabItmes(void)
8617 float itemWidth[__itemCount];
8618 float fontSize = 0.0f;
8619 float multilineFontSize = 0.0f;
8620 float segmentedItemHeight = 0.0f;
8621 float vmargin = 0.0f;
8623 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8625 segmentedItemHeight = __itemArea.height;
8627 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8629 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
8630 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
8633 if (__itemCount == 1)
8635 itemWidth[0] = __itemArea.width;
8636 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, vmargin, itemWidth[0], segmentedItemHeight));
8639 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
8641 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8643 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
8645 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8647 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8650 else if (__itemCount == 2)
8652 itemWidth[0] = itemWidth[1] = __itemArea.width / 2;
8654 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, vmargin, itemWidth[0], segmentedItemHeight));
8655 __pItems.at(1)->SetBounds(FloatRectangle(itemWidth[0], vmargin, itemWidth[1], segmentedItemHeight));
8657 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
8659 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8661 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
8663 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8665 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8668 else if (__itemCount == 3)
8672 if (fmod(__itemArea.width, __itemCount) == 0)
8675 itemWidth[0] = itemWidth[1] = itemWidth[2] = __itemArea.width / 3;
8679 width = __itemArea.width / __itemCount;
8680 itemWidth[0] = itemWidth[1] = itemWidth[2] = width;
8681 int balanceWidth = Math::Round((fmod(__itemArea.width, 3) + 0.00001f) * 10.0f);
8682 while (balanceWidth > 0)
8684 for (int i = 0; i < __itemCount; i++)
8686 if (balanceWidth > 0)
8688 itemWidth[i] += 0.1f;
8689 balanceWidth = balanceWidth - 1;
8699 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, vmargin, itemWidth[0], segmentedItemHeight));
8700 __pItems.at(1)->SetBounds(FloatRectangle(itemWidth[0], vmargin, itemWidth[1], segmentedItemHeight));
8701 __pItems.at(2)->SetBounds(FloatRectangle(__itemArea.width - itemWidth[2], vmargin, itemWidth[2], segmentedItemHeight));
8703 for (int i = 0; i < 3; i++)
8705 __pItems.at(i)->SetBounds(CoordinateSystem::AlignToDevice(__pItems.at(i)->GetBoundsF()));
8709 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize); // 26
8711 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8713 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize); // 26
8715 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8717 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8722 itemWidth[0] = itemWidth[1] = itemWidth[2] = itemWidth[3] = __itemArea.width / 4;
8724 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, vmargin, itemWidth[0], segmentedItemHeight));
8725 __pItems.at(1)->SetBounds(FloatRectangle(itemWidth[0], vmargin, itemWidth[1], segmentedItemHeight));
8726 __pItems.at(2)->SetBounds(FloatRectangle(itemWidth[0] + itemWidth[1], vmargin, itemWidth[2], segmentedItemHeight));
8727 __pItems.at(3)->SetBounds(FloatRectangle(itemWidth[0] + itemWidth[1] + itemWidth[2], vmargin, itemWidth[3], segmentedItemHeight));
8729 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize); // 24
8730 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8733 for (int i = 4; i < __itemCount ; i++)
8735 itemWidth[i] = itemWidth[0];
8737 __pItems.at(i)->SetBounds(FloatRectangle(__pItems.at(i-1)->GetBoundsF().x + itemWidth[i], vmargin, itemWidth[i], segmentedItemHeight));
8740 for (int i = 0; i < __itemCount ; i++)
8742 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8743 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8745 if (__pItems.at(i)->GetChildCount() != 0)
8747 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8749 if (existingBadgeIcon)
8751 existingBadgeIcon->SetPosition(FloatPoint(__pItems.at(i)->GetSizeF().width - existingBadgeIcon->GetSizeF().width, 0));
8752 existingBadgeIcon = null;
8756 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8763 _Toolbar::RearrangeButtonItems(void)
8765 float itemHeight = 0.0f;
8766 float sideMargin = 0.0f;
8767 float itemButtonLeftGap = 0.0f;
8768 float itemButtonRightGap = 0.0f;
8769 float iconSize = 0.0f;
8770 float footerLeftMargin = 0.0f;
8771 float segmentedItemHeight = 0.0f;
8772 float headerLeftMargin = 0.0f;
8773 float blockWidth[__itemCount];
8774 float fontSize = 0.0f;
8775 float multilineFontSize = 0.0f;
8776 float dividerWidth = 0.0f;
8778 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_ICON_SIZE, GetOrientation(), iconSize);
8779 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
8780 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_BUTTON_STYLE_SIDE_MARGIN, GetOrientation(), sideMargin);
8781 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
8782 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), headerLeftMargin);
8783 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
8785 itemHeight = GetSizeF().height;
8787 if (__itemCount == 1)
8789 float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
8791 if (__style == TOOLBAR_TITLE) // item 1, HEADER_STYLE_TITLE_BUTTON
8793 if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])
8795 blockWidth[0] = __itemArea.width + headerLeftMargin;
8799 blockWidth[0] = GetSizeF().width;
8802 __pItems.at(0)->SetBounds(FloatRectangle(0, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8803 __pItems.at(0)->SetMargin(0.0f, 0.0f, 0.0f, 0.0f);
8807 if (__pButtonItems[LEFT_BUTTON])
8809 if (__pButtonItems[RIGHT_BUTTON])
8811 itemButtonLeftGap = footerLeftMargin;
8812 __itemArea.width -= ((footerLeftMargin + iconSize + itemButtonLeftGap) * 2);
8816 itemButtonLeftGap = footerLeftMargin;
8817 __itemArea.width -= (footerLeftMargin + iconSize + itemButtonLeftGap);
8822 if (__pButtonItems[RIGHT_BUTTON])
8824 itemButtonRightGap = footerLeftMargin;
8825 __itemArea.width -= (itemButtonRightGap + iconSize + footerLeftMargin);
8829 blockWidth[0] = __itemArea.width;
8831 if (__pButtonItems[LEFT_BUTTON])
8833 if (__pButtonItems[RIGHT_BUTTON])
8835 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth * 2, itemHeight));
8839 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8844 if (__pButtonItems[RIGHT_BUTTON])
8846 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8850 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8855 for (int i = 0; i < __itemCount; i++)
8857 if (__pItems.at(i)->GetChildCount() != 0)
8859 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8861 if (existingBadgeIcon)
8863 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8864 existingBadgeIcon = null;
8869 RealignItem(__pItems.at(0), textExtentSize_0);
8871 else if(__itemCount == 2)
8873 float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
8874 float textExtentSize_1 = __pItems.at(1)->GetTextExtentSizeF();
8876 if (__pButtonItems[LEFT_BUTTON])
8878 if (__pButtonItems[RIGHT_BUTTON])
8880 itemButtonLeftGap = footerLeftMargin;
8881 __itemArea.width -= ((footerLeftMargin + iconSize + itemButtonLeftGap) * 2);
8885 itemButtonLeftGap = footerLeftMargin;
8886 __itemArea.width -= (footerLeftMargin + iconSize + itemButtonLeftGap);
8891 if (__pButtonItems[RIGHT_BUTTON])
8893 itemButtonRightGap = footerLeftMargin;
8894 __itemArea.width -= (itemButtonRightGap + iconSize + footerLeftMargin);
8898 blockWidth[0] = blockWidth[1] = __itemArea.width / 2;
8900 if (__pButtonItems[LEFT_BUTTON])
8902 if (__pButtonItems[RIGHT_BUTTON])
8904 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8905 __pItems.at(1)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1] - dividerWidth, itemHeight));
8909 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8910 __pItems.at(1)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1] + 1, itemHeight));
8915 if (__pButtonItems[RIGHT_BUTTON])
8917 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8918 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1] - dividerWidth, itemHeight));
8922 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8923 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8927 for (int i = 0; i < __itemCount; i++)
8929 if (__pItems.at(i)->GetChildCount() != 0)
8931 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8933 if (existingBadgeIcon)
8935 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8936 existingBadgeIcon = null;
8941 RealignItem(__pItems.at(0), textExtentSize_0);
8942 RealignItem(__pItems.at(1), textExtentSize_1);
8944 else if (__itemCount == 3)
8946 if (__pButtonItems[LEFT_BUTTON])
8948 if (__pButtonItems[RIGHT_BUTTON])
8950 itemButtonLeftGap = footerLeftMargin;
8951 __itemArea.width -= ((footerLeftMargin + iconSize + itemButtonLeftGap) * 2);
8955 itemButtonLeftGap = footerLeftMargin;
8956 __itemArea.width -= (footerLeftMargin + iconSize + itemButtonLeftGap);
8961 if (__pButtonItems[RIGHT_BUTTON])
8963 itemButtonRightGap = footerLeftMargin;
8964 __itemArea.width -= (itemButtonRightGap + iconSize + footerLeftMargin);
8973 if (fmod(__itemArea.width, __itemCount) == 0)
8976 blockWidth[0] = blockWidth[1] = blockWidth[2] = __itemArea.width / __itemCount;
8980 width = __itemArea.width / __itemCount;
8981 blockWidth[0] = blockWidth[1] = blockWidth[2] = width;
8982 int balanceWidth = Math::Round((fmod(__itemArea.width, 3) + 0.00001f) * 10.0f);
8983 while (balanceWidth > 0)
8985 for (int i = 0; i < __itemCount; i++)
8987 if (balanceWidth > 0)
8989 blockWidth[i] += 0.1f;
8990 balanceWidth = balanceWidth - 1;
9000 if (__pButtonItems[LEFT_BUTTON])
9002 if (__pButtonItems[RIGHT_BUTTON])
9004 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
9005 __pItems.at(1)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9006 __pItems.at(2)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1],
9007 (GetSizeF().height - itemHeight) / 2, blockWidth[2] - dividerWidth, itemHeight));
9011 __pItems.at(0)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
9012 __pItems.at(1)->SetBounds(FloatRectangle(footerLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9013 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],
9014 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
9019 if (__pButtonItems[RIGHT_BUTTON])
9021 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
9022 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9023 __pItems.at(2)->SetBounds(FloatRectangle(__itemArea.width - blockWidth[2],
9024 (GetSizeF().height - itemHeight) / 2, blockWidth[2] - dividerWidth, itemHeight));
9028 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
9029 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9030 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],
9031 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
9035 for (int i = 0; i < 3; i++)
9037 __pItems.at(i)->SetBounds(CoordinateSystem::AlignToDevice(__pItems.at(i)->GetBoundsF()));
9041 for (int i = 0; i < __itemCount; i++)
9043 if (__pItems.at(i)->GetChildCount() != 0)
9045 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
9047 if (existingBadgeIcon)
9049 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
9050 existingBadgeIcon = null;
9054 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
9057 else if (__itemCount == 4)
9059 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = __itemArea.width / 4;
9061 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
9062 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9063 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1],
9064 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
9065 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2],
9066 (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
9068 for (int i = 0; i < __itemCount; i++)
9070 if (__pItems.at(i)->GetChildCount() != 0)
9072 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
9074 if (existingBadgeIcon)
9076 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
9077 existingBadgeIcon = null;
9081 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
9084 else if (__itemCount == 5)
9086 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = blockWidth[4] = __itemArea.width / 5;
9088 __pItems.at(0)->SetBounds(FloatRectangle(0.0f, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
9089 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0], (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
9090 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1],
9091 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
9092 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2],
9093 (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
9094 __pItems.at(4)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2] + blockWidth[3],
9095 (GetSizeF().height - itemHeight) / 2, blockWidth[4], itemHeight));
9097 for (int i = 0; i < __itemCount; i++)
9099 if (__pItems.at(i)->GetChildCount() != 0)
9101 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
9103 if (existingBadgeIcon)
9105 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
9106 existingBadgeIcon = null;
9110 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
9114 if (__style == TOOLBAR_TITLE) // item 1, HEADER_STYLE_TITLE_BUTTON
9116 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
9120 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_FONT_SIZE, GetOrientation(), fontSize); //32
9123 for (int i = 0; i < __itemCount; i++)
9125 if (__style == TOOLBAR_ICON_TEXT && (__pItems.at(i)->GetBitmap(_BUTTON_STATUS_NORMAL) || __pItems.at(i)->GetBitmap(_BUTTON_STATUS_PRESSED)))
9127 if (__itemCount == 5)
9129 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5_WITH_ICON, GetOrientation(), multilineFontSize);//20
9133 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3_WITH_ICON, GetOrientation(), multilineFontSize);//24
9138 if (__itemCount == 5)
9140 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5, GetOrientation(), multilineFontSize);//24
9144 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3, GetOrientation(), multilineFontSize);//26
9148 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
9149 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
9156 _Toolbar::SetAnimation(ToolbarAnimationPosition animationPos)
9158 SysTryReturnResult(NID_UI_CTRL, (0 <= animationPos && animationPos < 3), E_INVALID_ARG,
9159 "[E_INVALID_ARG] The animationPos is invalid.");
9161 if (__pAnimation[animationPos])
9163 if (__pAnimation[animationPos]->GetStatus() == ANIMATION_PLAYING)
9169 if (__pAnimationFrameList[animationPos])
9171 __pAnimationFrameList[animationPos]->RemoveAll(true);
9173 delete __pAnimationFrameList[animationPos];
9174 __pAnimationFrameList[animationPos] = null;
9177 result r = GET_ANIMATION_CONFIG_N(HEADER::PROCESSING_ANIMATION, __pAnimationFrameList[animationPos]);
9178 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] Couldn't get an animationframe.");
9180 delete __pAnimation[animationPos];
9181 __pAnimation[animationPos] = null;
9183 __pAnimation[animationPos] = _Animation::CreateAnimationN();
9185 float processingAnimationIconSize = 0.0f;
9187 GET_SHAPE_CONFIG(HEADER::PROCESSING_ANIMATION_ICON_SIZE, GetOrientation(), processingAnimationIconSize);
9189 if (__pAnimation[animationPos])
9191 __pAnimation[animationPos]->SetSize(FloatDimension(processingAnimationIconSize, processingAnimationIconSize));
9193 if (__pAnimationFrameList[animationPos])
9195 __pAnimation[animationPos]->SetAnimationFrames(*__pAnimationFrameList[animationPos]);
9196 __pAnimation[animationPos]->SetImageCount(__pAnimationFrameList[animationPos]->GetCount());
9197 __pAnimation[animationPos]->SetRepeatCount(100);
9198 __pAnimation[animationPos]->AddAnimationEventListener(*this);
9201 if (animationPos == TOOLBAR_ANIMATION_POSITION_TITLE)
9203 AttachChild(*__pAnimation[animationPos]);
9205 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT)
9207 __pButtonItems[LEFT_BUTTON]->AttachChild(*__pAnimation[animationPos]);
9209 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT,
9210 (__pButtonItems[LEFT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
9211 (__pButtonItems[LEFT_BUTTON]->GetSizeF().height - processingAnimationIconSize) / 2);
9213 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT)
9215 __pButtonItems[RIGHT_BUTTON]->AttachChild(*__pAnimation[animationPos]);
9217 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT,
9218 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
9219 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().height - processingAnimationIconSize) / 2);
9221 _AccessibilityContainer* pContainer = __pAnimation[animationPos]->GetAccessibilityContainer();
9224 pContainer->Activate(false);
9232 _Toolbar::SetColorReplacedBitmap(_Button* pButton, const _ButtonStatus status,
9233 const Color& color, const Bitmap* pBitmap)
9235 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_ARG, "[E_INVALID_ARG] The button pointer is null.");
9236 SysTryReturnResult(NID_UI_CTRL, pBitmap, E_INVALID_ARG, "[E_INVALID_ARG] The bitmap pointer is null.");
9238 Bitmap* __pColorReplacedBitmap = null;
9240 __pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBitmap, Color::GetColor(COLOR_ID_MAGENTA), color);
9242 if (__pColorReplacedBitmap)
9244 if (color.GetAlpha() != 0xFF)
9246 __pColorReplacedBitmap->SetAlphaConstant(color.GetAlpha());
9249 pButton->SetBackgroundBitmap(status, *__pColorReplacedBitmap);
9250 delete __pColorReplacedBitmap;
9257 _Toolbar::SetPropertyColor(const Variant& color)
9259 result r = E_SUCCESS;
9261 _Control::SetBackgroundColor(color.ToColor());
9267 _Toolbar::GetPropertyColor(void) const
9269 return Variant(_Control::GetBackgroundColor());
9273 _Toolbar::SetPropertyDescriptionText(const Variant& text)
9275 __descriptionText = text.ToString();
9277 result r = E_SUCCESS;
9279 r = __pToolbarPresenter->SetDescriptionText(__descriptionText);
9281 if(__pTitleTextElement)
9285 __pTitleTextElement->SetLabel(__titleText);
9289 __pTitleTextElement->SetLabel(__titleText + L", " + __descriptionText);
9297 _Toolbar::GetPropertyDescriptionText(void) const
9299 return Variant(__descriptionText);
9303 _Toolbar::SetPropertyDescriptionTextColor(const Variant& color)
9305 __descriptionTextColor = color.ToColor();
9311 _Toolbar::GetPropertyDescriptionTextColor(void) const
9313 return Variant(__descriptionTextColor);
9317 _Toolbar::SetPropertyTitleText(const Variant& text)
9319 __titleText = text.ToString();
9321 if(__pTitleTextElement)
9323 __pTitleTextElement->SetLabel(__titleText);
9330 _Toolbar::GetPropertyTitleText(void) const
9332 return Variant(__titleText);
9336 _Toolbar::SetPropertyTitleTextColor(const Variant& color)
9338 __titleTextColor = color.ToColor();
9344 _Toolbar::GetPropertyTitleTextColor(void) const
9346 return Variant(__titleTextColor);
9350 _Toolbar::SetPropertyDisabledButtonColor(const Variant& color)
9352 __buttonBackgroundColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9354 Bitmap* __pBaseBackgroundBitmap = null;
9356 if (__header == true)
9358 if (__transparent == true)
9360 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9364 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9369 if (__transparent == true)
9371 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9375 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9379 for (int i = 0; i < BUTTON_MAX; i++)
9381 if (__pButtonItems[i] != null)
9383 if (__pBaseBackgroundBitmap)
9385 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED], __pBaseBackgroundBitmap);
9390 delete __pBaseBackgroundBitmap;
9396 _Toolbar::GetPropertyDisabledButtonColor(void) const
9398 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
9402 _Toolbar::SetPropertyDisabledButtonTextColor(const Variant& color)
9404 __buttonTextColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9406 for (int i = 0; i < BUTTON_MAX; i++)
9408 if (__pButtonItems[i] != null)
9410 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
9418 _Toolbar::GetPropertyDisabledButtonTextColor(void) const
9420 return Variant(__buttonTextColor[_BUTTON_STATUS_DISABLED]);
9424 _Toolbar::SetPropertyHighlightedButtonColor(const Variant& color)
9426 __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9428 Bitmap* __pBaseBackgroundBitmap = null;
9430 if (__header == true)
9432 if (__transparent == true)
9434 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9438 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9443 if (__transparent == true)
9445 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9449 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9453 for (int i = 0; i < BUTTON_MAX; i++)
9455 if (__pButtonItems[i] != null)
9457 if (__pBaseBackgroundBitmap)
9459 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED], __pBaseBackgroundBitmap);
9464 delete __pBaseBackgroundBitmap;
9470 _Toolbar::GetPropertyHighlightedButtonColor(void) const
9472 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
9476 _Toolbar::SetPropertyHighlightedButtonTextColor(const Variant& color)
9478 __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9480 for (int i = 0; i < BUTTON_MAX; i++)
9482 if (__pButtonItems[i] != null)
9484 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9492 _Toolbar::GetPropertyHighlightedButtonTextColor(void) const
9494 return Variant(__buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9498 _Toolbar::SetPropertyNormalButtonColor(const Variant& color)
9500 __buttonBackgroundColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9502 Bitmap* __pBaseBackgroundBitmap = null;
9504 if (__header == true)
9506 if (__transparent == true)
9508 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9512 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9517 if (__transparent == true)
9519 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9523 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9527 for (int i = 0; i < BUTTON_MAX; i++)
9529 if (__pButtonItems[i] != null)
9531 if (__pBaseBackgroundBitmap)
9533 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL], __pBaseBackgroundBitmap);
9538 delete __pBaseBackgroundBitmap;
9544 _Toolbar::GetPropertyNormalButtonColor(void) const
9546 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
9550 _Toolbar::SetPropertyNormalButtonTextColor(const Variant& color)
9552 __buttonTextColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9554 for (int i = 0; i < BUTTON_MAX; i++)
9556 if (__pButtonItems[i] != null)
9558 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
9566 _Toolbar::GetPropertyNormalButtonTextColor(void) const
9568 return Variant(__buttonTextColor[_BUTTON_STATUS_NORMAL]);
9572 _Toolbar::SetPropertyPressedButtonColor(const Variant& color)
9574 __buttonBackgroundColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9576 Bitmap* __pBaseBackgroundBitmap = null;
9578 if (__header == true)
9580 if (__transparent == true)
9582 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9586 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9591 if (__transparent == true)
9593 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9597 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9601 for (int i = 0; i < BUTTON_MAX; i++)
9603 if (__pButtonItems[i] != null)
9605 if (__pBaseBackgroundBitmap)
9607 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED], __pBaseBackgroundBitmap);
9612 delete __pBaseBackgroundBitmap;
9618 _Toolbar::GetPropertyPressedButtonColor(void) const
9620 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
9624 _Toolbar::SetPropertyPressedButtonTextColor(const Variant& color)
9626 __buttonTextColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9628 for (int i = 0; i < BUTTON_MAX; i++)
9630 if (__pButtonItems[i] != null)
9632 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
9640 _Toolbar::GetPropertyPressedButtonTextColor(void) const
9642 return Variant(__buttonTextColor[_BUTTON_STATUS_PRESSED]);
9646 _Toolbar::SetPropertyDisabledItemColor(const Variant& color)
9648 __itemBackgroundColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9650 Bitmap* __pBaseBackgroundBitmap = null;
9652 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9654 if (__header == true)
9656 if (__transparent == true)
9658 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9662 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9667 if (__transparent == true)
9669 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9673 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9677 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9679 if (__header == true)
9681 if (__transparent == true)
9683 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9687 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9692 if (__transparent == true)
9694 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9698 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9702 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9704 if (__header == true)
9706 if (__transparent == true)
9708 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9712 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9717 if (__transparent == true)
9719 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9723 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9728 for (int i = 0; i < __itemCount; i++)
9730 if (__pItems.at(i) != null)
9732 if (__pBaseBackgroundBitmap)
9734 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED], __pBaseBackgroundBitmap);
9739 delete __pBaseBackgroundBitmap;
9745 _Toolbar::GetPropertyDisabledItemColor(void) const
9747 return Variant(__itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
9751 _Toolbar::SetPropertyDisabledItemTextColor(const Variant& color)
9753 __itemTextColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9755 for (int i = 0; i < __itemCount; i++)
9757 if (__pItems.at(i) != null)
9759 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
9767 _Toolbar::GetPropertyDisabledItemTextColor(void) const
9769 return Variant(__itemTextColor[_BUTTON_STATUS_DISABLED]);
9773 _Toolbar::SetPropertyHighlightedItemColor(const Variant& color)
9775 __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9777 Bitmap* __pBaseBackgroundBitmap = null;
9779 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9781 if (__header == true)
9783 if (__transparent == true)
9785 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9789 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9794 if (__transparent == true)
9796 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9800 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9804 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9806 if (__header == true)
9808 if (__transparent == true)
9810 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9814 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9819 if (__transparent == true)
9821 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9825 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9829 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9831 if (__header == true)
9833 if (__transparent == true)
9835 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9839 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9844 if (__transparent == true)
9846 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9850 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9855 for (int i = 0; i < __itemCount; i++)
9857 if (__pItems.at(i) != null)
9859 if (__pBaseBackgroundBitmap)
9861 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED], __pBaseBackgroundBitmap);
9866 delete __pBaseBackgroundBitmap;
9872 _Toolbar::GetPropertyHighlightedItemColor(void) const
9874 return Variant(__itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
9878 _Toolbar::SetPropertyHighlightedItemTextColor(const Variant& color)
9880 __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9882 for (int i = 0; i < __itemCount; i++)
9884 if (__pItems.at(i) != null)
9886 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9894 _Toolbar::GetPropertyHighlightedItemTextColor(void) const
9896 return Variant(__itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9900 _Toolbar::SetPropertyNormalItemColor(const Variant& color)
9902 __itemBackgroundColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9904 Bitmap* __pBaseBackgroundBitmap = null;
9906 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9908 if (__header == true)
9910 if (__transparent == true)
9912 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9916 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9921 if (__transparent == true)
9923 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9927 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9931 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9933 if (__header == true)
9935 if (__transparent == true)
9937 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9941 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9946 if (__transparent == true)
9948 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9952 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9956 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9958 if (__header == true)
9960 if (__transparent == true)
9962 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9966 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9971 if (__transparent == true)
9973 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9977 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9982 for (int i = 0; i < __itemCount; i++)
9984 if (__pItems.at(i) != null)
9986 if (__pBaseBackgroundBitmap)
9988 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL], __pBaseBackgroundBitmap);
9993 delete __pBaseBackgroundBitmap;
9999 _Toolbar::GetPropertyNormalItemColor(void) const
10001 return Variant(__itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
10005 _Toolbar::SetPropertyNormalItemTextColor(const Variant& color)
10007 __itemTextColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
10009 for (int i = 0; i < __itemCount; i++)
10011 if (__pItems.at(i) != null)
10013 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
10021 _Toolbar::GetPropertyNormalItemTextColor(void) const
10023 return Variant(__itemTextColor[_BUTTON_STATUS_NORMAL]);
10027 _Toolbar::SetPropertyPressedItemColor(const Variant& color)
10029 __itemBackgroundColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
10031 Bitmap* __pBaseBackgroundBitmap = null;
10033 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
10035 if (__header == true)
10037 if (__transparent == true)
10039 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10043 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10048 if (__transparent == true)
10050 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10054 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10058 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
10060 if (__header == true)
10062 if (__transparent == true)
10064 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10068 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10073 if (__transparent == true)
10075 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10079 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10083 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
10085 if (__header == true)
10087 if (__transparent == true)
10089 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10093 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10098 if (__transparent == true)
10100 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10104 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10109 for (int i = 0; i < __itemCount; i++)
10111 if (__pItems.at(i) != null)
10113 if (__pBaseBackgroundBitmap)
10115 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED], __pBaseBackgroundBitmap);
10120 delete __pBaseBackgroundBitmap;
10126 _Toolbar::GetPropertyPressedItemColor(void) const
10128 return Variant(__itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
10132 _Toolbar::SetPropertyPressedItemTextColor(const Variant& color)
10134 __itemTextColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
10136 for (int i = 0; i < __itemCount; i++)
10138 if (__pItems.at(i) != null)
10140 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
10148 _Toolbar::GetPropertyPressedItemTextColor(void) const
10150 return Variant(__itemTextColor[_BUTTON_STATUS_PRESSED]);
10154 _Toolbar::SetPropertySelectedItemColor(const Variant& color)
10156 __itemBackgroundColor[_BUTTON_STATUS_SELECTED] = color.ToColor();
10158 Bitmap* __pBaseBackgroundBitmap = null;
10160 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
10162 if (__header == true)
10164 if (__transparent == true)
10166 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10170 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10175 if (__transparent == true)
10177 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10181 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10185 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
10187 if (__header == true)
10189 if (__transparent == true)
10191 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10195 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10200 if (__transparent == true)
10202 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10206 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10210 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
10212 if (__header == true)
10214 if (__transparent == true)
10216 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10220 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10225 if (__transparent == true)
10227 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10231 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
10236 for (int i = 0; i < __itemCount; i++)
10238 if (__pItems.at(i) != null)
10240 if (__pBaseBackgroundBitmap)
10242 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED], __pBaseBackgroundBitmap);
10247 delete __pBaseBackgroundBitmap;
10253 _Toolbar::GetPropertySelectedItemColor(void) const
10255 return Variant(__itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
10259 _Toolbar::SetPropertySelectedItemTextColor(const Variant& color)
10261 __itemTextColor[_BUTTON_STATUS_SELECTED] = color.ToColor();
10263 for (int i = 0; i < __itemCount; i++)
10265 if (__pItems.at(i) != null)
10267 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
10275 _Toolbar::GetPropertySelectedItemTextColor(void) const
10277 return Variant(__itemTextColor[_BUTTON_STATUS_SELECTED]);
10281 _Toolbar::GetButtonBounds(ToolbarButton position) const
10283 return _CoordinateSystemUtils::ConvertToInteger(GetButtonBoundsF(position));
10287 _Toolbar::GetButtonBoundsF(ToolbarButton position) const
10289 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
10295 _Toolbar::SetTitleBadgeIcon(const Bitmap* pBadgeIcon)
10297 if (pBadgeIcon == null)
10302 if (__pTitleBadgeIcon)
10304 DetachChild(*__pTitleBadgeIcon);
10306 delete __pTitleBadgeIcon;
10307 __pTitleBadgeIcon = null;
10310 float height = 0.0f;
10311 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
10313 __pTitleBadgeIcon = _Label::CreateLabelN();
10315 if (__pTitleBadgeIcon)
10317 __pTitleBadgeIcon->SetBounds(FloatRectangle(0.0f, 0.0f, height, height));
10318 __pTitleBadgeIcon->SetBackgroundBitmap(*pBadgeIcon);
10320 AttachChild(*__pTitleBadgeIcon);
10321 SetChildAlwaysOnTop(*__pTitleBadgeIcon);
10328 _Toolbar::SetTitleNumberedBadgeIcon(int number)
10330 SysTryReturnResult(NID_UI_CTRL, (number >= 0 && number < 100000), E_INVALID_ARG,
10331 "[E_INVALID_ARG] The number is out of bounds.");
10333 if (__pTitleBadgeIcon)
10335 DetachChild(*__pTitleBadgeIcon);
10337 delete __pTitleBadgeIcon;
10338 __pTitleBadgeIcon = null;
10343 __pTitleBadgeIcon = _Label::CreateLabelN();
10345 SysTryReturnResult(NID_UI_CTRL, __pTitleBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] The badge icon instance isn't constructed.");
10347 Bitmap* pNumberedBadgeIconBitmap = null;
10348 Bitmap* pNumberedBadgeIconEffectBitmap = null;
10349 Bitmap* pColorReplacedBitmap = null;
10350 Color badgeIconBgNormalColor;
10351 Color badgeIconTextNormalColor;
10352 float sideMargin = 0.0f;
10354 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
10355 GET_SHAPE_CONFIG(HEADER::BADGE_SIDE_MARGIN, GetOrientation(), sideMargin);
10357 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
10358 if (customTheme == false)
10360 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
10363 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
10364 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
10366 if (pNumberedBadgeIconBitmap)
10368 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
10369 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
10371 __pTitleBadgeIcon->SetBackgroundBitmap(*pColorReplacedBitmap);
10373 delete pColorReplacedBitmap;
10374 delete pNumberedBadgeIconBitmap;
10377 if (pNumberedBadgeIconEffectBitmap)
10379 __pTitleBadgeIcon->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
10381 delete pNumberedBadgeIconEffectBitmap;
10384 __pTitleBadgeIcon->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
10385 __pTitleBadgeIcon->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
10386 __pTitleBadgeIcon->SetTextColor(badgeIconTextNormalColor);
10387 __pTitleBadgeIcon->SetMargin(sideMargin, 0.0f, sideMargin, 0.0f);
10389 float fontSize = 0.0f;
10390 float height = 0.0f;
10391 float width = 0.0f;
10392 float minWidth = 0.0f;
10394 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE, GetOrientation(), fontSize);
10395 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
10396 GET_SHAPE_CONFIG(HEADER::BADGE_MIN_WIDTH, GetOrientation(), minWidth);
10398 __pTitleBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
10400 Integer tempNumber(number);
10401 __pTitleBadgeIcon->SetText(tempNumber.ToString());
10403 width = __pTitleBadgeIcon->GetTextExtentSizeF();
10405 if (width < minWidth)
10410 width += sideMargin * 2;
10412 __pTitleBadgeIcon->SetBounds(FloatRectangle(0.0f, 0.0f, width, height));
10414 AttachChild(*__pTitleBadgeIcon);
10415 SetChildAlwaysOnTop(*__pTitleBadgeIcon);
10421 }}} // Tizen::Ui::Controls