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.
19 * @file FUiCtrl_Keypad.cpp
20 * @brief This file contains implementation of _Keypad class
22 * This file contains implementation of _Keypad class.
25 #include <FBaseSysLog.h>
26 #include <FSysSystemInfo.h>
27 #include <FGrp_BitmapImpl.h>
28 #include <FSys_SettingInfoImpl.h>
29 #include "FUi_AccessibilityContainer.h"
30 #include "FUi_AccessibilityElement.h"
31 #include "FUi_EcoreEvas.h"
32 #include "FUi_EcoreEvasMgr.h"
33 #include "FUi_CoordinateSystemUtils.h"
34 #include "FUi_SystemUtilImpl.h"
35 #include "FUiAnim_ControlVisualElement.h"
36 #include "FUiAnim_VisualElement.h"
37 #include "FUiAnim_VisualElementImpl.h"
38 #include "FUiCtrlForm.h"
39 #include "FUiCtrl_Indicator.h"
40 #include "FUiCtrl_Edit.h"
41 #include "FUiCtrl_Frame.h"
42 #include "FUiCtrl_Form.h"
43 #include "FUiCtrl_Keypad.h"
44 #include "FUiCtrl_Toolbar.h"
46 using namespace Tizen::Graphics;
47 using namespace Tizen::Base;
48 using namespace Tizen::Base::Runtime;
49 using namespace Tizen::Ui;
50 using namespace Tizen::Ui::Animations;
51 using namespace Tizen::Ui::Controls;
52 using namespace Tizen::System;
54 namespace Tizen { namespace Ui { namespace Controls
56 const int COMMAND_DONE_BUTTON_ID = 100;
57 const int COMMAND_CANCEL_BUTTON_ID = 101;
58 const int FOOTER_BACK_BUTTON_ID = 102;
60 IMPLEMENT_PROPERTY(_Keypad);
62 _Keypad::_Keypad(void)
64 , __isInitialized(false)
65 , __isSingleLineEnabled(false)
72 , __isCommandButtonPressed(false)
73 , __isPredictionWindowOpendInUSBMode(false)
75 _AccessibilityContainer* pAccessibilityContainer = GetAccessibilityContainer();
76 if(pAccessibilityContainer)
78 pAccessibilityContainer->Activate(true);
81 _ControlManager::GetInstance()->SetClipboardOwner(this);
84 _Keypad::~_Keypad(void)
86 _ControlManager::GetInstance()->SetClipboardOwner(null);
92 _Keypad::CreateKeypadN(void)
96 FloatDimension screenSize = _ControlManager::GetInstance()->GetScreenSizeF();
98 FloatRectangle portBounds(0.0f, 0.0f, screenSize.width, screenSize.height);
99 FloatRectangle landBounds(0.0f, 0.0f, screenSize.width, screenSize.height);
100 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
102 _Keypad* pKeypad = new (std::nothrow) _Keypad;
103 result r = GetLastResult();
104 SysTryCatch(NID_UI_CTRL, pKeypad, , r, "[%s] Propagating.", GetErrorMessage(r));
105 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
107 r = pKeypad->CreateRootVisualElement(_WINDOW_TYPE_SUB);
109 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
112 pEcoreEvas->SetDragAndDropEnabled(*pKeypad);
114 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 0, portBounds);
115 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 180, portBounds);
116 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 90, landBounds);
117 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 270, landBounds);
119 pKeypad->AcquireHandle();
130 _Keypad::Initialize(int editStyle, _KeypadStyleInfo keypadStyleInfo, int limitLength, _Edit* pCallerEdit)
132 result r = E_SUCCESS;
133 bool UsbKeyboardConnected = false;
135 _ControlManager* pControlManager = _ControlManager::GetInstance();
136 SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "Failed to get root.");
138 if (GetOwner() == null)
140 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
141 SysTryReturn(NID_UI_CTRL, pFrame != null, E_SYSTEM,
142 E_SYSTEM, "[E_SYSTEM] This instance is not constructed.");
144 _Form* pForm = pFrame->GetCurrentForm();
156 __pFooter = CreateFooter();
160 SysTryReturnResult(NID_UI_CTRL, __pFooter, GetLastResult(), "Unable to create Footer");
165 __pCallerEdit = pCallerEdit;
169 __pCallerEdit = null;
172 if (__pChildEdit == null)
174 __pChildEdit = _Edit::CreateEditN();
175 SysTryCatch(NID_UI_CTRL, __pChildEdit, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "Memory allocation failed.");
179 _AccessibilityContainer* pAccessibilityContainer = null;
180 Variant variantKeypadStyle = (int)keypadStyleInfo.keypadStyle;
182 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
183 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_CANCEL_ABB, cancelText);
185 __pChildEdit->SetFullScreenKeypadEdit(true);
187 r = __pChildEdit->Initialize(editStyle, INPUT_STYLE_OVERLAY, limitLength);
188 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
190 __pChildEdit->SetTextPredictionEnabled(keypadStyleInfo.textPredictionEnabled);
191 __pChildEdit->SetKeypadNormalNumberStyle(keypadStyleInfo.isNormalNumberStyle);
192 __pChildEdit->SetPropertyKeypadStyle(variantKeypadStyle);
194 if (!keypadStyleInfo.enterActionEnabled)//EditField Style
196 __pChildEdit->SetKeypadActionEnabled(false);
199 __pChildEdit->SetLowerCaseModeEnabled(keypadStyleInfo.isLowerCaseModeEnabled);
201 r = __pChildEdit->SetKeypadCommandButtonVisible(false);
202 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
204 __pChildEdit->AddKeypadEventListener(*this);
206 r = AttachChild(*__pChildEdit);
207 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
209 pAccessibilityContainer = GetAccessibilityContainer();
210 if (pAccessibilityContainer)
212 _AccessibilityContainer* pAccessibilityEdit = __pChildEdit->GetAccessibilityContainer();
213 if (pAccessibilityEdit)
215 pAccessibilityContainer->AddChildContainer(*pAccessibilityEdit);
221 if (editStyle & EDIT_STYLE_PASSWORD)
223 __pChildEdit->SetPasswordVisible(__pCallerEdit->IsPasswordVisible());
228 SetClipChildrenEnabled(false);
232 __pIndicator = _Indicator::CreateIndicator();
233 SysTryCatch(NID_UI_CTRL, __pIndicator, , GetLastResult(), "Unable to create Indicator");
235 _VisualElement* pKeypadVisualElement = GetVisualElement();
236 pKeypadVisualElement->AttachChild(*__pIndicator);
238 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
239 r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
241 float indicatorwidth = 0.0f;
242 float indicatorheight = 0.0f;
244 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
246 indicatorwidth = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF().width;
247 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
251 indicatorwidth = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF().height;
252 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
255 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
256 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
259 UsbKeyboardConnected = __pChildEdit->IsUsbKeyboardConnected();
261 r = ChangeLayoutInternal(LAYOUT_CHANGE_NONE);
262 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
264 __pChildEdit->SetVisibleState(true);
266 __isInitialized = true;
268 r = _SettingInfoImpl::AddSettingEventListenerForInternal(*this);
269 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
279 _Keypad::Dispose(void)
281 result r = E_SUCCESS;
284 DetachChild(*__pFooter);
290 DetachChild(*__pChildEdit);
294 __pCallerEdit = null;
304 _VisualElement* pKeypadVisualElement = GetVisualElement();
305 pKeypadVisualElement->DetachChild(*__pIndicator);
310 _SettingInfoImpl::RemoveSettingEventListenerForInternal(*this);
316 _Keypad::CreateFooter(void)
318 result r = E_SUCCESS;
320 _Toolbar* pFooter = null;
324 _ControlManager* pControlManager = _ControlManager::GetInstance();
325 SysTryReturn(NID_UI_CTRL, pControlManager, null, E_SYSTEM, "Fail to get ControlManager instance");
327 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
328 SysTryReturn(NID_UI_CTRL, pFrame, null, E_SYSTEM, "This instance is not constructed.");
332 FloatRectangle bounds(0.0f,0.0f,0.0f,0.0f);
334 FloatDimension screenSize = pControlManager->GetScreenSizeF();
336 pFooter = _Toolbar::CreateToolbarN(false);
337 SysTryReturn(NID_UI_CTRL, pFooter, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
339 r = pFooter->Construct();
340 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
342 r = pFooter->SetStyle(TOOLBAR_TEXT);
343 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
345 pFooter->SetResizable(true);
346 pFooter->SetMovable(true);
348 _ControlOrientation orientation = GetOrientation();
350 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
352 bounds.width = screenSize.width;
356 bounds.width = screenSize.height;
360 GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, height);
361 bounds.height = height;
363 r = pFooter->SetBounds(bounds);
364 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
366 pFooter->SetResizable(false);
367 pFooter->SetMovable(false);
369 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
371 r = pFooter->AddItem(CreateButtonItemN(COMMAND_DONE_BUTTON_ID, doneText));
372 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
374 pFooter->AddActionEventListener(*this);
376 r = AttachChild(*pFooter);
377 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
393 _Keypad::CreateButtonItemN(int actionId, const String& text)
395 result r = E_SUCCESS;
396 _Button* pButton = _Button::CreateButtonN();
397 SysTryReturn(NID_UI_CTRL, pButton, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
399 r = pButton->SetActionId(actionId);
400 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
402 r = pButton->SetText(text);
403 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
413 _Keypad::ChangeLayoutInternal(LayoutChangeState layoutChangeState)
415 result r = E_SUCCESS;
416 _ControlManager* pControlManager = _ControlManager::GetInstance();
417 SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "Failed to get root.");
418 FloatDimension screenSize = pControlManager->GetScreenSizeF();
419 _ControlOrientation orientation = GetOrientation();
421 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
422 SysTryReturn(NID_UI_CTRL, pFrame, null, E_SYSTEM, "This instance is not constructed.");
424 FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
425 FloatRectangle keypadRect(0.0f, 0.0f, 0.0f, 0.0f);
426 float indicatorHeight = 0.0f;
427 float clipboardHeight = 0.0f;
428 bool isKeypadExist = false;
429 bool isClipboardExist = false;
431 FloatDimension indicatorDimension(0.0f, 0.0f);
432 FloatDimension keypadDimsnsion(0.0f, 0.0f);
434 if (__isInitialized || __pChildEdit->IsUsbKeyboardConnected())
436 isKeypadExist = __pChildEdit->CheckKeypadExist(orientation);
437 isClipboardExist = __pChildEdit->IsClipboardExist();
440 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
442 bounds.width = screenSize.width;
443 bounds.height = screenSize.height;
447 bounds.width = screenSize.height;
448 bounds.height = screenSize.width;
451 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
453 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorHeight);
456 indicatorDimension.height = indicatorHeight;
460 r = SetBounds(CoordinateSystem::AlignToDevice(bounds));
461 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
465 FloatRectangle editRect = CoordinateSystem::AlignToDevice(bounds);
467 editRect.y = CoordinateSystem::AlignToDevice(indicatorDimension).height;
469 float footerHeight = 0.0f;
470 FloatDimension footerDimension(0.0f, 0.0f);
472 GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, footerHeight);
473 footerDimension.height = footerHeight;
475 editRect.height -= CoordinateSystem::AlignToDevice(indicatorDimension).height;
476 editRect.height -= CoordinateSystem::AlignToDevice(footerDimension).height;
478 if ((isClipboardExist && layoutChangeState == LAYOUT_CHANGE_ROTATE))
484 if (isKeypadExist || isClipboardExist)
488 r = __pChildEdit->GetKeypadBounds(keypadRect);
489 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
492 if (isClipboardExist)
494 clipboardHeight = __pChildEdit->GetClipboardHeight();
497 if (clipboardHeight > keypadRect.height)
499 keypadDimsnsion.height = clipboardHeight;
503 keypadDimsnsion.height = keypadRect.height;
506 editRect.height -= CoordinateSystem::AlignToDevice(keypadDimsnsion).height;
510 r = __pChildEdit->SetBounds(editRect);
511 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
513 FloatRectangle footerBounds(0.0f, 0.0f, 0.0f, 0.0f);
515 footerBounds.y = editRect.height + CoordinateSystem::AlignToDevice(indicatorDimension).height;
516 footerBounds.width = editRect.width;
517 footerBounds.height = CoordinateSystem::AlignToDevice(footerDimension).height;
519 __pFooter->SetResizable(true);
520 __pFooter->SetMovable(true);
522 __pFooter->SetBounds(footerBounds);
524 __pFooter->SetResizable(false);
525 __pFooter->SetMovable(false);
527 SysLog(NID_UI_CTRL, "[FULLEDIT] ChangeLayoutInternal Draw FullScreen window- Footer position(%f, %f, %f, %f)", footerBounds.x, footerBounds.y, footerBounds.width, footerBounds.height);
534 _Keypad::OnAttachedToMainTree(void)
536 result r = E_SUCCESS;
538 GetEcoreEvasMgr()->GetEcoreEvas()->SetOwner(*this, *GetOwner());//set owner to EcoreEvas for orientation set.
540 r = __pChildEdit->SetText(__text);
541 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
545 __pIndicator->OnAttachedToMainTree();
546 __pIndicator->AddIndicatorObject(this, GetRootWindow());
547 __pIndicator->SetIndicatorShowState(true);
548 __pIndicator->SetIndicatorAutoHide(false, true);
557 _Keypad::OnDetachingFromMainTree(void)
561 __pIndicator->DeleteIndicatorObject();
564 if (__pCallerEdit && !__pCallerEdit->IsInputEventEnabled())
566 __pCallerEdit->UnlockInputEvent();
569 return _Window::OnDetachingFromMainTree();
573 _Keypad::OnNativeWindowActivated(void)
575 if (__isFirstCall && __pChildEdit)
577 __pChildEdit->SetFocused();
578 __isFirstCall = false;
579 ChangeLayoutInternal(LAYOUT_CHANGE_NONE);
586 _Keypad::IsRotationSynchronized(void) const
592 _Keypad::OnDraw(void)
594 Color backgroundColor;
595 GET_COLOR_CONFIG(EDIT::BG_NORMAL, backgroundColor);
596 SetBackgroundColor(backgroundColor);
602 _Keypad::SetSingleLineEnabled(bool enabled)
604 SetProperty("singleLineEnabled", Variant(enabled));
610 _Keypad::IsSingleLineEnabled(void) const
612 Variant enabled = GetProperty("singleLineEnabled");
614 return enabled.ToBool();
618 _Keypad::SetPropertySingleLineEnabled(const Variant& enabled)
620 __isSingleLineEnabled = enabled.ToBool();
626 _Keypad::GetPropertySingleLineEnabled(void) const
628 return Variant(__isSingleLineEnabled);
632 _Keypad::GetText(void) const
634 Variant text = GetProperty("text");
636 return text.ToString();
640 _Keypad::SetText(const String& text)
642 SetProperty("text", Variant(text));
648 _Keypad::SetPropertyText(const Variant& text)
650 __text = text.ToString();
656 _Keypad::GetPropertyText(void) const
658 return Variant(__text);
662 _Keypad::AddTextEventListener(const _ITextEventListener& listener)
664 if (__pTextEvent == null)
666 __pTextEvent = _TextEvent::CreateInstanceN(*this);
667 SysTryReturn(NID_UI_CTRL, __pTextEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.\n");
670 return __pTextEvent->AddListener(listener);
674 _Keypad::RemoveTextEventListener(const _ITextEventListener& listener)
676 SysTryReturn(NID_UI_CTRL, __pTextEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] This instance isn't constructed.");
677 __pTextEvent->RemoveListener(listener);
683 _Keypad::SetEditTextFilter(IEditTextFilter* pFilter)
687 __pChildEdit->SetEditTextFilter(pFilter);
694 _Keypad::SendOpaqueCommand (const Tizen::Base::String& command)
698 __pChildEdit->SendOpaqueCommand(command);
705 _Keypad::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
707 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
709 OnActionPerformed(source, FOOTER_BACK_BUTTON_ID);
716 _Keypad::OnActionPerformed(const _Control& source, int actionId)
718 bool isReCreationLock = false;
719 if ((actionId != COMMAND_DONE_BUTTON_ID) && (actionId != FOOTER_BACK_BUTTON_ID))
724 __pChildEdit->HideKeypad();
728 __pCallerEdit->SetKeypadEnabled(false);
729 isReCreationLock = true;
732 if (isReCreationLock)
734 __pCallerEdit->SetKeypadEnabled(true);
737 CoreTextEventStatus textEventStatus = CORE_TEXT_EVENT_CHANGED;
738 if (actionId == COMMAND_DONE_BUTTON_ID)
740 __text = __pChildEdit->GetText();
741 textEventStatus = CORE_TEXT_EVENT_CHANGED;
745 textEventStatus = CORE_TEXT_EVENT_CANCELED;
748 __isCommandButtonPressed = true;
752 __pCallerEdit->SetText(__text);
753 _Control* pParent = __pCallerEdit->GetParent();
756 pParent->Invalidate(true);
759 __pCallerEdit->SendTextEvent(textEventStatus);
763 GetOwner()->Invalidate(true);
766 IEventArg* pEventArg = _TextEvent::CreateTextEventArgN(textEventStatus);
769 __pTextEvent->Fire(*pEventArg);
778 _Keypad::OnKeypadWillOpen(void)
780 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadWillOpen");
785 _Keypad::OnKeypadOpened(void)
787 if (__pChildEdit->IsUsbKeyboardConnected())
789 __isPredictionWindowOpendInUSBMode = true;
792 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadOpened");
794 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_SHOW);//usb off & bounded or usb on & prediction
800 _Keypad::OnKeypadClosed(void)
802 __isPredictionWindowOpendInUSBMode = false;
804 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadClosed");
806 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_HIDE);
812 _Keypad::OnKeypadBoundsChanged(void)
814 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadBoundsChanged");
816 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_BOUNDS_CHANGED);// predictive window show/hide
822 _Keypad::OnKeypadActionPerformed(CoreKeypadAction keypadAction)
828 _Keypad::OnChangeLayout(_ControlOrientation orientation)
830 float indicatorheight = 0.0f;
832 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
833 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
837 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
839 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
840 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, portraitSize.width, indicatorheight));
844 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
845 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, landscapeSize.width, indicatorheight));
848 __pIndicator->OnChangeLayout(orientation);
853 ChangeLayoutInternal(LAYOUT_CHANGE_ROTATE);
860 _Keypad::OnSettingChanged(String& key)
862 const wchar_t* LOCALE_LANGUAGE = L"http://tizen.org/setting/locale.language";
863 if (key == LOCALE_LANGUAGE)
867 _Button* pButton = __pFooter->GetItem(0);
871 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
872 pButton->SetText(doneText);
879 _Keypad::IsLayoutChangable(void) const
885 _Keypad::OnActivated(void)
887 _Window::OnActivated();
891 __pIndicator->Activate();
896 _Keypad::OnDeactivated(void)
898 _Window::OnDeactivated();
902 __pIndicator->Deactivate();
906 } } } // Tizen::Ui::Controls