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 FloatDimension softkeyDimension(0.0f, 0.0f);
574 FloatDimension softkeyDisplayDimension(0.0f, 0.0f);
575 FloatDimension optionkeyDimension(0.0f, 0.0f);
576 float fontSize = 0.0f;
577 float multilineFontSize = 0.0f;
578 float leftSoftkeyLeftMargin = 0.0f;
579 float rightSoftkeyLeftMargin = 0.0f;
580 float softkeyTopMargin = 0.0f;
582 Color softkeyNormalBackgroundColor;
583 Color softkeyDisabledBackgroundColor;
584 Color softkeyPressedBackgroundColor;
585 Color softkeyHighlightedBackgroundColor;
587 Color softkeyNormalTextColor;
588 Color softkeyDisabledTextColor;
589 Color softkeyPressedTextColor;
590 Color softkeyHighlightedTextColor;
592 Color softkeyNormalIconColor;
593 Color softkeyDisabledIconColor;
594 Color softkeyPressedIconColor;
595 Color softkeyHighlightedIconColor;
597 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_RECT, GetOrientation(), softkeyDimension);
598 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_DISPLAY_RECT_WITH_TEXT, GetOrientation(), softkeyDisplayDimension);
599 GET_DIMENSION_CONFIG(FOOTER::OPTIONKEY_RECT, GetOrientation(), optionkeyDimension);
600 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TEXT_SIZE, GetOrientation(), fontSize);
601 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_MULTILINE_TEXT_SIZE, GetOrientation(), multilineFontSize);
602 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_0_LEFT_MARGIN, GetOrientation(), leftSoftkeyLeftMargin);
603 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_1_LEFT_MARGIN, GetOrientation(), rightSoftkeyLeftMargin);
604 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TOP_MARGIN, GetOrientation(), softkeyTopMargin);
606 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_NORMAL, softkeyNormalBackgroundColor);
607 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_DISABLED, softkeyDisabledBackgroundColor);
608 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_PRESSED, softkeyPressedBackgroundColor);
609 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_HIGHLIGHTED, softkeyHighlightedBackgroundColor);
611 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_NORMAL, softkeyNormalTextColor);
612 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_DISABLED, softkeyDisabledTextColor);
613 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_PRESSED, softkeyPressedTextColor);
614 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_HIGHLIGHTED, softkeyHighlightedTextColor);
616 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_NORMAL, softkeyNormalIconColor);
617 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_DISABLED, softkeyDisabledIconColor);
618 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_PRESSED, softkeyPressedIconColor);
619 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_HIGHLIGHTED, softkeyHighlightedIconColor);
621 result r = E_SUCCESS;
623 if (__pFooter != null)
625 __pFooter->SetStyle(TOOLBAR_SOFTKEY);
628 if (formStyle & FORM_STYLE_SOFTKEY_0)
630 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
632 delete __pSoftkeyNormalBitmap[_SOFTKEY_0];
633 __pSoftkeyNormalBitmap[_SOFTKEY_0] = null;
635 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalBitmap[_SOFTKEY_0]);
636 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
638 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
640 delete __pSoftkeyDisabledBitmap[_SOFTKEY_0];
641 __pSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
643 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledBackgroundColor, __pSoftkeyDisabledBitmap[_SOFTKEY_0]);
644 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
646 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
648 delete __pSoftkeyPressedBitmap[_SOFTKEY_0];
649 __pSoftkeyPressedBitmap[_SOFTKEY_0] = null;
651 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedBitmap[_SOFTKEY_0]);
652 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
654 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
656 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_0];
657 __pSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
659 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedBackgroundColor, __pSoftkeyHighlightedBitmap[_SOFTKEY_0]);
660 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
662 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
664 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_0];
665 __pTextSoftkeyNormalBitmap[_SOFTKEY_0] = null;
667 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pTextSoftkeyNormalBitmap[_SOFTKEY_0]);
668 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
670 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
672 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_0];
673 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
675 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledBackgroundColor, __pTextSoftkeyDisabledBitmap[_SOFTKEY_0]);
676 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
678 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
680 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_0];
681 __pTextSoftkeyPressedBitmap[_SOFTKEY_0] = null;
683 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pTextSoftkeyPressedBitmap[_SOFTKEY_0]);
684 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
686 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
688 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0];
689 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
691 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedBackgroundColor, __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0]);
692 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
694 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
696 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_0];
697 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
699 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
700 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
702 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
704 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0];
705 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
707 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
708 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
710 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
712 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_0];
713 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
715 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
716 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
718 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
720 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0];
721 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
723 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
724 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
726 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
728 delete __pSoftkeyNormalIcon[_SOFTKEY_0];
729 __pSoftkeyNormalIcon[_SOFTKEY_0] = null;
731 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalIconColor, __pSoftkeyNormalIcon[_SOFTKEY_0]);
732 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
734 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
736 delete __pSoftkeyDisabledIcon[_SOFTKEY_0];
737 __pSoftkeyDisabledIcon[_SOFTKEY_0] = null;
739 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledIconColor, __pSoftkeyDisabledIcon[_SOFTKEY_0]);
740 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
742 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
744 delete __pSoftkeyPressedIcon[_SOFTKEY_0];
745 __pSoftkeyPressedIcon[_SOFTKEY_0] = null;
747 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedIconColor, __pSoftkeyPressedIcon[_SOFTKEY_0]);
748 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
750 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
752 delete __pSoftkeyHighlightedIcon[_SOFTKEY_0];
753 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = null;
755 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedIconColor, __pSoftkeyHighlightedIcon[_SOFTKEY_0]);
756 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
758 _Button* pButton = _Button::CreateButtonN();
762 pButton->SetSize(softkeyDimension);
763 pButton->SetTextSize(fontSize);
764 pButton->SetMultilineTextSize(multilineFontSize);
765 pButton->SetUserDefinedTextArea(FloatRectangle(leftSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
766 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
767 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
768 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
769 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
770 __pFooter->SetButton(LEFT_BUTTON, pButton);
774 if (formStyle & FORM_STYLE_SOFTKEY_1)
776 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
778 delete __pSoftkeyNormalBitmap[_SOFTKEY_1];
779 __pSoftkeyNormalBitmap[_SOFTKEY_1] = null;
781 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalBitmap[_SOFTKEY_1]);
782 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
784 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
786 delete __pSoftkeyDisabledBitmap[_SOFTKEY_1];
787 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
789 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledBackgroundColor, __pSoftkeyDisabledBitmap[_SOFTKEY_1]);
790 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
792 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
794 delete __pSoftkeyPressedBitmap[_SOFTKEY_1];
795 __pSoftkeyPressedBitmap[_SOFTKEY_1] = null;
797 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedBitmap[_SOFTKEY_1]);
798 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
800 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
802 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_1];
803 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
805 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedBackgroundColor, __pSoftkeyHighlightedBitmap[_SOFTKEY_1]);
806 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
808 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
810 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_1];
811 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = null;
813 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pTextSoftkeyNormalBitmap[_SOFTKEY_1]);
814 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
816 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
818 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_1];
819 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
821 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledBackgroundColor, __pTextSoftkeyDisabledBitmap[_SOFTKEY_1]);
822 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
824 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
826 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_1];
827 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = null;
829 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pTextSoftkeyPressedBitmap[_SOFTKEY_1]);
830 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
832 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
834 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1];
835 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
837 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedBackgroundColor, __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1]);
838 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
840 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
842 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_1];
843 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
845 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
846 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
848 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
850 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1];
851 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
853 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
854 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
856 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
858 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_1];
859 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
861 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
862 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
864 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
866 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1];
867 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
869 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
870 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
872 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
874 delete __pSoftkeyNormalIcon[_SOFTKEY_1];
875 __pSoftkeyNormalIcon[_SOFTKEY_1] = null;
877 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalIconColor, __pSoftkeyNormalIcon[_SOFTKEY_1]);
878 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
880 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
882 delete __pSoftkeyDisabledIcon[_SOFTKEY_1];
883 __pSoftkeyDisabledIcon[_SOFTKEY_1] = null;
885 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledIconColor, __pSoftkeyDisabledIcon[_SOFTKEY_1]);
886 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
888 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
890 delete __pSoftkeyPressedIcon[_SOFTKEY_1];
891 __pSoftkeyPressedIcon[_SOFTKEY_1] = null;
893 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedIconColor, __pSoftkeyPressedIcon[_SOFTKEY_1]);
894 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
896 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
898 delete __pSoftkeyHighlightedIcon[_SOFTKEY_1];
899 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = null;
901 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedIconColor, __pSoftkeyHighlightedIcon[_SOFTKEY_1]);
902 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
904 _Button* pButton = _Button::CreateButtonN();
907 pButton->SetSize(softkeyDimension);
908 pButton->SetTextSize(fontSize);
909 pButton->SetMultilineTextSize(multilineFontSize);
910 pButton->SetUserDefinedTextArea(FloatRectangle(rightSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
911 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
912 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
913 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
914 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
915 __pFooter->SetButton(RIGHT_BUTTON, pButton);
919 if (formStyle & FORM_STYLE_OPTIONKEY)
921 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
923 delete __pSoftkeyNormalBitmap[SOFTKEY_COUNT];
924 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = null;
926 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalBitmap[SOFTKEY_COUNT]);
927 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
929 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
931 delete __pSoftkeyDisabledBitmap[SOFTKEY_COUNT];
932 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = null;
934 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledBackgroundColor, __pSoftkeyDisabledBitmap[SOFTKEY_COUNT]);
935 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
937 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
939 delete __pSoftkeyPressedBitmap[SOFTKEY_COUNT];
940 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = null;
942 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedBitmap[SOFTKEY_COUNT]);
943 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
945 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
947 delete __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT];
948 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = null;
950 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedBackgroundColor, __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT]);
951 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
953 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
955 delete __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT];
956 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = null;
958 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalBackgroundColor, __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT]);
959 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
961 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
963 delete __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT];
964 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = null;
966 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedBackgroundColor, __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT]);
967 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
969 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
971 delete __pSoftkeyNormalIcon[SOFTKEY_COUNT];
972 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = null;
974 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyNormalIconColor, __pSoftkeyNormalIcon[SOFTKEY_COUNT]);
975 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
977 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
979 delete __pSoftkeyDisabledIcon[SOFTKEY_COUNT];
980 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = null;
982 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyDisabledIconColor, __pSoftkeyDisabledIcon[SOFTKEY_COUNT]);
983 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
985 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
987 delete __pSoftkeyPressedIcon[SOFTKEY_COUNT];
988 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = null;
990 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyPressedIconColor, __pSoftkeyPressedIcon[SOFTKEY_COUNT]);
991 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
993 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
995 delete __pSoftkeyHighlightedIcon[SOFTKEY_COUNT];
996 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = null;
998 r = GET_REPLACED_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, softkeyHighlightedIconColor, __pSoftkeyHighlightedIcon[SOFTKEY_COUNT]);
999 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1001 _Button* pButton = _Button::CreateButtonN();
1004 pButton->SetSize(optionkeyDimension);
1005 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
1006 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
1007 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
1008 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
1009 __pFooter->SetButton(MIDDLE_BUTTON, pButton);
1015 _Form::UpdateSoftkey(unsigned long formStyle)
1017 float softkeyIconGap = 3.0f;
1019 if (__formStyle & FORM_STYLE_SOFTKEY_0)// && __updatedSoftkeyCount % 2 == 0)
1021 if (__pFooter->GetButton(LEFT_BUTTON))
1023 __pFooter->GetButton(LEFT_BUTTON)->SetActionId(__actionId[_SOFTKEY_0]);
1025 if (__softkeyText[_SOFTKEY_0] != String())
1027 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
1029 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_0]);
1032 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
1034 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_0]);
1037 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
1039 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_0]);
1042 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
1044 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1047 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1049 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1052 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1054 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1057 __pFooter->GetButton(LEFT_BUTTON)->SetText(__softkeyText[_SOFTKEY_0]);
1059 __pFooter->RearrangeItems();
1063 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
1065 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_0]);
1068 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
1070 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_0]);
1073 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
1075 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_0]);
1078 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
1080 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1083 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1085 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1088 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1090 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1093 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
1095 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1096 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1097 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_0]);
1100 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
1102 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1103 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1104 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_0]);
1107 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
1109 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1110 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1111 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_0]);
1114 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
1116 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1117 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1118 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_0]);
1124 if (__formStyle & FORM_STYLE_SOFTKEY_1)// && __updatedSoftkeyCount % 2 == 0)
1126 if (__pFooter->GetButton(RIGHT_BUTTON))
1128 __pFooter->GetButton(RIGHT_BUTTON)->SetActionId(__actionId[_SOFTKEY_1]);
1130 if (__softkeyText[_SOFTKEY_1] != String())
1132 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
1134 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_1]);
1137 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
1139 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_1]);
1142 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
1144 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_1]);
1147 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
1149 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1152 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1154 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1157 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1159 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1162 __pFooter->GetButton(RIGHT_BUTTON)->SetText(__softkeyText[_SOFTKEY_1]);
1164 __pFooter->RearrangeItems();
1168 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
1170 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_1]);
1173 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
1175 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_1]);
1178 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
1180 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_1]);
1183 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
1185 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1188 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1190 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1193 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1195 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1198 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
1200 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1201 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1202 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_1]);
1205 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
1207 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1208 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1209 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_1]);
1212 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
1214 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1215 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1216 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_1]);
1219 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
1221 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1222 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1223 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_1]);
1229 if (__formStyle & FORM_STYLE_OPTIONKEY)
1231 if (__pFooter->GetButton(MIDDLE_BUTTON))
1233 __pFooter->GetButton(MIDDLE_BUTTON)->SetActionId(__actionId[SOFTKEY_COUNT]);
1235 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1237 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[SOFTKEY_COUNT]);
1240 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1242 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[SOFTKEY_COUNT]);
1245 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1247 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[SOFTKEY_COUNT]);
1250 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1252 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT]);
1255 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1257 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT]);
1260 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1262 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT]);
1265 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1267 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL, FloatPoint(0.0f, 0.0f), *__pSoftkeyNormalIcon[SOFTKEY_COUNT]);
1270 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1272 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED, FloatPoint(0.0f, 0.0f), *__pSoftkeyDisabledIcon[SOFTKEY_COUNT]);
1275 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1277 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED, FloatPoint(0.0f, 0.0f), *__pSoftkeyPressedIcon[SOFTKEY_COUNT]);
1280 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1282 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, FloatPoint(0.0f, 0.0f), *__pSoftkeyHighlightedIcon[SOFTKEY_COUNT]);
1289 _Form::GetDescription(void) const
1291 String description = _Control::GetDescription();
1293 String descriptionTemp(L"");
1295 descriptionTemp.Format(LOG_LEN_MAX, L"_Form: style(%d) transparent(%d %d %d %d) deflated(%d) deflatedHeight(%d) overlayRegionCount(%d) softkeyCount(%d) updatedSoftkeyCount(%d)",
1296 __formStyle, __transparentIndicator, __transparentHeader, __transparentFooter, __transparentTab, __deflated, __deflatedHeight,
1297 __overlayRegionCount, __softkeyCount, __updatedSoftkeyCount);
1299 description.Append(descriptionTemp);
1305 _Form::GetClientAreaCanvasN(void) const
1307 Canvas* pCanvas = GetCanvasN(GetClientBounds());
1308 if ((pCanvas == null) || (GetLastResult() != E_SUCCESS))
1310 SysLog(NID_UI_CTRL, "[%s] Propagated.", GetErrorMessage(GetLastResult()));
1319 _Form::GetSoftkeyActionId(_Softkey softkey) const
1321 if (CheckSoftkey(softkey) == false)
1326 return __actionId[softkey];
1330 _Form::GetOptionkeyActionId(void) const
1332 if (HasOptionkey() == false)
1337 return __actionId[SOFTKEY_COUNT];
1341 _Form::GetSoftkeyText(_Softkey softkey) const
1343 if (CheckSoftkey(softkey) == false)
1348 return __softkeyText[softkey];
1352 _Form::SetFormStyle(unsigned long formStyle)
1354 result r = E_SUCCESS;
1356 __formStyle = formStyle;
1360 __pIndicator = CreateIndicatorN();
1361 SysTryReturnVoidResult(NID_UI_CTRL, __pIndicator != null, r, "[%s] Propagating.", GetErrorMessage(r));
1363 float indicatorwidth = GetClientBoundsF().width;
1364 float indicatorheight = 0.0f;
1366 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
1368 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
1369 r = GetVisualElement()->AttachChild(*__pIndicator);
1370 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1372 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
1374 result r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
1376 r = GetLastResult();
1377 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1382 _Form::SetActionBarsTranslucent(unsigned long actionBars, bool translucent)
1386 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1387 (actionBars & FORM_ACTION_BAR_FOOTER) || (actionBars & FORM_ACTION_BAR_TAB)),
1388 E_INVALID_OPERATION, E_INVALID_OPERATION,
1389 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation."));
1391 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1392 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1393 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER))
1394 || (!(__formStyle & FORM_STYLE_TEXT_TAB) && (actionBars & FORM_ACTION_BAR_TAB)))
1397 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1398 return E_INVALID_OPERATION;
1401 result r = E_SUCCESS;
1403 Color bgColor(0, 0, 0, 0);
1404 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1408 r = SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
1412 r = SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
1414 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1417 if (actionBars & FORM_ACTION_BAR_HEADER)
1419 if (IsHeaderTranslucent() != translucent)
1423 __pHeader->SetTransparent(translucent);
1424 __transparentHeader = translucent;
1429 if (IsHeaderVisible())
1431 if (IsIndicatorTranslucent() != IsHeaderTranslucent())
1433 if (IsIndicatorTranslucent())
1435 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1436 SetHeaderBounds(bounds);
1440 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1441 SetHeaderBounds(bounds);
1444 else if (!IsIndicatorTranslucent() && !IsHeaderTranslucent())
1446 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1447 SetHeaderBounds(bounds);
1451 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1453 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1454 SetHeaderBounds(bounds);
1458 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1459 SetHeaderBounds(bounds);
1464 if (actionBars & FORM_ACTION_BAR_FOOTER)
1466 if (IsFooterTranslucent() != translucent)
1470 __pFooter->SetTransparent(translucent);
1471 __transparentFooter = translucent;
1476 AdjustClientBounds();
1482 _Form::SetActionBarsVisible(unsigned long actionBars, bool visible)
1486 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1487 (actionBars & FORM_ACTION_BAR_FOOTER)),
1488 E_INVALID_OPERATION,
1489 E_INVALID_OPERATION,
1490 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation. "));
1492 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1493 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1494 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER)))
1496 SysLog(NID_UI_CTRL, "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1497 return E_INVALID_OPERATION;
1500 if ((actionBars & FORM_ACTION_BAR_INDICATOR))
1502 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1504 if (!(__formStyle & FORM_STYLE_INDICATOR))
1507 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1508 return E_INVALID_OPERATION;
1514 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1515 return E_INVALID_OPERATION;
1519 FloatRectangle bounds = GetBoundsF();
1522 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1524 SetIndicatorShowState(visible);
1527 if (actionBars & FORM_ACTION_BAR_HEADER)
1529 if (IsHeaderVisible() != visible)
1533 if (visible == true)
1535 float adjHeight = 0.0f;
1536 if (IsIndicatorVisible())
1538 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
1539 adjHeight = indicatorBounds.height;
1541 if (IsIndicatorTranslucent())
1543 if (!IsHeaderTranslucent())
1549 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
1556 FloatRectangle bounds = __pHeader->GetBoundsF();
1557 bounds.y = adjHeight;
1559 SetHeaderBounds(bounds);
1561 __pHeader->SetVisibleState(visible);
1566 if (actionBars & FORM_ACTION_BAR_FOOTER)
1570 __pFooter->SetVisibleState(visible);
1574 AdjustClientBounds();
1580 _Form::SetTitleIcon(const Bitmap* pTitleBitmap)
1582 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1583 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1585 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1587 result r = __pHeader->SetTitleIcon(*pTitleBitmap);
1588 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1594 _Form::SetTitleText(const String& title, HorizontalAlignment alignment)
1596 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1597 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1599 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1601 result r = __pHeader->SetTitleText(title, alignment);
1602 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1608 _Form::SetSoftkeyEnabled(_Softkey softkey, bool enable)
1610 result r = E_SYSTEM;
1612 if (CheckSoftkey(softkey) == false)
1617 __enableSoftkey[softkey] = enable;
1625 _Form::SetOptionkeyActionId(int actionId)
1627 result r = E_SYSTEM;
1629 if (HasOptionkey() == false)
1634 __actionId[SOFTKEY_COUNT] = actionId;
1642 _Form::SetSoftkeyActionId(_Softkey softkey, int actionId)
1644 result r = E_SYSTEM;
1646 if (CheckSoftkey(softkey) == false)
1651 __actionId[softkey] = actionId;
1659 _Form::SetSoftkeyText(_Softkey softkey, const String& text)
1661 result r = E_SYSTEM;
1663 if (CheckSoftkey(softkey) == false)
1668 __softkeyText[softkey] = text;
1676 _Form::SetSoftkeyIcon(_Softkey softkey, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap)
1678 result r = E_SYSTEM;
1680 if (CheckSoftkey(softkey) == false)
1685 float softkey_icon_size = 0.0f;
1687 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_ICON_SIZE, GetOrientation(), softkey_icon_size);
1689 Bitmap* pClonedNormalBitmap = _BitmapImpl::CloneN(normalBitmap);
1691 if (pClonedNormalBitmap)
1693 if (__pSoftkeyNormalIcon[softkey] != null)
1695 delete __pSoftkeyNormalIcon[softkey];
1698 __pSoftkeyNormalIcon[softkey] = pClonedNormalBitmap;
1700 __pSoftkeyNormalIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1705 if (pPressedBitmap != null)
1707 Bitmap* pClonedPressedBitmap = _BitmapImpl::CloneN(*pPressedBitmap);
1709 if (pClonedPressedBitmap)
1711 if (__pSoftkeyPressedIcon[softkey] != null)
1713 delete __pSoftkeyPressedIcon[softkey];
1716 __pSoftkeyPressedIcon[softkey] = pClonedPressedBitmap;
1718 __pSoftkeyPressedIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1728 _Form::HasFooter(void) const
1741 _Form::HasHeader(void) const
1754 _Form::HasIndicator(void) const
1759 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1761 if ((GetFormStyle() & FORM_STYLE_INDICATOR) || (GetFormStyle() & FORM_STYLE_INDICATOR_AUTO_HIDE))
1772 if (GetFormStyle() & FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE)
1789 _Form::HasTitle(void) const
1791 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
1802 _Form::HasTab(void) const
1804 if ((__pTab && (__formStyle & FORM_STYLE_TEXT_TAB))
1805 || (__pTab && (__formStyle & FORM_STYLE_ICON_TAB)))
1816 _Form::IsIndicatorVisible(void) const
1818 _Control* pParent = GetParent();
1819 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1821 bool visible = true;
1823 if (pFrame && IsAttachedToMainTree())
1825 visible = __pIndicator->GetIndicatorShowState();
1826 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1830 visible = __indicatorShowState;
1837 _Form::IsHeaderVisible(void) const
1841 return __pHeader->IsVisible();
1850 _Form::IsFooterVisible(void) const
1854 return __pFooter->IsVisible();
1863 _Form::IsIndicatorTranslucent(void) const
1865 _Control* pParent = GetParent();
1866 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1868 _IndicatorOpacity opacity = _INDICATOR_OPACITY_UNKNOWN;
1870 bool transparent = false;
1872 if (pFrame && IsAttachedToMainTree())
1874 FrameShowMode mode = pFrame->GetShowMode();
1875 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
1877 if (mode == FRAME_SHOW_MODE_MINIMIZED)
1879 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
1885 opacity = __pIndicator->GetIndicatorOpacity();
1886 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1888 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
1892 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
1894 transparent = false;
1903 transparent = __transparentIndicator;
1910 _Form::IsIndicatorAutoHide(void) const
1912 _Control* pParent = GetParent();
1913 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1915 bool autohide = false;
1917 if (pFrame && IsAttachedToMainTree())
1919 autohide = __pIndicator->GetIndicatorAutoHide();
1926 _Form::IsHeaderTranslucent(void) const
1928 return __transparentHeader;
1932 _Form::IsFooterTranslucent(void) const
1934 return __transparentFooter;
1938 _Form::IsTabTranslucent(void) const
1940 return __transparentTab;
1944 _Form::HasOptionkey(void) const
1946 if (GetFormStyle() & FORM_STYLE_OPTIONKEY)
1957 _Form::HasSoftkey(_Softkey softkey) const
1959 unsigned long __formStyle = FORM_STYLE_NORMAL;
1961 if (softkey == _SOFTKEY_0)
1963 __formStyle = FORM_STYLE_SOFTKEY_0;
1965 else if (softkey == _SOFTKEY_1)
1967 __formStyle = FORM_STYLE_SOFTKEY_1;
1974 if (GetFormStyle() & __formStyle)
1985 _Form::IsSoftkeyEnabled(_Softkey softkey) const
1987 if (CheckSoftkey(softkey) == false)
1992 return __enableSoftkey[softkey];
1996 _Form::CheckSoftkey(_Softkey softkey) const
2000 if (HasSoftkey(softkey) == false)
2005 if (softkey >= _SOFTKEY_COUNT)
2014 _Form::IsOrientationRoot(void) const
2020 _Form::TranslateToClientAreaPosition(const Point& position) const
2022 Rectangle clientArea = GetClientBounds();
2023 return Point(position.x - clientArea.x, position.y - clientArea.y);
2027 _Form::TranslateToClientAreaPosition(const FloatPoint& position) const
2029 FloatRectangle clientArea = GetClientBoundsF();
2030 return FloatPoint(position.x - clientArea.x, position.y - clientArea.y);
2034 _Form::TranslateFromClientAreaPosition(const Point& clientPosition) const
2036 Rectangle clientArea = GetClientBounds();
2037 return Point(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2041 _Form::TranslateFromClientAreaPosition(const FloatPoint& clientPosition) const
2043 FloatRectangle clientArea = GetClientBoundsF();
2044 return FloatPoint(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2048 _Form::IsDeflated(void)
2061 _Form::DeflateClientRectHeight(int height)
2072 __deflatedHeight = _CoordinateSystemUtils::ConvertToFloat(height);
2074 AdjustClientBounds();
2078 float adjHeight = 0.0f;
2080 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2082 adjHeight = GetToolbarHeightF(false);
2085 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2086 GetClientBoundsF().width, GetToolbarHeightF(false));
2087 SetFooterBounds(bounds);
2094 _Form::DeflateClientRectHeight(float height)
2105 __deflatedHeight = height;
2107 AdjustClientBounds();
2111 float adjHeight = 0.0f;
2113 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2115 adjHeight = GetToolbarHeightF(false);
2118 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2119 GetClientBoundsF().width, GetToolbarHeightF(false));
2120 SetFooterBounds(bounds);
2127 _Form::CreateHeaderN(void)
2129 _Toolbar* __pHeader = _Toolbar::CreateToolbarN(true);
2130 SysTryReturn(NID_UI_CTRL, __pHeader, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2136 _Form::CreateFooterN(void)
2138 _Toolbar* __pFooter = _Toolbar::CreateToolbarN(false);
2139 SysTryReturn(NID_UI_CTRL, __pFooter, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2145 _Form::CreateTabN(void)
2147 _Tab* __pTab = _Tab::CreateTabN();
2148 SysTryReturn(NID_UI_CTRL, __pTab, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2154 _Form::CreateIndicatorN(void)
2156 _Indicator* pIndicator = _Indicator::CreateIndicator();
2157 SysTryReturn(NID_UI_CTRL, pIndicator, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2163 _Form::GetToolbarHeight(bool header) const
2165 int toolbarHeight = 0;
2167 if (header && (__formStyle & FORM_STYLE_HEADER))
2171 toolbarHeight = __pHeader->GetBounds().height;
2174 else if (header && (__formStyle & FORM_STYLE_TITLE))
2176 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarHeight);
2178 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2180 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarHeight);
2186 toolbarHeight = __pFooter->GetBounds().height;
2189 //GET_SHAPE_CONFIG(L"FOOTER_HEIGHT", GetOrientation(), toolbarHeight);
2192 return toolbarHeight;
2196 _Form::GetToolbarHeightF(bool header) const
2198 FloatDimension toolbarSize(0.0f, 0.0f);
2200 if (header && (__formStyle & FORM_STYLE_HEADER))
2204 toolbarSize.height = __pHeader->GetBoundsF().height;
2207 else if (header && (__formStyle & FORM_STYLE_TITLE))
2209 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarSize.height);
2211 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2213 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarSize.height);
2219 toolbarSize.height = __pFooter->GetBoundsF().height;
2223 toolbarSize = TranslateSize(toolbarSize);
2225 return toolbarSize.height;
2229 _Form::GetTabHeight(void) const
2233 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2235 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), height);
2242 _Form::GetTabHeightF(void) const
2244 FloatDimension tabSize(0.0f, 0.0f);
2246 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2248 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), tabSize.height);
2251 tabSize = TranslateSize(tabSize);
2253 return tabSize.height;
2257 _Form::RemoveHeader(void)
2259 result r = E_SUCCESS;
2262 if (__pHeader->GetParent())
2264 r = DetachSystemChild(*__pHeader);
2265 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2269 AdjustClientBounds();
2280 _Form::RemoveFooter(void)
2282 result r = E_SUCCESS;
2285 if (__pFooter->GetParent())
2287 r = DetachSystemChild(*__pFooter);
2288 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2292 AdjustClientBounds();
2303 _Form::RemoveTab(void)
2305 result r = E_SUCCESS;
2308 if (__pTab->GetParent())
2310 r = DetachSystemChild(*__pTab);
2311 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2315 AdjustClientBounds();
2326 _Form::RemoveIndicator(void)
2328 result r = E_SUCCESS;
2331 r = GetVisualElement()->DetachChild(*__pIndicator);
2332 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2333 __pIndicator = null;
2344 _Form::SetHeaderBounds(Rectangle& bounds)
2346 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2348 bool movable = __pHeader->IsMovable();
2349 bool resizable = __pHeader->IsResizable();
2351 __pHeader->SetMovable(true);
2352 __pHeader->SetResizable(true);
2354 result r = E_SUCCESS;
2355 r = __pHeader->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2356 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2358 __pHeader->SetMovable(movable);
2359 __pHeader->SetResizable(resizable);
2361 AdjustClientBounds();
2367 _Form::SetHeaderBounds(FloatRectangle& bounds)
2369 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2371 bool movable = __pHeader->IsMovable();
2372 bool resizable = __pHeader->IsResizable();
2374 __pHeader->SetMovable(true);
2375 __pHeader->SetResizable(true);
2377 result r = E_SUCCESS;
2378 r = __pHeader->SetBounds(bounds);
2379 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2381 __pHeader->SetMovable(movable);
2382 __pHeader->SetResizable(resizable);
2384 AdjustClientBounds();
2390 _Form::SetFooterBounds(Rectangle& bounds)
2392 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2394 bool movable = __pFooter->IsMovable();
2395 bool resizable = __pFooter->IsResizable();
2397 __pFooter->SetMovable(true);
2398 __pFooter->SetResizable(true);
2400 result r = E_SUCCESS;
2401 r = __pFooter->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2402 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2404 __pFooter->SetMovable(movable);
2405 __pFooter->SetResizable(resizable);
2407 AdjustClientBounds();
2413 _Form::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
2419 _Form::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
2421 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
2423 // _Toolbar* pToolbar = GetFooter();
2424 // if (pToolbar == null)
2429 // if (pToolbar->IsButtonSet(BACK_BUTTON))
2432 void* pData = GetUserData();
2435 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2436 pDataImpl->OnFormBackRequested(*this);
2441 // void* pData = GetUserData();
2444 // _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2445 // pDataImpl->OnFormBackButtonRequested(*this);
2452 if (keyInfo.GetKeyCode() == _KEY_CONTEXT_MENU || keyInfo.GetKeyCode() == _KEY_MENU)
2454 // _Toolbar* pToolbar = GetFooter();
2455 // if (pToolbar == null)
2461 void* pData = GetUserData();
2464 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2465 pDataImpl->OnFormMenuRequested(*this);
2476 _Form::SetFooterBounds(FloatRectangle& bounds)
2478 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2480 bool movable = __pFooter->IsMovable();
2481 bool resizable = __pFooter->IsResizable();
2483 __pFooter->SetMovable(true);
2484 __pFooter->SetResizable(true);
2486 result r = E_SUCCESS;
2487 r = __pFooter->SetBounds(bounds);
2488 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2490 __pFooter->SetMovable(movable);
2491 __pFooter->SetResizable(resizable);
2493 AdjustClientBounds();
2499 _Form::SetTabBounds(Rectangle& bounds)
2501 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2503 bool movable = __pTab->IsMovable();
2504 bool resizable = __pTab->IsResizable();
2506 __pTab->SetMovable(true);
2507 __pTab->SetResizable(true);
2509 result r = E_SUCCESS;
2510 r = __pTab->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2511 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2513 __pTab->SetMovable(movable);
2514 __pTab->SetResizable(resizable);
2516 AdjustClientBounds();
2522 _Form::SetTabBounds(FloatRectangle& bounds)
2524 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2526 bool movable = __pTab->IsMovable();
2527 bool resizable = __pTab->IsResizable();
2529 __pTab->SetMovable(true);
2530 __pTab->SetResizable(true);
2532 result r = E_SUCCESS;
2533 r = __pTab->SetBounds(bounds);
2534 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2536 __pTab->SetMovable(movable);
2537 __pTab->SetResizable(resizable);
2539 AdjustClientBounds();
2545 _Form::AddActionEventListener(_IActionEventListener& listener)
2547 if (__pActionEvent == null)
2549 __pActionEvent = _ActionEvent::CreateInstanceN(*this);
2551 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.")
2554 result r = __pActionEvent->AddListener(listener);
2555 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2561 _Form::AddOptionkeyActionListener(_IActionEventListener& listener)
2563 if (HasOptionkey() == false)
2570 _Form::AddSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2572 if (CheckSoftkey(softkey) == false)
2579 _Form::RemoveActionEventListener(_IActionEventListener& listener)
2581 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] This instance isn't constructed.")
2582 // Todo : check fail case of RemoveListener
2583 result r = __pActionEvent->RemoveListener(listener);
2584 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2590 _Form::RemoveOptionkeyActionListener(_IActionEventListener& listener)
2592 if (HasOptionkey() == false)
2599 _Form::RemoveSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2601 if (CheckSoftkey(softkey) == false)
2608 _Form::OnActionPerformed(const _Control& source, int actionId)
2612 case ID_BACK_BUTTON:
2613 if (!__keypadShowstate && !__clipboardShowstate)
2615 if (__pFormBackEventListener)
2617 __pFormBackEventListener->OnFormBackRequested(*this);
2622 if (__keypadShowstate)
2624 if (!__alreadyStopKeySent)
2626 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_PRESSED, _KEY_BACK);
2627 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_RELEASED, _KEY_BACK);
2628 __alreadyStopKeySent = true;
2632 if (__clipboardShowstate)
2634 _SystemUtilImpl::SendKeyStopMessage();
2638 case ID_MENU_BUTTON :
2639 if (__pFormMenuEventListener)
2641 __pFormMenuEventListener->OnFormMenuRequested(*this);
2651 _Form::OnChildVisibleStateChanged(const _Control& child)
2653 if (IsHeaderVisible())
2655 float adjHeight = 0.0f;
2656 if (IsIndicatorVisible())
2658 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
2659 adjHeight = indicatorBounds.height;
2661 if (IsIndicatorTranslucent())
2663 if (!IsHeaderTranslucent())
2669 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
2675 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
2683 FloatRectangle bounds = __pHeader->GetBoundsF();
2684 bounds.y = adjHeight;
2685 SetHeaderBounds(bounds);
2688 AdjustClientBounds();
2692 _Form::GetIndicatorBounds(void) const
2694 _Control* pParent = GetParent();
2695 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2699 FrameShowMode mode = pFrame->GetShowMode();
2700 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2702 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2704 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2706 return Rectangle(0, 0, 0, 0);
2712 int indicatorwidth = GetClientBounds().width;
2713 int indicatorheight = 0;
2715 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2717 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2721 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2723 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2727 Rectangle rect (0, 0, indicatorwidth, indicatorheight);
2729 SetLastResult(E_SUCCESS);
2735 _Form::GetIndicatorBoundsF(void) const
2737 _Control* pParent = GetParent();
2738 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2742 FrameShowMode mode = pFrame->GetShowMode();
2743 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2745 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2747 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2749 return FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f);
2755 float indicatorwidth = GetClientBoundsF().width;
2756 float indicatorheight = 0.0f;
2758 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2760 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2764 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
2766 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2770 FloatRectangle rect (0.0f, 0.0f, indicatorwidth, indicatorheight);
2772 SetLastResult(E_SUCCESS);
2778 _Form::SetHeader(_Toolbar* pToolbar)
2780 __pHeader = pToolbar;
2784 _Form::SetFooter(_Toolbar* pToolbar)
2786 __pFooter = pToolbar;
2790 _Form::SetTab(_Tab* pTab)
2796 _Form::SetTabStyle(int style)
2798 __pTab->SetStyle(style);
2802 _Form::SetIndicatorShowState(bool state)
2804 result r = E_SUCCESS;
2806 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
2807 SysTryReturn(NID_UI_CTRL, pEcoreEvas, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas");
2809 _Control* pParent = GetParent();
2812 pParent = const_cast<_Control*>(pEcoreEvas->GetFrame());
2814 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2816 if (pFrame && IsAttachedToMainTree())
2818 FrameShowMode mode = pFrame->GetShowMode();
2819 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2821 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2823 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2825 r = __pIndicator->SetIndicatorShowState(state);
2826 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2831 r = __pIndicator->SetIndicatorShowState(false);
2835 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2837 r = __pIndicator->SetIndicatorShowState(state);
2838 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2841 else if (!pFrame && IsAttachedToMainTree())
2843 __pIndicator->SetShowState(false);
2846 __indicatorShowState = state;
2852 _Form::SetIndicatorAutoHide(bool portrait, bool landscape)
2854 result r = E_SUCCESS;
2856 _Control* pParent = GetParent();
2857 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2859 if (pFrame && IsAttachedToMainTree())
2861 FrameShowMode mode = pFrame->GetShowMode();
2862 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2864 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2866 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2868 __pIndicator->SetIndicatorAutoHide(portrait, landscape);
2869 r = GetLastResult();
2870 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
2874 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2876 __pIndicator->SetIndicatorAutoHide(portrait, landscape);
2877 r = GetLastResult();
2878 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
2884 _Form::SetIndicatorOpacity(_IndicatorOpacity opacity)
2886 result r = E_SUCCESS;
2888 _Control* pParent = GetParent();
2889 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2891 if (pFrame && IsAttachedToMainTree())
2893 FrameShowMode mode = pFrame->GetShowMode();
2895 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2897 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2899 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2901 r = __pIndicator->SetIndicatorOpacity(opacity);
2902 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2906 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2908 r = __pIndicator->SetIndicatorOpacity(opacity);
2909 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2913 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
2915 __transparentIndicator = true;
2917 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
2919 __transparentIndicator = false;
2926 _Form::AddIndicatorObject(void)
2928 result r = E_SUCCESS;
2932 r = __pIndicator->AddIndicatorObject(this, GetRootWindow());
2939 _Form::DeleteIndicatorObject(void)
2941 result r = E_SUCCESS;
2944 r = __pIndicator->DeleteIndicatorObject();
2951 _Form::SetKeypadShowState(bool state)
2953 __keypadShowstate = state;
2957 __alreadyStopKeySent = false;
2960 if (__clipboardShowstate)
2967 _Form::SetClipboardShowState(bool state)
2969 __clipboardShowstate = state;
2971 if (__keypadShowstate)
2978 _Form::AttachedToMainTree(void)
2980 _Frame* pFrame = dynamic_cast<_Frame*>(GetParent());
2983 FrameShowMode mode = pFrame->GetShowMode();
2984 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2986 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2988 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2990 SetBounds(FloatRectangle(0.0f, 0.0f, pFrame->GetBoundsF().width, pFrame->GetBoundsF().height));
2995 SetBounds(FloatRectangle(0.0f, 0.0f, pFrame->GetBoundsF().width, pFrame->GetBoundsF().height));
3000 result r = E_SUCCESS;
3002 if (FORM_STYLE_INDICATOR & GetFormStyle())
3004 __pIndicator->OnAttachedToMainTree();
3005 AddIndicatorObject();
3007 if (__transparentIndicator != IsIndicatorTranslucent())
3009 if (__transparentIndicator == true)
3011 SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
3015 SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
3019 if (__indicatorShowState != IsIndicatorVisible())
3021 SetIndicatorShowState(__indicatorShowState);
3024 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3026 SetIndicatorAutoHide(false, true);
3030 SetIndicatorAutoHide(false, false);
3032 r = GetLastResult();
3033 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3037 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3039 AddIndicatorObject();
3040 SetIndicatorShowState(__indicatorShowState);
3041 SetIndicatorAutoHide(true, true);
3045 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3047 AddIndicatorObject();
3048 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3050 SetIndicatorShowState(__indicatorShowState);
3054 SetIndicatorShowState(false);
3056 SetIndicatorAutoHide(true, false);
3059 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3061 AddIndicatorObject();
3062 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3064 SetIndicatorShowState(false);
3068 SetIndicatorShowState(__indicatorShowState);
3070 SetIndicatorAutoHide(false, true);
3074 __pIndicator->SetWindow(GetRootWindow());
3075 r = SetIndicatorShowState(false);
3076 SetIndicatorAutoHide(false, false);
3077 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3082 AdjustClientBounds();
3088 _Form::DetachingFromMainTree(void)
3090 result r = E_SUCCESS;
3091 r = DeleteIndicatorObject();
3096 _Form::AdjustClientBounds(void)
3098 result r = E_SUCCESS;
3100 FloatDimension size = GetSizeF();
3101 FloatRectangle clientBounds(0.0f, 0.0f, size.width, size.height);
3105 clientBounds.height -= __deflatedHeight;
3108 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3110 _Control* pParent = GetParent();
3111 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3114 FrameShowMode mode = pFrame->GetShowMode();
3116 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3118 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3120 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3122 if (FORM_STYLE_INDICATOR & __formStyle)
3124 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3126 clientBounds.y += indicatorBounds.height;
3127 clientBounds.height -= indicatorBounds.height;
3135 if (FORM_STYLE_INDICATOR & __formStyle)
3137 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3139 clientBounds.y += indicatorBounds.height;
3140 clientBounds.height -= indicatorBounds.height;
3147 if (FORM_STYLE_INDICATOR & __formStyle)
3149 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3151 clientBounds.y += indicatorBounds.height;
3152 clientBounds.height -= indicatorBounds.height;
3159 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3161 clientBounds.y += GetToolbarHeightF(true);
3162 clientBounds.height -= GetToolbarHeightF(true);
3168 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3170 clientBounds.y += GetTabHeightF();
3171 clientBounds.height -= GetTabHeightF();
3177 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3178 || FORM_STYLE_OPTIONKEY & __formStyle)
3180 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3182 clientBounds.height -= GetToolbarHeightF(false);
3187 SetClientBounds(clientBounds);
3193 _Form::OnBoundsChanged(void)
3195 FloatRectangle toolbarBounds;
3196 FloatRectangle indicatorFloatBounds(0.0f, 0.0f, 0.0f, 0.0f);
3198 float indicatorheight = 0.0f;
3200 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3202 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3206 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3208 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3214 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, GetClientBoundsF().width, indicatorheight));
3216 AdjustClientBounds();
3220 if (IsIndicatorVisible())
3222 indicatorFloatBounds = GetIndicatorBoundsF();
3223 if (IsIndicatorTranslucent())
3225 if (!IsHeaderTranslucent())
3227 indicatorFloatBounds.height = 0.0f;
3231 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3233 indicatorFloatBounds.height = 0.0f;
3239 toolbarBounds = GetHeader()->GetBoundsF();
3240 toolbarBounds.width = GetSizeF().width;
3242 FloatRectangle bounds(toolbarBounds.x, indicatorFloatBounds.height, toolbarBounds.width, toolbarBounds.height);
3243 SetHeaderBounds(bounds);
3248 toolbarBounds = GetFooter()->GetBoundsF();
3249 toolbarBounds.width = GetSizeF().width;
3250 toolbarBounds.y = GetSizeF().height - toolbarBounds.height;
3251 SetFooterBounds(toolbarBounds);
3256 toolbarBounds = GetTab()->GetBoundsF();
3257 toolbarBounds.width = GetSizeF().width;
3258 SetTabBounds(toolbarBounds);
3261 AdjustClientBounds();
3265 _Form::TranslateSize(FloatDimension size ) const
3267 FloatDimension returnSize(0.0f, 0.0f);
3268 returnSize = CoordinateSystem::AlignToDevice(size);
3274 _Form::SetNotificationTrayOpenEnabled(bool enable)
3276 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.");
3280 __pIndicator->SetNotificationTrayOpenEnabled(enable);
3286 _Form::IsNotificationTrayOpenEnabled(void) const
3288 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.");
3292 __pIndicator->IsNotificationTrayOpenEnabled();
3298 _Form::GetFocusList(void) const
3300 if(!__pFocusControlList)
3302 __pFocusControlList.reset(GetFocusListN());
3303 __pFocusControlList->InsertAt(const_cast<_Form*>(this), 0);
3305 return __pFocusControlList.get();
3309 _Form::SetFocusControl(const _Control* pControl)
3311 __pFocusControl = const_cast<_Control*>(pControl);
3315 _Form::GetFocusControl(void) const
3317 return __pFocusControl;
3321 _Form::ResetFocusList(void)
3323 if(__pFocusControlList)
3325 __pFocusControlList.reset();
3330 _Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
3332 clientBounds.width = size.width;
3333 clientBounds.height = size.height;
3337 clientBounds.height -= __deflatedHeight;
3340 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3342 _Control* pParent = GetParent();
3343 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3346 FrameShowMode mode = pFrame->GetShowMode();
3348 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3350 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3352 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3354 if (FORM_STYLE_INDICATOR & __formStyle)
3356 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3358 clientBounds.y += indicatorBounds.height;
3359 clientBounds.height -= indicatorBounds.height;
3367 if (FORM_STYLE_INDICATOR & __formStyle)
3369 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3371 clientBounds.y += indicatorBounds.height;
3372 clientBounds.height -= indicatorBounds.height;
3379 if (FORM_STYLE_INDICATOR & __formStyle)
3381 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3383 clientBounds.y += indicatorBounds.height;
3384 clientBounds.height -= indicatorBounds.height;
3391 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3393 clientBounds.y += GetToolbarHeightF(true);
3394 clientBounds.height -= GetToolbarHeightF(true);
3400 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3402 clientBounds.y += GetTabHeightF();
3403 clientBounds.height -= GetTabHeightF();
3409 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3410 || FORM_STYLE_OPTIONKEY & __formStyle)
3412 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3414 clientBounds.height -= GetToolbarHeightF(false);
3421 _Form::OnVisibleStateChanged(void)
3423 if (GetVisibleState())
3425 if (FORM_STYLE_INDICATOR & GetFormStyle())
3427 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3429 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3431 SetIndicatorShowState(true);
3432 SetIndicatorAutoHide(false, true);
3436 SetIndicatorShowState(false);
3437 SetIndicatorAutoHide(false, false);
3443 if (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3445 SetIndicatorAutoHide(false, true);
3449 SetIndicatorAutoHide(false, false);
3451 SetIndicatorShowState(__indicatorShowState);
3456 if ((FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle()) && (FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle()))
3458 SetIndicatorShowState(__indicatorShowState);
3459 SetIndicatorAutoHide(true, true);
3463 if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3465 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3467 SetIndicatorShowState(true);
3471 SetIndicatorShowState(false);
3473 SetIndicatorAutoHide(true, false);
3476 else if(FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE & GetFormStyle())
3478 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3480 SetIndicatorShowState(false);
3484 SetIndicatorShowState(__indicatorShowState);
3486 SetIndicatorAutoHide(false, true);
3490 SetIndicatorShowState(false);
3491 SetIndicatorAutoHide(false, false);
3495 ActivateIndicator();
3499 DeactivateIndicator();
3501 AdjustClientBounds();
3505 _Form::SetFormOrientationStatusEventListener(_IFormOrientationStatusEventListener* pFormOrientationstatusEventListener)
3507 __pFormOrientationstatusEventListener = pFormOrientationstatusEventListener;
3510 Tizen::Ui::OrientationStatus
3511 _Form::GetFormOrientationStatus(void) const
3513 if (__pFormOrientationstatusEventListener)
3515 return __pFormOrientationstatusEventListener->OnFormOrientationStatusRequested();
3518 return ORIENTATION_STATUS_PORTRAIT;
3522 _Form::GetFocusTraversalControl(void) const
3524 return __pFocusTraversalControl;
3527 _Form::SetFocusTraversalControl(_Control* pControl)
3529 __pFocusTraversalControl = pControl;
3533 _Form::OnFormActivated(void)
3535 AddIndicatorObject();
3539 _Form::ActivateIndicator(void)
3543 __pIndicator->Activate();
3550 _Form::DeactivateIndicator(void)
3554 __pIndicator->Deactivate();
3561 }}} // Tizen::Ui::Controls