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 , __ppOverlayerRegionImplArray(null)
83 , __softkeyCount(SOFTKEY_COUNT + 1)
84 , __updatedSoftkeyCount(0)
85 , __keypadShowstate(false)
86 , __clipboardShowstate(false)
87 , __pFormOrientationstatusEventListener(null)
88 , __pFocusControl(null)
89 , __pFocusTraversalControl(null)
92 result r = GET_COLOR_CONFIG(FORM::BG_NORMAL,color);
95 SetBackgroundColor(color);
99 SetBackgroundColor(0xff000000);
102 _FormPresenter* pPresenter = new (std::nothrow) _FormPresenter(*this);
103 SysTryReturnVoidResult(NID_UI_CTRL, pPresenter, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
105 SetPresenter(*pPresenter);
107 for (int i = 0; i < __softkeyCount; i++)
109 __actionId[_SOFTKEY_0 + i] = 0;
110 __softkeyText[_SOFTKEY_0 + i] = String();
111 __showSoftkey[_SOFTKEY_0 + i] = false;
112 __enableSoftkey[_SOFTKEY_0 + i] = false;
115 for (int i = 0; i < SOFTKEY_COUNT + 1; i++)
117 __pSoftkeyNormalBitmap[_SOFTKEY_0 + i] = null;
118 __pSoftkeyDisabledBitmap[_SOFTKEY_0 + i] = null;
119 __pSoftkeyPressedBitmap[_SOFTKEY_0 + i] = null;
120 __pSoftkeyHighlightedBitmap[_SOFTKEY_0 + i] = null;
122 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0 + i] = null;
123 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0 + i] = null;
125 __pTextSoftkeyNormalBitmap[_SOFTKEY_0 + i] = null;
126 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0 + i] = null;
127 __pTextSoftkeyPressedBitmap[_SOFTKEY_0 + i] = null;
128 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0 + i] = null;
130 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0 + i] = null;
131 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0 + i] = null;
133 __pSoftkeyNormalIcon[_SOFTKEY_0 + i] = null;
134 __pSoftkeyDisabledIcon[_SOFTKEY_0 + i] = null;
135 __pSoftkeyPressedIcon[_SOFTKEY_0 + i] = null;
136 __pSoftkeyHighlightedIcon[_SOFTKEY_0 + i] = null;
139 //create data binding context
140 _DataBindingContext* pContext = new (std::nothrow) _DataBindingContext(*this);
142 SysTryCatch(NID_UI_CTRL, pContext && GetLastResult() == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
143 SetDataBindingContext(pContext);
146 GetAccessibilityContainer()->Activate(true);
155 delete __pFormPresenter;
156 __pFormPresenter = null;
160 delete __pActionEvent;
161 __pActionEvent = null;
164 for (int i = 0; i < SOFTKEY_COUNT+1 ; i++)
166 if (__pSoftkeyNormalBitmap[i])
168 delete __pSoftkeyNormalBitmap[i];
169 __pSoftkeyNormalBitmap[i] = null;
172 if (__pSoftkeyDisabledBitmap[i])
174 delete __pSoftkeyDisabledBitmap[i];
175 __pSoftkeyDisabledBitmap[i] = null;
178 if (__pSoftkeyPressedBitmap[i])
180 delete __pSoftkeyPressedBitmap[i];
181 __pSoftkeyPressedBitmap[i] = null;
184 if (__pSoftkeyHighlightedBitmap[i])
186 delete __pSoftkeyHighlightedBitmap[i];
187 __pSoftkeyHighlightedBitmap[i] = null;
190 if (__pSoftkeyNormalEffectBitmap[i])
192 delete __pSoftkeyNormalEffectBitmap[i];
193 __pSoftkeyNormalEffectBitmap[i] = null;
196 if (__pSoftkeyPressedEffectBitmap[i])
198 delete __pSoftkeyPressedEffectBitmap[i];
199 __pSoftkeyPressedEffectBitmap[i] = null;
202 if (__pTextSoftkeyNormalBitmap[i])
204 delete __pTextSoftkeyNormalBitmap[i];
205 __pTextSoftkeyNormalBitmap[i] = null;
208 if (__pTextSoftkeyDisabledBitmap[i])
210 delete __pTextSoftkeyDisabledBitmap[i];
211 __pTextSoftkeyDisabledBitmap[i] = null;
214 if (__pTextSoftkeyPressedBitmap[i])
216 delete __pTextSoftkeyPressedBitmap[i];
217 __pTextSoftkeyPressedBitmap[i] = null;
220 if (__pTextSoftkeyHighlightedBitmap[i])
222 delete __pTextSoftkeyHighlightedBitmap[i];
223 __pTextSoftkeyHighlightedBitmap[i] = null;
226 if (__pTextSoftkeyNormalEffectBitmap[i])
228 delete __pTextSoftkeyNormalEffectBitmap[i];
229 __pTextSoftkeyNormalEffectBitmap[i] = null;
232 if (__pTextSoftkeyPressedEffectBitmap[i])
234 delete __pTextSoftkeyPressedEffectBitmap[i];
235 __pTextSoftkeyPressedEffectBitmap[i] = null;
238 if (__pSoftkeyNormalIcon[i])
240 delete __pSoftkeyNormalIcon[i];
241 __pSoftkeyNormalIcon[i] = null;
244 if (__pSoftkeyDisabledIcon[i])
246 delete __pSoftkeyDisabledIcon[i];
247 __pSoftkeyDisabledIcon[i] = null;
250 if (__pSoftkeyPressedIcon[i])
252 delete __pSoftkeyPressedIcon[i];
253 __pSoftkeyPressedIcon[i] = null;
256 if (__pSoftkeyHighlightedIcon[i])
258 delete __pSoftkeyHighlightedIcon[i];
259 __pSoftkeyHighlightedIcon[i] = null;
263 if (__ppOverlayerRegionImplArray != null)
265 int maxCount = OverlayRegion::GetMaxCount();
267 for (int i = 0; i < maxCount; i++)
269 if (__ppOverlayerRegionImplArray[i])
271 OverlayRegion* _pOverlayRegion = __ppOverlayerRegionImplArray[i]->GetOverlayRegion();
272 delete _pOverlayRegion;
276 delete[] __ppOverlayerRegionImplArray;
281 __pIndicator->Destroy();
289 _Form::CreateFormN(void)
293 pForm = new (std::nothrow) _Form;
294 SysTryReturn(NID_UI_CTRL, pForm, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
295 SysTryCatch(NID_UI_CTRL, GetLastResult() == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] A system error occurred.");
297 pForm->AcquireHandle();
299 SetLastResult(E_SUCCESS);
310 _Form::SetPresenter(const _FormPresenter& formPresenter)
312 __pFormPresenter = const_cast <_FormPresenter*>(&formPresenter);
320 if (__pFormPresenter)
322 __pFormPresenter->Draw();
325 if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
329 UpdateSoftkey(__formStyle);
332 if(unlikely((_AccessibilityManager::IsActivated())))
334 _AccessibilityManager::GetInstance()->RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM);
340 _Form::SetFormBackEventListener(_IFormBackEventListener* pFormBackEventListener)
342 SysTryReturnVoidResult(NID_UI_CTRL, __pFooter || __pHeader, E_INVALID_STATE, "[E_INVALID_STATE] Footer and Header aren't constructed.");
343 __pFormBackEventListener = pFormBackEventListener;
346 __pFooter->SetBackEventListener(*this, ID_BACK_BUTTON);
350 __pHeader->SetBackEventListener(*this, ID_BACK_BUTTON);
353 SetLastResult(E_SUCCESS);
357 _Form::SetFormMenuEventListener(_IFormMenuEventListener* pFormMenuEventListener)
359 SysTryReturnVoidResult(NID_UI_CTRL, __pFooter, E_INVALID_STATE, "[E_INVALID_STATE] Footer and Header aren't constructed.");
360 __pFormMenuEventListener = pFormMenuEventListener;
363 __pFooter->SetOptionEventListener(*this, ID_OPTION_BUTTON);
366 SetLastResult(E_SUCCESS);
370 _Form::GetFormStyle(void) const
376 _Form::GetFooter(void) const
382 _Form::GetHeader(void) const
388 _Form::GetTab(void) const
394 _Form::GetIndicator(void) const
400 _Form::GetTitleText(void) const
402 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
404 return __pHeader->GetTitleText();
413 _Form::GetTitleTextHorizontalAlignment(void) const
415 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
417 return __pHeader->GetTitleTextHorizontalAlignment();
421 SysLog(NID_UI_CTRL, "[E_SYSTEM] The title is not valid.");
422 return ALIGNMENT_LEFT;
427 _Form::GetOverlayRegionN(const Rectangle& rect, OverlayRegionType regionType)
429 _OverlayRegionImpl* pOverlayRegionImpl = null;
430 OverlayRegion* pOverlayRegion = null;
431 Color bgColor(0, 0, 0, 0);
434 _OverlayPanel* pOverlayPanel = null;
436 bool modified = false;
440 maxCount = OverlayRegion::GetMaxCount();
441 SysTryReturn(NID_UI_CTRL, maxCount > 0, null, E_SYSTEM, "[E_SYSTEM] maxCount [%d] is invalid", maxCount);
443 if (__ppOverlayerRegionImplArray == null)
445 __ppOverlayerRegionImplArray = new (std::nothrow) _OverlayRegionImpl*[maxCount];
446 SysTryReturn(NID_UI_CTRL, __ppOverlayerRegionImplArray != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Can not allocate memory for the OverlayRegionList.");
448 for (int i = 0; i < maxCount; i++)
450 __ppOverlayerRegionImplArray[i] = null;
452 __overlayRegionCount = 0;
455 Rectangle clientRect(GetClientBounds());
456 Point overlayPosition(clientRect.x + rect.x, clientRect.y + rect.y);
457 Rectangle overlayRect(overlayPosition.x, overlayPosition.y, rect.width, rect.height);
459 Rectangle userPhyRect = _CoordinateSystemUtils::Transform(rect);
460 Rectangle devBounds = _CoordinateSystemUtils::Transform(overlayRect);
462 SysLog(NID_UI_CTRL, "rect [%d, %d, %d, %d] ", rect.x, rect.y, rect.width, rect.height);
463 SysLog(NID_UI_CTRL, "userPhyRect [%d, %d, %d, %d] ", userPhyRect.x, userPhyRect.y, userPhyRect.width, userPhyRect.height);
464 SysLog(NID_UI_CTRL, "overlayRect [%d, %d, %d, %d]", overlayPosition.x, overlayPosition.y, rect.width, rect.height);
465 SysLog(NID_UI_CTRL, "devBounds [%d, %d, %d, %d]", devBounds.x, devBounds.y, devBounds.width, devBounds.height);
467 // 1. width , height unit check
468 if (_OverlayRegionImpl::IsValidOverlayRect(overlayRect, devBounds, _CoordinateSystemUtils::Transform(clientRect), modified) != E_SUCCESS)
470 SysTryReturn(NID_UI_CTRL, 0, null, E_INVALID_ARG, "[E_INVALID_ARG] IsValidOverlayRect is failed!");
475 SysLog(NID_UI_CTRL, "devBounds modified [%d, %d, %d, %d]", devBounds.x, devBounds.y, devBounds.width, devBounds.height);
478 // 2. check for using OverlayPanel simutaneously
479 for (idx = 0 ; idx < GetChildCount() ; idx++)
481 pOverlayPanel = dynamic_cast <_OverlayPanel*>(GetChild(idx));
482 SysTryReturn(NID_UI_CTRL, pOverlayPanel == null, null, E_SYSTEM, "[E_SYSTEM] Using OverlayRegion mixed with OverlayPanel is not supported!");
485 // 3. find the empty slot idx
486 for (idx = 0; idx < maxCount; idx++)
488 if (__ppOverlayerRegionImplArray[idx] == null)
494 SysTryReturn(NID_UI_CTRL, idx < maxCount, null, E_SYSTEM, "[E_SYSTEM] already used permitted maximum number of OverlayRegion!");
496 // 4. make OverlayRegion object
497 pOverlayRegionImpl = new (std::nothrow) _OverlayRegionImpl();
498 SysTryReturn(NID_UI_CTRL, pOverlayRegionImpl != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] failed to make the OverlayRegionImpl instance!");
500 FloatRectangle overlayRectF = _CoordinateSystemUtils::InverseTransform(_CoordinateSystemUtils::ConvertToFloat(devBounds));
501 r = pOverlayRegionImpl->Construct(this, regionType, _CoordinateSystemUtils::ConvertToFloat(rect), overlayRectF, devBounds);
504 delete pOverlayRegionImpl;
505 SysTryReturn(NID_UI_CTRL, 0, null, r, "[%s] Propagating.", GetErrorMessage(r));
508 pOverlayRegion = pOverlayRegionImpl->CreateOverlayRegionN();
509 if (pOverlayRegion == null)
511 delete pOverlayRegionImpl;
512 SysTryReturn(NID_UI_CTRL, 0, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
515 __ppOverlayerRegionImplArray[idx] = pOverlayRegionImpl;
516 pOverlayRegionImpl->SetFormArrayIndex(idx);
518 __overlayRegionCount++;
520 SetLastResult(E_SUCCESS);
522 return pOverlayRegion;
526 _Form::GetOverlayRegionN(const FloatRectangle& rect, OverlayRegionType regionType)
528 _OverlayRegionImpl* pOverlayRegionImpl = null;
529 OverlayRegion* pOverlayRegion = null;
530 Color bgColor(0, 0, 0, 0);
533 _OverlayPanel* pOverlayPanel = null;
535 bool modified = false;
539 maxCount = OverlayRegion::GetMaxCount();
540 SysTryReturn(NID_UI_CTRL, maxCount > 0, null, E_SYSTEM, "[E_SYSTEM] maxCount [%d] is invalid", maxCount);
542 if (__ppOverlayerRegionImplArray == null)
544 __ppOverlayerRegionImplArray = new (std::nothrow) _OverlayRegionImpl*[maxCount];
545 SysTryReturn(NID_UI_CTRL, __ppOverlayerRegionImplArray != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Can not allocate memory for the OverlayRegionList.");
547 for (int i = 0; i < maxCount; i++)
549 __ppOverlayerRegionImplArray[i] = null;
551 __overlayRegionCount = 0;
554 FloatRectangle clientRectF(GetClientBoundsF());
555 FloatPoint overlayPositionF(clientRectF.x + rect.x, clientRectF.y + rect.y);
556 FloatRectangle overlayRectF(overlayPositionF.x, overlayPositionF.y, rect.width, rect.height);
558 FloatRectangle devPhyBoundsF = _CoordinateSystemUtils::Transform(overlayRectF);
559 Rectangle devPhyBounds = _CoordinateSystemUtils::ConvertToInteger(devPhyBoundsF);
562 SysLog(NID_UI_CTRL, "user rect [%.3f, %.3f, %.3f, %.3f] ", rect.x, rect.y, rect.width, rect.height);
563 //adjustedlogical user float
564 SysLog(NID_UI_CTRL, "overlayRectF [%.3f, %.3f, %.3f, %.3f]", overlayRectF.x, overlayRectF.y, overlayRectF.width, overlayRectF.height);
565 //adjusted logical -> adjusted physical float
566 SysLog(NID_UI_CTRL, "devPhyBoundsF [%.3f, %.3f, %.3f, %.3f]", devPhyBoundsF.x, devPhyBoundsF.y, devPhyBoundsF.width, devPhyBoundsF.height);
567 //adjusted physical float -> physical integer
568 SysLog(NID_UI_CTRL, "devPhyBounds [%d, %.3d, %.3d, %.3d]", devPhyBounds.x, devPhyBounds.y, devPhyBounds.width, devPhyBounds.height);
570 Rectangle overlayLgcRect = _CoordinateSystemUtils::ConvertToInteger(overlayRectF);
571 Rectangle basePhyBounds = _CoordinateSystemUtils::ConvertToInteger(_CoordinateSystemUtils::Transform(clientRectF));
573 // 1. width , height unit check
574 if (_OverlayRegionImpl::IsValidOverlayRect(overlayLgcRect, devPhyBounds, basePhyBounds, modified) != E_SUCCESS)
576 SysTryReturn(NID_UI_CTRL, 0, null, E_INVALID_ARG, "[E_INVALID_ARG] IsValidOverlayRect is failed!");
581 SysLog(NID_UI_CTRL, "devBounds modified [%d, %d, %d, %d]", devPhyBounds.x, devPhyBounds.y, devPhyBounds.width, devPhyBounds.height);
584 // 2. check for using OverlayPanel simutaneously
585 for (idx = 0 ; idx < GetChildCount() ; idx++)
587 pOverlayPanel = dynamic_cast <_OverlayPanel*>(GetChild(idx));
588 SysTryReturn(NID_UI_CTRL, pOverlayPanel == null, null, E_SYSTEM, "[E_SYSTEM] Using OverlayRegion mixed with OverlayPanel is not supported!");
591 // 3. find the empty slot idx
592 for (idx = 0; idx < maxCount; idx++)
594 if (__ppOverlayerRegionImplArray[idx] == null)
600 SysTryReturn(NID_UI_CTRL, idx < maxCount, null, E_SYSTEM, "[E_SYSTEM] already used permitted maximum number of OverlayRegion!");
602 // 4. make OverlayRegion object
603 pOverlayRegionImpl = new (std::nothrow) _OverlayRegionImpl();
604 SysTryReturn(NID_UI_CTRL, pOverlayRegionImpl != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] failed to make the OverlayRegionImpl instance!");
606 overlayRectF = _CoordinateSystemUtils::InverseTransform(_CoordinateSystemUtils::ConvertToFloat(devPhyBounds));
607 r = pOverlayRegionImpl->Construct(this, regionType, rect, overlayRectF, devPhyBounds);
610 delete pOverlayRegionImpl;
611 SysTryReturn(NID_UI_CTRL, 0, null, r, "[%s] Propagating.", GetErrorMessage(r));
614 pOverlayRegion = pOverlayRegionImpl->CreateOverlayRegionN();
615 if (pOverlayRegion == null)
617 delete pOverlayRegionImpl;
618 SysTryReturn(NID_UI_CTRL, 0, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
621 __ppOverlayerRegionImplArray[idx] = pOverlayRegionImpl;
622 pOverlayRegionImpl->SetFormArrayIndex(idx);
624 __overlayRegionCount++;
626 SetLastResult(E_SUCCESS);
628 return pOverlayRegion;
632 _Form::GetOverlayRegionCount(void) const
634 return __overlayRegionCount;
638 _Form::MoveOverlayRegion(bool top)
640 if (__ppOverlayerRegionImplArray == null)
644 for (int i = 0; i < OverlayRegion::GetMaxCount(); i++)
646 if (__ppOverlayerRegionImplArray[i] != null)
650 __ppOverlayerRegionImplArray[i]->GoForeground();
654 __ppOverlayerRegionImplArray[i]->GoBackground();
661 _Form::CreateSoftkey(unsigned long formStyle)
663 Bitmap* pTempBitmap = null;
664 FloatDimension softkeyDimension(0.0f, 0.0f);
665 FloatDimension softkeyDisplayDimension(0.0f, 0.0f);
666 FloatDimension optionkeyDimension(0.0f, 0.0f);
667 float fontSize = 0.0f;
668 float multilineFontSize = 0.0f;
669 float leftSoftkeyLeftMargin = 0.0f;
670 float rightSoftkeyLeftMargin = 0.0f;
671 float softkeyTopMargin = 0.0f;
673 Color softkeyNormalBackgroundColor;
674 Color softkeyDisabledBackgroundColor;
675 Color softkeyPressedBackgroundColor;
676 Color softkeyHighlightedBackgroundColor;
678 Color softkeyNormalTextColor;
679 Color softkeyDisabledTextColor;
680 Color softkeyPressedTextColor;
681 Color softkeyHighlightedTextColor;
683 Color softkeyNormalIconColor;
684 Color softkeyDisabledIconColor;
685 Color softkeyPressedIconColor;
686 Color softkeyHighlightedIconColor;
688 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_RECT, GetOrientation(), softkeyDimension);
689 GET_DIMENSION_CONFIG(FOOTER::SOFTKEY_DISPLAY_RECT_WITH_TEXT, GetOrientation(), softkeyDisplayDimension);
690 GET_DIMENSION_CONFIG(FOOTER::OPTIONKEY_RECT, GetOrientation(), optionkeyDimension);
691 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TEXT_SIZE, GetOrientation(), fontSize);
692 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_MULTILINE_TEXT_SIZE, GetOrientation(), multilineFontSize);
693 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_0_LEFT_MARGIN, GetOrientation(), leftSoftkeyLeftMargin);
694 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_1_LEFT_MARGIN, GetOrientation(), rightSoftkeyLeftMargin);
695 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_TOP_MARGIN, GetOrientation(), softkeyTopMargin);
697 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_NORMAL, softkeyNormalBackgroundColor);
698 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_DISABLED, softkeyDisabledBackgroundColor);
699 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_PRESSED, softkeyPressedBackgroundColor);
700 GET_COLOR_CONFIG(FOOTER::SOFTKEY_BG_HIGHLIGHTED, softkeyHighlightedBackgroundColor);
702 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_NORMAL, softkeyNormalTextColor);
703 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_DISABLED, softkeyDisabledTextColor);
704 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_PRESSED, softkeyPressedTextColor);
705 GET_COLOR_CONFIG(FOOTER::SOFTKEY_TEXT_HIGHLIGHTED, softkeyHighlightedTextColor);
707 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_NORMAL, softkeyNormalIconColor);
708 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_DISABLED, softkeyDisabledIconColor);
709 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_PRESSED, softkeyPressedIconColor);
710 GET_COLOR_CONFIG(FOOTER::SOFTKEY_ICON_HIGHLIGHTED, softkeyHighlightedIconColor);
712 result r = E_SUCCESS;
714 if (__pFooter != null)
716 __pFooter->SetStyle(TOOLBAR_SOFTKEY);
719 if (formStyle & FORM_STYLE_SOFTKEY_0)
721 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
722 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
723 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
725 delete __pSoftkeyNormalBitmap[_SOFTKEY_0];
726 __pSoftkeyNormalBitmap[_SOFTKEY_0] = null;
728 __pSoftkeyNormalBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
731 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
732 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
733 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
735 delete __pSoftkeyDisabledBitmap[_SOFTKEY_0];
736 __pSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
738 __pSoftkeyDisabledBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
741 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
742 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
743 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
745 delete __pSoftkeyPressedBitmap[_SOFTKEY_0];
746 __pSoftkeyPressedBitmap[_SOFTKEY_0] = null;
748 __pSoftkeyPressedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
751 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
752 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
753 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
755 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_0];
756 __pSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
758 __pSoftkeyHighlightedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
762 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
763 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
764 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
766 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_0];
767 __pTextSoftkeyNormalBitmap[_SOFTKEY_0] = null;
769 __pTextSoftkeyNormalBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
772 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
773 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
774 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
776 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_0];
777 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0] = null;
779 __pTextSoftkeyDisabledBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
782 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
783 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
784 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
786 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_0];
787 __pTextSoftkeyPressedBitmap[_SOFTKEY_0] = null;
789 __pTextSoftkeyPressedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
792 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
793 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
794 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
796 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0];
797 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0] = null;
799 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
802 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
803 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
804 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
806 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_0];
807 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
809 __pSoftkeyNormalEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
812 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
813 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
814 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
816 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0];
817 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0] = null;
819 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
823 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
824 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
825 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
827 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_0];
828 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
830 __pSoftkeyPressedEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
833 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_LEFT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
834 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
835 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
837 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0];
838 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0] = null;
840 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
843 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
844 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
846 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
848 delete __pSoftkeyNormalIcon[_SOFTKEY_0];
849 __pSoftkeyNormalIcon[_SOFTKEY_0] = null;
851 __pSoftkeyNormalIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
853 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
854 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
856 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
858 delete __pSoftkeyDisabledIcon[_SOFTKEY_0];
859 __pSoftkeyDisabledIcon[_SOFTKEY_0] = null;
861 __pSoftkeyDisabledIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
863 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
864 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
866 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
868 delete __pSoftkeyPressedIcon[_SOFTKEY_0];
869 __pSoftkeyPressedIcon[_SOFTKEY_0] = null;
871 __pSoftkeyPressedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
873 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ADD_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
874 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
876 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
878 delete __pSoftkeyHighlightedIcon[_SOFTKEY_0];
879 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = null;
881 __pSoftkeyHighlightedIcon[_SOFTKEY_0] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
885 _Button* pButton = _Button::CreateButtonN();
889 pButton->SetSize(softkeyDimension);
890 pButton->SetTextSize(fontSize);
891 pButton->SetMultilineTextSize(multilineFontSize);
892 pButton->SetUserDefinedTextArea(FloatRectangle(leftSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
893 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
894 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
895 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
896 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
897 __pFooter->SetButton(LEFT_BUTTON, pButton);
901 if (formStyle & FORM_STYLE_SOFTKEY_1)
903 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
904 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
905 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
907 delete __pSoftkeyNormalBitmap[_SOFTKEY_1];
908 __pSoftkeyNormalBitmap[_SOFTKEY_1] = null;
910 __pSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
913 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
914 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
915 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
917 delete __pSoftkeyDisabledBitmap[_SOFTKEY_1];
918 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
920 __pSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
923 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
924 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
925 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
927 delete __pSoftkeyPressedBitmap[_SOFTKEY_1];
928 __pSoftkeyPressedBitmap[_SOFTKEY_1] = null;
930 __pSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
933 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
934 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
935 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
937 delete __pSoftkeyHighlightedBitmap[_SOFTKEY_1];
938 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
940 __pSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
943 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
944 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
945 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
947 delete __pTextSoftkeyNormalBitmap[_SOFTKEY_1];
948 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = null;
950 __pTextSoftkeyNormalBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
953 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
954 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
955 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
957 delete __pTextSoftkeyDisabledBitmap[_SOFTKEY_1];
958 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = null;
960 __pTextSoftkeyDisabledBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
963 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
964 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
965 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
967 delete __pTextSoftkeyPressedBitmap[_SOFTKEY_1];
968 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = null;
970 __pTextSoftkeyPressedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
973 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
974 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
975 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
977 delete __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1];
978 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = null;
980 __pTextSoftkeyHighlightedBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
983 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
984 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
985 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
987 delete __pSoftkeyNormalEffectBitmap[_SOFTKEY_1];
988 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
990 __pSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
993 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
994 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
995 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
997 delete __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1];
998 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = null;
1000 __pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1003 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1004 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1005 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1007 delete __pSoftkeyPressedEffectBitmap[_SOFTKEY_1];
1008 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
1010 __pSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1013 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_RIGHT_TEXT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1014 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1015 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1017 delete __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1];
1018 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = null;
1020 __pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1024 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1025 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1027 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
1029 delete __pSoftkeyNormalIcon[_SOFTKEY_1];
1030 __pSoftkeyNormalIcon[_SOFTKEY_1] = null;
1032 __pSoftkeyNormalIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
1034 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1035 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1037 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
1039 delete __pSoftkeyDisabledIcon[_SOFTKEY_1];
1040 __pSoftkeyDisabledIcon[_SOFTKEY_1] = null;
1042 __pSoftkeyDisabledIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
1045 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1046 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1048 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
1050 delete __pSoftkeyPressedIcon[_SOFTKEY_1];
1051 __pSoftkeyPressedIcon[_SOFTKEY_1] = null;
1053 __pSoftkeyPressedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
1055 r = GET_BITMAP_CONFIG_N(FOOTER::SOFTKEY_ICON_ZOOM_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1056 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1058 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
1060 delete __pSoftkeyHighlightedIcon[_SOFTKEY_1];
1061 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = null;
1063 __pSoftkeyHighlightedIcon[_SOFTKEY_1] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
1067 _Button* pButton = _Button::CreateButtonN();
1070 pButton->SetSize(softkeyDimension);
1071 pButton->SetTextSize(fontSize);
1072 pButton->SetMultilineTextSize(multilineFontSize);
1073 pButton->SetUserDefinedTextArea(FloatRectangle(rightSoftkeyLeftMargin, softkeyTopMargin, softkeyDisplayDimension.width, softkeyDisplayDimension.height));
1074 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
1075 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
1076 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
1077 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
1078 __pFooter->SetButton(RIGHT_BUTTON, pButton);
1082 if (formStyle & FORM_STYLE_OPTIONKEY)
1084 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1085 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1086 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1088 delete __pSoftkeyNormalBitmap[SOFTKEY_COUNT];
1089 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = null;
1091 __pSoftkeyNormalBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1094 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1095 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1096 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1098 delete __pSoftkeyDisabledBitmap[SOFTKEY_COUNT];
1099 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = null;
1101 __pSoftkeyDisabledBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledBackgroundColor);
1104 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1105 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1106 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1108 delete __pSoftkeyPressedBitmap[SOFTKEY_COUNT];
1109 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = null;
1111 __pSoftkeyPressedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1114 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1115 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1116 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1118 delete __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT];
1119 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = null;
1121 __pSoftkeyHighlightedBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedBackgroundColor);
1124 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1125 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1126 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1128 delete __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT];
1129 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = null;
1131 __pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalBackgroundColor);
1134 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1135 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1136 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1138 delete __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT];
1139 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = null;
1141 __pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedBackgroundColor);
1144 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1145 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1147 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1149 delete __pSoftkeyNormalIcon[SOFTKEY_COUNT];
1150 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = null;
1152 __pSoftkeyNormalIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyNormalIconColor);
1155 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1156 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1158 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1160 delete __pSoftkeyDisabledIcon[SOFTKEY_COUNT];
1161 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = null;
1163 __pSoftkeyDisabledIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyDisabledIconColor);
1166 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1167 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1169 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1171 delete __pSoftkeyPressedIcon[SOFTKEY_COUNT];
1172 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = null;
1174 __pSoftkeyPressedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyPressedIconColor);
1177 r = GET_BITMAP_CONFIG_N(FOOTER::OPTIONKEY_HANDLE_MORE_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
1178 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1180 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1182 delete __pSoftkeyHighlightedIcon[SOFTKEY_COUNT];
1183 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = null;
1185 __pSoftkeyHighlightedIcon[SOFTKEY_COUNT] = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), softkeyHighlightedIconColor);
1188 _Button* pButton = _Button::CreateButtonN();
1191 pButton->SetSize(optionkeyDimension);
1192 pButton->SetTextColor(_BUTTON_STATUS_NORMAL, softkeyNormalTextColor);
1193 pButton->SetTextColor(_BUTTON_STATUS_DISABLED, softkeyDisabledTextColor);
1194 pButton->SetTextColor(_BUTTON_STATUS_PRESSED, softkeyPressedTextColor);
1195 pButton->SetTextColor(_BUTTON_STATUS_HIGHLIGHTED, softkeyHighlightedTextColor);
1196 __pFooter->SetButton(MIDDLE_BUTTON, pButton);
1202 _Form::UpdateSoftkey(unsigned long formStyle)
1204 float softkeyIconGap = 3.0f;
1206 if (__formStyle & FORM_STYLE_SOFTKEY_0)// && __updatedSoftkeyCount % 2 == 0)
1208 if (__pFooter->GetButton(LEFT_BUTTON))
1210 __pFooter->GetButton(LEFT_BUTTON)->SetActionId(__actionId[_SOFTKEY_0]);
1212 if (__softkeyText[_SOFTKEY_0] != String())
1214 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_0])
1216 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_0]);
1219 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_0])
1221 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_0]);
1224 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_0])
1226 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_0]);
1229 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0])
1231 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1234 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1236 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1239 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1241 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1244 __pFooter->GetButton(LEFT_BUTTON)->SetText(__softkeyText[_SOFTKEY_0]);
1246 __pFooter->RearrangeItems();
1250 if (__pSoftkeyNormalBitmap[_SOFTKEY_0])
1252 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_0]);
1255 if (__pSoftkeyDisabledBitmap[_SOFTKEY_0])
1257 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_0]);
1260 if (__pSoftkeyPressedBitmap[_SOFTKEY_0])
1262 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_0]);
1265 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_0])
1267 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_0]);
1270 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_0])
1272 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_0]);
1275 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_0])
1277 __pFooter->GetButton(LEFT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_0]);
1280 if (__pSoftkeyNormalIcon[_SOFTKEY_0])
1282 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1283 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1284 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_0]);
1287 if (__pSoftkeyDisabledIcon[_SOFTKEY_0])
1289 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1290 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1291 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_0]);
1294 if (__pSoftkeyPressedIcon[_SOFTKEY_0])
1296 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1297 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1298 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_0]);
1301 if (__pSoftkeyHighlightedIcon[_SOFTKEY_0])
1303 __pFooter->GetButton(LEFT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1304 FloatPoint((__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetWidthF()) / 2,
1305 (__pFooter->GetButton(LEFT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_0]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_0]);
1311 if (__formStyle & FORM_STYLE_SOFTKEY_1)// && __updatedSoftkeyCount % 2 == 0)
1313 if (__pFooter->GetButton(RIGHT_BUTTON))
1315 __pFooter->GetButton(RIGHT_BUTTON)->SetActionId(__actionId[_SOFTKEY_1]);
1317 if (__softkeyText[_SOFTKEY_1] != String())
1319 if (__pTextSoftkeyNormalBitmap[_SOFTKEY_1])
1321 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalBitmap[_SOFTKEY_1]);
1324 if (__pTextSoftkeyDisabledBitmap[_SOFTKEY_1])
1326 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pTextSoftkeyDisabledBitmap[_SOFTKEY_1]);
1329 if (__pTextSoftkeyPressedBitmap[_SOFTKEY_1])
1331 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedBitmap[_SOFTKEY_1]);
1334 if (__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1])
1336 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pTextSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1339 if (__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1341 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pTextSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1344 if (__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1346 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pTextSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1349 __pFooter->GetButton(RIGHT_BUTTON)->SetText(__softkeyText[_SOFTKEY_1]);
1351 __pFooter->RearrangeItems();
1355 if (__pSoftkeyNormalBitmap[_SOFTKEY_1])
1357 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[_SOFTKEY_1]);
1360 if (__pSoftkeyDisabledBitmap[_SOFTKEY_1])
1362 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[_SOFTKEY_1]);
1365 if (__pSoftkeyPressedBitmap[_SOFTKEY_1])
1367 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[_SOFTKEY_1]);
1370 if (__pSoftkeyHighlightedBitmap[_SOFTKEY_1])
1372 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[_SOFTKEY_1]);
1375 if (__pSoftkeyNormalEffectBitmap[_SOFTKEY_1])
1377 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[_SOFTKEY_1]);
1380 if (__pSoftkeyPressedEffectBitmap[_SOFTKEY_1])
1382 __pFooter->GetButton(RIGHT_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[_SOFTKEY_1]);
1385 if (__pSoftkeyNormalIcon[_SOFTKEY_1])
1387 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL,
1388 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1389 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyNormalIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyNormalIcon[_SOFTKEY_1]);
1392 if (__pSoftkeyDisabledIcon[_SOFTKEY_1])
1394 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED,
1395 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1396 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyDisabledIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyDisabledIcon[_SOFTKEY_1]);
1399 if (__pSoftkeyPressedIcon[_SOFTKEY_1])
1401 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED,
1402 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1403 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyPressedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyPressedIcon[_SOFTKEY_1]);
1406 if (__pSoftkeyHighlightedIcon[_SOFTKEY_1])
1408 __pFooter->GetButton(RIGHT_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED,
1409 FloatPoint((__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().width - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetWidthF()) / 2,
1410 (__pFooter->GetButton(RIGHT_BUTTON)->GetSizeF().height - __pSoftkeyHighlightedIcon[_SOFTKEY_1]->GetHeightF()) / 2 + softkeyIconGap), *__pSoftkeyHighlightedIcon[_SOFTKEY_1]);
1416 if (__formStyle & FORM_STYLE_OPTIONKEY)
1418 if (__pFooter->GetButton(MIDDLE_BUTTON))
1420 __pFooter->GetButton(MIDDLE_BUTTON)->SetActionId(__actionId[SOFTKEY_COUNT]);
1422 if (__pSoftkeyNormalBitmap[SOFTKEY_COUNT])
1424 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalBitmap[SOFTKEY_COUNT]);
1427 if (__pSoftkeyDisabledBitmap[SOFTKEY_COUNT])
1429 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_DISABLED, *__pSoftkeyDisabledBitmap[SOFTKEY_COUNT]);
1432 if (__pSoftkeyPressedBitmap[SOFTKEY_COUNT])
1434 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedBitmap[SOFTKEY_COUNT]);
1437 if (__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT])
1439 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED, *__pSoftkeyHighlightedBitmap[SOFTKEY_COUNT]);
1442 if (__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT])
1444 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL, *__pSoftkeyNormalEffectBitmap[SOFTKEY_COUNT]);
1447 if (__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT])
1449 __pFooter->GetButton(MIDDLE_BUTTON)->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *__pSoftkeyPressedEffectBitmap[SOFTKEY_COUNT]);
1452 if (__pSoftkeyNormalIcon[SOFTKEY_COUNT])
1454 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_NORMAL, FloatPoint(0.0f, 0.0f), *__pSoftkeyNormalIcon[SOFTKEY_COUNT]);
1457 if (__pSoftkeyDisabledIcon[SOFTKEY_COUNT])
1459 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_DISABLED, FloatPoint(0.0f, 0.0f), *__pSoftkeyDisabledIcon[SOFTKEY_COUNT]);
1462 if (__pSoftkeyPressedIcon[SOFTKEY_COUNT])
1464 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_PRESSED, FloatPoint(0.0f, 0.0f), *__pSoftkeyPressedIcon[SOFTKEY_COUNT]);
1467 if (__pSoftkeyHighlightedIcon[SOFTKEY_COUNT])
1469 __pFooter->GetButton(MIDDLE_BUTTON)->SetBitmap(_BUTTON_STATUS_HIGHLIGHTED, FloatPoint(0.0f, 0.0f), *__pSoftkeyHighlightedIcon[SOFTKEY_COUNT]);
1476 _Form::GetDescription(void) const
1478 String description = _Control::GetDescription();
1480 String descriptionTemp(L"");
1482 descriptionTemp.Format(LOG_LEN_MAX, L"_Form: style(%d) transparent(%d %d %d %d) deflated(%d) deflatedHeight(%d) overlayRegionCount(%d) softkeyCount(%d) updatedSoftkeyCount(%d)",
1483 __formStyle, __transparentIndicator, __transparentHeader, __transparentFooter, __transparentTab, __deflated, __deflatedHeight,
1484 __overlayRegionCount, __softkeyCount, __updatedSoftkeyCount);
1486 description.Append(descriptionTemp);
1492 _Form::GetClientAreaCanvasN(void) const
1494 Canvas* pCanvas = GetCanvasN(GetClientBounds());
1495 if ((pCanvas == null) || (GetLastResult() != E_SUCCESS))
1497 SysLog(NID_UI_CTRL, "[%s] Propagated.", GetErrorMessage(GetLastResult()));
1506 _Form::GetSoftkeyActionId(_Softkey softkey) const
1508 if (CheckSoftkey(softkey) == false)
1513 return __actionId[softkey];
1517 _Form::GetOptionkeyActionId(void) const
1519 if (HasOptionkey() == false)
1524 return __actionId[SOFTKEY_COUNT];
1528 _Form::GetSoftkeyText(_Softkey softkey) const
1530 if (CheckSoftkey(softkey) == false)
1535 return __softkeyText[softkey];
1539 _Form::SetFormStyle(unsigned long formStyle)
1541 result r = E_SUCCESS;
1543 __formStyle = formStyle;
1547 __pIndicator = CreateIndicatorN();
1548 SysTryReturnVoidResult(NID_UI_CTRL, __pIndicator != null, r, "[%s] Propagating.", GetErrorMessage(r));
1550 float indicatorwidth = GetClientBoundsF().width;
1551 float indicatorheight = 0.0f;
1553 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
1555 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
1556 r = GetVisualElement()->AttachChild(*__pIndicator);
1557 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1559 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
1561 result r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
1563 r = GetLastResult();
1564 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1569 _Form::SetActionBarsTranslucent(unsigned long actionBars, bool translucent)
1573 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1574 (actionBars & FORM_ACTION_BAR_FOOTER) || (actionBars & FORM_ACTION_BAR_TAB)),
1575 E_INVALID_OPERATION, E_INVALID_OPERATION,
1576 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation."));
1578 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1579 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1580 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER))
1581 || (!(__formStyle & FORM_STYLE_TEXT_TAB) && (actionBars & FORM_ACTION_BAR_TAB)))
1584 "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1585 return E_INVALID_OPERATION;
1588 result r = E_SUCCESS;
1590 Color bgColor(0, 0, 0, 0);
1591 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1595 r = SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
1599 r = SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
1601 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1604 if (actionBars & FORM_ACTION_BAR_HEADER)
1606 if (IsHeaderTranslucent() != translucent)
1610 __pHeader->SetTransparent(translucent);
1611 __transparentHeader = translucent;
1616 if (IsHeaderVisible())
1618 if (IsIndicatorTranslucent() != IsHeaderTranslucent())
1620 if (IsIndicatorTranslucent())
1622 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1623 SetHeaderBounds(bounds);
1627 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1628 SetHeaderBounds(bounds);
1631 else if (!IsIndicatorTranslucent() && !IsHeaderTranslucent())
1633 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1634 SetHeaderBounds(bounds);
1638 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
1640 FloatRectangle bounds(0.0f, GetIndicatorBoundsF().height, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1641 SetHeaderBounds(bounds);
1645 FloatRectangle bounds(0.0f, 0.0f, GetClientBoundsF().width, __pHeader->GetBoundsF().height);
1646 SetHeaderBounds(bounds);
1651 if (actionBars & FORM_ACTION_BAR_FOOTER)
1653 if (IsFooterTranslucent() != translucent)
1657 __pFooter->SetTransparent(translucent);
1658 __transparentFooter = translucent;
1663 AdjustClientBounds();
1669 _Form::SetActionBarsVisible(unsigned long actionBars, bool visible)
1673 ((actionBars & FORM_ACTION_BAR_INDICATOR) || (actionBars & FORM_ACTION_BAR_HEADER) ||
1674 (actionBars & FORM_ACTION_BAR_FOOTER)),
1675 E_INVALID_OPERATION,
1676 E_INVALID_OPERATION,
1677 ("[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation. "));
1679 if ((!(__formStyle & FORM_STYLE_INDICATOR) && (actionBars & FORM_ACTION_BAR_INDICATOR))
1680 || (!(__formStyle & FORM_STYLE_HEADER) && (actionBars & FORM_ACTION_BAR_HEADER))
1681 || (!(__formStyle & FORM_STYLE_FOOTER) && (actionBars & FORM_ACTION_BAR_FOOTER)))
1683 SysLog(NID_UI_CTRL, "[E_INVALID_OPERATION] The current state of the instance prohibits the execution of the specified operation.");
1684 return E_INVALID_OPERATION;
1687 FloatRectangle bounds = GetBoundsF();
1690 if (actionBars & FORM_ACTION_BAR_INDICATOR)
1692 SetIndicatorShowState(visible);
1695 if (actionBars & FORM_ACTION_BAR_HEADER)
1697 if (IsHeaderVisible() != visible)
1701 if (visible == true)
1703 float adjHeight = 0.0f;
1704 if (IsIndicatorVisible())
1706 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
1707 adjHeight = indicatorBounds.height;
1709 if (IsIndicatorTranslucent())
1711 if (!IsHeaderTranslucent())
1717 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
1724 FloatRectangle bounds = __pHeader->GetBoundsF();
1725 bounds.y = adjHeight;
1727 SetHeaderBounds(bounds);
1729 __pHeader->SetVisibleState(visible);
1734 if (actionBars & FORM_ACTION_BAR_FOOTER)
1738 __pFooter->SetVisibleState(visible);
1742 AdjustClientBounds();
1748 _Form::SetTitleIcon(const Bitmap* pTitleBitmap)
1750 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1751 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1753 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1755 result r = __pHeader->SetTitleIcon(*pTitleBitmap);
1756 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1762 _Form::SetTitleText(const String& title, HorizontalAlignment alignment)
1764 SysTryReturn(NID_UI_CTRL, (__formStyle & FORM_STYLE_TITLE), E_INVALID_OPERATION,
1765 E_INVALID_OPERATION, "[E_INVALID_OPERATION] This API is only for FORM_STYLE_TITLE.");
1767 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] The title is not valid.");
1769 result r = __pHeader->SetTitleText(title, alignment);
1770 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1776 _Form::SetSoftkeyEnabled(_Softkey softkey, bool enable)
1778 result r = E_SYSTEM;
1780 if (CheckSoftkey(softkey) == false)
1785 __enableSoftkey[softkey] = enable;
1793 _Form::SetOptionkeyActionId(int actionId)
1795 result r = E_SYSTEM;
1797 if (HasOptionkey() == false)
1802 __actionId[SOFTKEY_COUNT] = actionId;
1810 _Form::SetSoftkeyActionId(_Softkey softkey, int actionId)
1812 result r = E_SYSTEM;
1814 if (CheckSoftkey(softkey) == false)
1819 __actionId[softkey] = actionId;
1827 _Form::SetSoftkeyText(_Softkey softkey, const String& text)
1829 result r = E_SYSTEM;
1831 if (CheckSoftkey(softkey) == false)
1836 __softkeyText[softkey] = text;
1844 _Form::SetSoftkeyIcon(_Softkey softkey, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap)
1846 result r = E_SYSTEM;
1848 if (CheckSoftkey(softkey) == false)
1853 float softkey_icon_size = 0.0f;
1855 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_ICON_SIZE, GetOrientation(), softkey_icon_size);
1857 Bitmap* pClonedNormalBitmap = _BitmapImpl::CloneN(normalBitmap);
1859 if (pClonedNormalBitmap)
1861 if (__pSoftkeyNormalIcon[softkey] != null)
1863 delete __pSoftkeyNormalIcon[softkey];
1866 __pSoftkeyNormalIcon[softkey] = pClonedNormalBitmap;
1868 __pSoftkeyNormalIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1873 if (pPressedBitmap != null)
1875 Bitmap* pClonedPressedBitmap = _BitmapImpl::CloneN(*pPressedBitmap);
1877 if (pClonedPressedBitmap)
1879 if (__pSoftkeyPressedIcon[softkey] != null)
1881 delete __pSoftkeyPressedIcon[softkey];
1884 __pSoftkeyPressedIcon[softkey] = pClonedPressedBitmap;
1886 __pSoftkeyPressedIcon[softkey]->Scale(FloatDimension(softkey_icon_size, softkey_icon_size));
1896 _Form::HasFooter(void) const
1909 _Form::HasHeader(void) const
1922 _Form::HasIndicator(void) const
1924 if (__pIndicator && (GetFormStyle() & FORM_STYLE_INDICATOR))
1935 _Form::HasTitle(void) const
1937 if (__pHeader && (__formStyle & FORM_STYLE_TITLE))
1948 _Form::HasTab(void) const
1950 if ((__pTab && (__formStyle & FORM_STYLE_TEXT_TAB))
1951 || (__pTab && (__formStyle & FORM_STYLE_ICON_TAB)))
1962 _Form::IsIndicatorVisible(void) const
1964 _Control* pParent = GetParent();
1965 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
1967 bool visible = true;
1969 if (pFrame && IsAttachedToMainTree())
1971 visible = __pIndicator->GetIndicatorShowState();
1972 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1976 visible = __indicatorShowState;
1983 _Form::IsHeaderVisible(void) const
1987 return __pHeader->IsVisible();
1996 _Form::IsFooterVisible(void) const
2000 return __pFooter->IsVisible();
2009 _Form::IsIndicatorTranslucent(void) const
2011 _Control* pParent = GetParent();
2012 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2014 _IndicatorOpacity opacity = _INDICATOR_OPACITY_UNKNOWN;
2016 bool transparent = false;
2018 if (pFrame && IsAttachedToMainTree())
2020 FrameShowMode mode = pFrame->GetShowMode();
2021 if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2023 opacity = __pIndicator->GetIndicatorOpacity();
2024 SysTryReturn(NID_UI_CTRL, GetLastResult() == E_SUCCESS, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2026 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
2030 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
2032 transparent = false;
2038 transparent = __transparentIndicator;
2045 _Form::IsHeaderTranslucent(void) const
2047 return __transparentHeader;
2051 _Form::IsFooterTranslucent(void) const
2053 return __transparentFooter;
2057 _Form::IsTabTranslucent(void) const
2059 return __transparentTab;
2063 _Form::HasOptionkey(void) const
2065 if (GetFormStyle() & FORM_STYLE_OPTIONKEY)
2076 _Form::HasSoftkey(_Softkey softkey) const
2078 unsigned long __formStyle = FORM_STYLE_NORMAL;
2080 if (softkey == _SOFTKEY_0)
2082 __formStyle = FORM_STYLE_SOFTKEY_0;
2084 else if (softkey == _SOFTKEY_1)
2086 __formStyle = FORM_STYLE_SOFTKEY_1;
2093 if (GetFormStyle() & __formStyle)
2104 _Form::IsSoftkeyEnabled(_Softkey softkey) const
2106 if (CheckSoftkey(softkey) == false)
2111 return __enableSoftkey[softkey];
2115 _Form::CheckSoftkey(_Softkey softkey) const
2119 if (HasSoftkey(softkey) == false)
2124 if (softkey >= _SOFTKEY_COUNT)
2133 _Form::IsOrientationRoot(void) const
2139 _Form::TranslateToClientAreaPosition(const Point& position) const
2141 Rectangle clientArea = GetClientBounds();
2142 return Point(position.x - clientArea.x, position.y - clientArea.y);
2146 _Form::TranslateToClientAreaPosition(const FloatPoint& position) const
2148 FloatRectangle clientArea = GetClientBoundsF();
2149 return FloatPoint(position.x - clientArea.x, position.y - clientArea.y);
2153 _Form::TranslateFromClientAreaPosition(const Point& clientPosition) const
2155 Rectangle clientArea = GetClientBounds();
2156 return Point(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2160 _Form::TranslateFromClientAreaPosition(const FloatPoint& clientPosition) const
2162 FloatRectangle clientArea = GetClientBoundsF();
2163 return FloatPoint(clientPosition.x + clientArea.x, clientPosition.y + clientArea.y);
2167 _Form::DeflateClientRectHeight(int height)
2178 __deflatedHeight = _CoordinateSystemUtils::ConvertToFloat(height);
2180 AdjustClientBounds();
2184 float adjHeight = 0.0f;
2186 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2188 adjHeight = GetToolbarHeightF(false);
2191 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2192 GetClientBoundsF().width, GetToolbarHeightF(false));
2193 SetFooterBounds(bounds);
2200 _Form::DeflateClientRectHeight(float height)
2211 __deflatedHeight = height;
2213 AdjustClientBounds();
2217 float adjHeight = 0.0f;
2219 if (!(__pFooter->GetVisibleState()) || IsFooterTranslucent())
2221 adjHeight = GetToolbarHeightF(false);
2224 FloatRectangle bounds(0.0f, GetClientBoundsF().y + GetClientBoundsF().height-adjHeight,
2225 GetClientBoundsF().width, GetToolbarHeightF(false));
2226 SetFooterBounds(bounds);
2233 _Form::CreateHeaderN(void)
2235 _Toolbar* __pHeader = _Toolbar::CreateToolbarN(true);
2236 SysTryReturn(NID_UI_CTRL, __pHeader, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2242 _Form::CreateFooterN(void)
2244 _Toolbar* __pFooter = _Toolbar::CreateToolbarN(false);
2245 SysTryReturn(NID_UI_CTRL, __pFooter, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2251 _Form::CreateTabN(void)
2253 _Tab* __pTab = _Tab::CreateTabN();
2254 SysTryReturn(NID_UI_CTRL, __pTab, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2260 _Form::CreateIndicatorN(void)
2262 _Indicator* pIndicator = _Indicator::CreateIndicator();
2263 SysTryReturn(NID_UI_CTRL, pIndicator, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
2269 _Form::GetToolbarHeight(bool header) const
2271 int toolbarHeight = 0;
2273 if (header && (__formStyle & FORM_STYLE_HEADER))
2277 toolbarHeight = __pHeader->GetBounds().height;
2280 else if (header && (__formStyle & FORM_STYLE_TITLE))
2282 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarHeight);
2284 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2286 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarHeight);
2292 toolbarHeight = __pFooter->GetBounds().height;
2295 //GET_SHAPE_CONFIG(L"FOOTER_HEIGHT", GetOrientation(), toolbarHeight);
2298 return toolbarHeight;
2302 _Form::GetToolbarHeightF(bool header) const
2304 FloatDimension toolbarSize(0.0f, 0.0f);
2306 if (header && (__formStyle & FORM_STYLE_HEADER))
2310 toolbarSize.height = __pHeader->GetBoundsF().height;
2313 else if (header && (__formStyle & FORM_STYLE_TITLE))
2315 GET_SHAPE_CONFIG(HEADER::HEIGHT, GetOrientation(), toolbarSize.height);
2317 else if (__formStyle & FORM_STYLE_SOFTKEY_0 || __formStyle & FORM_STYLE_SOFTKEY_1 || __formStyle & FORM_STYLE_OPTIONKEY)
2319 GET_SHAPE_CONFIG(FOOTER::SOFTKEY_HEIGHT, GetOrientation(), toolbarSize.height);
2325 toolbarSize.height = __pFooter->GetBoundsF().height;
2329 toolbarSize = TranslateSize(toolbarSize);
2331 return toolbarSize.height;
2335 _Form::GetTabHeight(void) const
2339 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2341 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), height);
2348 _Form::GetTabHeightF(void) const
2350 FloatDimension tabSize(0.0f, 0.0f);
2352 if ((__formStyle & FORM_STYLE_TEXT_TAB) || (__formStyle & FORM_STYLE_ICON_TAB))
2354 GET_SHAPE_CONFIG(TAB::HEIGHT, GetOrientation(), tabSize.height);
2357 tabSize = TranslateSize(tabSize);
2359 return tabSize.height;
2363 _Form::RemoveHeader(void)
2365 result r = E_SUCCESS;
2368 if (__pHeader->GetParent())
2370 r = DetachSystemChild(*__pHeader);
2371 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2375 AdjustClientBounds();
2386 _Form::RemoveFooter(void)
2388 result r = E_SUCCESS;
2391 if (__pFooter->GetParent())
2393 r = DetachSystemChild(*__pFooter);
2394 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2398 AdjustClientBounds();
2409 _Form::RemoveTab(void)
2411 result r = E_SUCCESS;
2414 if (__pTab->GetParent())
2416 r = DetachSystemChild(*__pTab);
2417 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2421 AdjustClientBounds();
2432 _Form::RemoveIndicator(void)
2434 result r = E_SUCCESS;
2437 r = GetVisualElement()->DetachChild(*__pIndicator);
2438 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
2439 __pIndicator = null;
2450 _Form::SetHeaderBounds(Rectangle& bounds)
2452 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2454 bool movable = __pHeader->IsMovable();
2455 bool resizable = __pHeader->IsResizable();
2457 __pHeader->SetMovable(true);
2458 __pHeader->SetResizable(true);
2460 result r = E_SUCCESS;
2461 r = __pHeader->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2462 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2464 __pHeader->SetMovable(movable);
2465 __pHeader->SetResizable(resizable);
2467 AdjustClientBounds();
2473 _Form::SetHeaderBounds(FloatRectangle& bounds)
2475 SysTryReturn(NID_UI_CTRL, __pHeader, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Header isn't constructed.");
2477 bool movable = __pHeader->IsMovable();
2478 bool resizable = __pHeader->IsResizable();
2480 __pHeader->SetMovable(true);
2481 __pHeader->SetResizable(true);
2483 result r = E_SUCCESS;
2484 r = __pHeader->SetBounds(bounds);
2485 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2487 __pHeader->SetMovable(movable);
2488 __pHeader->SetResizable(resizable);
2490 AdjustClientBounds();
2496 _Form::SetFooterBounds(Rectangle& bounds)
2498 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2500 bool movable = __pFooter->IsMovable();
2501 bool resizable = __pFooter->IsResizable();
2503 __pFooter->SetMovable(true);
2504 __pFooter->SetResizable(true);
2506 result r = E_SUCCESS;
2507 r = __pFooter->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2508 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2510 __pFooter->SetMovable(movable);
2511 __pFooter->SetResizable(resizable);
2513 AdjustClientBounds();
2519 _Form::OnMousePressed(const _Control& source, const _MouseInfo& mouseinfo)
2525 _Form::OnMouseReleased(const _Control& source, const _MouseInfo& mouseinfo)
2527 _Toolbar* pToolbar = GetFooter();
2528 if (pToolbar == null)
2533 if (pToolbar->IsButtonSet(BACK_BUTTON))
2535 void* pData = GetUserData();
2538 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2539 pDataImpl->OnFormBackRequested(*this);
2547 _Form::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
2553 _Form::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
2555 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
2557 // _Toolbar* pToolbar = GetFooter();
2558 // if (pToolbar == null)
2563 // if (pToolbar->IsButtonSet(BACK_BUTTON))
2566 void* pData = GetUserData();
2569 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2570 pDataImpl->OnFormBackRequested(*this);
2575 // void* pData = GetUserData();
2578 // _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2579 // pDataImpl->OnFormBackButtonRequested(*this);
2586 if (keyInfo.GetKeyCode() == _KEY_CONTEXT_MENU)
2588 // _Toolbar* pToolbar = GetFooter();
2589 // if (pToolbar == null)
2595 void* pData = GetUserData();
2598 _FormImpl* pDataImpl = static_cast<_FormImpl*>(pData);
2599 pDataImpl->OnFormMenuRequested(*this);
2610 _Form::SetFooterBounds(FloatRectangle& bounds)
2612 SysTryReturn(NID_UI_CTRL, __pFooter, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Footer isn't constructed.");
2614 bool movable = __pFooter->IsMovable();
2615 bool resizable = __pFooter->IsResizable();
2617 __pFooter->SetMovable(true);
2618 __pFooter->SetResizable(true);
2620 result r = E_SUCCESS;
2621 r = __pFooter->SetBounds(bounds);
2622 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2624 __pFooter->SetMovable(movable);
2625 __pFooter->SetResizable(resizable);
2627 AdjustClientBounds();
2633 _Form::SetTabBounds(Rectangle& bounds)
2635 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2637 bool movable = __pTab->IsMovable();
2638 bool resizable = __pTab->IsResizable();
2640 __pTab->SetMovable(true);
2641 __pTab->SetResizable(true);
2643 result r = E_SUCCESS;
2644 r = __pTab->SetBounds(_CoordinateSystemUtils::ConvertToFloat(bounds));
2645 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2647 __pTab->SetMovable(movable);
2648 __pTab->SetResizable(resizable);
2650 AdjustClientBounds();
2656 _Form::SetTabBounds(FloatRectangle& bounds)
2658 SysTryReturn(NID_UI_CTRL, __pTab, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] Tab isn't constructed.");
2660 bool movable = __pTab->IsMovable();
2661 bool resizable = __pTab->IsResizable();
2663 __pTab->SetMovable(true);
2664 __pTab->SetResizable(true);
2666 result r = E_SUCCESS;
2667 r = __pTab->SetBounds(bounds);
2668 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2670 __pTab->SetMovable(movable);
2671 __pTab->SetResizable(resizable);
2673 AdjustClientBounds();
2679 _Form::AddActionEventListener(_IActionEventListener& listener)
2681 if (__pActionEvent == null)
2683 __pActionEvent = _ActionEvent::CreateInstanceN(*this);
2685 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.")
2688 result r = __pActionEvent->AddListener(listener);
2689 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2695 _Form::AddOptionkeyActionListener(_IActionEventListener& listener)
2697 if (HasOptionkey() == false)
2704 _Form::AddSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2706 if (CheckSoftkey(softkey) == false)
2713 _Form::RemoveActionEventListener(_IActionEventListener& listener)
2715 SysTryReturn(NID_UI_CTRL, __pActionEvent, E_INVALID_STATE, E_INVALID_STATE, "[E_INVALID_STATE] This instance isn't constructed.")
2716 // Todo : check fail case of RemoveListener
2717 result r = __pActionEvent->RemoveListener(listener);
2718 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2724 _Form::RemoveOptionkeyActionListener(_IActionEventListener& listener)
2726 if (HasOptionkey() == false)
2733 _Form::RemoveSoftkeyActionListener(_Softkey softkey, _IActionEventListener& listener)
2735 if (CheckSoftkey(softkey) == false)
2742 _Form::OnActionPerformed(const _Control& source, int actionId)
2746 case ID_BACK_BUTTON:
2747 if (!__keypadShowstate && !__clipboardShowstate)
2749 if (__pFormBackEventListener)
2751 __pFormBackEventListener->OnFormBackRequested(*this);
2756 if (__keypadShowstate)
2758 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_PRESSED, _KEY_BACK);
2759 _SystemUtilImpl::GenerateKeyEvent(KEY_EVENT_TYPE_RELEASED, _KEY_BACK);
2762 if (__clipboardShowstate)
2764 _SystemUtilImpl::SendKeyStopMessage();
2768 case ID_OPTION_BUTTON :
2769 if (__pFormMenuEventListener)
2771 __pFormMenuEventListener->OnFormMenuRequested(*this);
2781 _Form::OnChildVisibleStateChanged(const _Control& child)
2783 if (IsHeaderVisible())
2785 float adjHeight = 0.0f;
2786 if (IsIndicatorVisible())
2788 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
2789 adjHeight = indicatorBounds.height;
2791 if (IsIndicatorTranslucent())
2793 if (!IsHeaderTranslucent())
2799 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
2806 FloatRectangle bounds = __pHeader->GetBoundsF();
2807 bounds.y = adjHeight;
2808 SetHeaderBounds(bounds);
2811 AdjustClientBounds();
2815 _Form::GetIndicatorBounds(void) const
2817 _Control* pParent = GetParent();
2818 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2822 FrameShowMode mode = pFrame->GetShowMode();
2823 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2825 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2827 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2829 return Rectangle(0, 0, 0, 0);
2835 int indicatorwidth = GetClientBounds().width;
2836 int indicatorheight = 0;
2838 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2840 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2844 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2847 Rectangle rect (0, 0, indicatorwidth, indicatorheight);
2849 SetLastResult(E_SUCCESS);
2855 _Form::GetIndicatorBoundsF(void) const
2857 _Control* pParent = GetParent();
2858 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2862 FrameShowMode mode = pFrame->GetShowMode();
2863 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2865 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2867 if (pFrame->GetShowMode(false) != FRAME_SHOW_MODE_FULL_SCREEN)
2869 return FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f);
2875 float indicatorwidth = GetClientBoundsF().width;
2876 float indicatorheight = 0.0f;
2878 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
2880 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
2884 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
2887 FloatRectangle rect (0.0f, 0.0f, indicatorwidth, indicatorheight);
2889 SetLastResult(E_SUCCESS);
2895 _Form::SetHeader(_Toolbar* pToolbar)
2897 __pHeader = pToolbar;
2901 _Form::SetFooter(_Toolbar* pToolbar)
2903 __pFooter = pToolbar;
2907 _Form::SetTab(_Tab* pTab)
2913 _Form::SetTabStyle(int style)
2915 __pTab->SetStyle(style);
2919 _Form::SetIndicatorShowState(bool state, bool hide)
2921 result r = E_SUCCESS;
2923 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
2924 SysTryReturn(NID_UI_CTRL, pEcoreEvas, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas");
2926 _Control* pParent = GetParent();
2929 pParent = const_cast<_Control*>(pEcoreEvas->GetFrame());
2931 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2933 if (pFrame && IsAttachedToMainTree())
2935 FrameShowMode mode = pFrame->GetShowMode();
2936 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
2938 if (mode == FRAME_SHOW_MODE_MINIMIZED)
2940 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
2942 r = __pIndicator->SetIndicatorShowState(state, hide);
2943 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2948 r = __pIndicator->SetIndicatorShowState(false);
2952 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2954 r = __pIndicator->SetIndicatorShowState(state, hide);
2955 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2958 else if (!pFrame && IsAttachedToMainTree())
2960 r = __pIndicator->SetIndicatorShowState(false, true);
2963 __indicatorShowState = state;
2969 _Form::SetIndicatorOpacity(_IndicatorOpacity opacity)
2971 result r = E_SUCCESS;
2973 _Control* pParent = GetParent();
2974 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
2976 if (pFrame && IsAttachedToMainTree())
2978 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 r = __pIndicator->SetIndicatorOpacity(opacity);
2987 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2991 else if (mode == FRAME_SHOW_MODE_FULL_SCREEN)
2993 r = __pIndicator->SetIndicatorOpacity(opacity);
2994 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
2998 if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
3000 __transparentIndicator = true;
3002 else if (opacity == _INDICATOR_OPACITY_OPAQUE)
3004 __transparentIndicator = false;
3011 _Form::AddIndicatorObject(void)
3013 result r = E_SUCCESS;
3017 r = __pIndicator->AddIndicatorObject(this, GetRootWindow());
3024 _Form::DeleteIndicatorObject(void)
3026 result r = E_SUCCESS;
3029 r = __pIndicator->DeleteIndicatorObject();
3036 _Form::SetKeypadShowState(bool state)
3038 __keypadShowstate = state;
3040 if (__clipboardShowstate)
3049 __pHeader->SetHideButton(true);
3053 __pFooter->SetHideButton(true);
3060 __pHeader->SetHideButton(false);
3064 __pFooter->SetHideButton(false);
3070 _Form::SetClipboardShowState(bool state)
3072 __clipboardShowstate = state;
3074 if (__keypadShowstate)
3083 __pHeader->SetHideButton(true);
3087 __pFooter->SetHideButton(true);
3094 __pHeader->SetHideButton(false);
3098 __pFooter->SetHideButton(false);
3104 _Form::AttachedToMainTree(void)
3106 _Frame* pFrame = dynamic_cast<_Frame*>(GetParent());
3109 FrameShowMode mode = pFrame->GetShowMode();
3110 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3112 SetBounds(FloatRectangle(0.0f, 0.0f, pFrame->GetBoundsF().width, pFrame->GetBoundsF().height));
3116 result r = E_SUCCESS;
3118 if (FORM_STYLE_INDICATOR & GetFormStyle())
3120 __pIndicator->OnAttachedToMainTree();
3121 AddIndicatorObject();
3123 if (__transparentIndicator != IsIndicatorTranslucent())
3125 if (__transparentIndicator == true)
3127 SetIndicatorOpacity(_INDICATOR_OPACITY_TRANSLUCENT);
3131 SetIndicatorOpacity(_INDICATOR_OPACITY_OPAQUE);
3135 if (__indicatorShowState != IsIndicatorVisible())
3137 SetIndicatorShowState(__indicatorShowState);
3140 r = GetLastResult();
3141 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3143 else if (FORM_STYLE_INDICATOR_AUTO_HIDE & GetFormStyle())
3145 SetIndicatorShowState(__indicatorShowState, true);
3149 r = SetIndicatorShowState(false);
3150 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
3157 _Form::DetachingFromMainTree(void)
3159 result r = E_SUCCESS;
3160 r = DeleteIndicatorObject();
3165 _Form::AdjustClientBounds(void)
3167 result r = E_SUCCESS;
3169 FloatDimension size = GetSizeF();
3170 FloatRectangle clientBounds(0.0f, 0.0f, size.width, size.height);
3174 clientBounds.height -= __deflatedHeight;
3177 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3179 _Control* pParent = GetParent();
3180 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3183 FrameShowMode mode = pFrame->GetShowMode();
3185 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3187 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3189 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3191 if (FORM_STYLE_INDICATOR & __formStyle)
3193 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3195 clientBounds.y += indicatorBounds.height;
3196 clientBounds.height -= indicatorBounds.height;
3204 if (FORM_STYLE_INDICATOR & __formStyle)
3206 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3208 clientBounds.y += indicatorBounds.height;
3209 clientBounds.height -= indicatorBounds.height;
3216 if (FORM_STYLE_INDICATOR & __formStyle)
3218 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3220 clientBounds.y += indicatorBounds.height;
3221 clientBounds.height -= indicatorBounds.height;
3228 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3230 clientBounds.y += GetToolbarHeightF(true);
3231 clientBounds.height -= GetToolbarHeightF(true);
3237 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3239 clientBounds.y += GetTabHeightF();
3240 clientBounds.height -= GetTabHeightF();
3246 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3247 || FORM_STYLE_OPTIONKEY & __formStyle)
3249 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3251 clientBounds.height -= GetToolbarHeightF(false);
3256 SetClientBounds(clientBounds);
3262 _Form::OnBoundsChanged(void)
3264 FloatRectangle toolbarBounds;
3265 FloatRectangle indicatorFloatBounds(0.0f, 0.0f, 0.0f, 0.0f);
3267 float indicatorheight = 0.0f;
3269 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
3271 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
3275 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, GetOrientation(), indicatorheight);
3280 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, GetClientBoundsF().width, indicatorheight));
3282 AdjustClientBounds();
3286 if (IsIndicatorVisible())
3288 indicatorFloatBounds = GetIndicatorBoundsF();
3289 if (IsIndicatorTranslucent())
3291 if (!IsHeaderTranslucent())
3293 indicatorFloatBounds.height = 0.0f;
3297 if (GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
3299 indicatorFloatBounds.height = 0.0f;
3305 toolbarBounds = GetHeader()->GetBoundsF();
3306 toolbarBounds.width = GetSizeF().width;
3308 FloatRectangle bounds(toolbarBounds.x, indicatorFloatBounds.height, toolbarBounds.width, toolbarBounds.height);
3309 SetHeaderBounds(bounds);
3314 toolbarBounds = GetFooter()->GetBoundsF();
3315 toolbarBounds.width = GetSizeF().width;
3316 toolbarBounds.y = GetSizeF().height - toolbarBounds.height;
3317 SetFooterBounds(toolbarBounds);
3322 toolbarBounds = GetTab()->GetBoundsF();
3323 toolbarBounds.width = GetSizeF().width;
3324 SetTabBounds(toolbarBounds);
3327 AdjustClientBounds();
3331 _Form::TranslateSize(FloatDimension size ) const
3333 FloatDimension returnSize(0.0f, 0.0f);
3334 returnSize = CoordinateSystem::AlignToDevice(size);
3340 _Form::SetNotificationTrayOpenEnabled(bool enable)
3342 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.");
3346 __pIndicator->SetNotificationTrayOpenEnabled(enable);
3352 _Form::IsNotificationTrayOpenEnabled(void) const
3354 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.");
3358 __pIndicator->IsNotificationTrayOpenEnabled();
3364 _Form::GetFocusList(void) const
3366 if(!__pFocusControlList)
3368 __pFocusControlList.reset(GetFocusListN());
3369 __pFocusControlList->InsertAt(const_cast<_Form*>(this), 0);
3371 return __pFocusControlList.get();
3375 _Form::SetFocusControl(const _Control* pControl)
3377 __pFocusControl = const_cast<_Control*>(pControl);
3381 _Form::GetFocusControl(void) const
3383 return __pFocusControl;
3387 _Form::ResetFocusList(void)
3389 if(__pFocusControlList)
3391 __pFocusControlList.reset();
3396 _Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
3398 clientBounds.width = size.width;
3399 clientBounds.height = size.height;
3403 clientBounds.height -= __deflatedHeight;
3406 FloatRectangle indicatorBounds = GetIndicatorBoundsF();
3408 _Control* pParent = GetParent();
3409 _Frame* pFrame = dynamic_cast<_Frame*>(pParent);
3412 FrameShowMode mode = pFrame->GetShowMode();
3414 if (mode != FRAME_SHOW_MODE_FULL_SCREEN)
3416 if (mode == FRAME_SHOW_MODE_MINIMIZED)
3418 if (pFrame->GetShowMode(false) == FRAME_SHOW_MODE_FULL_SCREEN)
3420 if (FORM_STYLE_INDICATOR & __formStyle)
3422 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3424 clientBounds.y += indicatorBounds.height;
3425 clientBounds.height -= indicatorBounds.height;
3433 if (FORM_STYLE_INDICATOR & __formStyle)
3435 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3437 clientBounds.y += indicatorBounds.height;
3438 clientBounds.height -= indicatorBounds.height;
3445 if (FORM_STYLE_INDICATOR & __formStyle)
3447 if (IsIndicatorVisible() && !IsIndicatorTranslucent())
3449 clientBounds.y += indicatorBounds.height;
3450 clientBounds.height -= indicatorBounds.height;
3457 if (__pHeader->GetVisibleState() && !IsHeaderTranslucent())
3459 clientBounds.y += GetToolbarHeightF(true);
3460 clientBounds.height -= GetToolbarHeightF(true);
3466 if (__pTab->GetVisibleState()) //&& !IsHeaderTranslucent())
3468 clientBounds.y += GetTabHeightF();
3469 clientBounds.height -= GetTabHeightF();
3475 if (FORM_STYLE_FOOTER & __formStyle || FORM_STYLE_SOFTKEY_0 & __formStyle || FORM_STYLE_SOFTKEY_1 & __formStyle
3476 || FORM_STYLE_OPTIONKEY & __formStyle)
3478 if (__pFooter->GetVisibleState() && !IsFooterTranslucent())
3480 clientBounds.height -= GetToolbarHeightF(false);
3487 _Form::OnVisibleStateChanged(void)
3489 if (GetVisibleState())
3491 SetIndicatorShowState(__indicatorShowState);
3496 _Form::SetFormOrientationStatusEventListener(_IFormOrientationStatusEventListener* pFormOrientationstatusEventListener)
3498 __pFormOrientationstatusEventListener = pFormOrientationstatusEventListener;
3501 Tizen::Ui::OrientationStatus
3502 _Form::GetFormOrientationStatus(void) const
3504 if (__pFormOrientationstatusEventListener)
3506 return __pFormOrientationstatusEventListener->OnFormOrientationStatusRequested();
3509 return ORIENTATION_STATUS_PORTRAIT;
3513 _Form::GetFocusTraversalControl(void) const
3515 return __pFocusTraversalControl;
3518 _Form::SetFocusTraversalControl(_Control* pControl)
3520 __pFocusTraversalControl = pControl;
3522 }}} // Tizen::Ui::Controls