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;
45 class FooterItemAccessibilityListener
46 : public _IAccessibilityListener
49 FooterItemAccessibilityListener(const Tizen::Ui::Controls::_Toolbar* toolbar)
52 __pToolbar = const_cast<Tizen::Ui::Controls::_Toolbar*>(toolbar);
54 virtual ~FooterItemAccessibilityListener(void){}
55 virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
56 virtual bool OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
57 virtual bool OnAccessibilityReadingElement(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
58 virtual bool OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
59 virtual bool OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element)
61 FloatRectangle rect = element.GetAbsoluteBounds();
62 Dimension screen = _ResourceManager::GetInstance()->GetLogicalScreenSizen();
63 int screenW = _ControlManager::GetInstance()->GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT ? screen.width : screen.height;
66 __pToolbar->GetPresenter()->AdjustItemPositionX(-(rect.x));
67 __pToolbar->Invalidate(true);
69 else if(rect.x + rect.width > screenW)
72 if(rect.x + rect.width > screenW)
74 adjustX = -(rect.x + rect.width - screenW);
80 __pToolbar->GetPresenter()->AdjustItemPositionX(adjustX);
81 __pToolbar->Invalidate(true);
85 virtual bool OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
86 virtual bool OnAccessibilityValueIncreased(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
87 virtual bool OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element){return false;}
88 virtual bool OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element)
90 _AccessibilityManager::GetInstance()->RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM_OF_CONTENTS);
94 Tizen::Ui::Controls::_Toolbar* __pToolbar;
98 namespace Tizen { namespace Ui { namespace Controls
101 IMPLEMENT_PROPERTY(_Toolbar);
103 _Toolbar::_Toolbar(void)
105 , __pToolbarPresenter(null)
106 , __pActionEventListener(null)
107 , __pBackEventListener(null)
108 , __pMenuEventListener(null)
109 , __pLongPressGesture(null)
110 , __pFlickGesture(null)
111 , __pToolbarBackgroundBitmap(null)
112 , __pToolbarBackgroundEffectBitmap(null)
115 , __descriptionText(L"")
116 , __titleTextAlignment(ALIGNMENT_LEFT)
118 , __pTitleBadgeIcon(null)
122 , __style(TOOLBAR_TITLE)
123 , __transparent(false)
124 , __isUserBackgroundBitmap(false)
125 , __highlightedItemIndex(0)
126 , __lastHighlightedItemIndex(0)
127 , __highlighted(false)
128 , __titleTextArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
129 , __itemArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
130 , __pTitleTextElement(null)
131 , __pAccessibilityListener(null)
133 _AccessibilityContainer* pContainer = null;
135 __pButtonItems[LEFT_BUTTON] = null;
136 __pButtonItems[RIGHT_BUTTON] = null;
137 __pButtonItems[MIDDLE_BUTTON] = null;
139 for (int i = 0; i < TOOLBAR_ANIMATION_POSITION_MAX; i++)
141 __pAnimation[i] = null;
142 __pAnimationFrameList[i] = null;
147 if (__header == true)
149 GET_COLOR_CONFIG(HEADER::BG_NORMAL, bgColor);
153 GET_COLOR_CONFIG(FOOTER::BG_NORMAL, bgColor);
158 _Control::SetResizable(false);
160 _Control::SetMovable(false);
162 _ToolbarPresenter* pPresenter = new (std::nothrow) _ToolbarPresenter();
164 SetPresenter(*pPresenter);
166 pPresenter->Construct(*this);
168 pPresenter->Install();
170 pContainer = GetAccessibilityContainer();
174 pContainer->Activate(true);
177 for (int i = 0; i < TOOLBAR_ITEM_MAX_STATE_COUNT; i++)
179 __isItemBgColorSetByUser[i] = false;
180 __isItemTextColorSetByUser[i] = false;
183 for (int i = 0; i < TOOLBAR_BUTTON_MAX_STATE_COUNT; i++)
185 __isButtonBgColorSetByUser[i] = false;
186 __isButtonTextColorSetByUser[i] = false;
188 __pAccessibilityListener = new (std::nothrow) FooterItemAccessibilityListener(this);
190 SetFocusNavigateEnabled(false);
193 _Toolbar::~_Toolbar(void)
195 RemoveAllItems(); //__pMoreButton would be deleted in this function
198 if (__pToolbarPresenter)
200 delete __pToolbarPresenter;
201 __pToolbarPresenter = null;
204 if (__pActionEventListener)
206 __pActionEventListener = null;
209 if (__pBackEventListener)
211 __pBackEventListener = null;
214 if (__pMenuEventListener)
216 __pMenuEventListener = null;
219 if (__pLongPressGesture != null)
221 __pLongPressGesture->RemoveGestureListener(*this);
222 RemoveGestureDetector(*__pLongPressGesture);
224 delete __pLongPressGesture;
225 __pLongPressGesture = null;
228 if (__pFlickGesture != null)
230 __pFlickGesture->RemoveGestureListener(*this);
231 RemoveGestureDetector(*__pFlickGesture);
233 delete __pFlickGesture;
234 __pFlickGesture = null;
237 if (__pToolbarBackgroundBitmap)
239 delete __pToolbarBackgroundBitmap;
240 __pToolbarBackgroundBitmap = null;
243 if (__pToolbarBackgroundEffectBitmap)
245 delete __pToolbarBackgroundEffectBitmap;
246 __pToolbarBackgroundEffectBitmap = null;
255 for (int i = 0; i < TOOLBAR_ANIMATION_POSITION_MAX; i++)
257 if (__pAnimationFrameList[i])
259 __pAnimationFrameList[i]->RemoveAll(true);
261 delete __pAnimationFrameList[i];
262 __pAnimationFrameList[i] = null;
266 if (__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE])
268 DetachChild(*__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE]);
269 delete __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE];
270 __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE] = null;
273 if (__pTitleBadgeIcon)
275 DetachChild(*__pTitleBadgeIcon);
277 delete __pTitleBadgeIcon;
278 __pTitleBadgeIcon = null;
281 if (__pTitleTextElement)
283 __pTitleTextElement->Activate(false);
284 __pTitleTextElement = null;
287 if(__pAccessibilityListener)
289 delete __pAccessibilityListener;
290 __pAccessibilityListener = null;
296 _Toolbar::CreateToolbarN(bool header)
298 _Toolbar* pToolbar = new (std::nothrow) _Toolbar();
299 SysTryReturn(NID_UI_CTRL, pToolbar, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
301 pToolbar->Initialize(header);
302 pToolbar->AcquireHandle();
304 pToolbar->SetTouchPressThreshold(SENSITIVE);
310 _Toolbar::Initialize(bool header)
318 _Toolbar::IsHeader(void)
324 _Toolbar::InitToolbarColor(void)
326 if (__header == true)
328 if (__transparent == true) // header && transparent
330 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_TITLE_TEXT_NORMAL, __transTitleTextColor);
331 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_DESCRIPTION_TEXT_NORMAL, __transDescriptionTextColor);
333 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
335 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
336 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
337 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
338 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
339 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
341 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
342 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
343 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
344 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
345 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
347 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
349 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
350 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
351 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
352 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
353 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
355 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
356 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
357 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
358 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
359 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
361 else // TOOLBAR_TITLE, TOOLBAR_HEADER_SEGMENTED, TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
363 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
364 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
365 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
366 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
367 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
369 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
370 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
371 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
372 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
373 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
376 __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
377 __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
378 __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
379 __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
380 __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED].SetAlpha(0x00);
382 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
383 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
384 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
385 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
387 __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
388 __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
389 __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
390 __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
392 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
393 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
394 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
395 GET_COLOR_CONFIG(HEADER::BUTTON_TRANSLUCENT_TEXT_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
397 else // header && not transparent
399 GET_COLOR_CONFIG(HEADER::TITLE_TEXT_NORMAL, __titleTextColor);
400 GET_COLOR_CONFIG(HEADER::DESCRIPTION_TEXT_NORMAL, __descriptionTextColor);
402 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
404 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
406 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
408 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
410 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
412 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
414 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
416 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
418 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
420 //if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
422 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
425 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
427 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
429 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
431 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
433 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
435 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
437 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
439 GET_COLOR_CONFIG(HEADER::BUTTON_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
441 //if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
443 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
446 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) // header
448 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
450 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
452 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
454 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
456 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
458 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
460 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
462 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
464 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
466 GET_COLOR_CONFIG(HEADER::TAB_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
469 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
471 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
473 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
475 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
477 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
479 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
481 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
483 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
485 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
487 GET_COLOR_CONFIG(HEADER::TAB_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
490 else // TOOLBAR_TITLE, TOOLBAR_HEADER_SEGMENTED, TOOLBAR_HEADER_SEGMENTED_WITH_TITLE,
492 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
494 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
496 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
498 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
500 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
502 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
504 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
506 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
508 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
510 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
513 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
515 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
517 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
519 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
521 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
523 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
525 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
527 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
529 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
531 GET_COLOR_CONFIG(HEADER::SEGMENTED_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
535 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL])
537 GET_COLOR_CONFIG(HEADER::BUTTON_BG_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
539 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED])
541 GET_COLOR_CONFIG(HEADER::BUTTON_BG_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
543 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED])
545 GET_COLOR_CONFIG(HEADER::BUTTON_BG_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
547 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
549 GET_COLOR_CONFIG(HEADER::BUTTON_BG_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
552 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL])
554 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
556 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED])
558 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
560 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED])
562 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
564 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
566 GET_COLOR_CONFIG(HEADER::BUTTON_TEXT_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
572 if (__transparent == true) // footer && transparent
574 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
576 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
577 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
578 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
579 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
580 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
582 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
583 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
584 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
585 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
586 //GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
588 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
590 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
591 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
592 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
593 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
594 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
596 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
597 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
598 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
599 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
600 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
602 else // TOOLBAR_SEGMENTED
604 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
605 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
606 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
607 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
608 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
610 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
611 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
612 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
613 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
614 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_TEXT_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
617 __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
618 __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
619 __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
620 __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
621 __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED].SetAlpha(0x00);
624 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
625 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
626 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
627 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
629 __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL].SetAlpha(0x00);
630 __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED].SetAlpha(0x00);
631 __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED].SetAlpha(0x7F);
632 __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED].SetAlpha(0xFF);
634 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
635 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
636 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
637 GET_COLOR_CONFIG(FOOTER::BUTTON_TRANSLUCENT_TEXT_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
639 else // footer && not transparent
641 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
643 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
645 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
647 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
649 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
651 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
653 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
655 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
657 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
659 //if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
661 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
664 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
666 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
668 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
670 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
672 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
674 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
676 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
678 GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
680 //if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
682 // GET_COLOR_CONFIG(FOOTER::BUTTON_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
685 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
687 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
689 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
691 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
693 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
695 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
697 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
699 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
701 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
703 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
705 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
708 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
710 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
712 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
714 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
716 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
718 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
720 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
722 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
724 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
726 GET_COLOR_CONFIG(FOOTER::TAB_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
729 else // TOOLBAR_SEGMENTED
731 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL])
733 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
735 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED])
737 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
739 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED])
741 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
743 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
745 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
747 if (!__isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED])
749 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_BG_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
752 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL])
754 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
756 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED])
758 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
760 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED])
762 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
764 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
766 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
768 if (!__isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED])
770 GET_COLOR_CONFIG(FOOTER::SEGMENTED_ITEM_TEXT_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
774 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL])
776 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
778 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED])
780 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
782 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED])
784 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
786 if (!__isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
788 GET_COLOR_CONFIG(FOOTER::BUTTON_BG_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
791 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL])
793 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
795 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED])
797 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
799 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED])
801 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
803 if (!__isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED])
805 GET_COLOR_CONFIG(FOOTER::BUTTON_TEXT_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
814 _Toolbar::InitializeLongPressGesture(void)
816 result r = E_SUCCESS;
818 __pLongPressGesture = new (std::nothrow) _TouchLongPressGestureDetector();
819 SysTryReturn(NID_UI_CTRL, __pLongPressGesture, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Failed to create touch long press gesture.");
821 __pLongPressGesture->SetDuration(500);
823 r = AddGestureDetector(*__pLongPressGesture);
824 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture detector", GetErrorMessage(r));
826 r = __pLongPressGesture->AddGestureListener(*(dynamic_cast<_ITouchLongPressGestureEventListener*>(this)));
827 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture listener", GetErrorMessage(r));
833 _Toolbar::InitializeFlickGesture(void)
835 result r = E_SUCCESS;
837 __pFlickGesture = new (std::nothrow) _TouchFlickGestureDetector();
838 SysTryReturn(NID_UI_CTRL, __pFlickGesture, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Failed to create flick gesture.");
840 r = AddGestureDetector(*__pFlickGesture);
841 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture detector", GetErrorMessage(r));
843 r = __pFlickGesture->AddGestureListener(*(dynamic_cast<_ITouchFlickGestureEventListener*>(this)));
844 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add gesture listener", GetErrorMessage(r));
850 _Toolbar::Construct(void)
852 result r = E_SUCCESS;
858 _Toolbar::AddItem(_Button* pButton)
860 SysTryReturnResult(NID_UI_CTRL, (__itemCount < TAB_ITEM_MAX), E_MAX_EXCEEDED,
861 "[E_MAX_EXCEEDED] The number of items have exceeded the maximum limit.");
863 if (__pActionEventListener != null)
865 pButton->AddActionEventListener(*__pActionEventListener);
868 __pItems.push_back(pButton);
871 SetFocusNavigateEnabled(true);
873 AttachChild(*pButton);
875 ApplyUserGUI(TOOLBAR_ITEM, pButton);
879 AddAccessibilityElement(pButton);
885 _Toolbar::GetBackgroundBitmap(void) const
887 result r = E_SUCCESS;
889 _Toolbar* pToolbar = const_cast<_Toolbar*>(this);
891 if (!pToolbar->__pToolbarBackgroundBitmap)
895 r = GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundBitmap);
896 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
900 r = GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundBitmap);
901 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
905 return pToolbar->__pToolbarBackgroundBitmap;
909 _Toolbar::GetBackgroundEffectBitmap(void) const
911 result r = E_SUCCESS;
913 _Toolbar* pToolbar = const_cast<_Toolbar*>(this);
915 if (!pToolbar->__pToolbarBackgroundEffectBitmap)
919 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
920 if (customTheme == false)
922 r = GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundEffectBitmap);
923 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
928 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
929 if (customTheme == false)
931 r = GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pToolbar->__pToolbarBackgroundEffectBitmap);
932 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
937 return pToolbar->__pToolbarBackgroundEffectBitmap;
941 _Toolbar::GetButton(ToolbarButton position) const
943 SysTryReturn(NID_UI_CTRL, (position >= LEFT_BUTTON && position < BUTTON_MAX), null, E_OUT_OF_RANGE,
944 ("[E_OUT_OF_RANGE] The position is out of range."));
946 return __pButtonItems[position];
950 _Toolbar::GetTitleBadgeIcon(void) const
952 return __pTitleBadgeIcon;
956 _Toolbar::GetButtonColor(_ButtonStatus status) const
962 case _BUTTON_STATUS_NORMAL:
963 color = GetProperty(L"normalButtonColor");
965 case _BUTTON_STATUS_DISABLED:
966 color = GetProperty(L"disabledButtonColor");
968 case _BUTTON_STATUS_PRESSED:
969 color = GetProperty(L"pressedButtonColor");
971 case _BUTTON_STATUS_HIGHLIGHTED:
972 color = GetProperty(L"highlightedButtonColor");
975 color = GetProperty(L"normalButtonColor");
979 return color.ToColor();
983 _Toolbar::GetButtonStatus(ToolbarButton position) const
985 return __pButtonItems[position]->GetButtonStatus();
989 _Toolbar::GetButtonTextColor(_ButtonStatus status) const
995 case _BUTTON_STATUS_NORMAL:
996 color = GetProperty(L"normalButtonTextColor");
998 case _BUTTON_STATUS_DISABLED:
999 color = GetProperty(L"disabledButtonTextColor");
1001 case _BUTTON_STATUS_PRESSED:
1002 color = GetProperty(L"pressedButtonTextColor");
1004 case _BUTTON_STATUS_HIGHLIGHTED:
1005 color = GetProperty(L"highlightedButtonTextColor");
1008 color = GetProperty(L"normalButtonTextColor");
1012 return color.ToColor();
1016 _Toolbar::GetColor(void) const
1018 Variant color = GetProperty(L"color");
1020 return color.ToColor();
1024 _Toolbar::GetDescriptionText(void) const
1026 Variant text = GetProperty(L"descriptionText");
1028 return text.ToString();
1032 _Toolbar::GetDescriptionTextColor(void) const
1034 Variant color = GetProperty(L"descriptionTextColor");
1036 return color.ToColor();
1040 _Toolbar::GetFirstEnabledItemIndex(void) const
1042 int firstEnabledItemIndex = -1;
1044 for (int i = 0; i < __itemCount; i++)
1046 if(__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
1048 firstEnabledItemIndex = i;
1053 return firstEnabledItemIndex;
1057 _Toolbar::GetItem(int itemIndex) const
1059 if (__pItems.at(itemIndex) == null)
1061 SysLogException(NID_UI_CTRL, E_SYSTEM, "[E_SYSTEM] Unable to get item.");
1065 return __pItems.at(itemIndex);
1069 _Toolbar::GetItemColor(_ButtonStatus status) const
1075 case _BUTTON_STATUS_NORMAL:
1076 color = GetProperty(L"normalItemColor");
1078 case _BUTTON_STATUS_DISABLED:
1079 color = GetProperty(L"disabledItemColor");
1081 case _BUTTON_STATUS_PRESSED:
1082 color = GetProperty(L"pressedItemColor");
1084 case _BUTTON_STATUS_HIGHLIGHTED:
1085 color = GetProperty(L"highlightedItemColor");
1087 case _BUTTON_STATUS_SELECTED:
1088 color = GetProperty(L"selectedItemColor");
1091 color = GetProperty(L"normalItemColor");
1095 return color.ToColor();
1099 _Toolbar::GetItemCount(void) const
1105 _Toolbar::GetItemIndexFromPosition(const FloatPoint& point) const
1107 if (__itemCount <= 0)
1112 for (int i = 0; i < __itemCount; i++)
1114 FloatRectangle bounds = __pItems.at(i)->GetBoundsF();
1116 if (bounds.Contains(point) && __pItems.at(i)->GetVisibleState() == true)
1126 _Toolbar::GetItemStatus(int itemIndex, _ButtonStatus& status) const
1128 status = _BUTTON_STATUS_NORMAL;
1130 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex <= __itemCount), E_OUT_OF_RANGE,
1131 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
1133 status = __pItems.at(itemIndex)->GetButtonStatus();
1139 _Toolbar::GetItemTextColor(_ButtonStatus status) const
1145 case _BUTTON_STATUS_NORMAL:
1146 color = GetProperty(L"normalItemTextColor");
1148 case _BUTTON_STATUS_DISABLED:
1149 color = GetProperty(L"disabledItemTextColor");
1151 case _BUTTON_STATUS_PRESSED:
1152 color = GetProperty(L"pressedItemTextColor");
1154 case _BUTTON_STATUS_HIGHLIGHTED:
1155 color = GetProperty(L"highlightedItemTextColor");
1157 case _BUTTON_STATUS_SELECTED:
1158 color = GetProperty(L"selectedItemTextColor");
1161 color = GetProperty(L"normalItemTextColor");
1165 return color.ToColor();
1169 _Toolbar::GetSelectedItemIndex(void) const
1171 return __pToolbarPresenter->GetSelectedItemIndex();
1175 _Toolbar::GetStyle(void) const
1177 return ToolbarStyle(__style);
1181 _Toolbar::GetTitleIcon(void) const
1183 return __pTitleIcon;
1187 _Toolbar::GetTitleText(void) const
1189 Variant text = GetProperty(L"titleText");
1190 return text.ToString();
1194 _Toolbar::GetTitleTextColor(void) const
1196 Variant color = GetProperty(L"titleTextColor");
1197 return color.ToColor();
1201 _Toolbar::GetTitleTextHorizontalAlignment(void) const
1203 return __titleTextAlignment;
1207 _Toolbar::IsInitialDraw(void) const
1209 return __pToolbarPresenter->IsInitialDraw();
1213 _Toolbar::IsTabEditModeEnabled(void) const
1215 return __pToolbarPresenter->IsTabEditModeEnabled();
1219 _Toolbar::IsTransparent(void) const
1221 return __transparent;
1226 _Toolbar::GetWaitingAnimationStatus(ToolbarAnimationPosition animationPos) const
1228 if (animationPos < TOOLBAR_ANIMATION_POSITION_TITLE || animationPos >= TOOLBAR_ANIMATION_POSITION_MAX)
1230 return ANIMATION_STOPPED;
1233 if (__pAnimation[animationPos] == null)
1235 return ANIMATION_STOPPED;
1238 return __pAnimation[animationPos]->GetStatus();
1242 _Toolbar::InsertItemAt(int itemIndex, _Button* pButton)
1244 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex <= __itemCount), E_OUT_OF_RANGE,
1245 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
1247 if (__pActionEventListener != null)
1249 pButton->AddActionEventListener(*__pActionEventListener);
1252 __pItems.insert(__pItems.begin() + itemIndex, pButton);
1255 SetFocusNavigateEnabled(true);
1257 AttachChild(*pButton);
1259 ApplyUserGUI(TOOLBAR_ITEM, pButton);
1263 AddAccessibilityElement(pButton);
1269 _Toolbar::IsButtonSet(ToolbarButton position) const
1271 if (__pButtonItems[position] != null)
1280 _Toolbar::MoveItem(const int srcIndex, const int destIndex)
1282 if (srcIndex == destIndex)
1284 SetItemSelected(destIndex, true, false);
1289 if (srcIndex < 0 || destIndex < 0 || srcIndex > __itemCount || destIndex > __itemCount)
1291 return E_INVALID_OPERATION;
1294 _Button* pSrcButton = null;
1295 pSrcButton = GetItem(srcIndex);
1296 SysTryReturnResult(NID_UI_CTRL, pSrcButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the pressed index.");
1298 _Button* pDestButton = null;
1299 pDestButton = GetItem(destIndex);
1300 SysTryReturnResult(NID_UI_CTRL, pDestButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the released index.");
1302 if (pDestButton->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
1304 SetItemSelected(GetSelectedItemIndex(), true, false);
1306 return E_INVALID_OPERATION;
1309 __pItems.erase(__pItems.begin() + destIndex);
1310 __pItems.insert(__pItems.begin() + destIndex, pSrcButton);
1312 __pItems.erase(__pItems.begin() + srcIndex);
1313 __pItems.insert(__pItems.begin() + srcIndex, pDestButton);
1315 for (int i = 0; i < __itemCount; i++)
1317 if (__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
1319 __pItems.at(i)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
1322 _AccessibilityElement* pElement = __pItems.at(i)->GetAccessibilityContainer()->GetChildElement(0);
1325 pElement->SetStatus(L"");
1326 pElement->SetHintDisabled(false);
1330 SetItemSelected(destIndex, true, false);
1340 _Toolbar::PauseWaitingAnimation(ToolbarAnimationPosition animationPos)
1342 SysTryReturnResult(NID_UI_CTRL,
1343 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
1344 "[E_INVALID_ARG] The animationPos is invalid.");
1345 SysTryReturnResult(NID_UI_CTRL, (__pAnimation[animationPos]), E_INVALID_STATE,
1346 "[E_INVALID_STATE] __pAnimation isn't constructed.");
1348 __pAnimation[animationPos]->Pause();
1354 _Toolbar::PlayWaitingAnimation(ToolbarAnimationPosition animationPos)
1356 SysTryReturnResult(NID_UI_CTRL,
1357 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
1358 "[E_INVALID_ARG] The animationPos is invalid.");
1360 if ((animationPos == TOOLBAR_ANIMATION_POSITION_TITLE && __style != TOOLBAR_TITLE)
1361 || (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT && __pButtonItems[LEFT_BUTTON] == null)
1362 || (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT && __pButtonItems[RIGHT_BUTTON] == null))
1364 return E_UNSUPPORTED_OPERATION;
1367 if (__pAnimation[animationPos])
1369 if (__pAnimation[animationPos]->GetStatus() == ANIMATION_PLAYING)
1376 SetAnimation(animationPos);
1379 if (__pAnimation[animationPos])
1381 __pAnimation[animationPos]->Play();
1388 _Toolbar::RemoveAllButtons(void)
1390 for (int i = 0; i < BUTTON_MAX; i++)
1392 _Button* pButtonItem = __pButtonItems[i];
1394 if (pButtonItem != null)
1396 if (i == LEFT_BUTTON)
1398 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1400 else if (i == RIGHT_BUTTON)
1402 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1405 if (pButtonItem->GetChildCount() != 0)
1407 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pButtonItem->GetChild(0));
1408 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1410 pButtonItem->DetachChild(*pTempBadgeIcon);
1412 delete pTempBadgeIcon;
1413 pTempBadgeIcon = null;
1416 DetachChild(*pButtonItem);
1420 __pButtonItems[i] = null;
1428 _Toolbar::RemoveAllItems(void)
1432 int itemCount = __pItems.size();
1434 _Button* pItem = null;
1436 // frees item nodes from the memory
1439 for (int i = itemCount - 1; i >= 0; i--)
1441 pItem = __pItems.at(i);
1445 if (pItem->GetChildCount() != 0)
1447 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pItem->GetChild(0));
1448 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1450 pItem->DetachChild(*pTempBadgeIcon);
1452 delete pTempBadgeIcon;
1453 pTempBadgeIcon = null;
1456 DetachChild(*pItem);
1467 __pToolbarPresenter->SetInitialDrawState(true);
1469 SetItemSelected(-1);
1475 _Toolbar::RemoveButtonAt(ToolbarButton position)
1477 if (__pButtonItems[position] != null)
1479 if (position == LEFT_BUTTON)
1481 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1483 else if (position == RIGHT_BUTTON)
1485 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1488 if (__pButtonItems[position]->GetChildCount() != 0)
1490 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(0));
1491 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1493 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1495 delete pTempBadgeIcon;
1496 pTempBadgeIcon = null;
1499 DetachChild(*__pButtonItems[position]);
1500 delete __pButtonItems[position];
1501 __pButtonItems[position] = null;
1504 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
1506 SetFocusNavigateEnabled(false);
1515 _Toolbar::RemoveItemAt(int itemIndex)
1517 SysTryReturnResult(NID_UI_CTRL, (__itemCount > 0 && itemIndex < __itemCount && itemIndex >= 0), E_INVALID_ARG,
1518 "[E_INVALID_ARG] itemIndex is invalid.");
1520 _Button* pItem = __pItems.at(itemIndex);
1522 SysTryReturnResult(NID_UI_CTRL, (pItem != null), E_INVALID_STATE, "[E_INVALID_ARG] No item at the designated index.");
1524 if (pItem->GetChildCount() != 0)
1526 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(pItem->GetChild(0));
1527 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1529 pItem->DetachChild(*pTempBadgeIcon);
1531 delete pTempBadgeIcon;
1532 pTempBadgeIcon = null;
1535 // Free 'pItem' from the item nodes
1536 DetachChild(*pItem);
1542 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
1544 SetFocusNavigateEnabled(false);
1547 __pItems.erase(__pItems.begin() + itemIndex);
1555 _Toolbar::SetBackgroundBitmap(const Bitmap& bitmap)
1557 result r = E_SYSTEM;
1559 Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap);
1563 if (__pToolbarBackgroundBitmap)
1565 delete __pToolbarBackgroundBitmap;
1568 __pToolbarBackgroundBitmap = pClonedBitmap;
1569 __isUserBackgroundBitmap = true;
1578 _Toolbar::IsUserBackgroundBitmap() const
1580 return __isUserBackgroundBitmap;
1584 _Toolbar::SetButton(ToolbarButton position, _Button* pButton)
1586 SysTryReturnResult(NID_UI_CTRL, (pButton), E_INVALID_ARG, "[E_INVALID_ARG] The pButton is invalid.");
1588 float buttonWidth = pButton->GetSizeF().width;
1590 float toolbarWidth = GetBoundsF().width;
1592 if (CalculateMinimumToolbarWidth() > toolbarWidth)
1594 toolbarWidth = CalculateMinimumToolbarWidth();
1597 float horizontalMargin = 0.0f;
1598 float verticalMargin = 0.0f;
1600 if (__header == true && __style != TOOLBAR_TEXT)
1602 float buttonItemGap = 0.0f;
1603 float buttonTopMargin = 0.0f;
1605 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), buttonTopMargin);
1606 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_GAP, GetOrientation(), buttonItemGap);
1611 if (__pButtonItems[LEFT_BUTTON])
1613 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth , buttonTopMargin));
1614 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(toolbarWidth - buttonWidth *2 - buttonItemGap, buttonTopMargin));
1618 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth , buttonTopMargin));
1622 if (__pButtonItems[RIGHT_BUTTON])
1624 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth * 2 - buttonItemGap, buttonTopMargin));
1628 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth, buttonTopMargin));
1636 else // footer or HEADER_STYLE_BUTTON
1641 pButton->SetPosition(FloatPoint(horizontalMargin, verticalMargin));
1645 pButton->SetPosition(FloatPoint(toolbarWidth - buttonWidth - horizontalMargin, verticalMargin));
1649 pButton->SetPosition(FloatPoint((toolbarWidth - buttonWidth - horizontalMargin)/2, verticalMargin));
1657 if (__pActionEventListener != null)
1659 pButton->AddActionEventListener(*__pActionEventListener);
1662 if (__pButtonItems[position])
1664 if (position == LEFT_BUTTON)
1666 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT);
1668 else if (position == RIGHT_BUTTON)
1670 StopWaitingAnimation(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT);
1673 if (__pButtonItems[position]->GetChildCount() != 0)
1675 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(0));
1676 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
1678 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1680 delete pTempBadgeIcon;
1681 pTempBadgeIcon = null;
1684 DetachChild(*__pButtonItems[position]);
1686 delete __pButtonItems[position];
1687 __pButtonItems[position] = null;
1690 __pButtonItems[position] = pButton;
1692 AttachChild(*pButton);
1694 SetFocusNavigateEnabled(true);
1696 if (__style != TOOLBAR_SOFTKEY)
1698 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[position]);
1702 AddAccessibilityElement(position, pButton);
1707 _Toolbar::SetButtonColor(_ButtonStatus status, const Color& color)
1711 case _BUTTON_STATUS_NORMAL:
1712 __isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1713 return SetProperty(L"normalButtonColor", Variant(color));
1715 case _BUTTON_STATUS_DISABLED:
1716 __isButtonBgColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
1717 return SetProperty(L"disabledButtonColor", Variant(color));
1719 case _BUTTON_STATUS_PRESSED:
1720 __isButtonBgColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
1721 return SetProperty(L"pressedButtonColor", Variant(color));
1723 case _BUTTON_STATUS_HIGHLIGHTED:
1724 __isButtonBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
1725 return SetProperty(L"highlightedButtonColor", Variant(color));
1728 __isButtonBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1729 return SetProperty(L"normalButtonColor", Variant(color));
1735 _Toolbar::SetButtonEnabled(ToolbarButton position, bool enabled)
1737 SysTryReturnResult(NID_UI_CTRL, __pButtonItems[position], E_INVALID_OPERATION,
1738 "[E_INVALID_OPERATION] No button item is at the position.");
1742 __pButtonItems[position]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
1743 _AccessibilityElement* pElement = __pButtonItems[position]->GetAccessibilityContainer()->GetChildElement(0);
1746 pElement->SetStatus(L"");
1747 pElement->SetHintDisabled(false);
1752 __pButtonItems[position]->SetButtonStatus(_BUTTON_STATUS_DISABLED);
1753 _AccessibilityElement* pElement = __pButtonItems[position]->GetAccessibilityContainer()->GetChildElement(0);
1756 pElement->SetStatus(L"");
1757 pElement->SetHintDisabled(false);
1765 _Toolbar::SetButtonTextColor(_ButtonStatus status, const Color& color)
1769 case _BUTTON_STATUS_NORMAL:
1770 __isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1771 return SetProperty(L"normalButtonTextColor", Variant(color));
1773 case _BUTTON_STATUS_DISABLED:
1774 __isButtonTextColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
1775 return SetProperty(L"disabledButtonTextColor", Variant(color));
1777 case _BUTTON_STATUS_PRESSED:
1778 __isButtonTextColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
1779 return SetProperty(L"pressedButtonTextColor", Variant(color));
1781 case _BUTTON_STATUS_HIGHLIGHTED:
1782 __isButtonTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
1783 return SetProperty(L"highlightedButtonTextColor", Variant(color));
1786 __isButtonTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
1787 return SetProperty(L"normalButtonTextColor", Variant(color));
1793 _Toolbar::SetButtonBadgeIcon(ToolbarButton position, const Bitmap* pBadgeIcon)
1797 childCount = __pButtonItems[position]->GetChildCount();
1799 if (childCount != 0)
1801 for(int i = 0; i < childCount; i++)
1803 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1807 __pButtonItems[position]->DetachChild(*pTempBadgeIcon);
1809 delete pTempBadgeIcon;
1810 pTempBadgeIcon = null;
1815 if (pBadgeIcon == null)
1820 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
1822 float topTouchMargin = __pButtonItems[position]->GetTopTouchMarginF();
1823 float rightTouchMargin = __pButtonItems[position]->GetRightTouchMarginF();
1825 bounds.y = bounds.y + topTouchMargin;
1826 bounds.width = bounds.width - rightTouchMargin;
1828 float height = 0.0f;
1830 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT_WITH_BUTTON, GetOrientation(), height);
1832 _Label* pBadgeIconLabel = _Label::CreateLabelN();
1834 if (pBadgeIconLabel)
1836 pBadgeIconLabel->SetBounds(FloatRectangle(bounds.width - height, bounds.y, height, height));
1837 pBadgeIconLabel->SetBackgroundBitmap(*pBadgeIcon);
1839 __pButtonItems[position]->AttachChild(*pBadgeIconLabel);
1840 __pButtonItems[position]->SetChildAlwaysOnTop(*pBadgeIconLabel);
1847 _Toolbar::SetButtonNumberedBadgeIcon(ToolbarButton position, int number)
1851 childCount = __pButtonItems[position]->GetChildCount();
1853 _Label* existingBadgeIcon = null;
1857 if (childCount != 0)
1859 for(int i = 0; i < childCount; i++)
1861 existingBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1863 if (existingBadgeIcon)
1865 __pButtonItems[position]->DetachChild(*existingBadgeIcon);
1867 delete existingBadgeIcon;
1868 existingBadgeIcon = null;
1879 bool needToCreateNewIcon = true;
1881 if (childCount != 0)
1883 for(int i = 0; i < childCount; i++)
1885 existingBadgeIcon = dynamic_cast<_Label*>(__pButtonItems[position]->GetChild(i));
1887 if (existingBadgeIcon)
1889 if (existingBadgeIcon->GetText() == L"")
1891 __pButtonItems[position]->DetachChild(*existingBadgeIcon);
1893 delete existingBadgeIcon;
1894 existingBadgeIcon = null;
1896 needToCreateNewIcon = true;
1900 needToCreateNewIcon = false;
1906 if (needToCreateNewIcon)
1908 _Label* pLabel = _Label::CreateLabelN();
1910 SysTryReturnResult(NID_UI_CTRL, pLabel, E_INVALID_STATE,
1911 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
1913 Bitmap* pNumberedBadgeIconBitmap = null;
1914 Bitmap* pNumberedBadgeIconEffectBitmap = null;
1915 Bitmap* pColorReplacedBitmap = null;
1916 Color badgeIconBgNormalColor;
1917 Color badgeIconTextNormalColor;
1919 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
1921 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
1922 if (customTheme == false)
1924 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
1927 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
1928 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
1930 if (pNumberedBadgeIconBitmap)
1932 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
1933 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
1935 pLabel->SetBackgroundBitmap(*pColorReplacedBitmap);
1937 delete pColorReplacedBitmap;
1938 delete pNumberedBadgeIconBitmap;
1941 if (pNumberedBadgeIconEffectBitmap)
1943 pLabel->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
1945 delete pNumberedBadgeIconEffectBitmap;
1948 pLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
1949 pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
1950 pLabel->SetTextColor(badgeIconTextNormalColor);
1951 pLabel->SetMargin(10, 0, 5, 0);
1953 __pButtonItems[position]->AttachChild(*pLabel);
1954 __pButtonItems[position]->SetChildAlwaysOnTop(*pLabel);
1956 existingBadgeIcon = pLabel;
1959 SysTryReturnResult(NID_UI_CTRL, (existingBadgeIcon), E_INVALID_STATE, "[E_INVALID_STATE] Failed to set a BadgeIcon.");
1961 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
1963 float topTouchMargin = __pButtonItems[position]->GetTopTouchMarginF();
1964 float rightTouchMargin = __pButtonItems[position]->GetRightTouchMarginF();
1966 bounds.y = bounds.y + topTouchMargin;
1967 bounds.width = bounds.width - rightTouchMargin;
1969 if (existingBadgeIcon)
1971 float fontSize = 0.0f;
1972 float height = 0.0f;
1975 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT_WITH_BUTTON, GetOrientation(), height);
1979 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE_WITH_BUTTON, GetOrientation(), fontSize);
1980 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_1DIGIT, GetOrientation(), width);
1982 else if (number < 100)
1984 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE_WITH_BUTTON, GetOrientation(), fontSize);
1985 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_1DIGIT, GetOrientation(), width);
1987 else if (number < 1000)
1989 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE_WITH_BUTTON, GetOrientation(), fontSize);
1990 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_2DIGIT, GetOrientation(), width);
1992 else if (number < 10000)
1994 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE_WITH_BUTTON, GetOrientation(), fontSize);
1995 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_2DIGIT, GetOrientation(), width);
1999 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE_WITH_BUTTON_2, GetOrientation(), fontSize);
2000 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_2DIGIT, GetOrientation(), width);
2003 existingBadgeIcon->SetBounds(FloatRectangle(bounds.width - width, bounds.y, width, height));
2004 existingBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
2006 Integer tempNumber(number);
2007 existingBadgeIcon->SetText(tempNumber.ToString());
2015 _Toolbar::SetColor(const Color& color)
2017 return SetProperty(L"color", Variant(color));
2021 _Toolbar::SetDescriptionText(const String& text)
2023 return SetProperty(L"descriptionText", Variant(text));
2027 _Toolbar::SetDescriptionTextColor(const Color& color)
2029 return SetProperty(L"descriptionTextColor", Variant(color));
2033 _Toolbar::SetItemAt(int itemIndex, const _Button* pButton)
2035 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_OUT_OF_RANGE,
2036 "[E_OUT_OF_RANGE] The itemIndex is out of range.");
2038 if (pButton->GetActionId() < TOOLBAR_ACTION_ID_MIN || pButton->GetActionId() > TOOLBAR_ACTION_ID_MAX)
2040 SysLog(NID_UI_CTRL, "[E_INVALID_ARG] The actionId is invalid.");
2041 return E_OUT_OF_RANGE;
2044 SysTryReturnResult(NID_UI_CTRL, (null != __pItems.at(itemIndex)), E_INVALID_OPERATION,
2045 "[E_INVALID_OPERATION] No button item is at the position.");
2047 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2049 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2050 SysTryReturnResult(NID_UI_CTRL, pTempBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] Couldn't get a badge icon.");
2052 __pItems.at(itemIndex)->DetachChild(*pTempBadgeIcon);
2054 delete pTempBadgeIcon;
2055 pTempBadgeIcon = null;
2058 __pItems.at(itemIndex)->SetText(pButton->GetText());
2059 __pItems.at(itemIndex)->SetActionId(pButton->GetActionId());
2061 Bitmap* pIconBitmap = null;
2062 FloatPoint iconPosition(0.0f, 0.0f);
2064 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_NORMAL));
2068 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_NORMAL);
2070 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_NORMAL, iconPosition, *pIconBitmap);
2071 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_PRESSED, iconPosition, *pIconBitmap);
2072 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_SELECTED, iconPosition, *pIconBitmap);
2073 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, iconPosition, *pIconBitmap);
2074 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_DISABLED, iconPosition, *pIconBitmap);
2077 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_PRESSED));
2081 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_PRESSED);
2083 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_PRESSED, iconPosition, *pIconBitmap);
2086 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_SELECTED));
2090 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_SELECTED);
2092 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_SELECTED, iconPosition, *pIconBitmap);
2095 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED));
2099 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_HIGHLIGHTED);
2101 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, iconPosition, *pIconBitmap);
2104 pIconBitmap = const_cast<Bitmap*>(pButton->GetBitmap(_BUTTON_STATUS_DISABLED));
2108 iconPosition = pButton->GetBitmapPositionF(_BUTTON_STATUS_DISABLED);
2110 __pItems.at(itemIndex)->SetBitmap(_BUTTON_STATUS_DISABLED, iconPosition, *pIconBitmap);
2113 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(itemIndex));
2117 RealignItem(__pItems.at(itemIndex), __pItems.at(itemIndex)->GetTextExtentSizeF());
2125 _Toolbar::SetItemBadgeIcon(int itemIndex, const Bitmap* pBadgeIcon)
2127 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_INVALID_ARG,
2128 "[E_INVALID_ARG] The itemIndex is invalid.");
2130 SysTryReturnResult(NID_UI_CTRL, (__pItems.at(itemIndex)), E_INVALID_STATE,
2131 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2133 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2135 _Label* pTempBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2139 __pItems.at(itemIndex)->DetachChild(*pTempBadgeIcon);
2141 delete pTempBadgeIcon;
2142 pTempBadgeIcon = null;
2146 if (pBadgeIcon == null)
2151 FloatRectangle bounds = __pItems.at(itemIndex)->GetBoundsF();
2153 _Label* pBadgeIconLabel = _Label::CreateLabelN();
2155 float height = 0.0f;
2157 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
2159 if (pBadgeIconLabel)
2161 pBadgeIconLabel->SetBounds(FloatRectangle(bounds.width - height, 0.0f, height, height));
2162 pBadgeIconLabel->SetBackgroundBitmap(*pBadgeIcon);
2164 __pItems.at(itemIndex)->AttachChild(*pBadgeIconLabel);
2165 __pItems.at(itemIndex)->SetChildAlwaysOnTop(*pBadgeIconLabel);
2172 _Toolbar::SetItemColor(_ButtonStatus status, const Color& color)
2176 case _BUTTON_STATUS_NORMAL:
2177 __isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2178 return SetProperty(L"normalItemColor", Variant(color));
2180 case _BUTTON_STATUS_DISABLED:
2181 __isItemBgColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
2182 return SetProperty(L"disabledItemColor", Variant(color));
2184 case _BUTTON_STATUS_PRESSED:
2185 __isItemBgColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
2186 return SetProperty(L"pressedItemColor", Variant(color));
2188 case _BUTTON_STATUS_HIGHLIGHTED:
2189 __isItemBgColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
2190 return SetProperty(L"highlightedItemColor", Variant(color));
2192 case _BUTTON_STATUS_SELECTED:
2193 __isItemBgColorSetByUser[_BUTTON_STATUS_SELECTED] = true;
2194 return SetProperty(L"selectedItemColor", Variant(color));
2197 __isItemBgColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2198 return SetProperty(L"normalItemColor", Variant(color));
2204 _Toolbar::SetItemEnabled(int itemIndex, bool enabled)
2206 SysTryReturnResult(NID_UI_CTRL, (null != __pItems.at(itemIndex)), E_INVALID_OPERATION,
2207 "[E_INVALID_OPERATION] No button item is at the position.");
2211 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2214 pElement->SetStatus(L"");
2215 pElement->SetHintDisabled(false);
2217 return __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2221 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2224 pElement->SetStatus(L"");
2225 pElement->SetHintDisabled(true);
2227 return __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_DISABLED);
2234 _Toolbar::SetItemNumberedBadgeIcon(int itemIndex, int number)
2236 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= 0 && itemIndex < __itemCount), E_INVALID_ARG,
2237 "[E_INVALID_ARG] The itemIndex is invalid.");
2239 SysTryReturnResult(NID_UI_CTRL, (number >= 0 && number < 100000), E_INVALID_ARG,
2240 "[E_INVALID_ARG] The number is out of bounds.");
2242 SysTryReturnResult(NID_UI_CTRL, (__pItems.at(itemIndex)), E_INVALID_STATE,
2243 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2247 if (__pItems.at(itemIndex)->GetChildCount() != 0)
2249 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2251 if (existingBadgeIcon)
2253 __pItems.at(itemIndex)->DetachChild(*existingBadgeIcon);
2255 delete existingBadgeIcon;
2256 existingBadgeIcon = null;
2266 if (__pItems.at(itemIndex)->GetChildCount() == 0)
2268 _Label* pLabel = _Label::CreateLabelN();
2270 SysTryReturnResult(NID_UI_CTRL, pLabel, E_INVALID_STATE,
2271 "[E_INVALID_STATE] The badge icon instance isn't constructed.");
2273 Bitmap* pNumberedBadgeIconBitmap = null;
2274 Bitmap* pNumberedBadgeIconEffectBitmap = null;
2275 Bitmap* pColorReplacedBitmap = null;
2276 Color badgeIconBgNormalColor;
2277 Color badgeIconTextNormalColor;
2279 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
2281 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
2282 if (customTheme == false)
2284 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
2287 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
2288 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
2290 if (pNumberedBadgeIconBitmap)
2292 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
2293 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
2295 pLabel->SetBackgroundBitmap(*pColorReplacedBitmap);
2297 delete pColorReplacedBitmap;
2298 delete pNumberedBadgeIconBitmap;
2301 if (pNumberedBadgeIconEffectBitmap)
2303 pLabel->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
2305 delete pNumberedBadgeIconEffectBitmap;
2308 pLabel->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
2309 pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
2310 pLabel->SetTextColor(badgeIconTextNormalColor);
2311 pLabel->SetMargin(0, 10);
2313 __pItems.at(itemIndex)->AttachChild(*pLabel);
2314 __pItems.at(itemIndex)->SetChildAlwaysOnTop(*pLabel);
2317 // SetItemNumberedBadgeIcon
2319 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(itemIndex)->GetChild(0));
2321 FloatRectangle bounds = __pItems.at(itemIndex)->GetBoundsF();
2323 if (existingBadgeIcon)
2325 float fontSize = 0.0f;
2326 float height = 0.0f;
2329 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE, GetOrientation(), fontSize);
2330 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
2334 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_1DIGIT, GetOrientation(), width);
2336 else if (number < 100)
2338 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_2DIGIT, GetOrientation(), width);
2340 else if (number < 1000)
2342 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_3DIGIT, GetOrientation(), width);
2344 else if (number < 10000)
2346 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_4DIGIT, GetOrientation(), width);
2350 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_5DIGIT, GetOrientation(), width);
2353 existingBadgeIcon->SetBounds(FloatRectangle(bounds.width - width, 0.0f, width, height));
2354 existingBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
2356 Integer tempNumber(number);
2357 existingBadgeIcon->SetText(tempNumber.ToString());
2365 _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
2367 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= -1 && itemIndex < __itemCount), E_INVALID_STATE,
2368 "[E_INVALID_STATE] Failed to process SetItemSelected()");
2370 result r = E_SUCCESS;
2372 int currentSelectedItemIndex = 0;
2373 currentSelectedItemIndex = GetSelectedItemIndex();
2375 r = __pToolbarPresenter->SetItemSelected(itemIndex, adjust);
2377 if (itemIndex != -1 && itemIndex == currentSelectedItemIndex && __pItems.at(itemIndex) != null) // same item selected
2379 if (!IsInitialDraw() && fire)
2381 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2384 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
2386 for (int i = 0; i < __itemCount; i++)
2388 __pItems.at(i)->ShowUnderlineBitmap(false);
2391 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2393 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2396 pElement->SetStatusWithStringId("IDS_TPLATFORM_BODY_SELECTED_T_TTS");
2397 pElement->SetHintDisabled(true);
2403 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2408 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_INVALID_STATE, "[E_INVALID_STATE] Failed to process SetItemSelected()");
2410 if (__pItems.at(itemIndex) != null)
2412 if (!IsInitialDraw() && fire)
2414 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2416 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
2417 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2419 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2422 pElement->SetStatusWithStringId("IDS_TPLATFORM_BODY_SELECTED_T_TTS");
2423 pElement->SetHintDisabled(true);
2427 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2432 if (currentSelectedItemIndex != -1 && __pItems.at(currentSelectedItemIndex) != null)
2434 __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2435 __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
2437 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2440 pElement->SetStatus(L"");
2441 pElement->SetHintDisabled(false);
2445 if (__pItems.at(itemIndex) != null)
2447 __pItems.at(itemIndex)->Draw();
2454 _Toolbar::SetItemHighlighted(int itemIndex, bool fire, bool adjust)
2456 SysTryReturnResult(NID_UI_CTRL, (itemIndex >= -1 && itemIndex < __itemCount), E_INVALID_STATE,
2457 "[E_INVALID_STATE] Failed to process SetItemHighlighted()");
2459 result r = E_SUCCESS;
2461 int currentSelectedItemIndex = 0;
2462 currentSelectedItemIndex = GetSelectedItemIndex();
2464 r = __pToolbarPresenter->SetItemSelected(itemIndex, adjust);
2466 if (itemIndex != -1 && itemIndex == currentSelectedItemIndex && __pItems.at(itemIndex) != null) // same item selected
2468 if (!IsInitialDraw() && fire)
2470 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2473 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
2474 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2475 __pItems.at(itemIndex)->Draw();
2477 __highlightedItemIndex = itemIndex;
2478 __lastHighlightedItemIndex = __highlightedItemIndex;
2479 __highlighted = true;
2481 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2484 pElement->SetStatus(L"Highlighted");
2485 pElement->SetHintDisabled(true);
2491 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2496 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_INVALID_STATE, "[E_INVALID_STATE] Failed to process SetItemHighlighted()");
2498 if (__pItems.at(itemIndex) != null)
2500 if (!IsInitialDraw() && fire)
2502 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
2505 __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
2506 __pItems.at(itemIndex)->Draw();
2508 for (int i = 0; i < __itemCount; i++)
2510 __pItems.at(i)->ShowUnderlineBitmap(false);
2513 __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
2514 __pItems.at(itemIndex)->Draw();
2516 __highlightedItemIndex = itemIndex;
2517 __lastHighlightedItemIndex = __highlightedItemIndex;
2518 __highlighted = true;
2520 _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2523 pElement->SetStatus(L"Highlighted");
2524 pElement->SetHintDisabled(true);
2528 if (__itemCount == 0 || __itemCount > TAB_ITEM_MAX || itemIndex == -1)
2533 if (currentSelectedItemIndex != -1 && __pItems.at(currentSelectedItemIndex) != null)
2535 __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
2536 __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
2537 __pItems.at(currentSelectedItemIndex)->Draw();
2539 _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
2542 pElement->SetStatus(L"");
2543 pElement->SetHintDisabled(false);
2551 _Toolbar::SetItemTextColor(_ButtonStatus status, const Color& color)
2555 case _BUTTON_STATUS_NORMAL:
2556 __isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2557 return SetProperty(L"normalItemTextColor", Variant(color));
2559 case _BUTTON_STATUS_DISABLED:
2560 __isItemTextColorSetByUser[_BUTTON_STATUS_DISABLED] = true;
2561 return SetProperty(L"disabledItemTextColor", Variant(color));
2563 case _BUTTON_STATUS_PRESSED:
2564 __isItemTextColorSetByUser[_BUTTON_STATUS_PRESSED] = true;
2565 return SetProperty(L"pressedItemTextColor", Variant(color));
2567 case _BUTTON_STATUS_HIGHLIGHTED:
2568 __isItemTextColorSetByUser[_BUTTON_STATUS_HIGHLIGHTED] = true;
2569 return SetProperty(L"highlightedItemTextColor", Variant(color));
2571 case _BUTTON_STATUS_SELECTED:
2572 __isItemTextColorSetByUser[_BUTTON_STATUS_SELECTED] = true;
2573 return SetProperty(L"selectedItemTextColor", Variant(color));
2576 __isItemTextColorSetByUser[_BUTTON_STATUS_NORMAL] = true;
2577 return SetProperty(L"normalItemTextColor", Variant(color));
2583 _Toolbar::SetStyle(ToolbarStyle style)
2587 __pToolbarPresenter->SetInitialDrawState(true);
2589 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
2591 SetTabEditModeEnabled(true);
2594 AdjustToolbarBounds();
2600 __descriptionText = L"";
2602 __highlightedItemIndex = 0;
2603 __lastHighlightedItemIndex = 0;
2604 __highlighted = false;
2606 if (__style == TOOLBAR_TITLE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
2608 if(__pTitleTextElement)
2610 __pTitleTextElement->SetLabel(L"");
2615 if(__pTitleTextElement)
2617 GetAccessibilityContainer()->RemoveElement(*__pTitleTextElement);
2618 __pTitleTextElement = null;
2622 if (__itemCount == 0 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
2624 SetFocusNavigateEnabled(false);
2628 SetFocusNavigateEnabled(true);
2635 _Toolbar::AdjustToolbarBounds(void)
2638 float height = 0.0f;
2640 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
2641 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
2643 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2645 width = portraitSize.width;
2649 width = landscapeSize.width;
2654 if (__header == true)
2656 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
2658 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2659 GET_SHAPE_CONFIG(HEADER::TITLE_TOTAL_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), height);
2660 SetSize(FloatDimension(width, height));
2662 else if (__style == TOOLBAR_TEXT && GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE) // sip & landscape => footer height
2664 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2665 GET_SHAPE_CONFIG(FOOTER::HEIGHT, GetOrientation(), height);
2666 SetSize(FloatDimension(width, height));
2668 else if (__style == TOOLBAR_TAB_LARGE)
2670 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2671 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_HEIGHT, GetOrientation(), height);
2672 SetSize(FloatDimension(width, height));
2676 //GET_SHAPE_CONFIG(HEADER::WIDTH, GetOrientation(), width);
2677 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), height);
2678 SetSize(FloatDimension(width, height));
2683 //GET_SHAPE_CONFIG(FOOTER::WIDTH, GetOrientation(), width);
2685 if (__style == TOOLBAR_SOFTKEY)
2687 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), height);
2689 else if (__style == TOOLBAR_TAB_LARGE)
2691 GET_SHAPE_CONFIG(FOOTER::TAB_LARGE_HEIGHT, GetOrientation(), height);
2695 GET_SHAPE_CONFIG(FOOTER::HEIGHT, GetOrientation(), height);
2698 SetSize(FloatDimension(width, height));
2701 SetResizable(false);
2703 _Form* pParent = dynamic_cast<_Form*>(GetParent());
2705 if (pParent != null)
2707 pParent->AdjustClientBounds();
2709 if (__header == false)
2711 FloatRectangle bounds(0.0f, pParent->GetClientBoundsF().y + pParent->GetClientBoundsF().height, width, height);
2712 FloatDimension dimension(width, height);
2713 dimension = pParent->TranslateSize(dimension);
2714 bounds.height = dimension.height;
2716 if ((__transparent == true || !GetVisibleState()) && __style != TOOLBAR_COMMAND)
2718 bounds.y -= bounds.height;
2721 pParent->SetFooterBounds(bounds);
2729 _Toolbar::SetTabEditModeEnabled(bool enable)
2731 return __pToolbarPresenter->SetTabEditModeEnabled(enable);
2735 _Toolbar::SetTitleIcon(const Bitmap& bitmap)
2737 result r = E_SYSTEM;
2739 Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap);
2745 delete __pTitleIcon;
2748 __pTitleIcon = pClonedBitmap;
2757 _Toolbar::SetTitleText(const String& text, HorizontalAlignment alignment)
2759 result r = E_SYSTEM;
2761 __titleTextAlignment = alignment;
2765 r = __pToolbarPresenter->SetTitleText(__titleText, __titleTextAlignment);
2767 if (__pTitleTextElement == null)
2769 __pTitleTextElement = new (std::nothrow) _AccessibilityElement(true);
2770 SysTryReturnResult(NID_UI_CTRL, __pTitleTextElement, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
2771 GetAccessibilityContainer()->SetPriority(ACCESSIBILITY_PRIORITY_TOP);
2772 GetAccessibilityContainer()->AddElement(*__pTitleTextElement);
2775 if( __descriptionText.IsEmpty())
2777 __pTitleTextElement->SetLabel(__titleText);
2778 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
2782 __pTitleTextElement->SetLabel(__titleText + L"," + __descriptionText);
2784 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
2785 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
2787 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
2789 __pTitleTextElement->SetTraitWithStringId("IDS_TPLATFORM_BODY_TITLE");
2790 __pTitleTextElement->SetName(L"HeaderTitleText");
2796 _Toolbar::SetTitleTextColor(const Color& color)
2798 __titleTextColor = color;
2804 _Toolbar::SetTransparent(bool transparent)
2806 if (__style == TOOLBAR_SOFTKEY)
2811 __transparent = transparent;
2815 __isUserBackgroundBitmap = true;
2818 Bitmap* pMagentaBackgroundBitmap = null;
2820 if (__pToolbarBackgroundBitmap)
2822 delete __pToolbarBackgroundBitmap;
2823 __pToolbarBackgroundBitmap = null;
2826 if (__pToolbarBackgroundEffectBitmap)
2828 delete __pToolbarBackgroundEffectBitmap;
2829 __pToolbarBackgroundEffectBitmap = null;
2833 if (__transparent == true)
2835 if (__header == true)
2837 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2839 bool customTheme = IS_CUSTOM_BITMAP(HEADER::TRANSLUCENT_BG_NORMAL);
2840 if (customTheme == false)
2842 GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2847 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2849 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::TRANSLUCENT_BG_NORMAL);
2850 if (customTheme == false)
2852 GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2858 if (__header == true)
2860 GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2862 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
2863 if (customTheme == false)
2865 GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2870 GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
2872 bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
2873 if (customTheme == false)
2875 GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
2880 if (__transparent == true)
2884 if (__header == true)
2886 GET_COLOR_CONFIG(HEADER::TRANSLUCENT_BG_NORMAL, tempColor);
2890 GET_COLOR_CONFIG(FOOTER::TRANSLUCENT_BG_NORMAL, tempColor);
2893 if (pMagentaBackgroundBitmap)
2895 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
2896 Color::GetColor(COLOR_ID_MAGENTA), tempColor);
2898 if (__pToolbarBackgroundBitmap)
2900 __pToolbarBackgroundBitmap->SetAlphaConstant(0x7F);
2904 SetTitleTextColor(__transTitleTextColor);
2905 SetDescriptionTextColor(__transDescriptionTextColor);
2907 for (int i = 0; i < __itemCount ; i ++)
2909 if (__pItems.at(i) != null)
2911 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
2915 for (int i = 0; i < BUTTON_MAX; i++)
2917 if (__pButtonItems[i] != null)
2919 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
2923 else // not transparent
2925 __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
2926 Color::GetColor(COLOR_ID_MAGENTA), GetColor());
2928 SetTitleTextColor(__titleTextColor);
2929 SetDescriptionTextColor(__descriptionTextColor);
2931 for (int i = 0; i < __itemCount ; i ++)
2933 if (__pItems.at(i) != null)
2935 ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
2939 for (int i = 0; i < BUTTON_MAX; i++)
2941 if (__pButtonItems[i] != null)
2943 ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
2948 delete pMagentaBackgroundBitmap;
2954 _Toolbar::SetWaitingAnimationPosition(ToolbarAnimationPosition animationPos, float x, float y)
2956 if (__pAnimation[animationPos])
2958 __pAnimation[animationPos]->SetPosition(FloatPoint(x, y));
2965 _Toolbar::StopWaitingAnimation(ToolbarAnimationPosition animationPos)
2967 SysTryReturnResult(NID_UI_CTRL,
2968 (TOOLBAR_ANIMATION_POSITION_TITLE <= animationPos && animationPos < TOOLBAR_ANIMATION_POSITION_MAX), E_INVALID_ARG,
2969 "[E_INVALID_ARG] The animationPos is invalid.");
2970 SysTryReturnResult(NID_UI_CTRL, (__pAnimation[animationPos]), E_INVALID_STATE,
2971 "[E_INVALID_STATE] __pAnimation isn't constructed.");
2973 __pAnimation[animationPos]->Stop();
2975 if (animationPos == TOOLBAR_ANIMATION_POSITION_TITLE)
2977 DetachChild(*__pAnimation[animationPos]);
2979 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT && __pButtonItems[LEFT_BUTTON] != null)
2981 __pButtonItems[LEFT_BUTTON]->DetachChild(*__pAnimation[animationPos]);
2983 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT && __pButtonItems[RIGHT_BUTTON] != null)
2985 __pButtonItems[RIGHT_BUTTON]->DetachChild(*__pAnimation[animationPos]);
2988 delete __pAnimation[animationPos];
2989 __pAnimation[animationPos] = null;
2995 _Toolbar::OnAnimationStopped(const _Control& source)
2999 if (&source == __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT])
3001 __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT]->Play();
3003 else if (&source == __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT])
3005 __pAnimation[TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT]->Play();
3007 else if (__pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE])
3009 __pAnimation[TOOLBAR_ANIMATION_POSITION_TITLE]->Play();
3016 _Toolbar::OnAttachedToMainTree(void)
3022 _Toolbar::AddAccessibilityElement(ToolbarButton position, _Button* pButton)
3028 name = L"LeftButtonText";
3031 name = L"RightButtonText";
3034 name = L"MiddleButtonText";
3040 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
3041 _AccessibilityElement* pButtonElement = null;
3043 _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
3045 if (pButtonContainer)
3047 pButtonContainer->SetPriority(__header?ACCESSIBILITY_PRIORITY_TOP:ACCESSIBILITY_PRIORITY_BOTTOM);
3048 pContainer->AddChildContainer(*pButtonContainer);
3049 pButtonElement = pButtonContainer->GetChildElement(L"ButtonText");
3054 pButtonElement->SetName(name);
3056 pButtonElement->SetTraitWithStringId("IDS_TPLATFORM_BODY_BUTTON_T_TTS");
3057 FloatRectangle floatRect = GetButtonBoundsF(position);
3058 pButtonElement->SetBounds(FloatRectangle(0,floatRect.y, pButton->GetBoundsF().width, floatRect.height));
3063 _Toolbar::AddAccessibilityElement(_Button* pButton)
3065 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
3066 if(pContainer == null)
3072 if(__header == true)
3074 priorty = ACCESSIBILITY_PRIORITY_TOP;
3078 priorty = ACCESSIBILITY_PRIORITY_BOTTOM;
3080 pContainer->SetPriority(priorty);
3082 ToolbarStyle style = GetStyle();
3087 case TOOLBAR_HEADER_SEGMENTED:
3089 case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
3091 case TOOLBAR_SEGMENTED:
3092 name = L"Segment" + Integer::ToString(__itemCount);
3093 name.Append(L"Text");
3094 trait = L"Segmented control";
3096 case TOOLBAR_TAB_WITH_TITLE:
3098 case TOOLBAR_TAB_LARGE:
3101 name = L"Tab" + Integer::ToString(__itemCount);
3102 name.Append(L"Text");
3106 name = L"Button" + Integer::ToString(__itemCount);
3107 name.Append(L"Text");
3112 if (pButton != null)
3114 _AccessibilityElement* pElement = null;
3115 _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
3117 if (pButtonContainer)
3119 pButtonContainer->SetPriority(priorty);
3120 pContainer->AddChildContainer(*pButtonContainer);
3121 pElement = pButtonContainer->GetChildElement(L"ButtonText");
3126 pElement->SetName(name);
3127 pElement->SetTrait(trait);
3128 if(style == TOOLBAR_HEADER_SEGMENTED || style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
3129 || style == TOOLBAR_SEGMENTED || style == TOOLBAR_TAB_WITH_TITLE
3130 || style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
3132 pElement->SetHintWithStringId("IDS_TPLATFORM_BODY_DOUBLE_TAP_TO_MOVE_TO_CONTENT_T_TTS");
3133 pButton->GetAccessibilityContainer()->AddListener(*__pAccessibilityListener);
3142 _Toolbar::OnBoundsChanged(void)
3146 if(__pTitleTextElement)
3148 if( __descriptionText.IsEmpty())
3150 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
3154 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
3155 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
3157 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
3164 _Toolbar::OnFontChanged(Font* pFont)
3166 __pToolbarPresenter->OnFontChanged(pFont);
3172 _Toolbar::OnFontInfoRequested(unsigned long& style, int& size)
3174 __pToolbarPresenter->OnFontInfoRequested(style, size);
3180 _Toolbar::OnAncestorVisibleStateChanged(const _Control& control)
3182 __pToolbarPresenter->OnAncestorVisibleStateChanged(control);
3184 _Control::OnAncestorVisibleStateChanged(control);
3189 _Toolbar::OnDrawFocus(void)
3191 if (IsFocusModeStateEnabled() == false)
3193 if (__itemCount == 0)
3195 if (__pButtonItems[LEFT_BUTTON])
3197 if (__pButtonItems[RIGHT_BUTTON])
3199 if (__highlightedItemIndex == __itemCount)
3201 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3203 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3206 else if (__highlightedItemIndex == __itemCount + 1)
3208 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3210 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3216 if (__highlightedItemIndex == __itemCount)
3218 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3220 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3227 if (__pButtonItems[RIGHT_BUTTON])
3229 if (__highlightedItemIndex == __itemCount)
3231 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3233 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3239 else // __itemCount != 0
3241 if (__highlightedItemIndex < __itemCount)
3243 if (__pItems.at(__highlightedItemIndex))
3245 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3247 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3253 if (__pButtonItems[LEFT_BUTTON])
3255 if (__pButtonItems[RIGHT_BUTTON])
3257 if (__highlightedItemIndex == __itemCount)
3259 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3261 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3264 else if (__highlightedItemIndex == __itemCount + 1)
3266 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3268 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3274 if (__highlightedItemIndex == __itemCount)
3276 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3278 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3285 if (__pButtonItems[RIGHT_BUTTON])
3287 if (__highlightedItemIndex == __itemCount)
3289 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3291 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3303 } //_Toolbar::OnDrawFocus(void)
3306 _Toolbar::OnChildControlFocusMoved(const _Control& control)
3308 __pToolbarPresenter->OnChildControlFocusMoved(control);
3314 _Toolbar::IsChildControlFocusManage(void) const
3316 __pToolbarPresenter->IsChildControlFocusManage();
3322 _Toolbar::OnFocusableStateChanged(bool focusalbeState)
3324 __pToolbarPresenter->OnFocusableStateChanged(focusalbeState);
3330 _Toolbar::OnFocusModeStateChanged(void)
3332 if (__itemCount == 0)
3334 if (__pButtonItems[LEFT_BUTTON])
3336 if (__pButtonItems[RIGHT_BUTTON])
3338 if (__highlightedItemIndex == __itemCount)
3340 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3342 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3345 else if (__highlightedItemIndex == __itemCount + 1)
3347 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3349 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3355 if (__highlightedItemIndex == __itemCount)
3357 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3359 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3366 if (__pButtonItems[RIGHT_BUTTON])
3368 if (__highlightedItemIndex == __itemCount)
3370 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3372 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3378 else // __itemCount != 0
3380 if (__highlightedItemIndex < __itemCount)
3382 if (__pItems.at(__highlightedItemIndex))
3384 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3386 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3392 if (__pButtonItems[LEFT_BUTTON])
3394 if (__pButtonItems[RIGHT_BUTTON])
3396 if (__highlightedItemIndex == __itemCount)
3398 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3400 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3403 else if (__highlightedItemIndex == __itemCount + 1)
3405 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3407 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3413 if (__highlightedItemIndex == __itemCount)
3415 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3417 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3424 if (__pButtonItems[RIGHT_BUTTON])
3426 if (__highlightedItemIndex == __itemCount)
3428 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3430 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3437 int selectedItemIndex = GetSelectedItemIndex();
3439 if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
3441 __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
3448 } // OnFocusModeStateChanged
3451 _Toolbar::OnFocusGained(const _Control& source)
3453 if (IsFocusModeStateEnabled() == true)
3455 if (__header == true && __style != TOOLBAR_TEXT) // right align
3457 if (__itemCount != 0)
3459 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
3460 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3462 __highlightedItemIndex = GetSelectedItemIndex();
3464 else // not segmented
3466 __highlightedItemIndex = 0;
3470 OnHeaderFocusGained(source);
3474 if (__itemCount != 0)
3476 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
3477 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3479 __highlightedItemIndex = GetSelectedItemIndex();
3481 else // not segmented
3483 __highlightedItemIndex = 0;
3487 OnFooterFocusGained(source);
3497 _Toolbar::OnHeaderFocusGained(const _Control& source)
3499 if (__itemCount == 0)
3501 if (__pButtonItems[LEFT_BUTTON])
3503 if (__pButtonItems[RIGHT_BUTTON])
3505 if (__highlightedItemIndex == __itemCount)
3507 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3509 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3510 __lastHighlightedItemIndex = __highlightedItemIndex;
3511 __highlighted = true;
3514 else if (__highlightedItemIndex == __itemCount + 1)
3516 if (__pButtonItems[RIGHT_BUTTON])
3518 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3520 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3521 __lastHighlightedItemIndex = __highlightedItemIndex;
3522 __highlighted = true;
3529 if (__highlightedItemIndex == __itemCount)
3531 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3533 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3534 __lastHighlightedItemIndex = __highlightedItemIndex;
3535 __highlighted = true;
3542 if (__pButtonItems[RIGHT_BUTTON])
3544 if (__highlightedItemIndex == __itemCount)
3546 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3548 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3549 __lastHighlightedItemIndex = __highlightedItemIndex;
3550 __highlighted = true;
3556 else // itemCount != 0
3558 if (__pItems.at(__highlightedItemIndex))
3560 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3562 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3564 __lastHighlightedItemIndex = __highlightedItemIndex;
3565 __highlighted = true;
3569 if (__highlightedItemIndex < __itemCount - 1)
3571 __highlightedItemIndex++;
3573 OnHeaderFocusGained(source);
3575 else if (__highlightedItemIndex == __itemCount - 1)
3577 if (__pButtonItems[LEFT_BUTTON])
3579 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3581 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3583 __highlightedItemIndex = __itemCount;
3584 __lastHighlightedItemIndex = __highlightedItemIndex;
3585 __highlighted = true;
3589 if (__pButtonItems[RIGHT_BUTTON])
3591 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3593 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3595 __highlightedItemIndex = __itemCount + 1;
3596 __lastHighlightedItemIndex = __highlightedItemIndex;
3597 __highlighted = true;
3602 else if (__pButtonItems[RIGHT_BUTTON])
3604 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3606 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3608 __highlightedItemIndex = __itemCount;
3609 __lastHighlightedItemIndex = __highlightedItemIndex;
3610 __highlighted = true;
3622 _Toolbar::OnFooterFocusGained(const _Control& source)
3624 if (__itemCount == 0)
3626 if (__pButtonItems[LEFT_BUTTON])
3628 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3630 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3632 __highlightedItemIndex = __itemCount;
3633 __lastHighlightedItemIndex = __highlightedItemIndex;
3634 __highlighted = true;
3638 if (__pButtonItems[RIGHT_BUTTON])
3640 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3642 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3644 __highlightedItemIndex = __itemCount + 1;
3645 __lastHighlightedItemIndex = __highlightedItemIndex;
3646 __highlighted = true;
3651 else if (__pButtonItems[RIGHT_BUTTON])
3653 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3655 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3657 __highlightedItemIndex = __itemCount;
3658 __lastHighlightedItemIndex = __highlightedItemIndex;
3659 __highlighted = true;
3663 else // itemCount != 0
3665 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
3666 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3668 __highlightedItemIndex = GetSelectedItemIndex();
3670 if (__pItems.at(__highlightedItemIndex))
3672 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3674 __lastHighlightedItemIndex = __highlightedItemIndex;
3675 __highlighted = true;
3678 else // not segmented
3680 if (__pButtonItems[LEFT_BUTTON])
3682 if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3684 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3686 __highlightedItemIndex = __itemCount;
3687 __lastHighlightedItemIndex = __highlightedItemIndex;
3688 __highlighted = true;
3692 if (__pItems.at(__highlightedItemIndex))
3694 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3696 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3698 __lastHighlightedItemIndex = __highlightedItemIndex;
3699 __highlighted = true;
3703 for (__highlightedItemIndex = 0; __highlightedItemIndex < __itemCount; __highlightedItemIndex++)
3705 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3707 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3709 __lastHighlightedItemIndex = __highlightedItemIndex;
3710 __highlighted = true;
3716 if (__highlightedItemIndex == __itemCount)
3718 if (__pButtonItems[RIGHT_BUTTON])
3720 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3722 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3724 __highlightedItemIndex = __itemCount + 1;
3725 __lastHighlightedItemIndex = __highlightedItemIndex;
3726 __highlighted = true;
3736 if (__pItems.at(__highlightedItemIndex))
3738 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3740 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3742 __lastHighlightedItemIndex = __highlightedItemIndex;
3743 __highlighted = true;
3747 for (__highlightedItemIndex = 0; __highlightedItemIndex < __itemCount; __highlightedItemIndex++)
3749 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3751 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3753 __lastHighlightedItemIndex = __highlightedItemIndex;
3754 __highlighted = true;
3760 if (__highlightedItemIndex == __itemCount)
3762 if (__pButtonItems[RIGHT_BUTTON])
3764 if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3766 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3768 __highlightedItemIndex = __itemCount;
3769 __lastHighlightedItemIndex = __highlightedItemIndex;
3770 __highlighted = true;
3784 _Toolbar::OnFocusLost(const _Control& source)
3786 if (__itemCount == 0)
3788 if (__pButtonItems[LEFT_BUTTON])
3790 if (__pButtonItems[RIGHT_BUTTON])
3792 if (__highlightedItemIndex == __itemCount)
3794 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3796 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3799 else if (__highlightedItemIndex == __itemCount + 1)
3801 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3803 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3809 if (__highlightedItemIndex == __itemCount)
3811 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3813 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3820 if (__pButtonItems[RIGHT_BUTTON])
3822 if (__highlightedItemIndex == __itemCount)
3824 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3826 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3832 else // __itemCount != 0
3834 if (__highlightedItemIndex < __itemCount)
3836 if(__pItems.at(__highlightedItemIndex))
3838 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3840 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3846 if (__pButtonItems[LEFT_BUTTON])
3848 if (__pButtonItems[RIGHT_BUTTON])
3850 if (__highlightedItemIndex == __itemCount)
3852 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3854 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3857 else if (__highlightedItemIndex == __itemCount + 1)
3859 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3861 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3867 if (__highlightedItemIndex == __itemCount)
3869 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3871 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
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_NORMAL);
3891 int selectedItemIndex = GetSelectedItemIndex();
3893 if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
3895 if (__pItems.at(selectedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3897 __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
3908 _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
3910 _KeyCode keyCode = keyInfo.GetKeyCode();
3912 int selectedItemIndex = GetSelectedItemIndex();
3914 if (IsFocusModeStateEnabled() == true && keyCode == _KEY_RIGHT)
3916 __highlighted = false;
3918 if (__header == true && __style != TOOLBAR_TEXT) // right align
3920 if (__itemCount != 0)
3922 if (__highlightedItemIndex < (__itemCount - 1)) // 0,1
3924 if (__pItems.at(__highlightedItemIndex) != null)
3926 if (__highlightedItemIndex == selectedItemIndex)
3928 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3930 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
3935 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3937 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3941 __highlightedItemIndex++;
3943 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3945 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
3947 __lastHighlightedItemIndex = __highlightedItemIndex;
3948 __highlighted = true;
3950 if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
3952 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
3954 __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
3960 OnKeyReleased(source, keyInfo);
3966 if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])
3968 if (__highlightedItemIndex == __itemCount - 1)
3970 if (__pItems.at(__highlightedItemIndex) != null)
3972 if (__highlightedItemIndex == selectedItemIndex)
3974 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3976 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
3981 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
3983 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
3990 if (__pButtonItems[LEFT_BUTTON])
3992 if (__pButtonItems[RIGHT_BUTTON])
3994 if (__highlightedItemIndex == __itemCount - 1)
3996 __highlightedItemIndex++;
3998 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4000 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4002 __lastHighlightedItemIndex = __highlightedItemIndex;
4003 __highlighted = true;
4007 OnKeyReleased(source, keyInfo);
4010 else if (__highlightedItemIndex == __itemCount)
4012 __highlightedItemIndex++;
4014 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4016 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4019 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4021 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4023 __lastHighlightedItemIndex = __highlightedItemIndex;
4024 __highlighted = true;
4028 OnKeyReleased(source, keyInfo);
4034 if (__highlightedItemIndex == __itemCount - 1)
4036 __highlightedItemIndex++;
4038 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4040 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4042 __lastHighlightedItemIndex = __highlightedItemIndex;
4043 __highlighted = true;
4047 OnKeyReleased(source, keyInfo);
4054 if (__pButtonItems[RIGHT_BUTTON])
4056 if (__highlightedItemIndex == __itemCount - 1)
4058 __highlightedItemIndex++;
4060 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4062 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4064 __lastHighlightedItemIndex = __highlightedItemIndex;
4065 __highlighted = true;
4069 OnKeyReleased(source, keyInfo);
4076 if (__highlighted == false)
4078 __highlightedItemIndex = __lastHighlightedItemIndex;
4080 if (__highlightedItemIndex < __itemCount)
4082 if (__pItems.at(__highlightedItemIndex))
4084 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4086 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4090 else if (__highlightedItemIndex == __itemCount)
4092 if (__pButtonItems[LEFT_BUTTON])
4094 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4096 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4099 else if (__pButtonItems[RIGHT_BUTTON])
4101 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4103 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4107 else if (__highlightedItemIndex == __itemCount + 1)
4109 if (__pButtonItems[RIGHT_BUTTON])
4111 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4113 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4118 __highlighted = true;
4121 else // itemCount == 0
4123 if (__pButtonItems[LEFT_BUTTON])
4125 if (__pButtonItems[RIGHT_BUTTON])
4127 if (__highlightedItemIndex == 0)
4129 __highlightedItemIndex++;
4131 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4133 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4136 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4138 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4140 __lastHighlightedItemIndex = __highlightedItemIndex;
4141 __highlighted = true;
4145 OnKeyReleased(source, keyInfo);
4151 if (__highlighted == false)
4153 __highlightedItemIndex = __lastHighlightedItemIndex;
4155 if (__highlightedItemIndex == __itemCount)
4157 if (__pButtonItems[LEFT_BUTTON])
4159 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4161 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4164 else if (__pButtonItems[RIGHT_BUTTON])
4166 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4168 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4172 else if (__highlightedItemIndex == __itemCount + 1)
4174 if (__pButtonItems[RIGHT_BUTTON])
4176 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4178 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4183 __highlighted = true;
4187 else // footer // right key
4189 if (__itemCount != 0)
4191 if (__pButtonItems[LEFT_BUTTON])
4193 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
4195 if (__highlightedItemIndex == __itemCount)
4197 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4199 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4202 __highlightedItemIndex = 0;
4204 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4206 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4208 __lastHighlightedItemIndex = __highlightedItemIndex;
4209 __highlighted = true;
4213 OnKeyReleased(source, keyInfo);
4216 else if (__highlightedItemIndex < __itemCount - 1)
4218 if (__highlightedItemIndex == selectedItemIndex)
4220 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4222 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4227 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4229 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4233 __highlightedItemIndex++;
4235 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4237 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4239 __lastHighlightedItemIndex = __highlightedItemIndex;
4240 __highlighted = true;
4244 OnKeyReleased(source, keyInfo);
4247 else if (__highlightedItemIndex == __itemCount -1)
4249 if (__highlightedItemIndex == selectedItemIndex)
4251 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4253 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4258 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4260 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4264 __highlightedItemIndex = __itemCount + 1;
4266 if (__pButtonItems[RIGHT_BUTTON])
4268 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4270 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4272 __lastHighlightedItemIndex = __highlightedItemIndex;
4273 __highlighted = true;
4277 OnKeyReleased(source, keyInfo);
4284 if (__highlightedItemIndex == __itemCount)
4286 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4288 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4291 __highlightedItemIndex = 0;
4293 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4295 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4297 __lastHighlightedItemIndex = __highlightedItemIndex;
4298 __highlighted = true;
4302 OnKeyReleased(source, keyInfo);
4305 else if (__highlightedItemIndex < __itemCount - 1)
4307 if (__highlightedItemIndex == selectedItemIndex)
4309 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4311 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4316 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4318 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4322 __highlightedItemIndex++;
4324 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4326 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4328 __lastHighlightedItemIndex = __highlightedItemIndex;
4329 __highlighted = true;
4333 OnKeyReleased(source, keyInfo);
4340 if (__pButtonItems[RIGHT_BUTTON]) // Item R, B
4342 if (__highlightedItemIndex < __itemCount - 1)
4344 if (__highlightedItemIndex == selectedItemIndex)
4346 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4348 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4353 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4355 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4359 __highlightedItemIndex++;
4361 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4363 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4365 __lastHighlightedItemIndex = __highlightedItemIndex;
4366 __highlighted = true;
4370 OnKeyReleased(source, keyInfo);
4373 else if (__highlightedItemIndex == __itemCount -1)
4375 if (__highlightedItemIndex == selectedItemIndex)
4377 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4379 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4384 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4386 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4390 __highlightedItemIndex++;
4392 if (__pButtonItems[RIGHT_BUTTON])
4394 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4396 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4398 __lastHighlightedItemIndex = __highlightedItemIndex;
4399 __highlighted = true;
4403 OnKeyReleased(source, keyInfo);
4410 if (__highlightedItemIndex < __itemCount - 1)
4412 if (__highlightedItemIndex == selectedItemIndex)
4414 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4416 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4421 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4423 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4427 __highlightedItemIndex++;
4429 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4431 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4433 __lastHighlightedItemIndex = __highlightedItemIndex;
4434 __highlighted = true;
4436 if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
4438 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
4440 __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
4446 OnKeyReleased(source, keyInfo);
4452 if (__highlighted == false)
4454 __highlightedItemIndex = __lastHighlightedItemIndex;
4456 if (__highlightedItemIndex < __itemCount)
4458 if (__pItems.at(__highlightedItemIndex))
4460 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4462 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4466 else if (__highlightedItemIndex == __itemCount)
4468 if (__pButtonItems[LEFT_BUTTON])
4470 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4472 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4475 else if (__pButtonItems[RIGHT_BUTTON])
4477 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4479 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4483 else if (__highlightedItemIndex == __itemCount + 1)
4485 if (__pButtonItems[RIGHT_BUTTON])
4487 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4489 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4494 __highlighted = true;
4497 else // __itemCount = 0
4499 if (__pButtonItems[LEFT_BUTTON])
4501 if (__pButtonItems[RIGHT_BUTTON])
4503 if (__highlightedItemIndex == 0)
4505 __highlightedItemIndex++;
4507 if (__pButtonItems[LEFT_BUTTON])
4509 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4511 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4515 if (__pButtonItems[RIGHT_BUTTON])
4517 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4519 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4521 __lastHighlightedItemIndex = __highlightedItemIndex;
4522 __highlighted = true;
4526 OnKeyReleased(source, keyInfo);
4533 if (__highlighted == false)
4535 __highlightedItemIndex = __lastHighlightedItemIndex;
4537 if (__highlightedItemIndex == __itemCount)
4539 if (__pButtonItems[LEFT_BUTTON])
4541 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4543 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4546 else if (__pButtonItems[RIGHT_BUTTON])
4548 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4550 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4554 else if (__highlightedItemIndex == __itemCount + 1)
4556 if (__pButtonItems[RIGHT_BUTTON])
4558 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4560 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4565 __highlighted = true;
4572 else if (IsFocusModeStateEnabled() == true && keyCode == _KEY_LEFT)
4574 __highlighted = false;
4576 if (__header == true && __style != TOOLBAR_TEXT) // right align
4578 if (__itemCount != 0)
4580 if (__highlightedItemIndex == __itemCount + 1)
4582 __highlightedItemIndex--;
4584 if (__pButtonItems[RIGHT_BUTTON])
4586 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4588 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4592 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4594 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4596 __lastHighlightedItemIndex = __highlightedItemIndex;
4597 __highlighted = true;
4601 OnKeyReleased(source, keyInfo);
4604 else if (__highlightedItemIndex == __itemCount)
4606 __highlightedItemIndex--;
4608 if (__pButtonItems[LEFT_BUTTON])
4610 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4612 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4615 else if (__pButtonItems[RIGHT_BUTTON])
4617 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4619 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4623 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4625 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4627 __lastHighlightedItemIndex = __highlightedItemIndex;
4628 __highlighted = true;
4632 OnKeyReleased(source, keyInfo);
4635 else if (__highlightedItemIndex > 0)
4637 if (__pItems.at(__highlightedItemIndex) != null)
4639 if (__highlightedItemIndex == selectedItemIndex)
4641 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4643 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4648 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4650 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4654 __highlightedItemIndex--;
4656 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4658 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4660 __lastHighlightedItemIndex = __highlightedItemIndex;
4661 __highlighted = true;
4663 if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
4665 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
4667 __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
4673 OnKeyReleased(source, keyInfo);
4678 if (__highlighted == false)
4680 __highlightedItemIndex = __lastHighlightedItemIndex;
4682 if (__highlightedItemIndex < __itemCount)
4684 if (__pItems.at(__highlightedItemIndex))
4686 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4688 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4692 else if (__highlightedItemIndex == __itemCount)
4694 if (__pButtonItems[LEFT_BUTTON])
4696 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4698 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4701 else if (__pButtonItems[RIGHT_BUTTON])
4703 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4705 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4709 else if (__highlightedItemIndex == __itemCount + 1)
4711 if (__pButtonItems[RIGHT_BUTTON])
4713 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4715 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4720 __highlighted = true;
4723 else // __itemCount == 0
4725 if (__highlightedItemIndex == __itemCount + 1)
4727 __highlightedItemIndex--;
4729 if (__pButtonItems[RIGHT_BUTTON])
4731 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4733 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4737 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4739 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4741 __lastHighlightedItemIndex = __highlightedItemIndex;
4742 __highlighted = true;
4746 OnKeyReleased(source, keyInfo);
4750 if (__highlighted == false)
4752 __highlightedItemIndex = __lastHighlightedItemIndex;
4754 if (__highlightedItemIndex == __itemCount)
4756 if (__pButtonItems[LEFT_BUTTON])
4758 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4760 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4763 else if (__pButtonItems[RIGHT_BUTTON])
4765 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4767 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4771 else if (__highlightedItemIndex == __itemCount + 1)
4773 if (__pButtonItems[RIGHT_BUTTON])
4775 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4777 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4782 __highlighted = true;
4786 else // footer << leftkey
4788 if (__itemCount != 0)
4790 if (__pButtonItems[LEFT_BUTTON])
4792 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
4794 if (__highlightedItemIndex == 0)
4796 if (__highlightedItemIndex == selectedItemIndex)
4798 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4800 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4805 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4807 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4811 __highlightedItemIndex = __itemCount;
4813 if (__pButtonItems[LEFT_BUTTON])
4815 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4817 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4819 __lastHighlightedItemIndex = __highlightedItemIndex;
4820 __highlighted = true;
4828 else if (__highlightedItemIndex < __itemCount)
4830 if (__highlightedItemIndex == selectedItemIndex)
4832 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4834 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4839 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4841 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4845 __highlightedItemIndex--;
4847 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4849 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4851 __lastHighlightedItemIndex = __highlightedItemIndex;
4852 __highlighted = true;
4856 OnKeyReleased(source, keyInfo);
4859 else if (__highlightedItemIndex == __itemCount + 1)
4861 if (__pButtonItems[RIGHT_BUTTON])
4863 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4865 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4869 __highlightedItemIndex = __itemCount - 1;
4871 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4873 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4875 __lastHighlightedItemIndex = __highlightedItemIndex;
4876 __highlighted = true;
4880 OnKeyReleased(source, keyInfo);
4886 if (__highlightedItemIndex == 0)
4888 if (__highlightedItemIndex == selectedItemIndex)
4890 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4892 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4897 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4899 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4903 __highlightedItemIndex = __itemCount;
4905 if (__pButtonItems[LEFT_BUTTON])
4907 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4909 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4911 __lastHighlightedItemIndex = __highlightedItemIndex;
4912 __highlighted = true;
4920 else if (__highlightedItemIndex < __itemCount)
4922 if (__highlightedItemIndex == selectedItemIndex)
4924 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4926 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4931 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4933 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4937 __highlightedItemIndex--;
4939 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4941 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4943 __lastHighlightedItemIndex = __highlightedItemIndex;
4944 __highlighted = true;
4948 OnKeyReleased(source, keyInfo);
4955 if (__pButtonItems[RIGHT_BUTTON]) // Item R
4957 if (__highlightedItemIndex == 0)
4961 else if (__highlightedItemIndex < __itemCount)
4963 if (__highlightedItemIndex == selectedItemIndex)
4965 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4967 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
4972 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4974 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
4978 __highlightedItemIndex--;
4980 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4982 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
4984 __lastHighlightedItemIndex = __highlightedItemIndex;
4985 __highlighted = true;
4989 OnKeyReleased(source, keyInfo);
4992 else if (__highlightedItemIndex == __itemCount)
4994 if (__pButtonItems[RIGHT_BUTTON])
4996 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
4998 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5002 __highlightedItemIndex--;
5004 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5006 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5008 __lastHighlightedItemIndex = __highlightedItemIndex;
5009 __highlighted = true;
5013 OnKeyReleased(source, keyInfo);
5019 if (__highlightedItemIndex == 0)
5023 else if (__highlightedItemIndex < __itemCount)
5025 if (__highlightedItemIndex == selectedItemIndex)
5027 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5029 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
5034 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5036 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5040 __highlightedItemIndex--;
5042 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5044 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5046 __lastHighlightedItemIndex = __highlightedItemIndex;
5047 __highlighted = true;
5049 if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
5051 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5053 __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
5059 OnKeyReleased(source, keyInfo);
5065 if (__highlighted == false)
5067 __highlightedItemIndex = __lastHighlightedItemIndex;
5069 if (__highlightedItemIndex < __itemCount)
5071 if (__pItems.at(__highlightedItemIndex))
5073 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5075 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5079 else if (__highlightedItemIndex == __itemCount)
5081 if (__pButtonItems[LEFT_BUTTON])
5083 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5085 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5088 else if (__pButtonItems[RIGHT_BUTTON])
5090 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5092 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5096 else if (__highlightedItemIndex == __itemCount + 1)
5098 if (__pButtonItems[RIGHT_BUTTON])
5100 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5102 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5107 __highlighted = true;
5110 else // __itemCount == 0
5112 if (__pButtonItems[LEFT_BUTTON])
5114 if (__pButtonItems[RIGHT_BUTTON])
5116 if (__highlightedItemIndex == __itemCount + 1)
5118 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5120 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5123 __highlightedItemIndex--;
5125 if (__pButtonItems[LEFT_BUTTON])
5127 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5129 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5131 __lastHighlightedItemIndex = __highlightedItemIndex;
5132 __highlighted = true;
5143 if (__highlighted == false)
5145 __highlightedItemIndex = __lastHighlightedItemIndex;
5147 if (__highlightedItemIndex == __itemCount)
5149 if (__pButtonItems[LEFT_BUTTON])
5151 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5153 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5156 else if (__pButtonItems[RIGHT_BUTTON])
5158 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5160 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5164 else if (__highlightedItemIndex == __itemCount + 1)
5166 if (__pButtonItems[RIGHT_BUTTON])
5168 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5170 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
5175 __highlighted = true;
5182 else if (IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
5184 if (__itemCount != 0)
5186 if (__pButtonItems[LEFT_BUTTON])
5188 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
5190 if (__highlightedItemIndex < __itemCount)
5192 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5193 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5195 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5197 SetItemHighlighted(__highlightedItemIndex, true, false);
5202 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5204 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5206 __lastHighlightedItemIndex = __highlightedItemIndex;
5207 __highlighted = true;
5211 else if (__highlightedItemIndex == __itemCount)
5213 if (__pButtonItems[LEFT_BUTTON])
5215 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5217 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5218 __pButtonItems[LEFT_BUTTON]->Invalidate();
5220 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5222 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5223 __highlighted = true;
5227 else if (__highlightedItemIndex == __itemCount + 1)
5229 if (__pButtonItems[RIGHT_BUTTON])
5231 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5233 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5234 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5236 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5238 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount + 1;
5239 __highlighted = true;
5246 if (__highlightedItemIndex < __itemCount)
5248 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5249 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5251 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5253 SetItemHighlighted(__highlightedItemIndex, true, false);
5258 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5260 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5262 __lastHighlightedItemIndex = __highlightedItemIndex;
5263 __highlighted = true;
5267 else if (__highlightedItemIndex == __itemCount)
5269 if (__pButtonItems[LEFT_BUTTON])
5271 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5273 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5274 __pButtonItems[LEFT_BUTTON]->Invalidate();
5276 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5278 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5279 __highlighted = true;
5287 if (__pButtonItems[RIGHT_BUTTON]) // Item R
5289 if (__highlightedItemIndex < __itemCount)
5291 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5292 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5294 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5296 SetItemHighlighted(__highlightedItemIndex, true, false);
5301 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5303 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5305 __lastHighlightedItemIndex = __highlightedItemIndex;
5306 __highlighted = true;
5310 else if (__highlightedItemIndex == __itemCount)
5312 if (__pButtonItems[RIGHT_BUTTON])
5314 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5316 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5317 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5319 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5321 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5322 __highlighted = true;
5329 if (__highlightedItemIndex < __itemCount)
5331 if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
5332 || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
5334 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5336 SetItemHighlighted(__highlightedItemIndex, true, false);
5341 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5343 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5345 __lastHighlightedItemIndex = __highlightedItemIndex;
5346 __highlighted = true;
5353 else // __itemCount == 0
5355 if (__pButtonItems[LEFT_BUTTON])
5357 if (__pButtonItems[RIGHT_BUTTON]) // L R
5359 if (__highlightedItemIndex == 0)
5361 if (__pButtonItems[LEFT_BUTTON])
5363 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5365 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5366 __pButtonItems[LEFT_BUTTON]->Invalidate();
5368 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5370 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5371 __highlighted = true;
5375 else if (__highlightedItemIndex == 1)
5377 if (__pButtonItems[RIGHT_BUTTON])
5379 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5381 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5382 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5384 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5386 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount + 1;
5387 __highlighted = true;
5394 if (__highlightedItemIndex == 0)
5396 if (__pButtonItems[LEFT_BUTTON])
5398 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5400 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5401 __pButtonItems[LEFT_BUTTON]->Invalidate();
5403 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5405 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5406 __highlighted = true;
5414 if (__pButtonItems[RIGHT_BUTTON]) // R
5416 if (__highlightedItemIndex == 0)
5418 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5420 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
5421 __pButtonItems[RIGHT_BUTTON]->Invalidate();
5423 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
5425 __lastHighlightedItemIndex = __highlightedItemIndex = __itemCount;
5426 __highlighted = true;
5438 _Toolbar::OnChangeLayout(_ControlOrientation orientationStatus)
5440 float toolbarWidth = GetBoundsF().width;
5442 if (CalculateMinimumToolbarWidth() > toolbarWidth)
5444 toolbarWidth = CalculateMinimumToolbarWidth();
5447 AdjustToolbarBounds();
5451 __pToolbarPresenter->OnChangeLayout(orientationStatus);
5457 _Toolbar::OnDraw(void)
5461 __pToolbarPresenter->Draw();
5463 if(__pTitleTextElement)
5465 if( __descriptionText.IsEmpty())
5467 __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
5471 FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
5472 FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
5474 __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
5481 _Toolbar::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
5483 return __pToolbarPresenter->OnLongPressGestureDetected();
5487 _Toolbar::OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture)
5493 _Toolbar::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
5495 return __pToolbarPresenter->OnFlickGestureDetected(gesture);
5499 _Toolbar::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
5505 _Toolbar::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
5509 return __pToolbarPresenter->OnTouchPressed(source, touchinfo);
5513 _Toolbar::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
5517 return __pToolbarPresenter->OnTouchReleased(source, touchinfo);
5521 _Toolbar::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
5525 return __pToolbarPresenter->OnTouchMoved(source, touchinfo);
5529 _Toolbar::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
5533 return __pToolbarPresenter->OnTouchCanceled(source, touchinfo);
5537 _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
5539 _KeyCode keyCode = keyInfo.GetKeyCode();
5541 if (IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
5543 if (__itemCount != 0)
5545 if (__pButtonItems[LEFT_BUTTON])
5547 if (__pButtonItems[RIGHT_BUTTON]) // L Item R
5549 if (__highlightedItemIndex < __itemCount)
5551 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5553 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5556 else if (__highlightedItemIndex == __itemCount)
5558 if (__pButtonItems[LEFT_BUTTON])
5560 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5562 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5566 else if (__highlightedItemIndex == __itemCount + 1)
5568 if (__pButtonItems[RIGHT_BUTTON])
5570 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5572 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5579 if (__highlightedItemIndex < __itemCount)
5581 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5583 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5586 else if (__highlightedItemIndex == __itemCount)
5588 if (__pButtonItems[LEFT_BUTTON])
5590 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5592 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5600 if (__pButtonItems[RIGHT_BUTTON]) // Item R
5602 if (__highlightedItemIndex < __itemCount)
5604 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5606 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5609 else if (__highlightedItemIndex == __itemCount)
5611 if (__pButtonItems[RIGHT_BUTTON])
5613 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5615 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5622 if (__highlightedItemIndex < __itemCount)
5624 if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5626 __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5632 else // __itemCount == 0
5634 if (__pButtonItems[LEFT_BUTTON])
5636 if (__pButtonItems[RIGHT_BUTTON]) // L R
5638 if (__highlightedItemIndex == 0)
5640 if (__pButtonItems[LEFT_BUTTON])
5642 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5644 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5648 else if (__highlightedItemIndex == 1)
5650 if (__pButtonItems[RIGHT_BUTTON])
5652 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5654 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5661 if (__highlightedItemIndex == 0)
5663 if (__pButtonItems[LEFT_BUTTON])
5665 if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5667 __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5675 if (__pButtonItems[RIGHT_BUTTON]) // R
5677 if (__highlightedItemIndex == 0)
5679 if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
5681 __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_PRESSED);
5695 _Toolbar::AddActionEventListener(const Controls::_IActionEventListener& listener)
5697 __pActionEventListener = const_cast<Controls::_IActionEventListener*>(&listener);
5699 for (int i = 0; i < __itemCount; i++)
5701 __pItems.at(i)->AddActionEventListener(listener);
5704 for (int j = 0; j <= MIDDLE_BUTTON; j++)
5706 if (__pButtonItems[j])
5708 __pButtonItems[j]->AddActionEventListener(listener);
5716 _Toolbar::RemoveActionEventListener(const Controls::_IActionEventListener& listener)
5718 __pActionEventListener = null;
5720 //for (int i = 0; i < __itemCount; i++)
5722 //__pItems.at(i)->RemoveActionEventListener(listener);
5725 //for (int j = 0; j < MIDDLE_BUTTON; j++)
5727 // if (__pButtonItems[j])
5729 // __pButtonItems[j]->RemoveActionEventListener(listener);
5738 _Toolbar::SetBackEventListener(const Controls::_IActionEventListener& listener, int actionId)
5740 __backActionId = actionId;
5741 __pBackEventListener = const_cast<_IActionEventListener*>(&listener);
5747 _Toolbar::SetMenuEventListener(const Controls::_IActionEventListener& listener, int actionId)
5749 __menuActionId = actionId;
5750 __pMenuEventListener = const_cast<_IActionEventListener*>(&listener);
5756 _Toolbar::SetPresenter(const _ToolbarPresenter& toolbarPresenter)
5758 __pToolbarPresenter = const_cast<_ToolbarPresenter*>(&toolbarPresenter);
5764 _Toolbar::GetPresenter(void) const
5766 return __pToolbarPresenter;
5770 _Toolbar::ApplyUserGUI(ButtonType buttonType, _Button* pButton)
5772 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_ARG, "[E_INVALID_ARG] The pButton is invalid.");
5774 if (TOOLBAR_BUTTON == buttonType)
5776 Bitmap* pNormalBackgroundBitmap = null;
5777 Bitmap* pDisabledBackgroundBitmap = null;
5778 Bitmap* pPressedBackgroundBitmap = null;
5779 Bitmap* pHighlightedBackgroundBitmap = null;
5781 Bitmap* pNormalBackgroundEffectBitmap = null;
5782 Bitmap* pDisabledBackgroundEffectBitmap = null;
5783 Bitmap* pPressedBackgroundEffectBitmap = null;
5784 Bitmap* pHighlightedBackgroundEffectBitmap = null;
5786 Bitmap* pColorReplacedBitmap = null;
5788 bool customTheme = false;
5790 if (__header == true)
5792 if (__transparent == true)
5794 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
5795 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
5796 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
5797 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
5799 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL);
5800 if (customTheme == false)
5802 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
5805 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED);
5806 if (customTheme == false)
5808 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
5811 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED);
5812 if (customTheme == false)
5814 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
5817 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED);
5818 if (customTheme == false)
5820 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
5825 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
5826 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
5827 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
5828 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
5830 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_NORMAL);
5831 if (customTheme == false)
5833 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
5836 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_DISABLED);
5837 if (customTheme == false)
5839 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
5842 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_PRESSED);
5843 if (customTheme == false)
5845 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
5848 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_BG_HIGHLIGHTED);
5849 if (customTheme == false)
5851 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
5857 if (__transparent == true)
5859 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
5860 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
5861 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
5862 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
5864 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL);
5865 if (customTheme == false)
5867 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
5870 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED);
5871 if (customTheme == false)
5873 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
5876 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED);
5877 if (customTheme == false)
5879 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
5882 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED);
5883 if (customTheme == false)
5885 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
5890 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
5891 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
5892 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
5893 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
5895 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_NORMAL);
5896 if (customTheme == false)
5898 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
5901 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_DISABLED);
5902 if (customTheme == false)
5904 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
5907 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_PRESSED);
5908 if (customTheme == false)
5910 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
5913 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_BG_HIGHLIGHTED);
5914 if (customTheme == false)
5916 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
5921 if (__transparent == true)
5923 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTransTextColor[_BUTTON_STATUS_NORMAL]);
5924 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTransTextColor[_BUTTON_STATUS_DISABLED]);
5925 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTransTextColor[_BUTTON_STATUS_PRESSED]);
5926 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
5928 if (pNormalBackgroundBitmap)
5930 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
5931 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
5932 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
5934 delete pColorReplacedBitmap;
5935 delete pNormalBackgroundBitmap;
5938 if (pDisabledBackgroundBitmap)
5940 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
5941 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
5942 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
5944 delete pColorReplacedBitmap;
5945 delete pDisabledBackgroundBitmap;
5948 if (pPressedBackgroundBitmap)
5950 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
5951 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
5952 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
5954 delete pColorReplacedBitmap;
5955 delete pPressedBackgroundBitmap;
5958 if (pHighlightedBackgroundBitmap)
5960 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
5961 Color::GetColor(COLOR_ID_MAGENTA), __buttonTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
5962 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
5964 delete pColorReplacedBitmap;
5965 delete pHighlightedBackgroundBitmap;
5970 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
5971 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
5972 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
5973 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
5975 if (pNormalBackgroundBitmap)
5977 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
5978 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
5979 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
5981 delete pColorReplacedBitmap;
5982 delete pNormalBackgroundBitmap;
5985 if (pDisabledBackgroundBitmap)
5987 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
5988 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
5989 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
5991 delete pColorReplacedBitmap;
5992 delete pDisabledBackgroundBitmap;
5995 if (pPressedBackgroundBitmap)
5997 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
5998 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
5999 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
6001 delete pColorReplacedBitmap;
6002 delete pPressedBackgroundBitmap;
6005 if (pHighlightedBackgroundBitmap)
6007 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
6008 Color::GetColor(COLOR_ID_MAGENTA), __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
6009 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
6011 delete pColorReplacedBitmap;
6012 delete pHighlightedBackgroundBitmap;
6016 if (__style != TOOLBAR_SOFTKEY)
6018 if (pNormalBackgroundEffectBitmap)
6020 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *pNormalBackgroundEffectBitmap);
6021 delete pNormalBackgroundEffectBitmap;
6023 if (pDisabledBackgroundEffectBitmap)
6025 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_DISABLED, *pDisabledBackgroundEffectBitmap);
6026 delete pDisabledBackgroundEffectBitmap;
6028 if (pPressedBackgroundEffectBitmap)
6030 pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *pPressedBackgroundEffectBitmap);
6031 delete pPressedBackgroundEffectBitmap;
6033 if (pHighlightedBackgroundEffectBitmap)
6035 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pHighlightedBackgroundEffectBitmap);
6036 delete pHighlightedBackgroundEffectBitmap;
6040 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
6042 Bitmap* pSubTitleEffectBitmap = null;
6043 Bitmap* pReColorSubTitleEffectBitmap = null;
6045 Color subTitleEffectColor;
6047 GET_BITMAP_CONFIG_N(HEADER::SUB_TITLE_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, pSubTitleEffectBitmap);
6048 GET_COLOR_CONFIG(HEADER::SUB_TITLE_EFFECT_NORMAL, subTitleEffectColor);
6050 pReColorSubTitleEffectBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSubTitleEffectBitmap, Color::GetColor(COLOR_ID_MAGENTA), subTitleEffectColor);
6052 if (pReColorSubTitleEffectBitmap)
6054 pButton->SetSubTitleEffectBitmap(*pReColorSubTitleEffectBitmap);
6057 delete pSubTitleEffectBitmap;
6058 delete pReColorSubTitleEffectBitmap;
6061 else if (TOOLBAR_ITEM == buttonType)
6063 Bitmap* pNormalBackgroundBitmap = null;
6064 Bitmap* pDisabledBackgroundBitmap = null;
6065 Bitmap* pPressedBackgroundBitmap = null;
6066 Bitmap* pHighlightedBackgroundBitmap = null;
6067 Bitmap* pSelectedBackgroundBitmap = null;
6069 Bitmap* pNormalBackgroundEffectBitmap = null;
6070 Bitmap* pDisabledBackgroundEffectBitmap = null;
6071 Bitmap* pPressedBackgroundEffectBitmap = null;
6072 Bitmap* pHighlightedBackgroundEffectBitmap = null;
6073 Bitmap* pSelectedBackgroundEffectBitmap = null;
6075 Bitmap* pColorReplacedBitmap = null;
6077 bool customTheme = false;
6079 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
6081 if (__header == true)
6083 if (__transparent == true)
6085 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6086 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6087 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6088 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6090 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL);
6091 if (customTheme == false)
6093 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6096 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED);
6097 if (customTheme == false)
6099 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6102 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED);
6103 if (customTheme == false)
6105 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6108 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6109 if (customTheme == false)
6111 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6116 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6117 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6118 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6119 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6121 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_NORMAL);
6122 if (customTheme == false)
6124 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6127 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_DISABLED);
6128 if (customTheme == false)
6130 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6133 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_PRESSED);
6134 if (customTheme == false)
6136 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6139 customTheme = IS_CUSTOM_BITMAP(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED);
6140 if (customTheme == false)
6142 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6148 if (__transparent == true)
6150 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6151 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6152 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6153 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6155 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL);
6156 if (customTheme == false)
6158 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6161 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED);
6162 if (customTheme == false)
6164 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6167 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED);
6168 if (customTheme == false)
6170 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6173 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6174 if (customTheme == false)
6176 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6181 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6182 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6183 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6184 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6186 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_NORMAL);
6187 if (customTheme == false)
6189 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6192 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_DISABLED);
6193 if (customTheme == false)
6195 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6198 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_PRESSED);
6199 if (customTheme == false)
6201 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6204 customTheme = IS_CUSTOM_BITMAP(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED);
6205 if (customTheme == false)
6207 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6212 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
6213 || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
6215 if (__header == true)
6217 if (__transparent == true)
6219 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6220 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6221 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6222 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6223 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6226 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL);
6227 if (customTheme == false)
6229 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6232 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED);
6233 if (customTheme == false)
6235 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6238 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED);
6239 if (customTheme == false)
6241 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6244 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6245 if (customTheme == false)
6247 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6250 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED);
6251 if (customTheme == false)
6253 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6258 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6259 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6260 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6261 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6262 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6264 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_NORMAL);
6265 if (customTheme == false)
6267 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6270 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_DISABLED);
6271 if (customTheme == false)
6273 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6276 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_PRESSED);
6277 if (customTheme == false)
6279 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6282 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED);
6283 if (customTheme == false)
6285 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6288 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_SELECTED);
6289 if (customTheme == false)
6291 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6297 if (__transparent == true)
6299 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6300 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6301 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6302 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6303 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6305 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL);
6306 if (customTheme == false)
6308 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6311 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED);
6312 if (customTheme == false)
6314 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6317 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED);
6318 if (customTheme == false)
6320 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6323 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6324 if (customTheme == false)
6326 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6329 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED);
6330 if (customTheme == false)
6332 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6337 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6338 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6339 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6340 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6341 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6343 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_NORMAL);
6344 if (customTheme == false)
6346 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6349 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_DISABLED);
6350 if (customTheme == false)
6352 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6355 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_PRESSED);
6356 if (customTheme == false)
6358 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6361 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED);
6362 if (customTheme == false)
6364 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6367 customTheme = IS_CUSTOM_BITMAP(HEADER::SEGMENTED_ITEM_BG_SELECTED);
6368 if (customTheme == false)
6370 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6375 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
6377 if (__header == true)
6379 if (__transparent == true)
6381 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6382 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6383 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6384 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6385 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6387 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL);
6388 if (customTheme == false)
6390 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6393 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED);
6394 if (customTheme == false)
6396 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6399 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED);
6400 if (customTheme == false)
6402 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6405 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6406 if (customTheme == false)
6408 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6411 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED);
6412 if (customTheme == false)
6414 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6419 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6420 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6421 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6422 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6423 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6425 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_NORMAL);
6426 if (customTheme == false)
6428 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6431 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_DISABLED);
6432 if (customTheme == false)
6434 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6437 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_PRESSED);
6438 if (customTheme == false)
6440 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6443 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_HIGHLIGHTED);
6444 if (customTheme == false)
6446 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6449 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_SELECTED);
6450 if (customTheme == false)
6452 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6458 if (__transparent == true)
6460 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6461 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6462 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6463 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6464 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6466 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL);
6467 if (customTheme == false)
6469 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6472 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED);
6473 if (customTheme == false)
6475 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6478 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED);
6479 if (customTheme == false)
6481 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6484 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED);
6485 if (customTheme == false)
6487 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6490 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED);
6491 if (customTheme == false)
6493 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6498 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundBitmap);
6499 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundBitmap);
6500 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundBitmap);
6501 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundBitmap);
6502 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundBitmap);
6504 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_NORMAL);
6505 if (customTheme == false)
6507 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBackgroundEffectBitmap);
6510 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_DISABLED);
6511 if (customTheme == false)
6513 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBackgroundEffectBitmap);
6516 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_PRESSED);
6517 if (customTheme == false)
6519 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBackgroundEffectBitmap);
6522 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_HIGHLIGHTED);
6523 if (customTheme == false)
6525 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBackgroundEffectBitmap);
6528 customTheme = IS_CUSTOM_BITMAP(HEADER::TAB_ITEM_BG_SELECTED);
6529 if (customTheme == false)
6531 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pSelectedBackgroundEffectBitmap);
6537 if (__transparent == true)
6539 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTransTextColor[_BUTTON_STATUS_NORMAL]);
6540 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTransTextColor[_BUTTON_STATUS_DISABLED]);
6541 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTransTextColor[_BUTTON_STATUS_PRESSED]);
6542 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTransTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
6543 pButton->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTransTextColor[_BUTTON_STATUS_SELECTED]);
6545 if (pNormalBackgroundBitmap)
6547 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
6548 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_NORMAL]);
6549 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
6551 delete pColorReplacedBitmap;
6552 delete pNormalBackgroundBitmap;
6555 if (pDisabledBackgroundBitmap)
6557 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
6558 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_DISABLED]);
6559 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
6561 delete pColorReplacedBitmap;
6562 delete pDisabledBackgroundBitmap;
6565 if (pPressedBackgroundBitmap)
6567 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
6568 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_PRESSED]);
6569 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
6571 delete pColorReplacedBitmap;
6572 delete pPressedBackgroundBitmap;
6575 if (pHighlightedBackgroundBitmap)
6577 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
6578 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
6579 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
6581 delete pColorReplacedBitmap;
6582 delete pHighlightedBackgroundBitmap;
6585 if (pSelectedBackgroundBitmap)
6587 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSelectedBackgroundBitmap,
6588 Color::GetColor(COLOR_ID_MAGENTA), __itemTransBackgroundColor[_BUTTON_STATUS_SELECTED]);
6589 pButton->SetBackgroundBitmap(_BUTTON_STATUS_SELECTED, *pColorReplacedBitmap);
6591 delete pColorReplacedBitmap;
6592 delete pSelectedBackgroundBitmap;
6597 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
6598 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
6599 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
6600 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
6601 pButton->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
6603 if (pNormalBackgroundBitmap)
6605 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBackgroundBitmap,
6606 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
6607 pButton->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *pColorReplacedBitmap);
6609 delete pColorReplacedBitmap;
6610 delete pNormalBackgroundBitmap;
6613 if (pDisabledBackgroundBitmap)
6615 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBackgroundBitmap,
6616 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
6617 pButton->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *pColorReplacedBitmap);
6619 delete pColorReplacedBitmap;
6620 delete pDisabledBackgroundBitmap;
6623 if (pPressedBackgroundBitmap)
6625 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundBitmap,
6626 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
6627 pButton->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap);
6629 delete pColorReplacedBitmap;
6630 delete pPressedBackgroundBitmap;
6633 if (pHighlightedBackgroundBitmap)
6635 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
6636 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
6637 pButton->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pColorReplacedBitmap);
6639 delete pColorReplacedBitmap;
6640 delete pHighlightedBackgroundBitmap;
6643 if (pSelectedBackgroundBitmap)
6645 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSelectedBackgroundBitmap,
6646 Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
6647 pButton->SetBackgroundBitmap(_BUTTON_STATUS_SELECTED, *pColorReplacedBitmap);
6649 delete pColorReplacedBitmap;
6650 delete pSelectedBackgroundBitmap;
6654 if (__style != TOOLBAR_SOFTKEY)
6656 if (pNormalBackgroundEffectBitmap)
6658 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *pNormalBackgroundEffectBitmap);
6659 delete pNormalBackgroundEffectBitmap;
6661 if (pDisabledBackgroundEffectBitmap)
6663 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_DISABLED, *pDisabledBackgroundEffectBitmap);
6664 delete pDisabledBackgroundEffectBitmap;
6666 if (pPressedBackgroundEffectBitmap)
6668 pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *pPressedBackgroundEffectBitmap);
6669 delete pPressedBackgroundEffectBitmap;
6671 if (pHighlightedBackgroundEffectBitmap)
6673 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED, *pHighlightedBackgroundEffectBitmap);
6674 delete pHighlightedBackgroundEffectBitmap;
6676 if (pSelectedBackgroundEffectBitmap)
6678 // pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_SELECTED, *pSelectedBackgroundEffectBitmap);
6679 delete pSelectedBackgroundEffectBitmap;
6683 if (__style == TOOLBAR_TAB_LARGE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
6685 pButton->SetTabTextSlide(true);
6687 Bitmap* pTabTextDimLeftBitmap = null;
6688 Bitmap* pTabTextDimRightBitmap = null;
6689 Bitmap* pReColorTabTextDimLeftBitmap = null;
6690 Bitmap* pReColorTabTextDimRightBitmap = null;
6692 Color tabTextDimColor;
6694 if (__header == true)
6696 GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap);
6697 GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap);
6698 if (__transparent == true)
6700 GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor);
6701 tabTextDimColor.SetAlpha(0x00);
6705 GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_NORMAL, tabTextDimColor);
6706 tabTextDimColor.SetAlpha(0x00);
6711 GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap);
6712 GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap);
6713 if (__transparent == true)
6715 GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor);
6716 tabTextDimColor.SetAlpha(0x00);
6720 GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_NORMAL, tabTextDimColor);
6721 tabTextDimColor.SetAlpha(0x00);
6725 pReColorTabTextDimLeftBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimLeftBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor);
6726 pReColorTabTextDimRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimRightBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor);
6728 if (pReColorTabTextDimLeftBitmap)
6730 pButton->SetTabTextDimLeftBitmap(*pReColorTabTextDimLeftBitmap);
6733 if (pReColorTabTextDimRightBitmap)
6735 pButton->SetTabTextDimRightBitmap(*pReColorTabTextDimRightBitmap);
6738 delete pTabTextDimLeftBitmap;
6739 delete pTabTextDimRightBitmap;
6740 delete pReColorTabTextDimLeftBitmap;
6741 delete pReColorTabTextDimRightBitmap;
6744 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
6746 Bitmap* pSubTitleEffectBitmap = null;
6747 Bitmap* pReColorSubTitleEffectBitmap = null;
6749 Color subTitleEffectColor;
6751 GET_BITMAP_CONFIG_N(HEADER::SUB_TITLE_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, pSubTitleEffectBitmap);
6752 GET_COLOR_CONFIG(HEADER::SUB_TITLE_EFFECT_NORMAL, subTitleEffectColor);
6754 pReColorSubTitleEffectBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pSubTitleEffectBitmap, Color::GetColor(COLOR_ID_MAGENTA), subTitleEffectColor);
6756 if (pReColorSubTitleEffectBitmap)
6758 pButton->SetSubTitleEffectBitmap(*pReColorSubTitleEffectBitmap);
6761 delete pSubTitleEffectBitmap;
6762 delete pReColorSubTitleEffectBitmap;
6764 } //if (TOOLBAR_ITEM == buttonType)
6770 _Toolbar::CalculateMinimumToolbarWidth(void)
6772 float totalWidth = 0.0f;
6773 float itemMinimumWidth = 0.0f;
6774 float horizontalMargin = 0.0f;
6776 if (__header == true && __style == TOOLBAR_TEXT)
6778 if (IsButtonSet(LEFT_BUTTON))
6780 //if (__pButtonItems[LEFT_BUTTON]->GetText().IsEmpty())
6782 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6786 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
6789 totalWidth += itemMinimumWidth;
6791 if (IsButtonSet(RIGHT_BUTTON))
6793 //if (__pButtonItems[RIGHT_BUTTON]->GetText().IsEmpty())
6795 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6799 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
6802 totalWidth += itemMinimumWidth;
6805 else // footer or HEADER_TITLE_BUTTON
6807 if (IsButtonSet(LEFT_BUTTON))
6809 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6810 totalWidth += itemMinimumWidth;
6813 if (IsButtonSet(RIGHT_BUTTON))
6815 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6816 totalWidth += itemMinimumWidth;
6820 if (__style == TOOLBAR_TITLE)
6822 GET_SHAPE_CONFIG(HEADER::TITLE_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6823 totalWidth += itemMinimumWidth;
6825 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_HEADER_SEGMENTED)
6827 GET_SHAPE_CONFIG(HEADER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6828 GET_SHAPE_CONFIG(HEADER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
6829 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
6831 else if (__style == TOOLBAR_SEGMENTED)
6833 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6834 GET_SHAPE_CONFIG(FOOTER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
6835 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
6839 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6841 if ((__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) && __itemCount > 4)
6843 totalWidth += itemMinimumWidth * 4;
6847 totalWidth += itemMinimumWidth * __itemCount;
6855 _Toolbar::CalculateMinimumToolbarWidthF(void)
6857 float totalWidth = 0.0f;
6858 float itemMinimumWidth = 0.0f;
6859 float horizontalMargin = 0.0f;
6861 if (__header == true && __style == TOOLBAR_TEXT)
6863 if (IsButtonSet(LEFT_BUTTON))
6865 //if (__pButtonItems[LEFT_BUTTON]->GetText().IsEmpty())
6867 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6871 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
6874 totalWidth += itemMinimumWidth;
6876 if (IsButtonSet(RIGHT_BUTTON))
6878 //if (__pButtonItems[RIGHT_BUTTON]->GetText().IsEmpty())
6880 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6884 // GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetOrientation(), itemMinimumWidth);
6887 totalWidth += itemMinimumWidth;
6890 else // footer or HEADER_TITLE_BUTTON
6892 if (IsButtonSet(LEFT_BUTTON))
6894 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6895 totalWidth += itemMinimumWidth;
6898 if (IsButtonSet(RIGHT_BUTTON))
6900 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), itemMinimumWidth);
6901 totalWidth += itemMinimumWidth;
6905 if (__style == TOOLBAR_TITLE)
6907 GET_SHAPE_CONFIG(HEADER::TITLE_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6908 totalWidth += itemMinimumWidth;
6910 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_HEADER_SEGMENTED)
6912 GET_SHAPE_CONFIG(HEADER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6913 GET_SHAPE_CONFIG(HEADER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
6914 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
6916 else if (__style == TOOLBAR_SEGMENTED)
6918 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6919 GET_SHAPE_CONFIG(FOOTER::COMMON_MINIMUM_MARGIN, GetOrientation(), horizontalMargin);
6920 totalWidth += itemMinimumWidth * __itemCount + horizontalMargin * 2;
6924 GET_SHAPE_CONFIG(FOOTER::ITEM_MINIMUM_WIDTH, GetOrientation(), itemMinimumWidth);
6926 if ((__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE) && __itemCount > 4)
6928 totalWidth += itemMinimumWidth * 4;
6932 totalWidth += itemMinimumWidth * __itemCount;
6940 _Toolbar::RealignItem(_Button* pButton, float textExtentSize)
6942 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_STATE, "[E_INVALID_STATE] pButton doesn't exist.");
6944 float buttonItemWidth = pButton->GetSizeF().width;
6945 float buttonItemHeight = pButton->GetSizeF().height;
6946 float sideMargin = 0.0f;
6947 float buttonTextTopMargin = 0.0f;
6948 float iconTextGap = 0.0f;
6949 float contentLength = 0.0f;
6950 float segmentedTextAreaHeight = 0.0f;
6951 float revisedTopMargin = 5.0f;
6952 float largeTabTopMargin = 0.0f;
6953 float largeTabTextHeight = 0.0f;
6955 float leftTouchMargin = pButton->GetLeftTouchMarginF();
6956 float topTouchMargin = pButton->GetTopTouchMarginF();
6957 float rightTouchMargin = pButton->GetRightTouchMarginF();
6958 float bottomTouchMargin = pButton->GetBottomTouchMarginF();
6960 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
6961 GET_SHAPE_CONFIG(HEADER::ICON_TEXT_GAP, GetOrientation(), iconTextGap);
6962 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedTextAreaHeight);
6963 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_TOP_MARGIN, GetOrientation(), largeTabTopMargin);
6964 GET_SHAPE_CONFIG(HEADER::TAB_LARGE_TEXT_HEIGHT, GetOrientation(), largeTabTextHeight);
6966 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
6968 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_BUTTON_STYLE_SIDE_MARGIN, GetOrientation(), sideMargin);
6969 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_TOP_MARGIN, GetOrientation(), buttonTextTopMargin);
6971 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
6973 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
6975 buttonTextTopMargin = (buttonItemHeight - segmentedTextAreaHeight) / 2 - revisedTopMargin;
6977 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
6979 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_LEFT_MARGIN, GetOrientation(), sideMargin);
6981 buttonTextTopMargin = 0;
6984 if (pButton->GetText() != L"")
6986 float iconAreaWidth = 0.0f;
6988 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
6990 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_NORMAL)->GetWidthF();
6991 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
6993 if (contentLength > buttonItemWidth - sideMargin * 2)
6995 contentLength = buttonItemWidth - sideMargin * 2;
6998 if (__style == TOOLBAR_TAB_LARGE)
7000 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7001 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7002 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7006 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7007 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7008 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7011 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7013 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_PRESSED)->GetWidthF();
7014 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7016 if (contentLength > buttonItemWidth - sideMargin * 2)
7018 contentLength = buttonItemWidth - sideMargin * 2;
7021 if (__style == TOOLBAR_TAB_LARGE)
7023 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7024 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7025 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7029 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7030 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7031 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7034 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7036 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_SELECTED)->GetWidthF();
7037 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7039 if (contentLength > buttonItemWidth - sideMargin * 2)
7041 contentLength = buttonItemWidth - sideMargin * 2;
7044 if (__style == TOOLBAR_TAB_LARGE)
7046 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7047 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7048 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7052 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7053 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7054 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7057 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7059 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)->GetWidthF();
7060 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7062 if (contentLength > buttonItemWidth - sideMargin * 2)
7064 contentLength = buttonItemWidth - sideMargin * 2;
7067 if (__style == TOOLBAR_TAB_LARGE)
7069 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7070 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7071 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7075 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7076 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7077 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7080 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7082 iconAreaWidth = pButton->GetBitmap(_BUTTON_STATUS_DISABLED)->GetWidthF();
7083 contentLength = iconAreaWidth + iconTextGap + textExtentSize;
7085 if (contentLength > buttonItemWidth - sideMargin * 2)
7087 contentLength = buttonItemWidth - sideMargin * 2;
7090 if (__style == TOOLBAR_TAB_LARGE)
7092 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7093 FloatPoint((buttonItemWidth - iconAreaWidth) / 2, largeTabTopMargin),
7094 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7098 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7099 FloatPoint((buttonItemWidth - contentLength) / 2, (buttonItemHeight - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7100 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7104 if (iconAreaWidth != 0)
7106 if (__style == TOOLBAR_TAB_LARGE)
7108 pButton->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
7109 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, largeTabTopMargin + iconAreaWidth,
7110 buttonItemWidth - sideMargin * 2, largeTabTextHeight));
7112 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7114 pButton->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
7115 pButton->SetUserDefinedTextArea(FloatRectangle((buttonItemWidth - contentLength) / 2 + iconAreaWidth + iconTextGap, (buttonItemHeight - largeTabTextHeight) / 2,
7116 buttonItemWidth - iconAreaWidth - iconTextGap - sideMargin * 2, largeTabTextHeight));
7120 pButton->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
7121 pButton->SetUserDefinedTextArea(FloatRectangle((buttonItemWidth - contentLength) / 2 + iconAreaWidth + iconTextGap,
7122 buttonTextTopMargin, buttonItemWidth - iconAreaWidth - iconTextGap - sideMargin * 2, buttonItemHeight - buttonTextTopMargin * 2));
7127 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7129 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, (buttonItemHeight - largeTabTextHeight) / 2,
7130 buttonItemWidth - sideMargin * 2, largeTabTextHeight));
7134 pButton->SetUserDefinedTextArea(FloatRectangle(sideMargin, buttonTextTopMargin, buttonItemWidth - sideMargin * 2, buttonItemHeight - buttonTextTopMargin * 2));
7140 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
7142 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7143 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7144 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7145 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7147 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7149 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7150 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7151 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7152 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7154 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7156 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7157 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7158 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7159 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7161 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7163 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7164 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7165 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7166 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7168 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7170 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7171 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7172 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7173 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7176 pButton->SetMargin(sideMargin, buttonTextTopMargin, sideMargin, buttonTextTopMargin);
7183 _Toolbar::RealignButtonItem(_Button* pButton)
7185 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_STATE, "[E_INVALID_STATE] pButton doesn't exist.");
7187 float buttonItemWidth = pButton->GetSizeF().width;
7188 float buttonItemHeight = pButton->GetSizeF().height;
7190 float leftTouchMargin = pButton->GetLeftTouchMarginF();
7191 float topTouchMargin = pButton->GetTopTouchMarginF();
7192 float rightTouchMargin = pButton->GetRightTouchMarginF();
7193 float bottomTouchMargin = pButton->GetBottomTouchMarginF();
7195 if (pButton->GetBitmap(_BUTTON_STATUS_NORMAL) != null)
7197 pButton->SetBitmap(_BUTTON_STATUS_NORMAL,
7198 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7199 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7200 *(pButton->GetBitmap(_BUTTON_STATUS_NORMAL)));
7202 if (pButton->GetBitmap(_BUTTON_STATUS_PRESSED) != null)
7204 pButton->SetBitmap(_BUTTON_STATUS_PRESSED,
7205 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7206 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7207 *(pButton->GetBitmap(_BUTTON_STATUS_PRESSED)));
7209 if (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7211 pButton->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7212 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7213 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7214 *(pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7216 if (pButton->GetBitmap(_BUTTON_STATUS_DISABLED) != null)
7218 pButton->SetBitmap(_BUTTON_STATUS_DISABLED,
7219 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7220 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7221 *(pButton->GetBitmap(_BUTTON_STATUS_DISABLED)));
7223 if (pButton->GetBitmap(_BUTTON_STATUS_SELECTED) != null)
7225 pButton->SetBitmap(_BUTTON_STATUS_SELECTED,
7226 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7227 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7228 *(pButton->GetBitmap(_BUTTON_STATUS_SELECTED)));
7231 if (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL) != null)
7233 pButton->SetEffectBitmap(_BUTTON_STATUS_NORMAL,
7234 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL))->GetWidthF()) / 2,
7235 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL))->GetHeightF()) / 2),
7236 *(pButton->GetEffectBitmap(_BUTTON_STATUS_NORMAL)));
7239 if (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED) != null)
7241 pButton->SetEffectBitmap(_BUTTON_STATUS_PRESSED,
7242 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED))->GetWidthF()) / 2,
7243 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED))->GetHeightF()) / 2),
7244 *(pButton->GetEffectBitmap(_BUTTON_STATUS_PRESSED)));
7246 if (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED) != null)
7248 pButton->SetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED,
7249 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetWidthF()) / 2,
7250 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED))->GetHeightF()) / 2),
7251 *(pButton->GetEffectBitmap(_BUTTON_STATUS_HIGHLIGHTED)));
7253 if (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED) != null)
7255 pButton->SetEffectBitmap(_BUTTON_STATUS_DISABLED,
7256 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED))->GetWidthF()) / 2,
7257 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED))->GetHeightF()) / 2),
7258 *(pButton->GetEffectBitmap(_BUTTON_STATUS_DISABLED)));
7260 if (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED) != null)
7262 pButton->SetEffectBitmap(_BUTTON_STATUS_SELECTED,
7263 FloatPoint((buttonItemWidth - (leftTouchMargin + rightTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED))->GetWidthF()) / 2,
7264 (buttonItemHeight - (topTouchMargin + bottomTouchMargin) - (pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED))->GetHeightF()) / 2),
7265 *(pButton->GetEffectBitmap(_BUTTON_STATUS_SELECTED)));
7272 _Toolbar::RearrangeItems(void)
7274 __titleTextArea = _Control::GetBoundsF();
7276 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
7277 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
7279 if (CalculateMinimumToolbarWidth() > __titleTextArea.width)
7281 __titleTextArea.width = CalculateMinimumToolbarWidth();
7284 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
7286 if (__titleTextArea.width > portraitSize.width)
7288 __titleTextArea.width = portraitSize.width;
7293 if (__titleTextArea.width > landscapeSize.width)
7295 __titleTextArea.width = landscapeSize.width;
7299 __itemArea = __titleTextArea;
7301 if (__header == true && __style != TOOLBAR_TEXT) // right align
7303 float headerLeftButtonWidth = 0.0f;
7304 float headerRightButtonWidth = 0.0f;
7305 float headerTopMargin = 0.0f;
7306 float vmargin = 0.0f;
7307 float buttonItemGap = 0.0f;
7308 float headerButtonItemHeight = 0.0f;
7309 float headerLeftMargin = 0.0f;
7310 float headerRightMargin = 0.0f;
7311 float tabLeftMargin = 0.0f;
7313 float leftTouchMargin = 0.0f;
7314 float topTouchMargin = 0.0f;
7315 float rightTouchMargin = 0.0f;
7316 float bottomTouchMargin = 0.0f;
7318 GET_SHAPE_CONFIG(HEADER::TOP_MARGIN, GetOrientation(), headerTopMargin);
7319 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_GAP, GetOrientation(), buttonItemGap);
7320 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), headerLeftMargin);
7321 GET_SHAPE_CONFIG(HEADER::RIGHT_MARGIN, GetOrientation(), headerRightMargin);
7322 GET_SHAPE_CONFIG(HEADER::TAB_LEFT_MARGIN, GetOrientation(), tabLeftMargin);
7324 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_LEFT_TOUCH_MARGIN, GetOrientation(), leftTouchMargin);
7325 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_TOUCH_MARGIN, GetOrientation(), topTouchMargin);
7326 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_RIGHT_TOUCH_MARGIN, GetOrientation(), rightTouchMargin);
7327 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_BOTTOM_TOUCH_MARGIN, GetOrientation(), bottomTouchMargin);
7329 if (__pButtonItems[LEFT_BUTTON])
7331 headerLeftButtonWidth = __pButtonItems[LEFT_BUTTON]->GetSizeF().width;
7334 if (__pButtonItems[RIGHT_BUTTON])
7336 headerRightButtonWidth = __pButtonItems[RIGHT_BUTTON]->GetSizeF().width;
7339 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7341 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
7342 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), headerButtonItemHeight);
7346 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), vmargin);
7347 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetOrientation(), headerButtonItemHeight);
7350 __titleTextArea.x = headerLeftMargin;
7351 __titleTextArea.y = headerTopMargin;
7353 if (__pButtonItems[RIGHT_BUTTON])
7355 if (__pButtonItems[LEFT_BUTTON])
7357 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
7359 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
7361 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth, vmargin,
7362 headerRightButtonWidth, headerButtonItemHeight));
7363 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth, vmargin,
7364 headerLeftButtonWidth, headerButtonItemHeight));
7366 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7368 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7369 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7371 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7375 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7376 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7378 __titleTextArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7379 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7384 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
7385 headerRightButtonWidth, headerButtonItemHeight));
7386 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth , vmargin,
7387 headerLeftButtonWidth, headerButtonItemHeight));
7389 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7391 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7392 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7394 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7398 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7399 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7401 __titleTextArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7402 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7408 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
7410 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth, vmargin,
7411 headerRightButtonWidth, headerButtonItemHeight));
7412 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth, vmargin,
7413 headerLeftButtonWidth, headerButtonItemHeight));
7415 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7417 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7418 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7420 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7424 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7425 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7427 __titleTextArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7428 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7433 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
7434 headerRightButtonWidth, headerButtonItemHeight));
7435 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth , vmargin,
7436 headerLeftButtonWidth, headerButtonItemHeight));
7438 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7440 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7441 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7443 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7447 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7448 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7450 __titleTextArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7451 __itemArea.width -= (headerLeftButtonWidth + buttonItemGap + headerRightButtonWidth);
7458 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
7460 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth, vmargin,
7461 headerRightButtonWidth, headerButtonItemHeight));
7463 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7465 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7467 __itemArea.width -= (headerRightButtonWidth);
7471 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7473 __titleTextArea.width -= (headerRightButtonWidth);
7474 __itemArea.width -= (headerRightButtonWidth);
7479 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
7480 headerRightButtonWidth, headerButtonItemHeight));
7482 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7484 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7486 __itemArea.width -= (headerRightButtonWidth);
7490 //__pButtonItems[RIGHT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7492 __titleTextArea.width -= (headerRightButtonWidth);
7493 __itemArea.width -= (headerRightButtonWidth);
7498 else if (__pButtonItems[LEFT_BUTTON])
7500 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
7502 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerLeftButtonWidth, vmargin,
7503 headerLeftButtonWidth, headerButtonItemHeight));
7505 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7507 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, 0.0f, rightTouchMargin, 0.0f);
7509 __itemArea.width -= (headerLeftButtonWidth);
7513 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7515 __titleTextArea.width -= (headerLeftButtonWidth);
7516 __itemArea.width -= (headerLeftButtonWidth);
7521 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerLeftButtonWidth , vmargin,
7522 headerLeftButtonWidth, headerButtonItemHeight));
7524 if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
7526 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0, 0, 0, 0);
7528 __itemArea.width -= (headerLeftButtonWidth);
7532 //__pButtonItems[LEFT_BUTTON]->SetTouchMargin(0.0f, topTouchMargin, 0.0f, bottomTouchMargin);
7534 __titleTextArea.width -= (headerLeftButtonWidth);
7535 __itemArea.width -= (headerLeftButtonWidth);
7540 if ((__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7541 && __pButtonItems[LEFT_BUTTON] == null && __pButtonItems[RIGHT_BUTTON] == null)
7543 // segment style with no button's right margin is same as left
7544 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7545 __itemArea.width -= (headerLeftMargin + headerLeftMargin);
7547 else if (!(__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE))
7549 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7550 __itemArea.width -= (headerLeftMargin + headerRightMargin);
7553 if (__style == TOOLBAR_TAB_WITH_TITLE)
7555 __titleTextArea.width -= (headerLeftMargin + headerRightMargin);
7558 float processingAnimationIconSize = 0.0f;
7560 GET_SHAPE_CONFIG(HEADER::PROCESSING_ANIMATION_ICON_SIZE, GetOrientation(), processingAnimationIconSize);
7562 if (__pButtonItems[LEFT_BUTTON] && GetWaitingAnimationStatus(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT) != ANIMATION_STOPPED)
7564 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT,
7565 (__pButtonItems[LEFT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
7566 topTouchMargin + (__pButtonItems[LEFT_BUTTON]->GetSizeF().height - topTouchMargin - bottomTouchMargin - processingAnimationIconSize) / 2);
7569 if (__pButtonItems[RIGHT_BUTTON] && GetWaitingAnimationStatus(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT) != ANIMATION_STOPPED)
7571 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT,
7572 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
7573 topTouchMargin + (__pButtonItems[RIGHT_BUTTON]->GetSizeF().height - topTouchMargin - bottomTouchMargin - processingAnimationIconSize) / 2);
7576 else // footer or edit or HEADER_STYLE_BUTTON // side align
7578 float footerButtonItemWidth = 0.0f;
7579 float footerButtonItemHeight = 0.0f;
7580 float sipButtonItemTopMargin = 0.0f;
7581 float footerLeftMargin = 0.0f;
7582 FloatDimension softkeyDimension(0.0f, 0.0f);
7584 float leftTouchMargin = 0.0f;
7585 float topTouchMargin = 0.0f;
7586 float rightTouchMargin = 0.0f;
7587 float bottomTouchMargin = 0.0f;
7589 if (__header == true && __style == TOOLBAR_TEXT) // sip
7591 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_LEFT_TOUCH_MARGIN, GetOrientation(), leftTouchMargin);
7592 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_TOP_TOUCH_MARGIN, GetOrientation(), topTouchMargin);
7593 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_RIGHT_TOUCH_MARGIN, GetOrientation(), rightTouchMargin);
7594 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_BOTTOM_TOUCH_MARGIN, GetOrientation(), bottomTouchMargin);
7598 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_LEFT_TOUCH_MARGIN, GetOrientation(), leftTouchMargin);
7599 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TOP_TOUCH_MARGIN, GetOrientation(), topTouchMargin);
7600 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_RIGHT_TOUCH_MARGIN, GetOrientation(), rightTouchMargin);
7601 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_BOTTOM_TOUCH_MARGIN, GetOrientation(), bottomTouchMargin);
7604 if (__header == true && __style == TOOLBAR_TEXT)
7606 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetOrientation(), footerButtonItemWidth);
7608 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT) // sip && portrait
7610 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7614 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7619 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_WIDTH, GetOrientation(), footerButtonItemWidth);
7620 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_HEIGHT, GetOrientation(), footerButtonItemHeight);
7623 GET_SHAPE_CONFIG(HEADER::SIP_BUTTON_ITEM_TOP_MARGIN, GetOrientation(), sipButtonItemTopMargin);
7624 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
7625 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_RECT_WITH_TEXT, GetOrientation(), softkeyDimension);
7627 if (__pButtonItems[MIDDLE_BUTTON])
7629 __pButtonItems[MIDDLE_BUTTON]->SetPosition(FloatPoint((__itemArea.width - __pButtonItems[MIDDLE_BUTTON]->GetSizeF().width) / 2,
7630 __itemArea.height - __pButtonItems[MIDDLE_BUTTON]->GetSizeF().height));
7633 // footer or edit or HEADER_STYLE_BUTTON // side align
7634 if (__pButtonItems[RIGHT_BUTTON])
7636 if (__pButtonItems[LEFT_BUTTON])
7638 if (__style != TOOLBAR_SOFTKEY)
7640 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - footerButtonItemWidth - footerLeftMargin + rightTouchMargin,
7641 (__itemArea.height - footerButtonItemHeight) / 2, footerButtonItemWidth, footerButtonItemHeight));
7643 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, (__itemArea.height - footerButtonItemHeight) / 2,
7644 footerButtonItemWidth, footerButtonItemHeight));
7646 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7647 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7651 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
7653 __pButtonItems[RIGHT_BUTTON]->SetPosition(FloatPoint(__itemArea.width - __pButtonItems[RIGHT_BUTTON]->GetSizeF().width,
7654 __itemArea.height - __pButtonItems[RIGHT_BUTTON]->GetSizeF().height));
7658 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - softkeyDimension.width, __itemArea.height - softkeyDimension.height,
7659 softkeyDimension.width, softkeyDimension.height));
7662 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
7664 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(0.0f, __itemArea.height - __pButtonItems[LEFT_BUTTON]->GetSizeF().height));
7668 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, __itemArea.height - softkeyDimension.height,
7669 softkeyDimension.width, softkeyDimension.height));
7675 if (__style != TOOLBAR_SOFTKEY)
7677 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - footerButtonItemWidth - footerLeftMargin + rightTouchMargin,
7678 (__itemArea.height - footerButtonItemHeight) / 2, footerButtonItemWidth, footerButtonItemHeight));
7680 __pButtonItems[RIGHT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7684 if (__pButtonItems[RIGHT_BUTTON]->GetText() == L"")
7686 __pButtonItems[RIGHT_BUTTON]->SetPosition(FloatPoint(__itemArea.width - __pButtonItems[RIGHT_BUTTON]->GetSizeF().width,
7687 __itemArea.height - __pButtonItems[RIGHT_BUTTON]->GetSizeF().height));
7691 __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__itemArea.width - softkeyDimension.width, __itemArea.height - softkeyDimension.height,
7692 softkeyDimension.width, softkeyDimension.height));
7697 else if (__pButtonItems[LEFT_BUTTON])
7699 if (__style != TOOLBAR_SOFTKEY)
7701 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, (__itemArea.height - footerButtonItemHeight) / 2,
7702 footerButtonItemWidth, footerButtonItemHeight));
7704 __pButtonItems[LEFT_BUTTON]->SetTouchMargin(leftTouchMargin, topTouchMargin, rightTouchMargin, bottomTouchMargin);
7708 if (__pButtonItems[LEFT_BUTTON]->GetText() == L"")
7710 __pButtonItems[LEFT_BUTTON]->SetPosition(FloatPoint(0.0f, __itemArea.height - __pButtonItems[LEFT_BUTTON]->GetSizeF().height));
7714 __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(0.0f, __itemArea.height - softkeyDimension.height,
7715 softkeyDimension.width, softkeyDimension.height));
7721 if (__style != TOOLBAR_SOFTKEY)
7723 for (int i = 0; i < BUTTON_MAX; i++)
7725 if (__pButtonItems[i] != null)
7727 RealignButtonItem(__pButtonItems[i]);
7732 __pToolbarPresenter->SetUsableAreaBounds(__titleTextArea);
7734 if (0 == __itemCount)
7741 case TOOLBAR_HEADER_SEGMENTED:
7743 case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
7744 RearrangeHeaderSegmentedItems();
7747 case TOOLBAR_SEGMENTED:
7748 RearrangeFooterSegmentedItems();
7753 case TOOLBAR_TAB_LARGE:
7755 case TOOLBAR_TAB_WITH_TITLE:
7756 RearrangeTabItmes();
7760 RearrangeButtonItems();
7768 _Toolbar::RearrangeHeaderSegmentedItems(void)
7770 float segmentedItemHeight = 0.0f;
7771 float leftMargin = 0.0f;
7772 float dividerWidth = 0.0f;
7773 float vmargin = 0.0f;
7774 float blockWidth[__itemCount];
7775 float fontSize = 0.0f;
7776 float multilineFontSize = 0.0f;
7778 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), leftMargin);
7779 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
7781 if (__style == TOOLBAR_HEADER_SEGMENTED)
7783 segmentedItemHeight = __itemArea.height;
7784 GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_TOP_MARGIN, GetOrientation(), vmargin);
7786 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7788 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
7789 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
7792 if (__itemCount == 1 || __itemCount == 2)
7794 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
7796 blockWidth[0] = blockWidth[1] = (GetSizeF().width - dividerWidth ) / 2;
7800 blockWidth[0] = blockWidth[1] = (__itemArea.width + leftMargin - dividerWidth) / 2;
7803 for (int i = 0; i < __itemCount ; i++)
7805 __pItems.at(i)->SetBounds(FloatRectangle(blockWidth[0] * i + dividerWidth * i, vmargin, blockWidth[i], segmentedItemHeight));
7807 if (__pItems.at(i)->GetChildCount() != 0)
7809 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
7811 if (existingBadgeIcon)
7813 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[1] - existingBadgeIcon->GetSizeF().width, 0));
7814 existingBadgeIcon = null;
7819 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
7821 if (__style == TOOLBAR_HEADER_SEGMENTED)
7823 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
7825 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7827 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
7830 else if (__itemCount == 3)
7832 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
7834 blockWidth[0] = blockWidth[1] = blockWidth[2] = (GetSizeF().width - dividerWidth * 2) / 3;
7836 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
7837 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0] + dividerWidth, vmargin, blockWidth[1], segmentedItemHeight));
7838 __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],vmargin, blockWidth[2], segmentedItemHeight));
7842 blockWidth[0] = blockWidth[1] = blockWidth[2] = (__itemArea.width + leftMargin - dividerWidth * 2) / 3;
7844 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
7845 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0] + dividerWidth, vmargin, blockWidth[1], segmentedItemHeight));
7846 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + dividerWidth * 2,
7847 vmargin, blockWidth[2], segmentedItemHeight));
7850 for (int i = 0; i < __itemCount; i++)
7852 if (__pItems.at(i)->GetChildCount() != 0)
7854 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
7856 if (existingBadgeIcon)
7858 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
7859 existingBadgeIcon = null;
7864 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize); // 26
7866 if (__style == TOOLBAR_HEADER_SEGMENTED)
7868 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize); // 26
7870 else if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
7872 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); //24
7875 else if (__itemCount == 4)
7877 if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
7879 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = (GetSizeF().width - dividerWidth * 3) / 4;
7881 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
7882 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0] + dividerWidth, vmargin, blockWidth[1], segmentedItemHeight));
7883 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + dividerWidth * 2,
7884 vmargin, blockWidth[2], segmentedItemHeight));
7885 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
7886 vmargin, GetSizeF().width - (blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3), segmentedItemHeight));
7890 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = (__itemArea.width + leftMargin - dividerWidth * 3) / 4;
7892 __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
7893 __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0] + dividerWidth, vmargin, blockWidth[1], segmentedItemHeight));
7894 __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + dividerWidth * 2,
7895 vmargin, blockWidth[2], segmentedItemHeight));
7896 __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
7897 vmargin, blockWidth[3], segmentedItemHeight));
7900 for (int i = 0; i < __itemCount ; i++)
7902 if (__pItems.at(i)->GetChildCount() != 0)
7904 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
7906 if (existingBadgeIcon)
7908 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
7909 existingBadgeIcon = null;
7914 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize);
7915 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize);
7918 for (int i = 0; i < __itemCount; i++)
7920 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
7921 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
7923 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
7930 _Toolbar::RearrangeFooterSegmentedItems(void)
7932 float segmentedItemHeight = __itemArea.height;
7934 float leftMargin = 0.0f;
7935 float rightMargin = 0.0f;
7936 float footerLeftMargin = 0.0f;
7937 float iconSize = 0.0f;
7938 float dividerWidth = 0.0f;
7939 float blockWidth[__itemCount];
7940 float fontSize = 0.0f;
7941 float multilineFontSize = 0.0f;
7943 float itemButtonLeftGap = 0.0f;
7944 float itemButtonRightGap = 0.0f;
7946 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), leftMargin);
7947 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
7948 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_ICON_SIZE, GetOrientation(), iconSize);
7949 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
7951 rightMargin = leftMargin;
7953 if (__itemCount == 1)
7955 if (__pButtonItems[LEFT_BUTTON])
7957 if (__pButtonItems[RIGHT_BUTTON])
7959 leftMargin = footerLeftMargin;
7960 itemButtonLeftGap = footerLeftMargin;
7961 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
7965 leftMargin = footerLeftMargin;
7966 itemButtonLeftGap = footerLeftMargin;
7967 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
7972 if (__pButtonItems[RIGHT_BUTTON])
7974 rightMargin = footerLeftMargin;
7975 itemButtonRightGap = footerLeftMargin;
7976 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
7981 itemButtonLeftGap = 0;
7984 blockWidth[0] = __itemArea.width;
7986 if (__pButtonItems[LEFT_BUTTON])
7988 if (__pButtonItems[RIGHT_BUTTON])
7990 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth * 2, segmentedItemHeight));
7994 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
7999 if (__pButtonItems[RIGHT_BUTTON])
8001 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8005 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8009 for (int i = 0; i < __itemCount ; i++)
8011 if (__pItems.at(i)->GetChildCount() != 0)
8013 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8015 if (existingBadgeIcon)
8017 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8018 existingBadgeIcon = null;
8023 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize);
8024 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize);
8026 else if ( __itemCount == 2)
8028 if (__pButtonItems[LEFT_BUTTON])
8030 if (__pButtonItems[RIGHT_BUTTON])
8032 leftMargin = footerLeftMargin;
8033 itemButtonLeftGap = footerLeftMargin;
8034 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
8038 leftMargin = footerLeftMargin;
8039 itemButtonLeftGap = footerLeftMargin;
8040 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
8045 if (__pButtonItems[RIGHT_BUTTON])
8047 rightMargin = footerLeftMargin;
8048 itemButtonRightGap = footerLeftMargin;
8049 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
8054 itemButtonLeftGap = 0;
8057 blockWidth[0] = blockWidth[1] = (__itemArea.width - dividerWidth) / 2;
8059 if (__pButtonItems[LEFT_BUTTON])
8061 if (__pButtonItems[RIGHT_BUTTON])
8063 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8064 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] - dividerWidth, segmentedItemHeight));
8068 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8069 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8074 if (__pButtonItems[RIGHT_BUTTON])
8076 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8077 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] - dividerWidth, segmentedItemHeight));
8081 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8082 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8087 for (int i = 0; i < __itemCount ; i++)
8089 if (__pItems.at(i)->GetChildCount() != 0)
8091 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8093 if (existingBadgeIcon)
8095 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8096 existingBadgeIcon = null;
8101 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE, GetOrientation(), fontSize);
8102 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize);
8104 else if (__itemCount == 3)
8106 if (__pButtonItems[LEFT_BUTTON])
8108 if (__pButtonItems[RIGHT_BUTTON])
8110 leftMargin = footerLeftMargin;
8111 itemButtonLeftGap = footerLeftMargin;
8112 __itemArea.width -= ((leftMargin + iconSize + itemButtonLeftGap) * 2);
8116 leftMargin = footerLeftMargin;
8117 itemButtonLeftGap = footerLeftMargin;
8118 __itemArea.width -= (iconSize + itemButtonLeftGap + rightMargin);
8123 if (__pButtonItems[RIGHT_BUTTON])
8125 rightMargin = footerLeftMargin;
8126 itemButtonRightGap = footerLeftMargin;
8127 __itemArea.width -= (itemButtonRightGap + iconSize + rightMargin);
8133 itemButtonLeftGap = 0;
8136 blockWidth[0] = blockWidth[1] = blockWidth[2] = (__itemArea.width - dividerWidth * 2) / 3;
8138 if (__pButtonItems[LEFT_BUTTON])
8140 if (__pButtonItems[RIGHT_BUTTON])
8142 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8143 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8144 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8145 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] - dividerWidth, segmentedItemHeight));
8149 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
8150 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8151 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8152 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8157 if (__pButtonItems[RIGHT_BUTTON])
8159 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8160 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8161 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8162 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] - dividerWidth, segmentedItemHeight));
8166 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8167 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8168 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8169 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8173 for (int i = 0; i < __itemCount ; i++)
8175 if (__pItems.at(i)->GetChildCount() != 0)
8177 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8179 if (existingBadgeIcon)
8181 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8182 existingBadgeIcon = null;
8187 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize);
8188 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize);
8190 else if (__itemCount == 4)
8194 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = (__itemArea.width - dividerWidth * 3) / 4;
8196 __pItems.at(0)->SetBounds(FloatRectangle(leftMargin, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
8197 __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
8198 __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8199 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
8200 __pItems.at(3)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
8201 (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[3], segmentedItemHeight));
8203 for (int i = 0; i < __itemCount ; i++)
8205 if (__pItems.at(i)->GetChildCount() != 0)
8207 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8209 if (existingBadgeIcon)
8211 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8212 existingBadgeIcon = null;
8217 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize);
8218 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize);
8221 for (int i = 0; i < __itemCount ; i++)
8223 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8224 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8226 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8233 _Toolbar::RearrangeTabItmes(void)
8235 float itemWidth[__itemCount];
8236 float fontSize = 0.0f;
8237 float multilineFontSize = 0.0f;
8238 float segmentedItemHeight = 0.0f;
8239 float tabLeftMargin = 0.0f;
8240 float vmargin = 0.0f;
8241 float dividerWidth = 0.0f;
8243 GET_SHAPE_CONFIG(HEADER::TAB_LEFT_MARGIN, GetOrientation(), tabLeftMargin);
8244 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
8246 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8248 segmentedItemHeight = __itemArea.height;
8250 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8252 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
8253 GET_SHAPE_CONFIG(HEADER::TITLE_HEIGHT_WITH_SEGMENTED_ITEM, GetOrientation(), vmargin);
8256 if (__itemCount == 1)
8258 itemWidth[0] = __itemArea.width - tabLeftMargin * 2;
8259 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
8262 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
8264 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8266 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
8268 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8270 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8273 else if (__itemCount == 2)
8275 itemWidth[0] = itemWidth[1] = (__itemArea.width - tabLeftMargin * 2 - dividerWidth) / 2;
8277 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
8278 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1], segmentedItemHeight));
8280 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
8282 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8284 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_MULTILINE_FONT_SIZE, GetOrientation(), multilineFontSize); // 28
8286 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8288 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8291 else if (__itemCount == 3)
8293 itemWidth[0] = itemWidth[1] = itemWidth[2] = (__itemArea.width - tabLeftMargin * 2 - dividerWidth * 2) / 3;
8295 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
8296 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1], segmentedItemHeight));
8297 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + dividerWidth * 2, vmargin, itemWidth[2], segmentedItemHeight));
8299 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize); // 26
8301 if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_LARGE)
8303 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), multilineFontSize); // 26
8305 else if (__style == TOOLBAR_TAB_WITH_TITLE)
8307 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8312 itemWidth[0] = itemWidth[1] = itemWidth[2] = itemWidth[3] = (__itemArea.width - tabLeftMargin * 2 - dividerWidth * 3) / 4;
8314 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
8315 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1], segmentedItemHeight));
8316 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + dividerWidth * 2,
8317 vmargin, itemWidth[2], segmentedItemHeight));
8318 __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + itemWidth[2] + dividerWidth * 3,
8319 vmargin, itemWidth[3], segmentedItemHeight));
8321 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize); // 24
8322 GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
8325 for (int i = 4; i < __itemCount ; i++)
8327 itemWidth[i] = itemWidth[0];
8329 __pItems.at(i)->SetBounds(FloatRectangle(__pItems.at(i-1)->GetBoundsF().x + dividerWidth + itemWidth[i], vmargin, itemWidth[i], segmentedItemHeight));
8332 for (int i = 0; i < __itemCount ; i++)
8334 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8335 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8337 if (__pItems.at(i)->GetChildCount() != 0)
8339 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8341 if (existingBadgeIcon)
8343 existingBadgeIcon->SetPosition(FloatPoint(__pItems.at(i)->GetSizeF().width - existingBadgeIcon->GetSizeF().width, 0));
8344 existingBadgeIcon = null;
8348 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8355 _Toolbar::RearrangeButtonItems(void)
8357 float itemHeight = 0.0f;
8358 float sideMargin = 0.0f;
8359 float itemButtonLeftGap = 0.0f;
8360 float itemButtonRightGap = 0.0f;
8361 float tabLeftMargin = 0.0f;
8362 float dividerWidth = 0.0f;
8363 float iconSize = 0.0f;
8364 float footerLeftMargin = 0.0f;
8365 float segmentedItemHeight = 0.0f;
8366 float headerLeftMargin = 0.0f;
8367 float blockWidth[__itemCount];
8368 float fontSize = 0.0f;
8369 float multilineFontSize = 0.0f;
8371 GET_SHAPE_CONFIG(HEADER::DIVIDER_WIDTH, GetOrientation(), dividerWidth);
8372 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_ICON_SIZE, GetOrientation(), iconSize);
8373 GET_SHAPE_CONFIG(FOOTER::LEFT_MARGIN, GetOrientation(), footerLeftMargin);
8374 GET_SHAPE_CONFIG(HEADER::TAB_LEFT_MARGIN, GetOrientation(), tabLeftMargin);
8375 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_BUTTON_STYLE_SIDE_MARGIN, GetOrientation(), sideMargin);
8376 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, GetOrientation(), segmentedItemHeight);
8377 GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, GetOrientation(), headerLeftMargin);
8379 float tabRightMargin = tabLeftMargin;
8381 itemHeight = GetSizeF().height;
8383 if (__itemCount == 1)
8385 float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
8387 if (__style == TOOLBAR_TITLE) // item 1, HEADER_STYLE_TITLE_BUTTON
8389 if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])
8391 blockWidth[0] = __itemArea.width + headerLeftMargin;
8395 blockWidth[0] = GetSizeF().width;
8398 __pItems.at(0)->SetBounds(FloatRectangle(0, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8399 __pItems.at(0)->SetMargin(0.0f, 0.0f, 0.0f, 0.0f);
8403 if (__pButtonItems[LEFT_BUTTON])
8405 if (__pButtonItems[RIGHT_BUTTON])
8407 tabLeftMargin = footerLeftMargin;
8408 itemButtonLeftGap = footerLeftMargin;
8409 __itemArea.width -= ((tabLeftMargin + iconSize + itemButtonLeftGap) * 2);
8413 tabLeftMargin = footerLeftMargin;
8414 itemButtonLeftGap = footerLeftMargin;
8415 __itemArea.width -= (tabLeftMargin + iconSize + itemButtonLeftGap + tabRightMargin);
8420 if (__pButtonItems[RIGHT_BUTTON])
8422 tabRightMargin = footerLeftMargin;
8423 itemButtonRightGap = footerLeftMargin;
8424 __itemArea.width -= (tabLeftMargin + itemButtonRightGap + iconSize + tabRightMargin);
8430 blockWidth[0] = __itemArea.width;
8432 if (__pButtonItems[LEFT_BUTTON])
8434 if (__pButtonItems[RIGHT_BUTTON])
8436 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8440 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8445 if (__pButtonItems[RIGHT_BUTTON])
8447 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8451 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8456 for (int i = 0; i < __itemCount; i++)
8458 if (__pItems.at(i)->GetChildCount() != 0)
8460 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8462 if (existingBadgeIcon)
8464 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8465 existingBadgeIcon = null;
8470 RealignItem(__pItems.at(0), textExtentSize_0);
8472 else if(__itemCount == 2)
8474 float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
8475 float textExtentSize_1 = __pItems.at(1)->GetTextExtentSizeF();
8477 if (__pButtonItems[LEFT_BUTTON])
8479 if (__pButtonItems[RIGHT_BUTTON])
8481 tabLeftMargin = footerLeftMargin;
8482 itemButtonLeftGap = footerLeftMargin;
8483 __itemArea.width -= ((tabLeftMargin + iconSize + itemButtonLeftGap) * 2);
8487 tabLeftMargin = footerLeftMargin;
8488 itemButtonLeftGap = footerLeftMargin;
8489 __itemArea.width -= (tabLeftMargin + iconSize + itemButtonLeftGap + tabRightMargin);
8494 if (__pButtonItems[RIGHT_BUTTON])
8496 tabRightMargin = footerLeftMargin;
8497 itemButtonRightGap = footerLeftMargin;
8498 __itemArea.width -= (tabLeftMargin + itemButtonRightGap + iconSize + tabRightMargin);
8504 blockWidth[0] = blockWidth[1] = (__itemArea.width - dividerWidth * 1) / 2;
8506 if (__pButtonItems[LEFT_BUTTON])
8508 if (__pButtonItems[RIGHT_BUTTON])
8510 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8511 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1] - dividerWidth, itemHeight));
8515 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8516 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8521 if (__pButtonItems[RIGHT_BUTTON])
8523 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8524 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1] - dividerWidth, itemHeight));
8528 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8529 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8533 for (int i = 0; i < __itemCount; i++)
8535 if (__pItems.at(i)->GetChildCount() != 0)
8537 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8539 if (existingBadgeIcon)
8541 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8542 existingBadgeIcon = null;
8547 RealignItem(__pItems.at(0), textExtentSize_0);
8548 RealignItem(__pItems.at(1), textExtentSize_1);
8550 else if (__itemCount == 3)
8552 if (__pButtonItems[LEFT_BUTTON])
8554 if (__pButtonItems[RIGHT_BUTTON])
8556 tabLeftMargin = footerLeftMargin;
8557 itemButtonLeftGap = footerLeftMargin;
8558 __itemArea.width -= ((tabLeftMargin + iconSize + itemButtonLeftGap) * 2);
8562 tabLeftMargin = footerLeftMargin;
8563 itemButtonLeftGap = footerLeftMargin;
8564 __itemArea.width -= (tabLeftMargin + iconSize + itemButtonLeftGap + tabRightMargin);
8569 if (__pButtonItems[RIGHT_BUTTON])
8571 tabRightMargin = footerLeftMargin;
8572 itemButtonRightGap = footerLeftMargin;
8573 __itemArea.width -= (tabLeftMargin + itemButtonRightGap + iconSize + tabRightMargin);
8577 __itemArea.width -= tabLeftMargin * 2;
8583 blockWidth[0] = blockWidth[1] = blockWidth[2] = (__itemArea.width - dividerWidth * 2) / 3;
8585 if (__pButtonItems[LEFT_BUTTON])
8587 if (__pButtonItems[RIGHT_BUTTON])
8589 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8590 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8591 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8592 (GetSizeF().height - itemHeight) / 2, blockWidth[2] - dividerWidth, itemHeight));
8596 __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
8597 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8598 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8599 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
8604 if (__pButtonItems[RIGHT_BUTTON])
8606 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8607 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8608 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8609 (GetSizeF().height - itemHeight) / 2, blockWidth[2] - dividerWidth, itemHeight));
8613 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8614 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8615 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8616 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
8620 for (int i = 0; i < __itemCount; i++)
8622 if (__pItems.at(i)->GetChildCount() != 0)
8624 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8626 if (existingBadgeIcon)
8628 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8629 existingBadgeIcon = null;
8633 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8636 else if (__itemCount == 4)
8638 __itemArea.width -= tabLeftMargin * 2;
8640 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = (__itemArea.width - dividerWidth * 3) / 4;
8642 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8643 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8644 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8645 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
8646 __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
8647 (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
8649 for (int i = 0; i < __itemCount; i++)
8651 if (__pItems.at(i)->GetChildCount() != 0)
8653 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8655 if (existingBadgeIcon)
8657 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8658 existingBadgeIcon = null;
8662 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8665 else if (__itemCount == 5)
8667 __itemArea.width -= tabLeftMargin * 2;
8669 blockWidth[0] = blockWidth[1] = blockWidth[2] = blockWidth[3] = blockWidth[4] = (__itemArea.width - dividerWidth * 4) / 5;
8671 __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
8672 __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
8673 __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
8674 (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
8675 __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
8676 (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
8677 __pItems.at(4)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + blockWidth[3] + dividerWidth * 4,
8678 (GetSizeF().height - itemHeight) / 2, blockWidth[4], itemHeight));
8680 for (int i = 0; i < __itemCount; i++)
8682 if (__pItems.at(i)->GetChildCount() != 0)
8684 _Label* existingBadgeIcon = dynamic_cast<_Label*>(__pItems.at(i)->GetChild(0));
8686 if (existingBadgeIcon)
8688 existingBadgeIcon->SetPosition(FloatPoint(blockWidth[i] - existingBadgeIcon->GetSizeF().width, 0));
8689 existingBadgeIcon = null;
8693 RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
8697 GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_FONT_SIZE, GetOrientation(), fontSize);//32
8699 for (int i = 0; i < __itemCount; i++)
8701 if (__style == TOOLBAR_ICON_TEXT && (__pItems.at(i)->GetBitmap(_BUTTON_STATUS_NORMAL) || __pItems.at(i)->GetBitmap(_BUTTON_STATUS_PRESSED)))
8703 if (__itemCount == 5)
8705 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5_WITH_ICON, GetOrientation(), multilineFontSize);//20
8709 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3_WITH_ICON, GetOrientation(), multilineFontSize);//24
8714 if (__itemCount == 5)
8716 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5, GetOrientation(), multilineFontSize);//24
8720 GET_SHAPE_CONFIG(FOOTER::BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3, GetOrientation(), multilineFontSize);//26
8724 //__pItems.at(i)->SetMargin(__pItems.at(i)->GetLeftMarginF(), 0.0f, __pItems.at(i)->GetRightMarginF(), 0.0f);
8725 __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
8726 __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
8733 _Toolbar::SetAnimation(ToolbarAnimationPosition animationPos)
8735 SysTryReturnResult(NID_UI_CTRL, (0 <= animationPos && animationPos < 3), E_INVALID_ARG,
8736 "[E_INVALID_ARG] The animationPos is invalid.");
8738 if (__pAnimation[animationPos])
8740 if (__pAnimation[animationPos]->GetStatus() == ANIMATION_PLAYING)
8746 if (__pAnimationFrameList[animationPos])
8748 __pAnimationFrameList[animationPos]->RemoveAll(true);
8750 delete __pAnimationFrameList[animationPos];
8751 __pAnimationFrameList[animationPos] = null;
8754 result r = GET_ANIMATION_CONFIG_N(HEADER::PROCESSING_ANIMATION, __pAnimationFrameList[animationPos]);
8755 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] Couldn't get an animationframe.");
8757 delete __pAnimation[animationPos];
8758 __pAnimation[animationPos] = null;
8760 __pAnimation[animationPos] = _Animation::CreateAnimationN();
8762 float processingAnimationIconSize = 0.0f;
8764 GET_SHAPE_CONFIG(HEADER::PROCESSING_ANIMATION_ICON_SIZE, GetOrientation(), processingAnimationIconSize);
8766 if (__pAnimation[animationPos])
8768 __pAnimation[animationPos]->SetSize(FloatDimension(processingAnimationIconSize, processingAnimationIconSize));
8770 if (__pAnimationFrameList[animationPos])
8772 __pAnimation[animationPos]->SetAnimationFrames(*__pAnimationFrameList[animationPos]);
8773 __pAnimation[animationPos]->SetImageCount(__pAnimationFrameList[animationPos]->GetCount());
8774 __pAnimation[animationPos]->SetRepeatCount(100);
8775 __pAnimation[animationPos]->AddAnimationEventListener(*this);
8778 if (animationPos == TOOLBAR_ANIMATION_POSITION_TITLE)
8780 AttachChild(*__pAnimation[animationPos]);
8782 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT)
8784 __pButtonItems[LEFT_BUTTON]->AttachChild(*__pAnimation[animationPos]);
8786 float topTouchMargin = __pButtonItems[LEFT_BUTTON]->GetTopTouchMarginF();
8787 float bottomTouchMargin = __pButtonItems[LEFT_BUTTON]->GetBottomTouchMarginF();
8789 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_LEFT,
8790 (__pButtonItems[LEFT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
8791 topTouchMargin + (__pButtonItems[LEFT_BUTTON]->GetSizeF().height - topTouchMargin - bottomTouchMargin - processingAnimationIconSize) / 2);
8793 else if (animationPos == TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT)
8795 __pButtonItems[RIGHT_BUTTON]->AttachChild(*__pAnimation[animationPos]);
8797 float topTouchMargin = __pButtonItems[RIGHT_BUTTON]->GetTopTouchMarginF();
8798 float bottomTouchMargin = __pButtonItems[RIGHT_BUTTON]->GetBottomTouchMarginF();
8800 SetWaitingAnimationPosition(TOOLBAR_ANIMATION_POSITION_BUTTON_RIGHT,
8801 (__pButtonItems[RIGHT_BUTTON]->GetSizeF().width - processingAnimationIconSize) / 2,
8802 topTouchMargin + (__pButtonItems[RIGHT_BUTTON]->GetSizeF().height - topTouchMargin - bottomTouchMargin - processingAnimationIconSize) / 2);
8804 _AccessibilityContainer* pContainer = __pAnimation[animationPos]->GetAccessibilityContainer();
8807 pContainer->Activate(false);
8815 _Toolbar::SetColorReplacedBitmap(_Button* pButton, const _ButtonStatus status,
8816 const Color& color, const Bitmap* pBitmap)
8818 SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_ARG, "[E_INVALID_ARG] The button pointer is null.");
8819 SysTryReturnResult(NID_UI_CTRL, pBitmap, E_INVALID_ARG, "[E_INVALID_ARG] The bitmap pointer is null.");
8821 Bitmap* __pColorReplacedBitmap = null;
8823 __pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBitmap, Color::GetColor(COLOR_ID_MAGENTA), color);
8825 if (__pColorReplacedBitmap)
8827 if (color.GetAlpha() != 0xFF)
8829 __pColorReplacedBitmap->SetAlphaConstant(color.GetAlpha());
8832 pButton->SetBackgroundBitmap(status, *__pColorReplacedBitmap);
8833 delete __pColorReplacedBitmap;
8840 _Toolbar::SetPropertyColor(const Variant& color)
8842 result r = E_SUCCESS;
8844 _Control::SetBackgroundColor(color.ToColor());
8850 _Toolbar::GetPropertyColor(void) const
8852 return Variant(_Control::GetBackgroundColor());
8856 _Toolbar::SetPropertyDescriptionText(const Variant& text)
8858 __descriptionText = text.ToString();
8860 result r = E_SUCCESS;
8862 r = __pToolbarPresenter->SetDescriptionText(__descriptionText);
8864 if(__pTitleTextElement)
8868 __pTitleTextElement->SetLabel(__titleText);
8872 __pTitleTextElement->SetLabel(__titleText + L", " + __descriptionText);
8880 _Toolbar::GetPropertyDescriptionText(void) const
8882 return Variant(__descriptionText);
8886 _Toolbar::SetPropertyDescriptionTextColor(const Variant& color)
8888 __descriptionTextColor = color.ToColor();
8894 _Toolbar::GetPropertyDescriptionTextColor(void) const
8896 return Variant(__descriptionTextColor);
8900 _Toolbar::SetPropertyTitleText(const Variant& text)
8902 __titleText = text.ToString();
8904 if(__pTitleTextElement)
8906 __pTitleTextElement->SetLabel(__titleText);
8913 _Toolbar::GetPropertyTitleText(void) const
8915 return Variant(__titleText);
8919 _Toolbar::SetPropertyTitleTextColor(const Variant& color)
8921 __titleTextColor = color.ToColor();
8927 _Toolbar::GetPropertyTitleTextColor(void) const
8929 return Variant(__titleTextColor);
8933 _Toolbar::SetPropertyDisabledButtonColor(const Variant& color)
8935 __buttonBackgroundColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
8937 Bitmap* __pBaseBackgroundBitmap = null;
8939 if (__header == true)
8941 if (__transparent == true)
8943 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
8947 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
8952 if (__transparent == true)
8954 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
8958 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
8962 for (int i = 0; i < BUTTON_MAX; i++)
8964 if (__pButtonItems[i] != null)
8966 if (__pBaseBackgroundBitmap)
8968 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_DISABLED, __buttonBackgroundColor[_BUTTON_STATUS_DISABLED], __pBaseBackgroundBitmap);
8973 delete __pBaseBackgroundBitmap;
8979 _Toolbar::GetPropertyDisabledButtonColor(void) const
8981 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_DISABLED]);
8985 _Toolbar::SetPropertyDisabledButtonTextColor(const Variant& color)
8987 __buttonTextColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
8989 for (int i = 0; i < BUTTON_MAX; i++)
8991 if (__pButtonItems[i] != null)
8993 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_DISABLED, __buttonTextColor[_BUTTON_STATUS_DISABLED]);
9001 _Toolbar::GetPropertyDisabledButtonTextColor(void) const
9003 return Variant(__buttonTextColor[_BUTTON_STATUS_DISABLED]);
9007 _Toolbar::SetPropertyHighlightedButtonColor(const Variant& color)
9009 __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9011 Bitmap* __pBaseBackgroundBitmap = null;
9013 if (__header == true)
9015 if (__transparent == true)
9017 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9021 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9026 if (__transparent == true)
9028 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9032 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9036 for (int i = 0; i < BUTTON_MAX; i++)
9038 if (__pButtonItems[i] != null)
9040 if (__pBaseBackgroundBitmap)
9042 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_HIGHLIGHTED, __buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED], __pBaseBackgroundBitmap);
9047 delete __pBaseBackgroundBitmap;
9053 _Toolbar::GetPropertyHighlightedButtonColor(void) const
9055 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
9059 _Toolbar::SetPropertyHighlightedButtonTextColor(const Variant& color)
9061 __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9063 for (int i = 0; i < BUTTON_MAX; i++)
9065 if (__pButtonItems[i] != null)
9067 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9075 _Toolbar::GetPropertyHighlightedButtonTextColor(void) const
9077 return Variant(__buttonTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9081 _Toolbar::SetPropertyNormalButtonColor(const Variant& color)
9083 __buttonBackgroundColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9085 Bitmap* __pBaseBackgroundBitmap = null;
9087 if (__header == true)
9089 if (__transparent == true)
9091 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9095 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9100 if (__transparent == true)
9102 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9106 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9110 for (int i = 0; i < BUTTON_MAX; i++)
9112 if (__pButtonItems[i] != null)
9114 if (__pBaseBackgroundBitmap)
9116 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_NORMAL, __buttonBackgroundColor[_BUTTON_STATUS_NORMAL], __pBaseBackgroundBitmap);
9121 delete __pBaseBackgroundBitmap;
9127 _Toolbar::GetPropertyNormalButtonColor(void) const
9129 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_NORMAL]);
9133 _Toolbar::SetPropertyNormalButtonTextColor(const Variant& color)
9135 __buttonTextColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9137 for (int i = 0; i < BUTTON_MAX; i++)
9139 if (__pButtonItems[i] != null)
9141 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_NORMAL, __buttonTextColor[_BUTTON_STATUS_NORMAL]);
9149 _Toolbar::GetPropertyNormalButtonTextColor(void) const
9151 return Variant(__buttonTextColor[_BUTTON_STATUS_NORMAL]);
9155 _Toolbar::SetPropertyPressedButtonColor(const Variant& color)
9157 __buttonBackgroundColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9159 Bitmap* __pBaseBackgroundBitmap = null;
9161 if (__header == true)
9163 if (__transparent == true)
9165 GET_BITMAP_CONFIG_N(HEADER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9169 GET_BITMAP_CONFIG_N(HEADER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9174 if (__transparent == true)
9176 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9180 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9184 for (int i = 0; i < BUTTON_MAX; i++)
9186 if (__pButtonItems[i] != null)
9188 if (__pBaseBackgroundBitmap)
9190 SetColorReplacedBitmap(__pButtonItems[i], _BUTTON_STATUS_PRESSED, __buttonBackgroundColor[_BUTTON_STATUS_PRESSED], __pBaseBackgroundBitmap);
9195 delete __pBaseBackgroundBitmap;
9201 _Toolbar::GetPropertyPressedButtonColor(void) const
9203 return Variant(__buttonBackgroundColor[_BUTTON_STATUS_PRESSED]);
9207 _Toolbar::SetPropertyPressedButtonTextColor(const Variant& color)
9209 __buttonTextColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9211 for (int i = 0; i < BUTTON_MAX; i++)
9213 if (__pButtonItems[i] != null)
9215 __pButtonItems[i]->SetTextColor(_BUTTON_STATUS_PRESSED, __buttonTextColor[_BUTTON_STATUS_PRESSED]);
9223 _Toolbar::GetPropertyPressedButtonTextColor(void) const
9225 return Variant(__buttonTextColor[_BUTTON_STATUS_PRESSED]);
9229 _Toolbar::SetPropertyDisabledItemColor(const Variant& color)
9231 __itemBackgroundColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9233 Bitmap* __pBaseBackgroundBitmap = null;
9235 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9237 if (__header == true)
9239 if (__transparent == true)
9241 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9245 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9250 if (__transparent == true)
9252 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9256 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9260 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9262 if (__header == true)
9264 if (__transparent == true)
9266 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9270 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9275 if (__transparent == true)
9277 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9281 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9285 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9287 if (__header == true)
9289 if (__transparent == true)
9291 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9295 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9300 if (__transparent == true)
9302 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9306 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9311 for (int i = 0; i < __itemCount; i++)
9313 if (__pItems.at(i) != null)
9315 if (__pBaseBackgroundBitmap)
9317 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_DISABLED, __itemBackgroundColor[_BUTTON_STATUS_DISABLED], __pBaseBackgroundBitmap);
9322 delete __pBaseBackgroundBitmap;
9328 _Toolbar::GetPropertyDisabledItemColor(void) const
9330 return Variant(__itemBackgroundColor[_BUTTON_STATUS_DISABLED]);
9334 _Toolbar::SetPropertyDisabledItemTextColor(const Variant& color)
9336 __itemTextColor[_BUTTON_STATUS_DISABLED] = color.ToColor();
9338 for (int i = 0; i < __itemCount; i++)
9340 if (__pItems.at(i) != null)
9342 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_DISABLED, __itemTextColor[_BUTTON_STATUS_DISABLED]);
9350 _Toolbar::GetPropertyDisabledItemTextColor(void) const
9352 return Variant(__itemTextColor[_BUTTON_STATUS_DISABLED]);
9356 _Toolbar::SetPropertyHighlightedItemColor(const Variant& color)
9358 __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9360 Bitmap* __pBaseBackgroundBitmap = null;
9362 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9364 if (__header == true)
9366 if (__transparent == true)
9368 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9372 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9377 if (__transparent == true)
9379 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9383 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9387 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9389 if (__header == true)
9391 if (__transparent == true)
9393 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9397 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9402 if (__transparent == true)
9404 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9408 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9412 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9414 if (__header == true)
9416 if (__transparent == true)
9418 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9422 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9427 if (__transparent == true)
9429 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9433 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9438 for (int i = 0; i < __itemCount; i++)
9440 if (__pItems.at(i) != null)
9442 if (__pBaseBackgroundBitmap)
9444 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED], __pBaseBackgroundBitmap);
9449 delete __pBaseBackgroundBitmap;
9455 _Toolbar::GetPropertyHighlightedItemColor(void) const
9457 return Variant(__itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED]);
9461 _Toolbar::SetPropertyHighlightedItemTextColor(const Variant& color)
9463 __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED] = color.ToColor();
9465 for (int i = 0; i < __itemCount; i++)
9467 if (__pItems.at(i) != null)
9469 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, __itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9477 _Toolbar::GetPropertyHighlightedItemTextColor(void) const
9479 return Variant(__itemTextColor[_BUTTON_STATUS_HIGHLIGHTED]);
9483 _Toolbar::SetPropertyNormalItemColor(const Variant& color)
9485 __itemBackgroundColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9487 Bitmap* __pBaseBackgroundBitmap = null;
9489 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9491 if (__header == true)
9493 if (__transparent == true)
9495 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9499 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9504 if (__transparent == true)
9506 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9510 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9514 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9516 if (__header == true)
9518 if (__transparent == true)
9520 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9524 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9529 if (__transparent == true)
9531 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9535 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9539 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9541 if (__header == true)
9543 if (__transparent == true)
9545 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9549 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9554 if (__transparent == true)
9556 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9560 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9565 for (int i = 0; i < __itemCount; i++)
9567 if (__pItems.at(i) != null)
9569 if (__pBaseBackgroundBitmap)
9571 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_NORMAL, __itemBackgroundColor[_BUTTON_STATUS_NORMAL], __pBaseBackgroundBitmap);
9576 delete __pBaseBackgroundBitmap;
9582 _Toolbar::GetPropertyNormalItemColor(void) const
9584 return Variant(__itemBackgroundColor[_BUTTON_STATUS_NORMAL]);
9588 _Toolbar::SetPropertyNormalItemTextColor(const Variant& color)
9590 __itemTextColor[_BUTTON_STATUS_NORMAL] = color.ToColor();
9592 for (int i = 0; i < __itemCount; i++)
9594 if (__pItems.at(i) != null)
9596 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_NORMAL, __itemTextColor[_BUTTON_STATUS_NORMAL]);
9604 _Toolbar::GetPropertyNormalItemTextColor(void) const
9606 return Variant(__itemTextColor[_BUTTON_STATUS_NORMAL]);
9610 _Toolbar::SetPropertyPressedItemColor(const Variant& color)
9612 __itemBackgroundColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9614 Bitmap* __pBaseBackgroundBitmap = null;
9616 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9618 if (__header == true)
9620 if (__transparent == true)
9622 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9626 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9631 if (__transparent == true)
9633 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9637 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9641 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9643 if (__header == true)
9645 if (__transparent == true)
9647 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9651 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9656 if (__transparent == true)
9658 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9662 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9666 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9668 if (__header == true)
9670 if (__transparent == true)
9672 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9676 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9681 if (__transparent == true)
9683 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9687 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9692 for (int i = 0; i < __itemCount; i++)
9694 if (__pItems.at(i) != null)
9696 if (__pBaseBackgroundBitmap)
9698 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_PRESSED, __itemBackgroundColor[_BUTTON_STATUS_PRESSED], __pBaseBackgroundBitmap);
9703 delete __pBaseBackgroundBitmap;
9709 _Toolbar::GetPropertyPressedItemColor(void) const
9711 return Variant(__itemBackgroundColor[_BUTTON_STATUS_PRESSED]);
9715 _Toolbar::SetPropertyPressedItemTextColor(const Variant& color)
9717 __itemTextColor[_BUTTON_STATUS_PRESSED] = color.ToColor();
9719 for (int i = 0; i < __itemCount; i++)
9721 if (__pItems.at(i) != null)
9723 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_PRESSED, __itemTextColor[_BUTTON_STATUS_PRESSED]);
9731 _Toolbar::GetPropertyPressedItemTextColor(void) const
9733 return Variant(__itemTextColor[_BUTTON_STATUS_PRESSED]);
9737 _Toolbar::SetPropertySelectedItemColor(const Variant& color)
9739 __itemBackgroundColor[_BUTTON_STATUS_SELECTED] = color.ToColor();
9741 Bitmap* __pBaseBackgroundBitmap = null;
9743 if (__style == TOOLBAR_TEXT || __style == TOOLBAR_ICON || __style == TOOLBAR_ICON_TEXT || __style == TOOLBAR_COMMAND)
9745 if (__header == true)
9747 if (__transparent == true)
9749 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9753 GET_BITMAP_CONFIG_N(HEADER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9758 if (__transparent == true)
9760 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9764 GET_BITMAP_CONFIG_N(FOOTER::BUTTON_ITEM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9768 else if (__style == TOOLBAR_HEADER_SEGMENTED || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED || __style == TOOLBAR_TITLE)
9770 if (__header == true)
9772 if (__transparent == true)
9774 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9778 GET_BITMAP_CONFIG_N(HEADER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9783 if (__transparent == true)
9785 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9789 GET_BITMAP_CONFIG_N(FOOTER::SEGMENTED_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9793 else if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
9795 if (__header == true)
9797 if (__transparent == true)
9799 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9803 GET_BITMAP_CONFIG_N(HEADER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9808 if (__transparent == true)
9810 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_TRANSLUCENT_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9814 GET_BITMAP_CONFIG_N(FOOTER::TAB_ITEM_BG_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pBaseBackgroundBitmap);
9819 for (int i = 0; i < __itemCount; i++)
9821 if (__pItems.at(i) != null)
9823 if (__pBaseBackgroundBitmap)
9825 SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_SELECTED, __itemBackgroundColor[_BUTTON_STATUS_SELECTED], __pBaseBackgroundBitmap);
9830 delete __pBaseBackgroundBitmap;
9836 _Toolbar::GetPropertySelectedItemColor(void) const
9838 return Variant(__itemBackgroundColor[_BUTTON_STATUS_SELECTED]);
9842 _Toolbar::SetPropertySelectedItemTextColor(const Variant& color)
9844 __itemTextColor[_BUTTON_STATUS_SELECTED] = color.ToColor();
9846 for (int i = 0; i < __itemCount; i++)
9848 if (__pItems.at(i) != null)
9850 __pItems.at(i)->SetTextColor(_BUTTON_STATUS_SELECTED, __itemTextColor[_BUTTON_STATUS_SELECTED]);
9858 _Toolbar::GetPropertySelectedItemTextColor(void) const
9860 return Variant(__itemTextColor[_BUTTON_STATUS_SELECTED]);
9864 _Toolbar::GetButtonBounds(ToolbarButton position) const
9866 return _CoordinateSystemUtils::ConvertToInteger(GetButtonBoundsF(position));
9870 _Toolbar::GetButtonBoundsF(ToolbarButton position) const
9872 FloatRectangle bounds = __pButtonItems[position]->GetBoundsF();
9874 float leftTouchMargin = __pButtonItems[position]->GetLeftTouchMarginF();
9875 float topTouchMargin = __pButtonItems[position]->GetTopTouchMarginF();
9876 float rightTouchMargin = __pButtonItems[position]->GetRightTouchMarginF();
9877 float bottomTouchMargin = __pButtonItems[position]->GetBottomTouchMarginF();
9879 bounds.x = bounds.x + leftTouchMargin;
9880 bounds.y = bounds.y + topTouchMargin;
9881 bounds.width = bounds.width - (leftTouchMargin + rightTouchMargin);
9882 bounds.height = bounds.height - (topTouchMargin + bottomTouchMargin);
9888 _Toolbar::SetTitleBadgeIcon(const Bitmap* pBadgeIcon)
9890 if (pBadgeIcon == null)
9895 if (__pTitleBadgeIcon)
9897 DetachChild(*__pTitleBadgeIcon);
9899 delete __pTitleBadgeIcon;
9900 __pTitleBadgeIcon = null;
9903 float height = 0.0f;
9904 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
9906 __pTitleBadgeIcon = _Label::CreateLabelN();
9908 if (__pTitleBadgeIcon)
9910 __pTitleBadgeIcon->SetBounds(FloatRectangle(0.0f, 0.0f, height, height));
9911 __pTitleBadgeIcon->SetBackgroundBitmap(*pBadgeIcon);
9913 AttachChild(*__pTitleBadgeIcon);
9914 SetChildAlwaysOnTop(*__pTitleBadgeIcon);
9921 _Toolbar::SetTitleNumberedBadgeIcon(int number)
9923 SysTryReturnResult(NID_UI_CTRL, (number >= 0 && number < 100000), E_INVALID_ARG,
9924 "[E_INVALID_ARG] The number is out of bounds.");
9926 if (__pTitleBadgeIcon)
9928 DetachChild(*__pTitleBadgeIcon);
9930 delete __pTitleBadgeIcon;
9931 __pTitleBadgeIcon = null;
9936 __pTitleBadgeIcon = _Label::CreateLabelN();
9938 SysTryReturnResult(NID_UI_CTRL, __pTitleBadgeIcon, E_INVALID_STATE, "[E_INVALID_STATE] The badge icon instance isn't constructed.");
9940 Bitmap* pNumberedBadgeIconBitmap = null;
9941 Bitmap* pNumberedBadgeIconEffectBitmap = null;
9942 Bitmap* pColorReplacedBitmap = null;
9943 Color badgeIconBgNormalColor;
9944 Color badgeIconTextNormalColor;
9946 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconBitmap);
9948 bool customTheme = IS_CUSTOM_BITMAP(HEADER::BADGE_ICON_BG_NORMAL);
9949 if (customTheme == false)
9951 GET_BITMAP_CONFIG_N(HEADER::BADGE_ICON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNumberedBadgeIconEffectBitmap);
9954 GET_COLOR_CONFIG(HEADER::BADGE_ICON_BG_NORMAL, badgeIconBgNormalColor);
9955 GET_COLOR_CONFIG(HEADER::BADGE_ICON_TEXT_NORMAL, badgeIconTextNormalColor);
9957 if (pNumberedBadgeIconBitmap)
9959 pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNumberedBadgeIconBitmap,
9960 Color::GetColor(COLOR_ID_MAGENTA), badgeIconBgNormalColor);
9962 __pTitleBadgeIcon->SetBackgroundBitmap(*pColorReplacedBitmap);
9964 delete pColorReplacedBitmap;
9965 delete pNumberedBadgeIconBitmap;
9968 if (pNumberedBadgeIconEffectBitmap)
9970 __pTitleBadgeIcon->SetBackgroundEffectBitmap(*pNumberedBadgeIconEffectBitmap);
9972 delete pNumberedBadgeIconEffectBitmap;
9975 __pTitleBadgeIcon->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
9976 __pTitleBadgeIcon->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
9977 __pTitleBadgeIcon->SetTextColor(badgeIconTextNormalColor);
9978 __pTitleBadgeIcon->SetMargin(0, 10);
9980 float fontSize = 0.0f;
9981 float height = 0.0f;
9984 GET_SHAPE_CONFIG(HEADER::BADGE_FONT_SIZE, GetOrientation(), fontSize);
9985 GET_SHAPE_CONFIG(HEADER::BADGE_HEIGHT, GetOrientation(), height);
9989 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_1DIGIT, GetOrientation(), width);
9991 else if (number < 100)
9993 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_2DIGIT, GetOrientation(), width);
9995 else if (number < 1000)
9997 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_3DIGIT, GetOrientation(), width);
9999 else if (number < 10000)
10001 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_4DIGIT, GetOrientation(), width);
10005 GET_SHAPE_CONFIG(HEADER::BADGE_WIDTH_5DIGIT, GetOrientation(), width);
10008 __pTitleBadgeIcon->SetBounds(FloatRectangle(0.0f, 0.0f, width, height));
10009 __pTitleBadgeIcon->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
10011 Integer tempNumber(number);
10012 __pTitleBadgeIcon->SetText(tempNumber.ToString());
10014 AttachChild(*__pTitleBadgeIcon);
10015 SetChildAlwaysOnTop(*__pTitleBadgeIcon);
10021 }}} // Tizen::Ui::Controls