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);
764 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
765 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
767 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
769 delete __pSoftkeyDisabledIcon[_SOFTKEY_0];
770 __pSoftkeyDisabledIcon[_SOFTKEY_0] = null;
772 __pSoftkeyDisabledIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
775 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
776 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
778 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
780 delete __pSoftkeyPressedIcon[_SOFTKEY_0];
781 __pSoftkeyPressedIcon[_SOFTKEY_0] = null;
783 __pSoftkeyPressedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
786 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
787 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
789 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
791 delete __pSoftkeyHighlightedIcon[_SOFTKEY_0];
792 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = null;
794 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
797 _Button* pButton = _Button::CreateButtonN();
801 pButton->SetSize(softkeyDimension);
802 pButton->SetTextSize(fontSize);
803 pButton->SetMultilineTextSize(multilineFontSize);
804 pButton->SetUserDefinedTextArea(FloatRectangle(leftSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
805 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
806 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
807 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
808 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
809 __pFooter->SetButton(LEFT_BUTTON, pButton);
813 if (formStyle & FORM_STYLE_SOFTKEY_1)
815 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
816 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
817 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
819 delete __pSoftkeyNormalBitmap[_SOFTKEY_1];
820 __pSoftkeyNormalBitmap[_SOFTKEY_1] = null;
822 __pSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
825 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
826 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
827 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
829 delete __pSoftkeyDisabledBitmap[_SOFTKEY_1];
830 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
832 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
835 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
836 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
837 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
839 delete __pSoftkeyPressedBitmap[_SOFTKEY_1];
840 __pSoftkeyPressedBitmap[_SOFTKEY_1] = null;
842 __pSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
845 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
846 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
847 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
849 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_1];
850 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
852 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
855 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
856 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
857 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
859 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_1];
860 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = null;
862 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
865 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
866 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
867 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
869 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_1];
870 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
872 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
875 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
876 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
877 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
879 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_1];
880 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = null;
882 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
885 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
886 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
887 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
889 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1];
890 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
892 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
895 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
896 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
897 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
899 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_1];
900 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
902 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
905 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
906 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
907 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
909 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1];
910 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
912 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
915 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
916 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
917 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
919 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_1];
920 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
922 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
925 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
926 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
927 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
929 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1];
930 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
932 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
936 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
937 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
939 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
941 delete __pSoftkeyNormalIcon[_SOFTKEY_1];
942 __pSoftkeyNormalIcon[_SOFTKEY_1] = null;
944 __pSoftkeyNormalIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
947 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
948 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
950 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
952 delete __pSoftkeyDisabledIcon[_SOFTKEY_1];
953 __pSoftkeyDisabledIcon[_SOFTKEY_1] = null;
955 __pSoftkeyDisabledIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
958 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
959 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
961 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
963 delete __pSoftkeyPressedIcon[_SOFTKEY_1];
964 __pSoftkeyPressedIcon[_SOFTKEY_1] = null;
966 __pSoftkeyPressedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
969 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
970 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
972 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
974 delete __pSoftkeyHighlightedIcon[_SOFTKEY_1];
975 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = null;
977 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
980 _Button* pButton = _Button::CreateButtonN();
983 pButton->SetSize(softkeyDimension);
984 pButton->SetTextSize(fontSize);
985 pButton->SetMultilineTextSize(multilineFontSize);
986 pButton->SetUserDefinedTextArea(FloatRectangle(rightSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
987 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
988 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
989 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
990 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
991 __pFooter->SetButton(RIGHT_BUTTON, pButton);
995 if (formStyle & FORM_STYLE_OPTIONKEY)
997 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
998 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
999 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1001 delete __pSoftkeyNormalBitmap[SOFTKEY_COUNT];
1002 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = null;
1004 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1007 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1008 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1009 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1011 delete __pSoftkeyDisabledBitmap[SOFTKEY_COUNT];
1012 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = null;
1014 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
1017 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1018 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1019 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1021 delete __pSoftkeyPressedBitmap[SOFTKEY_COUNT];
1022 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = null;
1024 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1027 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1028 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1029 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1031 delete __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT];
1032 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = null;
1034 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
1037 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1038 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1039 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1041 delete __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT];
1042 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = null;
1044 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1047 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1048 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1049 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1051 delete __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT];
1052 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = null;
1054 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1057 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1058 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1060 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1062 delete __pSoftkeyNormalIcon[SOFTKEY_COUNT];
1063 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = null;
1065 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
1068 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1069 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1071 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1073 delete __pSoftkeyDisabledIcon[SOFTKEY_COUNT];
1074 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = null;
1076 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
1079 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1080 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1082 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1084 delete __pSoftkeyPressedIcon[SOFTKEY_COUNT];
1085 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = null;
1087 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
1090 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1091 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1093 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1095 delete __pSoftkeyHighlightedIcon[SOFTKEY_COUNT];
1096 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = null;
1098 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
1101 _Button* pButton = _Button::CreateButtonN();
1104 pButton->SetSize(optionkeyDimension);
1105 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
1106 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
1107 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
1108 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
1109 __pFooter->SetButton(MIDDLE_BUTTON, pButton);
1115 _Form::UpdateSoftkey(unsigned long formStyle)
1117 float softkeyIconGap = 3.0f;
1119 if (__formStyle & FORM_STYLE_SOFTKEY_0)// && __updatedSoftkeyCount % 2 == 0)
1121 if (__pFooter->GetButton(LEFT_BUTTON))
1123 __pFooter->GetButton(LEFT_BUTTON)->SetActionId(__actionId[_SOFTKEY_0]);
1125 if (__softkeyText[_SOFTKEY_0] != String())
1127 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
1129 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_0]);
1132 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
1134 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_0]);
1137 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
1139 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_0]);
1142 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
1144 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1147 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1149 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1152 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1154 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1157 __pFooter->GetButton(LEFT_BUTTON)->SetText(__softkeyText[_SOFTKEY_0]);
1159 __pFooter->RearrangeItems();
1163 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
1165 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_0]);
1168 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
1170 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_0]);
1173 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
1175 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_0]);
1178 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
1180 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1183 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1185 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1188 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1190 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1193 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
1195 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1196 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1197 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_0]);
1200 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
1202 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1203 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1204 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_0]);
1207 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
1209 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1210 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1211 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_0]);
1214 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
1216 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1217 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1218 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_0]);
1224 if (__formStyle & FORM_STYLE_SOFTKEY_1)// && __updatedSoftkeyCount % 2 == 0)
1226 if (__pFooter->GetButton(RIGHT_BUTTON))
1228 __pFooter->GetButton(RIGHT_BUTTON)->SetActionId(__actionId[_SOFTKEY_1]);
1230 if (__softkeyText[_SOFTKEY_1] != String())
1232 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
1234 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_1]);
1237 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
1239 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_1]);
1242 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
1244 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_1]);
1247 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
1249 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1252 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1254 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1257 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1259 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1262 __pFooter->GetButton(RIGHT_BUTTON)->SetText(__softkeyText[_SOFTKEY_1]);
1264 __pFooter->RearrangeItems();
1268 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
1270 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_1]);
1273 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
1275 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_1]);
1278 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
1280 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_1]);
1283 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
1285 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1288 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1290 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1293 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1295 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1298 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
1300 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1301 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1302 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_1]);
1305 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
1307 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1308 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1309 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_1]);
1312 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
1314 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1315 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1316 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_1]);
1319 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
1321 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1322 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1323 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_1]);
1329 if (__formStyle & FORM_STYLE_OPTIONKEY)
1331 if (__pFooter->GetButton(MIDDLE_BUTTON))
1333 __pFooter->GetButton(MIDDLE_BUTTON)->SetActionId(__actionId[SOFTKEY_COUNT]);
1335 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1337 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[SOFTKEY_COUNT]);
1340 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1342 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[SOFTKEY_COUNT]);
1345 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1347 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[SOFTKEY_COUNT]);
1350 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1352 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT]);
1355 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1357 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT]);
1360 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1362 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT]);
1365 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1367 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL, FloatPoint(0.0f, 0.0f), *__pSoftkeyNormalIcon[SOFTKEY_COUNT]);
1370 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1372 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED, FloatPoint(0.0f, 0.0f), *__pSoftkeyDisabledIcon[SOFTKEY_COUNT]);
1375 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1377 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED, FloatPoint(0.0f, 0.0f), *__pSoftkeyPressedIcon[SOFTKEY_COUNT]);
1380 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1382 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, FloatPoint(0.0f, 0.0f), *__pSoftkeyHighlightedIcon[SOFTKEY_COUNT]);
1389 _Form::GetDescription(void) const
1391 String description = _Control::GetDescription();
1393 String descriptionTemp(L"");
1395 descriptionTemp.Format(LOG_LEN_MAX, L"_Form: style(%d) transparent(%d %d %d %d) deflated(%d) deflatedHeight(%d) overlayRegionCount(%d) softkeyCount(%d) updatedSoftkeyCount(%d)",
1396 __formStyle, __transparentIndicator, __transparentHeader, __transparentFooter, __transparentTab, __deflated, __deflatedHeight,
1397 __overlayRegionCount, __softkeyCount, __updatedSoftkeyCount);
1399 description.Append(descriptionTemp);
1405 _Form::GetClientAreaCanvasN(void) const
1407 Canvas* pCanvas = GetCanvasN(GetClientBounds());
1408 if ((pCanvas == null) || (GetLastResult() != E_SUCCESS))
1410 SysLog(NID_UI_CTRL, "[%s] Propagated.", GetErrorMessage(GetLastResult()));
1419 _Form::GetSoftkeyActionId(_Softkey softkey) const
1421 if (CheckSoftkey(softkey) == false)
1426 return __actionId[softkey];
1430 _Form::GetOptionkeyActionId(void) const
1432 if (HasOptionkey() == false)
1437 return __actionId[SOFTKEY_COUNT];
1441 _Form::GetSoftkeyText(_Softkey softkey) const
1443 if (CheckSoftkey(softkey) == false)
1448 return __softkeyText[softkey];
1452 _Form::SetFormStyle(unsigned long formStyle)
1454 result r = E_SUCCESS;
1456 __formStyle = formStyle;
1460 __pIndicator = CreateIndicatorN();
1461 SysTryReturnVoidResult(NID_UI_CTRL, __pIndicator != null, r, "[%s] Propagating.", GetErrorMessage(r));
1463 float indicatorwidth = GetClientBoundsF().width;
1464 float indicatorheight = 0.0f;
1466 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
1468 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
1469 r = GetVisualElement()->AttachChild(*__pIndicator);
1470 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1472 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
1474 result r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
1476 r = GetLastResult();
1477 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1482 _Form::SetActionBarsTranslucent(unsigned long actionBars, bool translucent)
1486 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1487 (actionBars & FORM_ACTION_BAR_FOOTER) || (actionBars & FORM_ACTION_BAR_TAB)),
1488 E_INVALID_OPERATION, E_INVALID_OPERATION,
1489 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation."));
1491 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1492 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1493 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER))
1494 || (!(__formStyle & FORM_STYLE_TEXT_TAB) && (actionBars & FORM_ACTION_BAR_TAB)))
1497 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1498 return E_INVALID_OPERATION;
1501 result r = E_SUCCESS;
1503 Color bgColor(0, 0, 0, 0);
1504 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1508 r = SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
1512 r = SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
1514 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1517 if (actionBars & FORM_ACTION_BAR_HEADER)
1519 if (IsHeaderTranslucent() != translucent)
1523 __pHeader->SetTransparent(translucent);
1524 __transparentHeader = translucent;
1529 if (IsHeaderVisible())
1531 if (IsIndicatorTranslucent() != IsHeaderTranslucent())
1533 if (IsIndicatorTranslucent())
1535 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1536 SetHeaderBounds(bounds);
1540 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1541 SetHeaderBounds(bounds);
1544 else if (!IsIndicatorTranslucent() && !IsHeaderTranslucent())
1546 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1547 SetHeaderBounds(bounds);
1551 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1553 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1554 SetHeaderBounds(bounds);
1558 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1559 SetHeaderBounds(bounds);
1564 if (actionBars & FORM_ACTION_BAR_FOOTER)
1566 if (IsFooterTranslucent() != translucent)
1570 __pFooter->SetTransparent(translucent);
1571 __transparentFooter = translucent;
1576 AdjustClientBounds();
1582 _Form::SetActionBarsVisible(unsigned long actionBars, bool visible)
1586 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1587 (actionBars & FORM_ACTION_BAR_FOOTER)),
1588 E_INVALID_OPERATION,
1589 E_INVALID_OPERATION,
1590 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation. "));
1592 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1593 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1594 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER)))
1596 SysLog(NID_UI_CTRL, "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1597 return E_INVALID_OPERATION;
1600 if ((actionBars & FORM_ACTION_BAR_INDICATOR))
1602 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1604 if (!(__formStyle & FORM_STYLE_INDICATOR))
1607 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1608 return E_INVALID_OPERATION;
1614 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1615 return E_INVALID_OPERATION;
1619 FloatRectangle bounds = GetBoundsF();
1622 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1624 SetIndicatorShowState(visible);
1627 if (actionBars & FORM_ACTION_BAR_HEADER)
1629 if (IsHeaderVisible() != visible)
1633 if (visible == true)
1635 float adjHeight = 0.0f;
1636 if (IsIndicatorVisible())
1638 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
1639 adjHeight = indicatorBounds.height;
1641 if (IsIndicatorTranslucent())
1643 if (!IsHeaderTranslucent())
1649 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
1656 FloatRectangle bounds = __pHeader->GetBoundsF();
1657 bounds.y = adjHeight;
1659 SetHeaderBounds(bounds);
1661 __pHeader->SetVisibleState(visible);
1666 if (actionBars & FORM_ACTION_BAR_FOOTER)
1670 __pFooter->SetVisibleState(visible);
1674 AdjustClientBounds();
1680 _Form::SetTitleIcon(const Bitmap* pTitleBitmap)
1682 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1683 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1685 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1687 result r = __pHeader->SetTitleIcon(*pTitleBitmap);
1688 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1694 _Form::SetTitleText(const String& title, HorizontalAlignment alignment)
1696 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1697 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1699 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1701 result r = __pHeader->SetTitleText(title, alignment);
1702 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1708 _Form::SetSoftkeyEnabled(_Softkey softkey, bool enable)
1710 result r = E_SYSTEM;
1712 if (CheckSoftkey(softkey) == false)
1717 __enableSoftkey[softkey] = enable;
1725 _Form::SetOptionkeyActionId(int actionId)
1727 result r = E_SYSTEM;
1729 if (HasOptionkey() == false)
1734 __actionId[SOFTKEY_COUNT] = actionId;
1742 _Form::SetSoftkeyActionId(_Softkey softkey, int actionId)
1744 result r = E_SYSTEM;
1746 if (CheckSoftkey(softkey) == false)
1751 __actionId[softkey] = actionId;
1759 _Form::SetSoftkeyText(_Softkey softkey, const String& text)
1761 result r = E_SYSTEM;
1763 if (CheckSoftkey(softkey) == false)
1768 __softkeyText[softkey] = text;
1776 _Form::SetSoftkeyIcon(_Softkey softkey, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap)
1778 result r = E_SYSTEM;
1780 if (CheckSoftkey(softkey) == false)
1785 float softkey_icon_size = 0.0f;
1787 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_ICON_SIZE, GetOrientation(), softkey_icon_size);
1789 Bitmap* pClonedNormalBitmap = _BitmapImpl::CloneN(normalBitmap);
1791 if (pClonedNormalBitmap)
1793 if (__pSoftkeyNormalIcon[softkey] != null)
1795 delete __pSoftkeyNormalIcon[softkey];
1798 __pSoftkeyNormalIcon[softkey] = pClonedNormalBitmap;
1800 __pSoftkeyNormalIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1805 if (pPressedBitmap != null)
1807 Bitmap* pClonedPressedBitmap = _BitmapImpl::CloneN(*pPressedBitmap);
1809 if (pClonedPressedBitmap)
1811 if (__pSoftkeyPressedIcon[softkey] != null)
1813 delete __pSoftkeyPressedIcon[softkey];
1816 __pSoftkeyPressedIcon[softkey] = pClonedPressedBitmap;
1818 __pSoftkeyPressedIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1828 _Form::HasFooter(void) const
1841 _Form::HasHeader(void) const
1854 _Form::HasIndicator(void) const
1859 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1861 if ((GetFormStyle() & FORM_STYLE_INDICATOR) || (GetFormStyle() & FORM_STYLE_INDICATOR_AUTO_HIDE))
1872 if (GetFormStyle() & FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE)
1889 _Form::HasTitle(void) const
1891 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
1902 _Form::HasTab(void) const
1904 if ((__pTab && (__formStyle & FORM_STYLE_TEXT_TAB))
1905 || (__pTab && (__formStyle & FORM_STYLE_ICON_TAB)))
1916 _Form::IsIndicatorVisible(void) const
1918 _Control* pParent = GetParent();
1919 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1921 bool visible = true;
1923 if (pFrame && IsAttachedToMainTree())
1925 visible = __pIndicator->GetIndicatorShowState();
1926 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1930 visible = __indicatorShowState;
1937 _Form::IsHeaderVisible(void) const
1941 return __pHeader->IsVisible();
1950 _Form::IsFooterVisible(void) const
1954 return __pFooter->IsVisible();
1963 _Form::IsIndicatorTranslucent(void) const
1965 _Control* pParent = GetParent();
1966 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1968 _IndicatorOpacity opacity = _INDICATOR_OPACITY_UNKNOWN;
1970 bool transparent = false;
1972 if (pFrame && IsAttachedToMainTree())
1974 FrameShowMode mode = pFrame->GetShowMode();
1975 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
1977 if (mode == FRAME_SHOW_MODE_MINIMIZED)
1979 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
1985 opacity = __pIndicator->GetIndicatorOpacity();
1986 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1988 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
1992 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
1994 transparent = false;
2003 transparent = __transparentIndicator;
2010 _Form::IsIndicatorAutoHide(void) const
2012 _Control* pParent = GetParent();
2013 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2015 bool autohide = false;
2017 if (pFrame && IsAttachedToMainTree())
2019 autohide = __pIndicator->GetIndicatorAutoHide();
2026 _Form::IsHeaderTranslucent(void) const
2028 return __transparentHeader;
2032 _Form::IsFooterTranslucent(void) const
2034 return __transparentFooter;
2038 _Form::IsTabTranslucent(void) const
2040 return __transparentTab;
2044 _Form::HasOptionkey(void) const
2046 if (GetFormStyle() & FORM_STYLE_OPTIONKEY)
2057 _Form::HasSoftkey(_Softkey softkey) const
2059 unsigned long __formStyle = FORM_STYLE_NORMAL;
2061 if (softkey == _SOFTKEY_0)
2063 __formStyle = FORM_STYLE_SOFTKEY_0;
2065 else if (softkey == _SOFTKEY_1)
2067 __formStyle = FORM_STYLE_SOFTKEY_1;
2074 if (GetFormStyle() & __formStyle)
2085 _Form::IsSoftkeyEnabled(_Softkey softkey) const
2087 if (CheckSoftkey(softkey) == false)
2092 return __enableSoftkey[softkey];
2096 _Form::CheckSoftkey(_Softkey softkey) const
2100 if (HasSoftkey(softkey) == false)
2105 if (softkey >= _SOFTKEY_COUNT)
2114 _Form::IsOrientationRoot(void) const
2120 _Form::TranslateToClientAreaPosition(const Point& position) const
2122 Rectangle clientArea = GetClientBounds();
2123 return Point(position.x - clientArea.x, position.y - clientArea.y);
2127 _Form::TranslateToClientAreaPosition(const FloatPoint& position) const
2129 FloatRectangle clientArea = GetClientBoundsF();
2130 return FloatPoint(position.x - clientArea.x, position.y - clientArea.y);
2134 _Form::TranslateFromClientAreaPosition(const Point& clientPosition) const
2136 Rectangle clientArea = GetClientBounds();
2137 return Point(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2141 _Form::TranslateFromClientAreaPosition(const FloatPoint& clientPosition) const
2143 FloatRectangle clientArea = GetClientBoundsF();
2144 return FloatPoint(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2148 _Form::IsDeflated(void)
2161 _Form::DeflateClientRectHeight(int height)
2172 __deflatedHeight = _CoordinateSystemUtils::ConvertToFloat(height);
2174 AdjustClientBounds();
2178 float adjHeight = 0.0f;
2180 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2182 adjHeight = GetToolbarHeightF(false);
2185 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2186 GetClientBoundsF().width, GetToolbarHeightF(false));
2187 SetFooterBounds(bounds);
2194 _Form::DeflateClientRectHeight(float height)
2205 __deflatedHeight = height;
2207 AdjustClientBounds();
2211 float adjHeight = 0.0f;
2213 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2215 adjHeight = GetToolbarHeightF(false);
2218 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2219 GetClientBoundsF().width, GetToolbarHeightF(false));
2220 SetFooterBounds(bounds);
2227 _Form::CreateHeaderN(void)
2229 _Toolbar* __pHeader = _Toolbar::CreateToolbarN(true);
2230 SysTryReturn(NID_UI_CTRL, __pHeader, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2236 _Form::CreateFooterN(void)
2238 _Toolbar* __pFooter = _Toolbar::CreateToolbarN(false);
2239 SysTryReturn(NID_UI_CTRL, __pFooter, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2245 _Form::CreateTabN(void)
2247 _Tab* __pTab = _Tab::CreateTabN();
2248 SysTryReturn(NID_UI_CTRL, __pTab, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2254 _Form::CreateIndicatorN(void)
2256 _Indicator* pIndicator = _Indicator::CreateIndicator();
2257 SysTryReturn(NID_UI_CTRL, pIndicator, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2263 _Form::GetToolbarHeight(bool header) const
2265 int toolbarHeight = 0;
2267 if (header && (__formStyle & FORM_STYLE_HEADER))
2271 toolbarHeight = __pHeader->GetBounds().height;
2274 else if (header && (__formStyle & FORM_STYLE_TITLE))
2276 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarHeight);
2278 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2280 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarHeight);
2286 toolbarHeight = __pFooter->GetBounds().height;
2289 //GET_SHAPE_CONFIG(L"FOOTER_HEIGHT", GetOrientation(), toolbarHeight);
2292 return toolbarHeight;
2296 _Form::GetToolbarHeightF(bool header) const
2298 FloatDimension toolbarSize(0.0f, 0.0f);
2300 if (header && (__formStyle & FORM_STYLE_HEADER))
2304 toolbarSize.height = __pHeader->GetBoundsF().height;
2307 else if (header && (__formStyle & FORM_STYLE_TITLE))
2309 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarSize.height);
2311 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2313 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarSize.height);
2319 toolbarSize.height = __pFooter->GetBoundsF().height;
2323 toolbarSize = TranslateSize(toolbarSize);
2325 return toolbarSize.height;
2329 _Form::GetTabHeight(void) const
2333 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2335 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), height);
2342 _Form::GetTabHeightF(void) const
2344 FloatDimension tabSize(0.0f, 0.0f);
2346 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2348 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), tabSize.height);
2351 tabSize = TranslateSize(tabSize);
2353 return tabSize.height;
2357 _Form::RemoveHeader(void)
2359 result r = E_SUCCESS;
2362 if (__pHeader->GetParent())
2364 r = DetachSystemChild(*__pHeader);
2365 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2369 AdjustClientBounds();
2380 _Form::RemoveFooter(void)
2382 result r = E_SUCCESS;
2385 if (__pFooter->GetParent())
2387 r = DetachSystemChild(*__pFooter);
2388 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2392 AdjustClientBounds();
2403 _Form::RemoveTab(void)
2405 result r = E_SUCCESS;
2408 if (__pTab->GetParent())
2410 r = DetachSystemChild(*__pTab);
2411 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2415 AdjustClientBounds();
2426 _Form::RemoveIndicator(void)
2428 result r = E_SUCCESS;
2431 r = GetVisualElement()->DetachChild(*__pIndicator);
2432 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2433 __pIndicator = null;
2444 _Form::SetHeaderBounds(Rectangle& bounds)
2446 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2448 bool movable = __pHeader->IsMovable();
2449 bool resizable = __pHeader->IsResizable();
2451 __pHeader->SetMovable(true);
2452 __pHeader->SetResizable(true);
2454 result r = E_SUCCESS;
2455 r = __pHeader->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2456 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2458 __pHeader->SetMovable(movable);
2459 __pHeader->SetResizable(resizable);
2461 AdjustClientBounds();
2467 _Form::SetHeaderBounds(FloatRectangle& bounds)
2469 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2471 bool movable = __pHeader->IsMovable();
2472 bool resizable = __pHeader->IsResizable();
2474 __pHeader->SetMovable(true);
2475 __pHeader->SetResizable(true);
2477 result r = E_SUCCESS;
2478 r = __pHeader->SetBounds(bounds);
2479 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2481 __pHeader->SetMovable(movable);
2482 __pHeader->SetResizable(resizable);
2484 AdjustClientBounds();
2490 _Form::SetFooterBounds(Rectangle& bounds)
2492 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2494 bool movable = __pFooter->IsMovable();
2495 bool resizable = __pFooter->IsResizable();
2497 __pFooter->SetMovable(true);
2498 __pFooter->SetResizable(true);
2500 result r = E_SUCCESS;
2501 r = __pFooter->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2502 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2504 __pFooter->SetMovable(movable);
2505 __pFooter->SetResizable(resizable);
2507 AdjustClientBounds();
2513 _Form::OnMousePressed(const _Control& source, const _MouseInfo& mouseinfo)
2519 _Form::OnMouseReleased(const _Control& source, const _MouseInfo& mouseinfo)
2521 _Toolbar* pToolbar = GetFooter();
2522 if (pToolbar == null)
2531 _Form::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
2537 _Form::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
2539 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
2541 // _Toolbar* pToolbar = GetFooter();
2542 // if (pToolbar == null)
2547 // if (pToolbar->IsButtonSet(BACK_BUTTON))
2550 void* pData = GetUserData();
2553 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2554 pDataImpl->OnFormBackRequested(*this);
2559 // void* pData = GetUserData();
2562 // _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2563 // pDataImpl->OnFormBackButtonRequested(*this);
2570 if (keyInfo.GetKeyCode() == _KEY_CONTEXT_MENU || keyInfo.GetKeyCode() == _KEY_MENU)
2572 // _Toolbar* pToolbar = GetFooter();
2573 // if (pToolbar == null)
2579 void* pData = GetUserData();
2582 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2583 pDataImpl->OnFormMenuRequested(*this);
2594 _Form::SetFooterBounds(FloatRectangle& bounds)
2596 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2598 bool movable = __pFooter->IsMovable();
2599 bool resizable = __pFooter->IsResizable();
2601 __pFooter->SetMovable(true);
2602 __pFooter->SetResizable(true);
2604 result r = E_SUCCESS;
2605 r = __pFooter->SetBounds(bounds);
2606 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2608 __pFooter->SetMovable(movable);
2609 __pFooter->SetResizable(resizable);
2611 AdjustClientBounds();
2617 _Form::SetTabBounds(Rectangle& bounds)
2619 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2621 bool movable = __pTab->IsMovable();
2622 bool resizable = __pTab->IsResizable();
2624 __pTab->SetMovable(true);
2625 __pTab->SetResizable(true);
2627 result r = E_SUCCESS;
2628 r = __pTab->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2629 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2631 __pTab->SetMovable(movable);
2632 __pTab->SetResizable(resizable);
2634 AdjustClientBounds();
2640 _Form::SetTabBounds(FloatRectangle& bounds)
2642 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2644 bool movable = __pTab->IsMovable();
2645 bool resizable = __pTab->IsResizable();
2647 __pTab->SetMovable(true);
2648 __pTab->SetResizable(true);
2650 result r = E_SUCCESS;
2651 r = __pTab->SetBounds(bounds);
2652 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2654 __pTab->SetMovable(movable);
2655 __pTab->SetResizable(resizable);
2657 AdjustClientBounds();
2663 _Form::AddActionEventListener(_IActionEventListener& listener)
2665 if (__pActionEvent == null)
2667 __pActionEvent = _ActionEvent::CreateInstanceN(*this);
2669 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.")
2672 result r = __pActionEvent->AddListener(listener);
2673 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2679 _Form::AddOptionkeyActionListener(_IActionEventListener& listener)
2681 if (HasOptionkey() == false)
2688 _Form::AddSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2690 if (CheckSoftkey(softkey) == false)
2697 _Form::RemoveActionEventListener(_IActionEventListener& listener)
2699 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] This instance isn't constructed.")
2700 // Todo : check fail case of RemoveListener
2701 result r = __pActionEvent->RemoveListener(listener);
2702 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2708 _Form::RemoveOptionkeyActionListener(_IActionEventListener& listener)
2710 if (HasOptionkey() == false)
2717 _Form::RemoveSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2719 if (CheckSoftkey(softkey) == false)
2726 _Form::OnActionPerformed(const _Control& source, int actionId)
2730 case ID_BACK_BUTTON:
2731 if (!__keypadShowstate && !__clipboardShowstate)
2733 if (__pFormBackEventListener)
2735 __pFormBackEventListener->OnFormBackRequested(*this);
2740 if (__keypadShowstate)
2742 if (!__alreadyStopKeySent)
2744 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_PRESSED, _KEY_BACK);
2745 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_RELEASED, _KEY_BACK);
2746 __alreadyStopKeySent = true;
2750 if (__clipboardShowstate)
2752 _SystemUtilImpl::SendKeyStopMessage();
2756 case ID_MENU_BUTTON :
2757 if (__pFormMenuEventListener)
2759 __pFormMenuEventListener->OnFormMenuRequested(*this);
2769 _Form::OnChildVisibleStateChanged(const _Control& child)
2771 if (IsHeaderVisible())
2773 float adjHeight = 0.0f;
2774 if (IsIndicatorVisible())
2776 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
2777 adjHeight = indicatorBounds.height;
2779 if (IsIndicatorTranslucent())
2781 if (!IsHeaderTranslucent())
2787 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
2793 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
2801 FloatRectangle bounds = __pHeader->GetBoundsF();
2802 bounds.y = adjHeight;
2803 SetHeaderBounds(bounds);
2806 AdjustClientBounds();
2810 _Form::GetIndicatorBounds(void) const
2812 _Control* pParent = GetParent();
2813 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2817 FrameShowMode mode = pFrame->GetShowMode();
2818 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2820 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2822 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2824 return Rectangle(0, 0, 0, 0);
2830 int indicatorwidth = GetClientBounds().width;
2831 int indicatorheight = 0;
2833 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2835 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2839 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2841 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2845 Rectangle rect (0, 0, indicatorwidth, indicatorheight);
2847 SetLastResult(E_SUCCESS);
2853 _Form::GetIndicatorBoundsF(void) const
2855 _Control* pParent = GetParent();
2856 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2860 FrameShowMode mode = pFrame->GetShowMode();
2861 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2863 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2865 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2867 return FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f);
2873 float indicatorwidth = GetClientBoundsF().width;
2874 float indicatorheight = 0.0f;
2876 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2878 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2882 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2884 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2888 FloatRectangle rect (0.0f, 0.0f, indicatorwidth, indicatorheight);
2890 SetLastResult(E_SUCCESS);
2896 _Form::SetHeader(_Toolbar* pToolbar)
2898 __pHeader = pToolbar;
2902 _Form::SetFooter(_Toolbar* pToolbar)
2904 __pFooter = pToolbar;
2908 _Form::SetTab(_Tab* pTab)
2914 _Form::SetTabStyle(int style)
2916 __pTab->SetStyle(style);
2920 _Form::SetIndicatorShowState(bool state)
2922 result r = E_SUCCESS;
2924 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
2925 SysTryReturn(NID_UI_CTRL, pEcoreEvas, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas");
2927 _Control* pParent = GetParent();
2930 pParent = const_cast<_Control*>(pEcoreEvas->GetFrame());
2932 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2934 if (pFrame && IsAttachedToMainTree())
2936 FrameShowMode mode = pFrame->GetShowMode();
2937 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2939 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2941 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2943 r = __pIndicator->SetIndicatorShowState(state);
2944 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2949 r = __pIndicator->SetIndicatorShowState(false);
2953 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2955 r = __pIndicator->SetIndicatorShowState(state);
2956 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2959 else if (!pFrame && IsAttachedToMainTree())
2961 __pIndicator->SetShowState(false);
2964 __indicatorShowState = state;
2970 _Form::SetIndicatorAutoHide(bool portrait, bool landscape)
2972 result r = E_SUCCESS;
2974 _Control* pParent = GetParent();
2975 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2977 if (pFrame && IsAttachedToMainTree())
2979 FrameShowMode mode = pFrame->GetShowMode();
2980 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2982 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2984 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2986 __pIndicator->SetIndicatorAutoHide(portrait, landscape);
2987 r = GetLastResult();
2988 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
2992 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2994 __pIndicator->SetIndicatorAutoHide(portrait, landscape);
2995 r = GetLastResult();
2996 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3002 _Form::SetIndicatorOpacity(_IndicatorOpacity opacity)
3004 result r = E_SUCCESS;
3006 _Control* pParent = GetParent();
3007 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3009 if (pFrame && IsAttachedToMainTree())
3011 FrameShowMode mode = pFrame->GetShowMode();
3013 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3015 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3017 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3019 r = __pIndicator->SetIndicatorOpacity(opacity);
3020 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
3024 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
3026 r = __pIndicator->SetIndicatorOpacity(opacity);
3027 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
3031 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
3033 __transparentIndicator = true;
3035 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
3037 __transparentIndicator = false;
3044 _Form::AddIndicatorObject(void)
3046 result r = E_SUCCESS;
3050 r = __pIndicator->AddIndicatorObject(this, GetRootWindow());
3057 _Form::DeleteIndicatorObject(void)
3059 result r = E_SUCCESS;
3062 r = __pIndicator->DeleteIndicatorObject();
3069 _Form::SetKeypadShowState(bool state)
3071 __keypadShowstate = state;
3075 __alreadyStopKeySent = false;
3078 if (__clipboardShowstate)
3085 _Form::SetClipboardShowState(bool state)
3087 __clipboardShowstate = state;
3089 if (__keypadShowstate)
3096 _Form::AttachedToMainTree(void)
3098 _Frame* pFrame = dynamic_cast<_Frame*>(GetParent());
3101 FrameShowMode mode = pFrame->GetShowMode();
3102 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3104 SetBounds(FloatRectangle(0.0f, 0.0f, pFrame->GetBoundsF().width, pFrame->GetBoundsF().height));
3108 result r = E_SUCCESS;
3110 if (FORM_STYLE_INDICATOR & GetFormStyle())
3112 __pIndicator->OnAttachedToMainTree();
3113 AddIndicatorObject();
3115 if (__transparentIndicator != IsIndicatorTranslucent())
3117 if (__transparentIndicator == true)
3119 SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
3123 SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
3127 if (__indicatorShowState != IsIndicatorVisible())
3129 SetIndicatorShowState(__indicatorShowState);
3132 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3134 SetIndicatorAutoHide(false, true);
3138 SetIndicatorAutoHide(false, false);
3140 r = GetLastResult();
3141 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3145 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3147 AddIndicatorObject();
3148 SetIndicatorShowState(__indicatorShowState);
3149 SetIndicatorAutoHide(true, true);
3153 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3155 AddIndicatorObject();
3156 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3158 SetIndicatorShowState(__indicatorShowState);
3162 SetIndicatorShowState(false);
3164 SetIndicatorAutoHide(true, false);
3167 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3169 AddIndicatorObject();
3170 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3172 SetIndicatorShowState(false);
3176 SetIndicatorShowState(__indicatorShowState);
3178 SetIndicatorAutoHide(false, true);
3182 __pIndicator->SetWindow(GetRootWindow());
3183 r = SetIndicatorShowState(false);
3184 SetIndicatorAutoHide(false, false);
3185 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3190 AdjustClientBounds();
3196 _Form::DetachingFromMainTree(void)
3198 result r = E_SUCCESS;
3199 r = DeleteIndicatorObject();
3204 _Form::AdjustClientBounds(void)
3206 result r = E_SUCCESS;
3208 FloatDimension size = GetSizeF();
3209 FloatRectangle clientBounds(0.0f, 0.0f, size.width, size.height);
3213 clientBounds.height -= __deflatedHeight;
3216 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3218 _Control* pParent = GetParent();
3219 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3222 FrameShowMode mode = pFrame->GetShowMode();
3224 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3226 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3228 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3230 if (FORM_STYLE_INDICATOR & __formStyle)
3232 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3234 clientBounds.y += indicatorBounds.height;
3235 clientBounds.height -= indicatorBounds.height;
3243 if (FORM_STYLE_INDICATOR & __formStyle)
3245 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3247 clientBounds.y += indicatorBounds.height;
3248 clientBounds.height -= indicatorBounds.height;
3255 if (FORM_STYLE_INDICATOR & __formStyle)
3257 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3259 clientBounds.y += indicatorBounds.height;
3260 clientBounds.height -= indicatorBounds.height;
3267 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3269 clientBounds.y += GetToolbarHeightF(true);
3270 clientBounds.height -= GetToolbarHeightF(true);
3276 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3278 clientBounds.y += GetTabHeightF();
3279 clientBounds.height -= GetTabHeightF();
3285 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3286 || FORM_STYLE_OPTIONKEY & __formStyle)
3288 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3290 clientBounds.height -= GetToolbarHeightF(false);
3295 SetClientBounds(clientBounds);
3301 _Form::OnBoundsChanged(void)
3303 FloatRectangle toolbarBounds;
3304 FloatRectangle indicatorFloatBounds(0.0f, 0.0f, 0.0f, 0.0f);
3306 float indicatorheight = 0.0f;
3308 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3310 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3314 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3316 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3322 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, GetClientBoundsF().width, indicatorheight));
3324 AdjustClientBounds();
3328 if (IsIndicatorVisible())
3330 indicatorFloatBounds = GetIndicatorBoundsF();
3331 if (IsIndicatorTranslucent())
3333 if (!IsHeaderTranslucent())
3335 indicatorFloatBounds.height = 0.0f;
3339 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3341 indicatorFloatBounds.height = 0.0f;
3347 toolbarBounds = GetHeader()->GetBoundsF();
3348 toolbarBounds.width = GetSizeF().width;
3350 FloatRectangle bounds(toolbarBounds.x, indicatorFloatBounds.height, toolbarBounds.width, toolbarBounds.height);
3351 SetHeaderBounds(bounds);
3356 toolbarBounds = GetFooter()->GetBoundsF();
3357 toolbarBounds.width = GetSizeF().width;
3358 toolbarBounds.y = GetSizeF().height - toolbarBounds.height;
3359 SetFooterBounds(toolbarBounds);
3364 toolbarBounds = GetTab()->GetBoundsF();
3365 toolbarBounds.width = GetSizeF().width;
3366 SetTabBounds(toolbarBounds);
3369 AdjustClientBounds();
3373 _Form::TranslateSize(FloatDimension size ) const
3375 FloatDimension returnSize(0.0f, 0.0f);
3376 returnSize = CoordinateSystem::AlignToDevice(size);
3382 _Form::SetNotificationTrayOpenEnabled(bool enable)
3384 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.");
3388 __pIndicator->SetNotificationTrayOpenEnabled(enable);
3394 _Form::IsNotificationTrayOpenEnabled(void) const
3396 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.");
3400 __pIndicator->IsNotificationTrayOpenEnabled();
3406 _Form::GetFocusList(void) const
3408 if(!__pFocusControlList)
3410 __pFocusControlList.reset(GetFocusListN());
3411 __pFocusControlList->InsertAt(const_cast<_Form*>(this), 0);
3413 return __pFocusControlList.get();
3417 _Form::SetFocusControl(const _Control* pControl)
3419 __pFocusControl = const_cast<_Control*>(pControl);
3423 _Form::GetFocusControl(void) const
3425 return __pFocusControl;
3429 _Form::ResetFocusList(void)
3431 if(__pFocusControlList)
3433 __pFocusControlList.reset();
3438 _Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
3440 clientBounds.width = size.width;
3441 clientBounds.height = size.height;
3445 clientBounds.height -= __deflatedHeight;
3448 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3450 _Control* pParent = GetParent();
3451 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3454 FrameShowMode mode = pFrame->GetShowMode();
3456 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3458 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3460 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3462 if (FORM_STYLE_INDICATOR & __formStyle)
3464 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3466 clientBounds.y += indicatorBounds.height;
3467 clientBounds.height -= indicatorBounds.height;
3475 if (FORM_STYLE_INDICATOR & __formStyle)
3477 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3479 clientBounds.y += indicatorBounds.height;
3480 clientBounds.height -= indicatorBounds.height;
3487 if (FORM_STYLE_INDICATOR & __formStyle)
3489 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3491 clientBounds.y += indicatorBounds.height;
3492 clientBounds.height -= indicatorBounds.height;
3499 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3501 clientBounds.y += GetToolbarHeightF(true);
3502 clientBounds.height -= GetToolbarHeightF(true);
3508 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3510 clientBounds.y += GetTabHeightF();
3511 clientBounds.height -= GetTabHeightF();
3517 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3518 || FORM_STYLE_OPTIONKEY & __formStyle)
3520 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3522 clientBounds.height -= GetToolbarHeightF(false);
3529 _Form::OnVisibleStateChanged(void)
3531 if (GetVisibleState())
3533 if (FORM_STYLE_INDICATOR & GetFormStyle())
3535 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3537 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3539 SetIndicatorShowState(true);
3540 SetIndicatorAutoHide(false, true);
3544 SetIndicatorShowState(false);
3545 SetIndicatorAutoHide(false, false);
3551 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3553 SetIndicatorAutoHide(false, true);
3557 SetIndicatorAutoHide(false, false);
3559 SetIndicatorShowState(__indicatorShowState);
3564 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3566 SetIndicatorShowState(__indicatorShowState);
3567 SetIndicatorAutoHide(true, true);
3571 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3573 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3575 SetIndicatorShowState(true);
3579 SetIndicatorShowState(false);
3581 SetIndicatorAutoHide(true, false);
3584 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3586 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3588 SetIndicatorShowState(false);
3592 SetIndicatorShowState(__indicatorShowState);
3594 SetIndicatorAutoHide(false, true);
3598 SetIndicatorShowState(false);
3599 SetIndicatorAutoHide(false, false);
3604 AdjustClientBounds();
3608 _Form::SetFormOrientationStatusEventListener(_IFormOrientationStatusEventListener* pFormOrientationstatusEventListener)
3610 __pFormOrientationstatusEventListener = pFormOrientationstatusEventListener;
3613 Tizen::Ui::OrientationStatus
3614 _Form::GetFormOrientationStatus(void) const
3616 if (__pFormOrientationstatusEventListener)
3618 return __pFormOrientationstatusEventListener->OnFormOrientationStatusRequested();
3621 return ORIENTATION_STATUS_PORTRAIT;
3625 _Form::GetFocusTraversalControl(void) const
3627 return __pFocusTraversalControl;
3630 _Form::SetFocusTraversalControl(_Control* pControl)
3632 __pFocusTraversalControl = pControl;
3636 _Form::OnFormActivated(void)
3638 AddIndicatorObject();
3642 }}} // Tizen::Ui::Controls