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_Form.cpp
19 * @brief This is the implementation file for the _Form class.
23 #include <unique_ptr.h>
24 #include <FBaseErrorDefine.h>
25 #include <FBaseInteger.h>
26 #include <FBaseSysLog.h>
27 #include <FBaseColArrayListT.h>
28 #include <FGrpFloatRectangle.h>
29 #include <FBase_Log.h>
30 #include <FGrp_BitmapImpl.h>
31 #include "FUiAnim_ControlVisualElement.h"
32 #include "FUiAnim_VisualElementImpl.h"
33 #include "FUi_ResourceManager.h"
34 #include "FUi_EcoreEvasMgr.h"
35 #include "FUi_EcoreEvas.h"
36 #include "FUi_CoordinateSystemUtils.h"
37 #include "FUi_DataBindingContext.h"
38 #include "FUi_AccessibilityContainer.h"
39 #include "FUi_AccessibilityManager.h"
40 #include "FUiCtrl_Form.h"
41 #include "FUiCtrl_Frame.h"
42 #include "FUiCtrl_FormPresenter.h"
43 #include "FUiCtrl_Toolbar.h"
44 #include "FUiCtrl_Tab.h"
45 #include "FUiCtrl_ActionEvent.h"
46 #include "FUiCtrl_OverlayRegionImpl.h"
47 #include "FUiCtrl_OverlayPanelImpl.h"
48 #include "FUiCtrl_IFormBackEventListener.h"
49 #include "FUiCtrl_Indicator.h"
50 #include "FUi_SystemUtilImpl.h"
51 #include "FUiCtrl_FormImpl.h"
54 using namespace Tizen::Ui::Animations;
55 using namespace Tizen::Ui;
56 using namespace Tizen::Base; // Rotation
57 using namespace Tizen::Base::Runtime;
58 using namespace Tizen::Base::Collection;
59 using namespace Tizen::Graphics;
61 namespace Tizen { namespace Ui { namespace Controls
65 : __pFormPresenter(null)
66 , __pFormBackEventListener(null)
67 , __pFormMenuEventListener(null)
69 , __pActionEvent(null)
74 , __transparentIndicator(false)
75 , __transparentHeader(false)
76 , __transparentFooter(false)
77 , __transparentTab(false)
78 , __indicatorShowState(false)
80 , __deflatedHeight(0.0f)
81 , __overlayRegionCount(0)
82 , __pOverlayerRegionImplArray(null)
83 , __softkeyCount(SOFTKEY_COUNT + 1)
84 , __updatedSoftkeyCount(0)
85 , __keypadShowstate(false)
86 , __clipboardShowstate(false)
87 , __alreadyStopKeySent(false)
88 , __pFormOrientationstatusEventListener(null)
89 , __pFocusControl(null)
90 , __pFocusTraversalControl(null)
93 result r = GET_COLOR_CONFIG(FORM::BG_NORMAL,color);
96 SetBackgroundColor(color);
100 SetBackgroundColor(0xff000000);
103 _FormPresenter* pPresenter = new (std::nothrow) _FormPresenter(*this);
104 SysTryReturnVoidResult(NID_UI_CTRL, pPresenter, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
106 SetPresenter(*pPresenter);
108 for (int i = 0; i < __softkeyCount; i++)
110 __actionId[_SOFTKEY_0 + i] = 0;
111 __softkeyText[_SOFTKEY_0 + i] = String();
112 __showSoftkey[_SOFTKEY_0 + i] = false;
113 __enableSoftkey[_SOFTKEY_0 + i] = false;
116 for (int i = 0; i < SOFTKEY_COUNT + 1; i++)
118 __pSoftkeyNormalBitmap[_SOFTKEY_0 + i] = null;
119 __pSoftkeyDisabledBitmap[_SOFTKEY_0 + i] = null;
120 __pSoftkeyPressedBitmap[_SOFTKEY_0 + i] = null;
121 __pSoftkeyHighlightedBitmap[_SOFTKEY_0 + i] = null;
123 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0 + i] = null;
124 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0 + i] = null;
126 __pTextSoftkeyNormalBitmap[_SOFTKEY_0 + i] = null;
127 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0 + i] = null;
128 __pTextSoftkeyPressedBitmap[_SOFTKEY_0 + i] = null;
129 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0 + i] = null;
131 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0 + i] = null;
132 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0 + i] = null;
134 __pSoftkeyNormalIcon[_SOFTKEY_0 + i] = null;
135 __pSoftkeyDisabledIcon[_SOFTKEY_0 + i] = null;
136 __pSoftkeyPressedIcon[_SOFTKEY_0 + i] = null;
137 __pSoftkeyHighlightedIcon[_SOFTKEY_0 + i] = null;
140 //create data binding context
141 _DataBindingContext* pContext = new (std::nothrow) _DataBindingContext(*this);
143 SysTryCatch(NID_UI_CTRL, pContext && GetLastResult() == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
144 SetDataBindingContext(pContext);
147 GetAccessibilityContainer()->Activate(true);
148 SetFocusNavigateEnabled(false);
157 delete __pFormPresenter;
158 __pFormPresenter = null;
162 delete __pActionEvent;
163 __pActionEvent = null;
166 for (int i = 0; i < SOFTKEY_COUNT+1 ; i++)
168 if (__pSoftkeyNormalBitmap[i])
170 delete __pSoftkeyNormalBitmap[i];
171 __pSoftkeyNormalBitmap[i] = null;
174 if (__pSoftkeyDisabledBitmap[i])
176 delete __pSoftkeyDisabledBitmap[i];
177 __pSoftkeyDisabledBitmap[i] = null;
180 if (__pSoftkeyPressedBitmap[i])
182 delete __pSoftkeyPressedBitmap[i];
183 __pSoftkeyPressedBitmap[i] = null;
186 if (__pSoftkeyHighlightedBitmap[i])
188 delete __pSoftkeyHighlightedBitmap[i];
189 __pSoftkeyHighlightedBitmap[i] = null;
192 if (__pSoftkeyNormalEffectBitmap[i])
194 delete __pSoftkeyNormalEffectBitmap[i];
195 __pSoftkeyNormalEffectBitmap[i] = null;
198 if (__pSoftkeyPressedEffectBitmap[i])
200 delete __pSoftkeyPressedEffectBitmap[i];
201 __pSoftkeyPressedEffectBitmap[i] = null;
204 if (__pTextSoftkeyNormalBitmap[i])
206 delete __pTextSoftkeyNormalBitmap[i];
207 __pTextSoftkeyNormalBitmap[i] = null;
210 if (__pTextSoftkeyDisabledBitmap[i])
212 delete __pTextSoftkeyDisabledBitmap[i];
213 __pTextSoftkeyDisabledBitmap[i] = null;
216 if (__pTextSoftkeyPressedBitmap[i])
218 delete __pTextSoftkeyPressedBitmap[i];
219 __pTextSoftkeyPressedBitmap[i] = null;
222 if (__pTextSoftkeyHighlightedBitmap[i])
224 delete __pTextSoftkeyHighlightedBitmap[i];
225 __pTextSoftkeyHighlightedBitmap[i] = null;
228 if (__pTextSoftkeyNormalEffectBitmap[i])
230 delete __pTextSoftkeyNormalEffectBitmap[i];
231 __pTextSoftkeyNormalEffectBitmap[i] = null;
234 if (__pTextSoftkeyPressedEffectBitmap[i])
236 delete __pTextSoftkeyPressedEffectBitmap[i];
237 __pTextSoftkeyPressedEffectBitmap[i] = null;
240 if (__pSoftkeyNormalIcon[i])
242 delete __pSoftkeyNormalIcon[i];
243 __pSoftkeyNormalIcon[i] = null;
246 if (__pSoftkeyDisabledIcon[i])
248 delete __pSoftkeyDisabledIcon[i];
249 __pSoftkeyDisabledIcon[i] = null;
252 if (__pSoftkeyPressedIcon[i])
254 delete __pSoftkeyPressedIcon[i];
255 __pSoftkeyPressedIcon[i] = null;
258 if (__pSoftkeyHighlightedIcon[i])
260 delete __pSoftkeyHighlightedIcon[i];
261 __pSoftkeyHighlightedIcon[i] = null;
265 if (__pOverlayerRegionImplArray != null)
267 int maxCount = OverlayRegion::GetMaxCount();
269 for (int i = 0; i < maxCount; i++)
271 if (__pOverlayerRegionImplArray[i])
273 OverlayRegion* _pOverlayRegion = __pOverlayerRegionImplArray[i]->GetOverlayRegion();
274 delete _pOverlayRegion;
278 delete[] __pOverlayerRegionImplArray;
283 __pIndicator->DeleteIndicatorObject();
284 __pIndicator->Destroy();
292 _Form::CreateFormN(void)
296 pForm = new (std::nothrow) _Form;
297 SysTryReturn(NID_UI_CTRL, pForm, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
298 SysTryCatch(NID_UI_CTRL, GetLastResult() == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] A system error occurred.");
300 pForm->AcquireHandle();
302 SetLastResult(E_SUCCESS);
313 _Form::SetPresenter(const _FormPresenter& formPresenter)
315 __pFormPresenter = const_cast <_FormPresenter*>(&formPresenter);
323 if (__pFormPresenter)
325 __pFormPresenter->Draw();
328 if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
332 UpdateSoftkey(__formStyle);
335 if(unlikely((_AccessibilityManager::IsActivated())))
337 _AccessibilityManager::GetInstance()->RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM);
343 _Form::SetFormBackEventListener(_IFormBackEventListener* pFormBackEventListener)
345 __pFormBackEventListener = pFormBackEventListener;
349 __pFooter->SetBackEventListener(*this, ID_BACK_BUTTON);
353 __pHeader->SetBackEventListener(*this, ID_BACK_BUTTON);
356 SetLastResult(E_SUCCESS);
360 _Form::SetFormMenuEventListener(_IFormMenuEventListener* pFormMenuEventListener)
362 __pFormMenuEventListener = pFormMenuEventListener;
366 __pFooter->SetMenuEventListener(*this, ID_MENU_BUTTON);
369 SetLastResult(E_SUCCESS);
373 _Form::GetFormStyle(void) const
379 _Form::GetFooter(void) const
385 _Form::GetHeader(void) const
391 _Form::GetTab(void) const
397 _Form::GetIndicator(void) const
403 _Form::GetTitleText(void) const
405 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
407 return __pHeader->GetTitleText();
416 _Form::GetTitleTextHorizontalAlignment(void) const
418 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
420 return __pHeader->GetTitleTextHorizontalAlignment();
424 SysLog(NID_UI_CTRL, "[E_SYSTEM] The title is not valid.");
425 return ALIGNMENT_LEFT;
430 _Form::GetOverlayRegionN(const Rectangle& rect, OverlayRegionType regionType)
432 FloatRectangle rectF = _CoordinateSystemUtils::ConvertToFloat(rect);
433 return GetOverlayRegionN(rectF, regionType);
437 _Form::GetOverlayRegionN(const FloatRectangle& rect, OverlayRegionType regionType)
441 int maxCount = OverlayRegion::GetMaxCount();
442 SysTryReturn(NID_UI_CTRL, maxCount > 0, null, E_SYSTEM, "[E_SYSTEM] The maximum count of OverlayRegion is invalid.", maxCount);
444 //Initialize OverlayRegion array
445 if (__pOverlayerRegionImplArray == null)
447 __pOverlayerRegionImplArray = new (std::nothrow) _OverlayRegionImpl*[maxCount];
448 SysTryReturn(NID_UI_CTRL, __pOverlayerRegionImplArray != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
450 for (int index = 0; index < maxCount; index++)
452 __pOverlayerRegionImplArray[index] = null;
454 __overlayRegionCount = 0;
457 //Get bounds of OverlayRegion
458 FloatRectangle formLogicalBoundsF(GetClientBoundsF());
459 FloatRectangle formPhysicalBoundsF = _CoordinateSystemUtils::Transform(CoordinateSystem::AlignToDevice(formLogicalBoundsF));
461 FloatPoint overlayPositionF(formLogicalBoundsF.x + rect.x, formLogicalBoundsF.y + rect.y);
462 FloatRectangle overlaylLogicalBoundsF(overlayPositionF.x, overlayPositionF.y, rect.width, rect.height);
463 FloatRectangle overlayPhysicalBoundsF = _CoordinateSystemUtils::Transform(CoordinateSystem::AlignToDevice(overlaylLogicalBoundsF));
464 Rectangle overlayPhysicalBounds = _CoordinateSystemUtils::ConvertToInteger(overlayPhysicalBoundsF);
466 Rectangle formPhysicalBounds = _CoordinateSystemUtils::ConvertToInteger(formPhysicalBoundsF);
467 SysTryReturn(NID_UI_CTRL, overlayPhysicalBounds.width <= formPhysicalBounds.width && overlayPhysicalBounds.height <= formPhysicalBounds.height,
468 null, E_INVALID_ARG, "[E_INVALID_ARG] The size of input rectangle is over maximum size.");
470 result r = _OverlayRegionImpl::IsValidBounds(overlayPhysicalBounds);
471 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
473 bool modified = false;
474 bool evaluated = OverlayRegion::EvaluateBounds(OVERLAY_REGION_EVALUATION_OPTION_LESS_THAN, overlaylLogicalBoundsF, modified);
476 SysTryReturn(NID_UI_CTRL, evaluated && r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
480 overlayPhysicalBoundsF = _CoordinateSystemUtils::Transform(CoordinateSystem::AlignToDevice(overlaylLogicalBoundsF));
481 overlayPhysicalBounds = _CoordinateSystemUtils::ConvertToInteger(overlayPhysicalBoundsF);
483 int unitWidth = OverlayRegion::GetWidthUnit();
484 if(overlayPhysicalBounds.width % unitWidth == 1)
486 overlayPhysicalBounds.width -= 1;
488 else if (overlayPhysicalBounds.width % unitWidth == (unitWidth - 1))
490 overlayPhysicalBounds.width += 1;
493 int unitHeight = OverlayRegion::GetHeightUnit();
494 if(overlayPhysicalBounds.height % unitHeight == 1)
496 overlayPhysicalBounds.height -= 1;
498 else if (overlayPhysicalBounds.height % unitHeight == (unitHeight - 1))
500 overlayPhysicalBounds.height += 1;
503 SysSecureLog(NID_UI_CTRL, "The current bounds of overlay region is [%.3f, %.3f, %.3f, %.3f]"
504 , overlaylLogicalBoundsF.x, overlaylLogicalBoundsF.y, overlaylLogicalBoundsF.width, overlaylLogicalBoundsF.height);
506 //Check for using OverlayPanel simutaneously
507 for (int index = 0; index < GetChildCount(); index++)
509 _OverlayPanel* pOverlayPanel = dynamic_cast <_OverlayPanel*>(GetChild(index));
510 SysTryReturn(NID_UI_CTRL, pOverlayPanel == null, null, E_SYSTEM, "[E_SYSTEM] Failed to get Overlay Region. Using OverlayRegion mixed with OverlayPanel is not supported.");
513 //Check count of existing OverlayRegion
515 for (index = 0; index < maxCount; index++)
517 if (__pOverlayerRegionImplArray[index] == null)
521 SysTryReturn(NID_UI_CTRL, index < maxCount, null, E_SYSTEM, "[E_SYSTEM] The Overlay Region already exceeds permitted maximum limit.");
524 //Create OverlayRegion
525 unique_ptr<_OverlayRegionImpl> pOverlayRegionImpl(new (std::nothrow) _OverlayRegionImpl());
526 SysTryReturn(NID_UI_CTRL, pOverlayRegionImpl != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] failed to make the OverlayRegionImpl instance!");
528 r = pOverlayRegionImpl->Construct(this, regionType, rect, overlaylLogicalBoundsF, overlayPhysicalBounds);
529 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
531 unique_ptr<OverlayRegion> pOverlayRegion(pOverlayRegionImpl->CreateOverlayRegionN());
532 SysTryReturn(NID_UI_CTRL, pOverlayRegion != null, null, r, "[%s] Propagating.", GetErrorMessage(r));
534 pOverlayRegionImpl->SetFormArrayIndex(index);
535 __pOverlayerRegionImplArray[index] = pOverlayRegionImpl.release();
536 __overlayRegionCount++;
538 return pOverlayRegion.release();
542 _Form::GetOverlayRegionCount(void) const
544 return __overlayRegionCount;
548 _Form::MoveOverlayRegion(bool top)
550 if (__pOverlayerRegionImplArray == null)
554 for (int i = 0; i < OverlayRegion::GetMaxCount(); i++)
556 if (__pOverlayerRegionImplArray[i] != null)
560 __pOverlayerRegionImplArray[i]->GoForeground();
564 __pOverlayerRegionImplArray[i]->GoBackground();
571 _Form::CreateSoftkey(unsigned long formStyle)
573 Bitmap* pTempBitmap = null;
574 FloatDimension softkeyDimension(0.0f, 0.0f);
575 FloatDimension softkeyDisplayDimension(0.0f, 0.0f);
576 FloatDimension optionkeyDimension(0.0f, 0.0f);
577 float fontSize = 0.0f;
578 float multilineFontSize = 0.0f;
579 float leftSoftkeyLeftMargin = 0.0f;
580 float rightSoftkeyLeftMargin = 0.0f;
581 float softkeyTopMargin = 0.0f;
583 Color softkeyNormalBackgroundColor;
584 Color softkeyDisabledBackgroundColor;
585 Color softkeyPressedBackgroundColor;
586 Color softkeyHighlightedBackgroundColor;
588 Color softkeyNormalTextColor;
589 Color softkeyDisabledTextColor;
590 Color softkeyPressedTextColor;
591 Color softkeyHighlightedTextColor;
593 Color softkeyNormalIconColor;
594 Color softkeyDisabledIconColor;
595 Color softkeyPressedIconColor;
596 Color softkeyHighlightedIconColor;
598 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_RECT, GetOrientation(), softkeyDimension);
599 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_DISPLAY_RECT_WITH_TEXT, GetOrientation(), softkeyDisplayDimension);
600 GET_DIMENSION_CONFIG(FOOTER::OPTIONKEY_RECT, GetOrientation(), optionkeyDimension);
601 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TEXT_SIZE, GetOrientation(), fontSize);
602 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_MULTILINE_TEXT_SIZE, GetOrientation(), multilineFontSize);
603 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_0_LEFT_MARGIN, GetOrientation(), leftSoftkeyLeftMargin);
604 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_1_LEFT_MARGIN, GetOrientation(), rightSoftkeyLeftMargin);
605 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TOP_MARGIN, GetOrientation(), softkeyTopMargin);
607 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_NORMAL, softkeyNormalBackgroundColor);
608 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_DISABLED, softkeyDisabledBackgroundColor);
609 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_PRESSED, softkeyPressedBackgroundColor);
610 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_HIGHLIGHTED, softkeyHighlightedBackgroundColor);
612 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_NORMAL, softkeyNormalTextColor);
613 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_DISABLED, softkeyDisabledTextColor);
614 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_PRESSED, softkeyPressedTextColor);
615 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_HIGHLIGHTED, softkeyHighlightedTextColor);
617 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_NORMAL, softkeyNormalIconColor);
618 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_DISABLED, softkeyDisabledIconColor);
619 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_PRESSED, softkeyPressedIconColor);
620 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_HIGHLIGHTED, softkeyHighlightedIconColor);
622 result r = E_SUCCESS;
624 if (__pFooter != null)
626 __pFooter->SetStyle(TOOLBAR_SOFTKEY);
629 if (formStyle & FORM_STYLE_SOFTKEY_0)
631 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
632 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
633 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
635 delete __pSoftkeyNormalBitmap[_SOFTKEY_0];
636 __pSoftkeyNormalBitmap[_SOFTKEY_0] = null;
638 __pSoftkeyNormalBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
641 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
642 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
643 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
645 delete __pSoftkeyDisabledBitmap[_SOFTKEY_0];
646 __pSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
648 __pSoftkeyDisabledBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
651 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
652 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
653 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
655 delete __pSoftkeyPressedBitmap[_SOFTKEY_0];
656 __pSoftkeyPressedBitmap[_SOFTKEY_0] = null;
658 __pSoftkeyPressedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
661 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
662 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
663 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
665 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_0];
666 __pSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
668 __pSoftkeyHighlightedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
672 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
673 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
674 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
676 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_0];
677 __pTextSoftkeyNormalBitmap[_SOFTKEY_0] = null;
679 __pTextSoftkeyNormalBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
682 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
683 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
684 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
686 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_0];
687 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
689 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
692 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
693 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
694 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
696 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_0];
697 __pTextSoftkeyPressedBitmap[_SOFTKEY_0] = null;
699 __pTextSoftkeyPressedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
702 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
703 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
704 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
706 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0];
707 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
709 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
712 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
713 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
714 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
716 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_0];
717 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
719 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
722 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
723 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
724 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
726 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0];
727 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
729 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
733 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
734 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
735 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
737 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_0];
738 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
740 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
743 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
744 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
745 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
747 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0];
748 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
750 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
753 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
754 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
756 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
758 delete __pSoftkeyNormalIcon[_SOFTKEY_0];
759 __pSoftkeyNormalIcon[_SOFTKEY_0] = null;
761 __pSoftkeyNormalIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
763 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
764 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
766 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
768 delete __pSoftkeyDisabledIcon[_SOFTKEY_0];
769 __pSoftkeyDisabledIcon[_SOFTKEY_0] = null;
771 __pSoftkeyDisabledIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
773 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
774 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
776 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
778 delete __pSoftkeyPressedIcon[_SOFTKEY_0];
779 __pSoftkeyPressedIcon[_SOFTKEY_0] = null;
781 __pSoftkeyPressedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
783 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
784 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
786 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
788 delete __pSoftkeyHighlightedIcon[_SOFTKEY_0];
789 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = null;
791 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
795 _Button* pButton = _Button::CreateButtonN();
799 pButton->SetSize(softkeyDimension);
800 pButton->SetTextSize(fontSize);
801 pButton->SetMultilineTextSize(multilineFontSize);
802 pButton->SetUserDefinedTextArea(FloatRectangle(leftSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
803 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
804 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
805 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
806 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
807 __pFooter->SetButton(LEFT_BUTTON, pButton);
811 if (formStyle & FORM_STYLE_SOFTKEY_1)
813 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
814 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
815 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
817 delete __pSoftkeyNormalBitmap[_SOFTKEY_1];
818 __pSoftkeyNormalBitmap[_SOFTKEY_1] = null;
820 __pSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
823 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
824 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
825 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
827 delete __pSoftkeyDisabledBitmap[_SOFTKEY_1];
828 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
830 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
833 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
834 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
835 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
837 delete __pSoftkeyPressedBitmap[_SOFTKEY_1];
838 __pSoftkeyPressedBitmap[_SOFTKEY_1] = null;
840 __pSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
843 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
844 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
845 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
847 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_1];
848 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
850 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
853 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
854 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
855 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
857 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_1];
858 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = null;
860 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
863 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
864 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
865 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
867 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_1];
868 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
870 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
873 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
874 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
875 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
877 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_1];
878 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = null;
880 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
883 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
884 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
885 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
887 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1];
888 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
890 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
893 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
894 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
895 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
897 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_1];
898 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
900 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
903 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
904 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
905 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
907 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1];
908 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
910 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
913 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
914 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
915 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
917 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_1];
918 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
920 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
923 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
924 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
925 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
927 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1];
928 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
930 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
934 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
935 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
937 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
939 delete __pSoftkeyNormalIcon[_SOFTKEY_1];
940 __pSoftkeyNormalIcon[_SOFTKEY_1] = null;
942 __pSoftkeyNormalIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
944 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
945 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
947 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
949 delete __pSoftkeyDisabledIcon[_SOFTKEY_1];
950 __pSoftkeyDisabledIcon[_SOFTKEY_1] = null;
952 __pSoftkeyDisabledIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
955 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
956 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
958 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
960 delete __pSoftkeyPressedIcon[_SOFTKEY_1];
961 __pSoftkeyPressedIcon[_SOFTKEY_1] = null;
963 __pSoftkeyPressedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
965 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
966 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
968 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
970 delete __pSoftkeyHighlightedIcon[_SOFTKEY_1];
971 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = null;
973 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
977 _Button* pButton = _Button::CreateButtonN();
980 pButton->SetSize(softkeyDimension);
981 pButton->SetTextSize(fontSize);
982 pButton->SetMultilineTextSize(multilineFontSize);
983 pButton->SetUserDefinedTextArea(FloatRectangle(rightSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
984 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
985 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
986 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
987 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
988 __pFooter->SetButton(RIGHT_BUTTON, pButton);
992 if (formStyle & FORM_STYLE_OPTIONKEY)
994 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
995 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
996 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
998 delete __pSoftkeyNormalBitmap[SOFTKEY_COUNT];
999 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = null;
1001 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1004 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1005 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1006 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1008 delete __pSoftkeyDisabledBitmap[SOFTKEY_COUNT];
1009 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = null;
1011 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
1014 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1015 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1016 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1018 delete __pSoftkeyPressedBitmap[SOFTKEY_COUNT];
1019 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = null;
1021 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1024 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1025 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1026 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1028 delete __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT];
1029 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = null;
1031 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
1034 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1035 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1036 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1038 delete __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT];
1039 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = null;
1041 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1044 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1045 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1046 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1048 delete __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT];
1049 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = null;
1051 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1054 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1055 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1057 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1059 delete __pSoftkeyNormalIcon[SOFTKEY_COUNT];
1060 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = null;
1062 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
1065 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1066 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1068 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1070 delete __pSoftkeyDisabledIcon[SOFTKEY_COUNT];
1071 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = null;
1073 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
1076 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1077 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1079 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1081 delete __pSoftkeyPressedIcon[SOFTKEY_COUNT];
1082 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = null;
1084 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
1087 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1088 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1090 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1092 delete __pSoftkeyHighlightedIcon[SOFTKEY_COUNT];
1093 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = null;
1095 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
1098 _Button* pButton = _Button::CreateButtonN();
1101 pButton->SetSize(optionkeyDimension);
1102 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
1103 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
1104 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
1105 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
1106 __pFooter->SetButton(MIDDLE_BUTTON, pButton);
1112 _Form::UpdateSoftkey(unsigned long formStyle)
1114 float softkeyIconGap = 3.0f;
1116 if (__formStyle & FORM_STYLE_SOFTKEY_0)// && __updatedSoftkeyCount % 2 == 0)
1118 if (__pFooter->GetButton(LEFT_BUTTON))
1120 __pFooter->GetButton(LEFT_BUTTON)->SetActionId(__actionId[_SOFTKEY_0]);
1122 if (__softkeyText[_SOFTKEY_0] != String())
1124 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
1126 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_0]);
1129 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
1131 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_0]);
1134 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
1136 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_0]);
1139 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
1141 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1144 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1146 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1149 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1151 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1154 __pFooter->GetButton(LEFT_BUTTON)->SetText(__softkeyText[_SOFTKEY_0]);
1156 __pFooter->RearrangeItems();
1160 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
1162 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_0]);
1165 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
1167 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_0]);
1170 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
1172 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_0]);
1175 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
1177 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1180 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1182 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1185 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1187 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1190 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
1192 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1193 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1194 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_0]);
1197 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
1199 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1200 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1201 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_0]);
1204 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
1206 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1207 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1208 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_0]);
1211 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
1213 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1214 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1215 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_0]);
1221 if (__formStyle & FORM_STYLE_SOFTKEY_1)// && __updatedSoftkeyCount % 2 == 0)
1223 if (__pFooter->GetButton(RIGHT_BUTTON))
1225 __pFooter->GetButton(RIGHT_BUTTON)->SetActionId(__actionId[_SOFTKEY_1]);
1227 if (__softkeyText[_SOFTKEY_1] != String())
1229 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
1231 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_1]);
1234 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
1236 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_1]);
1239 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
1241 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_1]);
1244 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
1246 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1249 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1251 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1254 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1256 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1259 __pFooter->GetButton(RIGHT_BUTTON)->SetText(__softkeyText[_SOFTKEY_1]);
1261 __pFooter->RearrangeItems();
1265 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
1267 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_1]);
1270 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
1272 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_1]);
1275 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
1277 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_1]);
1280 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
1282 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1285 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1287 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1290 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1292 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1295 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
1297 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1298 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1299 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_1]);
1302 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
1304 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1305 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1306 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_1]);
1309 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
1311 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1312 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1313 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_1]);
1316 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
1318 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1319 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1320 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_1]);
1326 if (__formStyle & FORM_STYLE_OPTIONKEY)
1328 if (__pFooter->GetButton(MIDDLE_BUTTON))
1330 __pFooter->GetButton(MIDDLE_BUTTON)->SetActionId(__actionId[SOFTKEY_COUNT]);
1332 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1334 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[SOFTKEY_COUNT]);
1337 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1339 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[SOFTKEY_COUNT]);
1342 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1344 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[SOFTKEY_COUNT]);
1347 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1349 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT]);
1352 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1354 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT]);
1357 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1359 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT]);
1362 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1364 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL, FloatPoint(0.0f, 0.0f), *__pSoftkeyNormalIcon[SOFTKEY_COUNT]);
1367 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1369 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED, FloatPoint(0.0f, 0.0f), *__pSoftkeyDisabledIcon[SOFTKEY_COUNT]);
1372 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1374 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED, FloatPoint(0.0f, 0.0f), *__pSoftkeyPressedIcon[SOFTKEY_COUNT]);
1377 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1379 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, FloatPoint(0.0f, 0.0f), *__pSoftkeyHighlightedIcon[SOFTKEY_COUNT]);
1386 _Form::GetDescription(void) const
1388 String description = _Control::GetDescription();
1390 String descriptionTemp(L"");
1392 descriptionTemp.Format(LOG_LEN_MAX, L"_Form: style(%d) transparent(%d %d %d %d) deflated(%d) deflatedHeight(%d) overlayRegionCount(%d) softkeyCount(%d) updatedSoftkeyCount(%d)",
1393 __formStyle, __transparentIndicator, __transparentHeader, __transparentFooter, __transparentTab, __deflated, __deflatedHeight,
1394 __overlayRegionCount, __softkeyCount, __updatedSoftkeyCount);
1396 description.Append(descriptionTemp);
1402 _Form::GetClientAreaCanvasN(void) const
1404 Canvas* pCanvas = GetCanvasN(GetClientBounds());
1405 if ((pCanvas == null) || (GetLastResult() != E_SUCCESS))
1407 SysLog(NID_UI_CTRL, "[%s] Propagated.", GetErrorMessage(GetLastResult()));
1416 _Form::GetSoftkeyActionId(_Softkey softkey) const
1418 if (CheckSoftkey(softkey) == false)
1423 return __actionId[softkey];
1427 _Form::GetOptionkeyActionId(void) const
1429 if (HasOptionkey() == false)
1434 return __actionId[SOFTKEY_COUNT];
1438 _Form::GetSoftkeyText(_Softkey softkey) const
1440 if (CheckSoftkey(softkey) == false)
1445 return __softkeyText[softkey];
1449 _Form::SetFormStyle(unsigned long formStyle)
1451 result r = E_SUCCESS;
1453 __formStyle = formStyle;
1457 __pIndicator = CreateIndicatorN();
1458 SysTryReturnVoidResult(NID_UI_CTRL, __pIndicator != null, r, "[%s] Propagating.", GetErrorMessage(r));
1460 float indicatorwidth = GetClientBoundsF().width;
1461 float indicatorheight = 0.0f;
1463 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
1465 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
1466 r = GetVisualElement()->AttachChild(*__pIndicator);
1467 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1469 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
1471 result r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
1473 r = GetLastResult();
1474 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1479 _Form::SetActionBarsTranslucent(unsigned long actionBars, bool translucent)
1483 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1484 (actionBars & FORM_ACTION_BAR_FOOTER) || (actionBars & FORM_ACTION_BAR_TAB)),
1485 E_INVALID_OPERATION, E_INVALID_OPERATION,
1486 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation."));
1488 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1489 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1490 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER))
1491 || (!(__formStyle & FORM_STYLE_TEXT_TAB) && (actionBars & FORM_ACTION_BAR_TAB)))
1494 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1495 return E_INVALID_OPERATION;
1498 result r = E_SUCCESS;
1500 Color bgColor(0, 0, 0, 0);
1501 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1505 r = SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
1509 r = SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
1511 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1514 if (actionBars & FORM_ACTION_BAR_HEADER)
1516 if (IsHeaderTranslucent() != translucent)
1520 __pHeader->SetTransparent(translucent);
1521 __transparentHeader = translucent;
1526 if (IsHeaderVisible())
1528 if (IsIndicatorTranslucent() != IsHeaderTranslucent())
1530 if (IsIndicatorTranslucent())
1532 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1533 SetHeaderBounds(bounds);
1537 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1538 SetHeaderBounds(bounds);
1541 else if (!IsIndicatorTranslucent() && !IsHeaderTranslucent())
1543 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1544 SetHeaderBounds(bounds);
1548 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1550 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1551 SetHeaderBounds(bounds);
1555 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1556 SetHeaderBounds(bounds);
1561 if (actionBars & FORM_ACTION_BAR_FOOTER)
1563 if (IsFooterTranslucent() != translucent)
1567 __pFooter->SetTransparent(translucent);
1568 __transparentFooter = translucent;
1573 AdjustClientBounds();
1579 _Form::SetActionBarsVisible(unsigned long actionBars, bool visible)
1583 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1584 (actionBars & FORM_ACTION_BAR_FOOTER)),
1585 E_INVALID_OPERATION,
1586 E_INVALID_OPERATION,
1587 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation. "));
1589 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1590 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1591 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER)))
1593 SysLog(NID_UI_CTRL, "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1594 return E_INVALID_OPERATION;
1597 if ((actionBars & FORM_ACTION_BAR_INDICATOR))
1599 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1601 if (!(__formStyle & FORM_STYLE_INDICATOR))
1604 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1605 return E_INVALID_OPERATION;
1611 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1612 return E_INVALID_OPERATION;
1616 FloatRectangle bounds = GetBoundsF();
1619 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1621 SetIndicatorShowState(visible);
1624 if (actionBars & FORM_ACTION_BAR_HEADER)
1626 if (IsHeaderVisible() != visible)
1630 if (visible == true)
1632 float adjHeight = 0.0f;
1633 if (IsIndicatorVisible())
1635 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
1636 adjHeight = indicatorBounds.height;
1638 if (IsIndicatorTranslucent())
1640 if (!IsHeaderTranslucent())
1646 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
1653 FloatRectangle bounds = __pHeader->GetBoundsF();
1654 bounds.y = adjHeight;
1656 SetHeaderBounds(bounds);
1658 __pHeader->SetVisibleState(visible);
1663 if (actionBars & FORM_ACTION_BAR_FOOTER)
1667 __pFooter->SetVisibleState(visible);
1671 AdjustClientBounds();
1677 _Form::SetTitleIcon(const Bitmap* pTitleBitmap)
1679 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1680 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1682 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1684 result r = __pHeader->SetTitleIcon(*pTitleBitmap);
1685 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1691 _Form::SetTitleText(const String& title, HorizontalAlignment alignment)
1693 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1694 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1696 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1698 result r = __pHeader->SetTitleText(title, alignment);
1699 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1705 _Form::SetSoftkeyEnabled(_Softkey softkey, bool enable)
1707 result r = E_SYSTEM;
1709 if (CheckSoftkey(softkey) == false)
1714 __enableSoftkey[softkey] = enable;
1722 _Form::SetOptionkeyActionId(int actionId)
1724 result r = E_SYSTEM;
1726 if (HasOptionkey() == false)
1731 __actionId[SOFTKEY_COUNT] = actionId;
1739 _Form::SetSoftkeyActionId(_Softkey softkey, int actionId)
1741 result r = E_SYSTEM;
1743 if (CheckSoftkey(softkey) == false)
1748 __actionId[softkey] = actionId;
1756 _Form::SetSoftkeyText(_Softkey softkey, const String& text)
1758 result r = E_SYSTEM;
1760 if (CheckSoftkey(softkey) == false)
1765 __softkeyText[softkey] = text;
1773 _Form::SetSoftkeyIcon(_Softkey softkey, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap)
1775 result r = E_SYSTEM;
1777 if (CheckSoftkey(softkey) == false)
1782 float softkey_icon_size = 0.0f;
1784 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_ICON_SIZE, GetOrientation(), softkey_icon_size);
1786 Bitmap* pClonedNormalBitmap = _BitmapImpl::CloneN(normalBitmap);
1788 if (pClonedNormalBitmap)
1790 if (__pSoftkeyNormalIcon[softkey] != null)
1792 delete __pSoftkeyNormalIcon[softkey];
1795 __pSoftkeyNormalIcon[softkey] = pClonedNormalBitmap;
1797 __pSoftkeyNormalIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1802 if (pPressedBitmap != null)
1804 Bitmap* pClonedPressedBitmap = _BitmapImpl::CloneN(*pPressedBitmap);
1806 if (pClonedPressedBitmap)
1808 if (__pSoftkeyPressedIcon[softkey] != null)
1810 delete __pSoftkeyPressedIcon[softkey];
1813 __pSoftkeyPressedIcon[softkey] = pClonedPressedBitmap;
1815 __pSoftkeyPressedIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1825 _Form::HasFooter(void) const
1838 _Form::HasHeader(void) const
1851 _Form::HasIndicator(void) const
1856 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1858 if ((GetFormStyle() & FORM_STYLE_INDICATOR) || (GetFormStyle() & FORM_STYLE_INDICATOR_AUTO_HIDE))
1869 if (GetFormStyle() & FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE)
1886 _Form::HasTitle(void) const
1888 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
1899 _Form::HasTab(void) const
1901 if ((__pTab && (__formStyle & FORM_STYLE_TEXT_TAB))
1902 || (__pTab && (__formStyle & FORM_STYLE_ICON_TAB)))
1913 _Form::IsIndicatorVisible(void) const
1915 _Control* pParent = GetParent();
1916 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1918 bool visible = true;
1920 if (pFrame && IsAttachedToMainTree())
1922 visible = __pIndicator->GetIndicatorShowState();
1923 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1927 visible = __indicatorShowState;
1934 _Form::IsHeaderVisible(void) const
1938 return __pHeader->IsVisible();
1947 _Form::IsFooterVisible(void) const
1951 return __pFooter->IsVisible();
1960 _Form::IsIndicatorTranslucent(void) const
1962 _Control* pParent = GetParent();
1963 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1965 _IndicatorOpacity opacity = _INDICATOR_OPACITY_UNKNOWN;
1967 bool transparent = false;
1969 if (pFrame && IsAttachedToMainTree())
1971 FrameShowMode mode = pFrame->GetShowMode();
1972 if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
1974 opacity = __pIndicator->GetIndicatorOpacity();
1975 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1977 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
1981 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
1983 transparent = false;
1993 transparent = __transparentIndicator;
2000 _Form::IsIndicatorAutoHide(void) const
2002 _Control* pParent = GetParent();
2003 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2005 bool autohide = false;
2007 if (pFrame && IsAttachedToMainTree())
2009 autohide = __pIndicator->GetIndicatorAutoHide();
2016 _Form::IsHeaderTranslucent(void) const
2018 return __transparentHeader;
2022 _Form::IsFooterTranslucent(void) const
2024 return __transparentFooter;
2028 _Form::IsTabTranslucent(void) const
2030 return __transparentTab;
2034 _Form::HasOptionkey(void) const
2036 if (GetFormStyle() & FORM_STYLE_OPTIONKEY)
2047 _Form::HasSoftkey(_Softkey softkey) const
2049 unsigned long __formStyle = FORM_STYLE_NORMAL;
2051 if (softkey == _SOFTKEY_0)
2053 __formStyle = FORM_STYLE_SOFTKEY_0;
2055 else if (softkey == _SOFTKEY_1)
2057 __formStyle = FORM_STYLE_SOFTKEY_1;
2064 if (GetFormStyle() & __formStyle)
2075 _Form::IsSoftkeyEnabled(_Softkey softkey) const
2077 if (CheckSoftkey(softkey) == false)
2082 return __enableSoftkey[softkey];
2086 _Form::CheckSoftkey(_Softkey softkey) const
2090 if (HasSoftkey(softkey) == false)
2095 if (softkey >= _SOFTKEY_COUNT)
2104 _Form::IsOrientationRoot(void) const
2110 _Form::TranslateToClientAreaPosition(const Point& position) const
2112 Rectangle clientArea = GetClientBounds();
2113 return Point(position.x - clientArea.x, position.y - clientArea.y);
2117 _Form::TranslateToClientAreaPosition(const FloatPoint& position) const
2119 FloatRectangle clientArea = GetClientBoundsF();
2120 return FloatPoint(position.x - clientArea.x, position.y - clientArea.y);
2124 _Form::TranslateFromClientAreaPosition(const Point& clientPosition) const
2126 Rectangle clientArea = GetClientBounds();
2127 return Point(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2131 _Form::TranslateFromClientAreaPosition(const FloatPoint& clientPosition) const
2133 FloatRectangle clientArea = GetClientBoundsF();
2134 return FloatPoint(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2138 _Form::IsDeflated(void)
2151 _Form::DeflateClientRectHeight(int height)
2162 __deflatedHeight = _CoordinateSystemUtils::ConvertToFloat(height);
2164 AdjustClientBounds();
2168 float adjHeight = 0.0f;
2170 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2172 adjHeight = GetToolbarHeightF(false);
2175 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2176 GetClientBoundsF().width, GetToolbarHeightF(false));
2177 SetFooterBounds(bounds);
2184 _Form::DeflateClientRectHeight(float height)
2195 __deflatedHeight = height;
2197 AdjustClientBounds();
2201 float adjHeight = 0.0f;
2203 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2205 adjHeight = GetToolbarHeightF(false);
2208 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2209 GetClientBoundsF().width, GetToolbarHeightF(false));
2210 SetFooterBounds(bounds);
2217 _Form::CreateHeaderN(void)
2219 _Toolbar* __pHeader = _Toolbar::CreateToolbarN(true);
2220 SysTryReturn(NID_UI_CTRL, __pHeader, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2226 _Form::CreateFooterN(void)
2228 _Toolbar* __pFooter = _Toolbar::CreateToolbarN(false);
2229 SysTryReturn(NID_UI_CTRL, __pFooter, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2235 _Form::CreateTabN(void)
2237 _Tab* __pTab = _Tab::CreateTabN();
2238 SysTryReturn(NID_UI_CTRL, __pTab, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2244 _Form::CreateIndicatorN(void)
2246 _Indicator* pIndicator = _Indicator::CreateIndicator();
2247 SysTryReturn(NID_UI_CTRL, pIndicator, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2253 _Form::GetToolbarHeight(bool header) const
2255 int toolbarHeight = 0;
2257 if (header && (__formStyle & FORM_STYLE_HEADER))
2261 toolbarHeight = __pHeader->GetBounds().height;
2264 else if (header && (__formStyle & FORM_STYLE_TITLE))
2266 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarHeight);
2268 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2270 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarHeight);
2276 toolbarHeight = __pFooter->GetBounds().height;
2279 //GET_SHAPE_CONFIG(L"FOOTER_HEIGHT", GetOrientation(), toolbarHeight);
2282 return toolbarHeight;
2286 _Form::GetToolbarHeightF(bool header) const
2288 FloatDimension toolbarSize(0.0f, 0.0f);
2290 if (header && (__formStyle & FORM_STYLE_HEADER))
2294 toolbarSize.height = __pHeader->GetBoundsF().height;
2297 else if (header && (__formStyle & FORM_STYLE_TITLE))
2299 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarSize.height);
2301 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2303 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarSize.height);
2309 toolbarSize.height = __pFooter->GetBoundsF().height;
2313 toolbarSize = TranslateSize(toolbarSize);
2315 return toolbarSize.height;
2319 _Form::GetTabHeight(void) const
2323 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2325 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), height);
2332 _Form::GetTabHeightF(void) const
2334 FloatDimension tabSize(0.0f, 0.0f);
2336 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2338 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), tabSize.height);
2341 tabSize = TranslateSize(tabSize);
2343 return tabSize.height;
2347 _Form::RemoveHeader(void)
2349 result r = E_SUCCESS;
2352 if (__pHeader->GetParent())
2354 r = DetachSystemChild(*__pHeader);
2355 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2359 AdjustClientBounds();
2370 _Form::RemoveFooter(void)
2372 result r = E_SUCCESS;
2375 if (__pFooter->GetParent())
2377 r = DetachSystemChild(*__pFooter);
2378 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2382 AdjustClientBounds();
2393 _Form::RemoveTab(void)
2395 result r = E_SUCCESS;
2398 if (__pTab->GetParent())
2400 r = DetachSystemChild(*__pTab);
2401 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2405 AdjustClientBounds();
2416 _Form::RemoveIndicator(void)
2418 result r = E_SUCCESS;
2421 r = GetVisualElement()->DetachChild(*__pIndicator);
2422 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2423 __pIndicator = null;
2434 _Form::SetHeaderBounds(Rectangle& bounds)
2436 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2438 bool movable = __pHeader->IsMovable();
2439 bool resizable = __pHeader->IsResizable();
2441 __pHeader->SetMovable(true);
2442 __pHeader->SetResizable(true);
2444 result r = E_SUCCESS;
2445 r = __pHeader->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2446 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2448 __pHeader->SetMovable(movable);
2449 __pHeader->SetResizable(resizable);
2451 AdjustClientBounds();
2457 _Form::SetHeaderBounds(FloatRectangle& bounds)
2459 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2461 bool movable = __pHeader->IsMovable();
2462 bool resizable = __pHeader->IsResizable();
2464 __pHeader->SetMovable(true);
2465 __pHeader->SetResizable(true);
2467 result r = E_SUCCESS;
2468 r = __pHeader->SetBounds(bounds);
2469 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2471 __pHeader->SetMovable(movable);
2472 __pHeader->SetResizable(resizable);
2474 AdjustClientBounds();
2480 _Form::SetFooterBounds(Rectangle& bounds)
2482 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2484 bool movable = __pFooter->IsMovable();
2485 bool resizable = __pFooter->IsResizable();
2487 __pFooter->SetMovable(true);
2488 __pFooter->SetResizable(true);
2490 result r = E_SUCCESS;
2491 r = __pFooter->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2492 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2494 __pFooter->SetMovable(movable);
2495 __pFooter->SetResizable(resizable);
2497 AdjustClientBounds();
2503 _Form::OnMousePressed(const _Control& source, const _MouseInfo& mouseinfo)
2509 _Form::OnMouseReleased(const _Control& source, const _MouseInfo& mouseinfo)
2511 _Toolbar* pToolbar = GetFooter();
2512 if (pToolbar == null)
2521 _Form::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
2527 _Form::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
2529 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
2531 // _Toolbar* pToolbar = GetFooter();
2532 // if (pToolbar == null)
2537 // if (pToolbar->IsButtonSet(BACK_BUTTON))
2540 void* pData = GetUserData();
2543 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2544 pDataImpl->OnFormBackRequested(*this);
2549 // void* pData = GetUserData();
2552 // _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2553 // pDataImpl->OnFormBackButtonRequested(*this);
2560 if (keyInfo.GetKeyCode() == _KEY_CONTEXT_MENU || keyInfo.GetKeyCode() == _KEY_MENU)
2562 // _Toolbar* pToolbar = GetFooter();
2563 // if (pToolbar == null)
2569 void* pData = GetUserData();
2572 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2573 pDataImpl->OnFormMenuRequested(*this);
2584 _Form::SetFooterBounds(FloatRectangle& bounds)
2586 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2588 bool movable = __pFooter->IsMovable();
2589 bool resizable = __pFooter->IsResizable();
2591 __pFooter->SetMovable(true);
2592 __pFooter->SetResizable(true);
2594 result r = E_SUCCESS;
2595 r = __pFooter->SetBounds(bounds);
2596 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2598 __pFooter->SetMovable(movable);
2599 __pFooter->SetResizable(resizable);
2601 AdjustClientBounds();
2607 _Form::SetTabBounds(Rectangle& bounds)
2609 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2611 bool movable = __pTab->IsMovable();
2612 bool resizable = __pTab->IsResizable();
2614 __pTab->SetMovable(true);
2615 __pTab->SetResizable(true);
2617 result r = E_SUCCESS;
2618 r = __pTab->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2619 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2621 __pTab->SetMovable(movable);
2622 __pTab->SetResizable(resizable);
2624 AdjustClientBounds();
2630 _Form::SetTabBounds(FloatRectangle& bounds)
2632 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2634 bool movable = __pTab->IsMovable();
2635 bool resizable = __pTab->IsResizable();
2637 __pTab->SetMovable(true);
2638 __pTab->SetResizable(true);
2640 result r = E_SUCCESS;
2641 r = __pTab->SetBounds(bounds);
2642 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2644 __pTab->SetMovable(movable);
2645 __pTab->SetResizable(resizable);
2647 AdjustClientBounds();
2653 _Form::AddActionEventListener(_IActionEventListener& listener)
2655 if (__pActionEvent == null)
2657 __pActionEvent = _ActionEvent::CreateInstanceN(*this);
2659 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.")
2662 result r = __pActionEvent->AddListener(listener);
2663 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2669 _Form::AddOptionkeyActionListener(_IActionEventListener& listener)
2671 if (HasOptionkey() == false)
2678 _Form::AddSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2680 if (CheckSoftkey(softkey) == false)
2687 _Form::RemoveActionEventListener(_IActionEventListener& listener)
2689 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] This instance isn't constructed.")
2690 // Todo : check fail case of RemoveListener
2691 result r = __pActionEvent->RemoveListener(listener);
2692 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2698 _Form::RemoveOptionkeyActionListener(_IActionEventListener& listener)
2700 if (HasOptionkey() == false)
2707 _Form::RemoveSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2709 if (CheckSoftkey(softkey) == false)
2716 _Form::OnActionPerformed(const _Control& source, int actionId)
2720 case ID_BACK_BUTTON:
2721 if (!__keypadShowstate && !__clipboardShowstate)
2723 if (__pFormBackEventListener)
2725 __pFormBackEventListener->OnFormBackRequested(*this);
2730 if (__keypadShowstate)
2732 if (!__alreadyStopKeySent)
2734 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_PRESSED, _KEY_BACK);
2735 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_RELEASED, _KEY_BACK);
2736 __alreadyStopKeySent = true;
2740 if (__clipboardShowstate)
2742 _SystemUtilImpl::SendKeyStopMessage();
2746 case ID_MENU_BUTTON :
2747 if (__pFormMenuEventListener)
2749 __pFormMenuEventListener->OnFormMenuRequested(*this);
2759 _Form::OnChildVisibleStateChanged(const _Control& child)
2761 if (IsHeaderVisible())
2763 float adjHeight = 0.0f;
2764 if (IsIndicatorVisible())
2766 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
2767 adjHeight = indicatorBounds.height;
2769 if (IsIndicatorTranslucent())
2771 if (!IsHeaderTranslucent())
2777 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
2783 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
2791 FloatRectangle bounds = __pHeader->GetBoundsF();
2792 bounds.y = adjHeight;
2793 SetHeaderBounds(bounds);
2796 AdjustClientBounds();
2800 _Form::GetIndicatorBounds(void) const
2802 _Control* pParent = GetParent();
2803 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2807 FrameShowMode mode = pFrame->GetShowMode();
2808 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2810 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2812 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2814 return Rectangle(0, 0, 0, 0);
2820 int indicatorwidth = GetClientBounds().width;
2821 int indicatorheight = 0;
2823 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2825 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2829 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2831 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2835 Rectangle rect (0, 0, indicatorwidth, indicatorheight);
2837 SetLastResult(E_SUCCESS);
2843 _Form::GetIndicatorBoundsF(void) const
2845 _Control* pParent = GetParent();
2846 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2850 FrameShowMode mode = pFrame->GetShowMode();
2851 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2853 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2855 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2857 return FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f);
2863 float indicatorwidth = GetClientBoundsF().width;
2864 float indicatorheight = 0.0f;
2866 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2868 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2872 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2874 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2878 FloatRectangle rect (0.0f, 0.0f, indicatorwidth, indicatorheight);
2880 SetLastResult(E_SUCCESS);
2886 _Form::SetHeader(_Toolbar* pToolbar)
2888 __pHeader = pToolbar;
2892 _Form::SetFooter(_Toolbar* pToolbar)
2894 __pFooter = pToolbar;
2898 _Form::SetTab(_Tab* pTab)
2904 _Form::SetTabStyle(int style)
2906 __pTab->SetStyle(style);
2910 _Form::SetIndicatorShowState(bool state)
2912 result r = E_SUCCESS;
2914 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
2915 SysTryReturn(NID_UI_CTRL, pEcoreEvas, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas");
2917 _Control* pParent = GetParent();
2920 pParent = const_cast<_Control*>(pEcoreEvas->GetFrame());
2922 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2924 if (pFrame && IsAttachedToMainTree())
2926 FrameShowMode mode = pFrame->GetShowMode();
2927 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2929 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2931 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2933 r = __pIndicator->SetIndicatorShowState(state);
2934 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2939 r = __pIndicator->SetIndicatorShowState(false);
2943 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2945 r = __pIndicator->SetIndicatorShowState(state);
2946 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2949 else if (!pFrame && IsAttachedToMainTree())
2951 __pIndicator->SetShowState(false);
2954 __indicatorShowState = state;
2960 _Form::SetIndicatorAutoHide(bool portrait, bool landscape)
2962 result r = E_SUCCESS;
2964 _Control* pParent = GetParent();
2965 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2967 if (pFrame && IsAttachedToMainTree())
2969 FrameShowMode mode = pFrame->GetShowMode();
2970 if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2972 __pIndicator->SetIndicatorAutoHide(portrait, landscape);
2973 r = GetLastResult();
2974 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
2980 _Form::SetIndicatorOpacity(_IndicatorOpacity opacity)
2982 result r = E_SUCCESS;
2984 _Control* pParent = GetParent();
2985 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2987 if (pFrame && IsAttachedToMainTree())
2989 FrameShowMode mode = pFrame->GetShowMode();
2991 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2993 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2995 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2997 r = __pIndicator->SetIndicatorOpacity(opacity);
2998 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
3002 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
3004 r = __pIndicator->SetIndicatorOpacity(opacity);
3005 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
3009 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
3011 __transparentIndicator = true;
3013 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
3015 __transparentIndicator = false;
3022 _Form::AddIndicatorObject(void)
3024 result r = E_SUCCESS;
3028 r = __pIndicator->AddIndicatorObject(this, GetRootWindow());
3035 _Form::DeleteIndicatorObject(void)
3037 result r = E_SUCCESS;
3040 r = __pIndicator->DeleteIndicatorObject();
3047 _Form::SetKeypadShowState(bool state)
3049 __keypadShowstate = state;
3053 __alreadyStopKeySent = false;
3056 if (__clipboardShowstate)
3063 _Form::SetClipboardShowState(bool state)
3065 __clipboardShowstate = state;
3067 if (__keypadShowstate)
3074 _Form::AttachedToMainTree(void)
3076 _Frame* pFrame = dynamic_cast<_Frame*>(GetParent());
3079 FrameShowMode mode = pFrame->GetShowMode();
3080 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3082 SetBounds(FloatRectangle(0.0f, 0.0f, pFrame->GetBoundsF().width, pFrame->GetBoundsF().height));
3086 result r = E_SUCCESS;
3088 if (FORM_STYLE_INDICATOR & GetFormStyle())
3090 __pIndicator->OnAttachedToMainTree();
3091 AddIndicatorObject();
3093 if (__transparentIndicator != IsIndicatorTranslucent())
3095 if (__transparentIndicator == true)
3097 SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
3101 SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
3105 if (__indicatorShowState != IsIndicatorVisible())
3107 SetIndicatorShowState(__indicatorShowState);
3110 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3112 SetIndicatorAutoHide(false, true);
3116 SetIndicatorAutoHide(false, false);
3118 r = GetLastResult();
3119 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3123 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3125 AddIndicatorObject();
3126 SetIndicatorShowState(__indicatorShowState);
3127 SetIndicatorAutoHide(true, true);
3131 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3133 AddIndicatorObject();
3134 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3136 SetIndicatorShowState(__indicatorShowState);
3140 SetIndicatorShowState(false);
3142 SetIndicatorAutoHide(true, false);
3145 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3147 AddIndicatorObject();
3148 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3150 SetIndicatorShowState(false);
3154 SetIndicatorShowState(__indicatorShowState);
3156 SetIndicatorAutoHide(false, true);
3160 __pIndicator->SetWindow(GetRootWindow());
3161 r = SetIndicatorShowState(false);
3162 SetIndicatorAutoHide(false, false);
3163 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3168 AdjustClientBounds();
3174 _Form::DetachingFromMainTree(void)
3176 result r = E_SUCCESS;
3177 r = DeleteIndicatorObject();
3182 _Form::AdjustClientBounds(void)
3184 result r = E_SUCCESS;
3186 FloatDimension size = GetSizeF();
3187 FloatRectangle clientBounds(0.0f, 0.0f, size.width, size.height);
3191 clientBounds.height -= __deflatedHeight;
3194 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3196 _Control* pParent = GetParent();
3197 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3200 FrameShowMode mode = pFrame->GetShowMode();
3202 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3204 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3206 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3208 if (FORM_STYLE_INDICATOR & __formStyle)
3210 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3212 clientBounds.y += indicatorBounds.height;
3213 clientBounds.height -= indicatorBounds.height;
3221 if (FORM_STYLE_INDICATOR & __formStyle)
3223 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3225 clientBounds.y += indicatorBounds.height;
3226 clientBounds.height -= indicatorBounds.height;
3233 if (FORM_STYLE_INDICATOR & __formStyle)
3235 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3237 clientBounds.y += indicatorBounds.height;
3238 clientBounds.height -= indicatorBounds.height;
3245 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3247 clientBounds.y += GetToolbarHeightF(true);
3248 clientBounds.height -= GetToolbarHeightF(true);
3254 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3256 clientBounds.y += GetTabHeightF();
3257 clientBounds.height -= GetTabHeightF();
3263 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3264 || FORM_STYLE_OPTIONKEY & __formStyle)
3266 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3268 clientBounds.height -= GetToolbarHeightF(false);
3273 SetClientBounds(clientBounds);
3279 _Form::OnBoundsChanged(void)
3281 FloatRectangle toolbarBounds;
3282 FloatRectangle indicatorFloatBounds(0.0f, 0.0f, 0.0f, 0.0f);
3284 float indicatorheight = 0.0f;
3286 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3288 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3292 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3294 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3300 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, GetClientBoundsF().width, indicatorheight));
3302 AdjustClientBounds();
3306 if (IsIndicatorVisible())
3308 indicatorFloatBounds = GetIndicatorBoundsF();
3309 if (IsIndicatorTranslucent())
3311 if (!IsHeaderTranslucent())
3313 indicatorFloatBounds.height = 0.0f;
3317 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3319 indicatorFloatBounds.height = 0.0f;
3325 toolbarBounds = GetHeader()->GetBoundsF();
3326 toolbarBounds.width = GetSizeF().width;
3328 FloatRectangle bounds(toolbarBounds.x, indicatorFloatBounds.height, toolbarBounds.width, toolbarBounds.height);
3329 SetHeaderBounds(bounds);
3334 toolbarBounds = GetFooter()->GetBoundsF();
3335 toolbarBounds.width = GetSizeF().width;
3336 toolbarBounds.y = GetSizeF().height - toolbarBounds.height;
3337 SetFooterBounds(toolbarBounds);
3342 toolbarBounds = GetTab()->GetBoundsF();
3343 toolbarBounds.width = GetSizeF().width;
3344 SetTabBounds(toolbarBounds);
3347 AdjustClientBounds();
3351 _Form::TranslateSize(FloatDimension size ) const
3353 FloatDimension returnSize(0.0f, 0.0f);
3354 returnSize = CoordinateSystem::AlignToDevice(size);
3360 _Form::SetNotificationTrayOpenEnabled(bool enable)
3362 SysTryReturnResult(NID_UI_CTRL, (__formStyle & FORM_STYLE_INDICATOR || __formStyle & FORM_STYLE_INDICATOR_AUTO_HIDE), E_INVALID_OPERATION, "[E_INVALID_OPERATION] The style of form is invalid.");
3366 __pIndicator->SetNotificationTrayOpenEnabled(enable);
3372 _Form::IsNotificationTrayOpenEnabled(void) const
3374 SysTryReturnResult(NID_UI_CTRL, (__formStyle & FORM_STYLE_INDICATOR || __formStyle & FORM_STYLE_INDICATOR_AUTO_HIDE), E_INVALID_OPERATION, "[E_INVALID_OPERATION] The style of form is invalid.");
3378 __pIndicator->IsNotificationTrayOpenEnabled();
3384 _Form::GetFocusList(void) const
3386 if(!__pFocusControlList)
3388 __pFocusControlList.reset(GetFocusListN());
3389 __pFocusControlList->InsertAt(const_cast<_Form*>(this), 0);
3391 return __pFocusControlList.get();
3395 _Form::SetFocusControl(const _Control* pControl)
3397 __pFocusControl = const_cast<_Control*>(pControl);
3401 _Form::GetFocusControl(void) const
3403 return __pFocusControl;
3407 _Form::ResetFocusList(void)
3409 if(__pFocusControlList)
3411 __pFocusControlList.reset();
3416 _Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
3418 clientBounds.width = size.width;
3419 clientBounds.height = size.height;
3423 clientBounds.height -= __deflatedHeight;
3426 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3428 _Control* pParent = GetParent();
3429 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3432 FrameShowMode mode = pFrame->GetShowMode();
3434 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3436 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3438 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3440 if (FORM_STYLE_INDICATOR & __formStyle)
3442 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3444 clientBounds.y += indicatorBounds.height;
3445 clientBounds.height -= indicatorBounds.height;
3453 if (FORM_STYLE_INDICATOR & __formStyle)
3455 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3457 clientBounds.y += indicatorBounds.height;
3458 clientBounds.height -= indicatorBounds.height;
3465 if (FORM_STYLE_INDICATOR & __formStyle)
3467 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3469 clientBounds.y += indicatorBounds.height;
3470 clientBounds.height -= indicatorBounds.height;
3477 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3479 clientBounds.y += GetToolbarHeightF(true);
3480 clientBounds.height -= GetToolbarHeightF(true);
3486 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3488 clientBounds.y += GetTabHeightF();
3489 clientBounds.height -= GetTabHeightF();
3495 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3496 || FORM_STYLE_OPTIONKEY & __formStyle)
3498 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3500 clientBounds.height -= GetToolbarHeightF(false);
3507 _Form::OnVisibleStateChanged(void)
3509 if (GetVisibleState())
3511 if (FORM_STYLE_INDICATOR & GetFormStyle())
3513 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3515 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3517 SetIndicatorShowState(true);
3518 SetIndicatorAutoHide(false, true);
3522 SetIndicatorShowState(false);
3523 SetIndicatorAutoHide(false, false);
3529 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3531 SetIndicatorAutoHide(false, true);
3535 SetIndicatorAutoHide(false, false);
3537 SetIndicatorShowState(__indicatorShowState);
3542 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3544 SetIndicatorShowState(__indicatorShowState);
3545 SetIndicatorAutoHide(true, true);
3549 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3551 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3553 SetIndicatorShowState(true);
3557 SetIndicatorShowState(false);
3559 SetIndicatorAutoHide(true, false);
3562 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3564 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3566 SetIndicatorShowState(false);
3570 SetIndicatorShowState(__indicatorShowState);
3572 SetIndicatorAutoHide(false, true);
3576 SetIndicatorShowState(false);
3577 SetIndicatorAutoHide(false, false);
3582 AdjustClientBounds();
3586 _Form::SetFormOrientationStatusEventListener(_IFormOrientationStatusEventListener* pFormOrientationstatusEventListener)
3588 __pFormOrientationstatusEventListener = pFormOrientationstatusEventListener;
3591 Tizen::Ui::OrientationStatus
3592 _Form::GetFormOrientationStatus(void) const
3594 if (__pFormOrientationstatusEventListener)
3596 return __pFormOrientationstatusEventListener->OnFormOrientationStatusRequested();
3599 return ORIENTATION_STATUS_PORTRAIT;
3603 _Form::GetFocusTraversalControl(void) const
3605 return __pFocusTraversalControl;
3608 _Form::SetFocusTraversalControl(_Control* pControl)
3610 __pFocusTraversalControl = pControl;
3614 _Form::OnFormActivated(void)
3616 AddIndicatorObject();
3620 }}} // Tizen::Ui::Controls