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 FOOTER_BACK_BUTTON_ID = 101;
59 IMPLEMENT_PROPERTY(_Keypad);
61 _Keypad::_Keypad(void)
63 , __isInitialized(false)
64 , __isSingleLineEnabled(false)
71 , __isCommandButtonPressed(false)
72 , __isPredictionWindowOpendInUSBMode(false)
74 _AccessibilityContainer* pAccessibilityContainer = GetAccessibilityContainer();
75 if(pAccessibilityContainer)
77 pAccessibilityContainer->Activate(true);
80 _ControlManager::GetInstance()->SetClipboardOwner(this);
83 _Keypad::~_Keypad(void)
85 _ControlManager::GetInstance()->SetClipboardOwner(null);
91 _Keypad::CreateKeypadN(void)
95 FloatDimension screenSize = _ControlManager::GetInstance()->GetScreenSizeF();
97 FloatRectangle portBounds(0.0f, 0.0f, screenSize.width, screenSize.height);
98 FloatRectangle landBounds(0.0f, 0.0f, screenSize.width, screenSize.height);
99 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
101 _Keypad* pKeypad = new (std::nothrow) _Keypad;
102 result r = GetLastResult();
103 SysTryCatch(NID_UI_CTRL, pKeypad, , r, "[%s] Propagating.", GetErrorMessage(r));
104 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
106 r = pKeypad->CreateRootVisualElement(_WINDOW_TYPE_SUB);
108 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
111 pEcoreEvas->SetDragAndDropEnabled(*pKeypad);
113 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 0, portBounds);
114 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 180, portBounds);
115 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 90, landBounds);
116 pEcoreEvas->SetWindowRotationBounds(*pKeypad, 270, landBounds);
118 pKeypad->AcquireHandle();
129 _Keypad::Initialize(int editStyle, _KeypadStyleInfo keypadStyleInfo, int limitLength, _Edit* pCallerEdit)
131 result r = E_SUCCESS;
132 bool UsbKeyboardConnected = false;
134 _ControlManager* pControlManager = _ControlManager::GetInstance();
135 SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "Failed to get root.");
137 if (GetOwner() == null)
139 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
140 SysTryReturn(NID_UI_CTRL, pFrame != null, E_SYSTEM,
141 E_SYSTEM, "[E_SYSTEM] This instance is not constructed.");
143 _Form* pForm = pFrame->GetCurrentForm();
155 __pFooter = CreateFooter();
159 SysTryReturnResult(NID_UI_CTRL, __pFooter, GetLastResult(), "Unable to create Footer");
164 __pCallerEdit = pCallerEdit;
168 __pCallerEdit = null;
171 if (__pChildEdit == null)
173 __pChildEdit = _Edit::CreateEditN();
174 SysTryCatch(NID_UI_CTRL, __pChildEdit, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "Memory allocation failed.");
178 _AccessibilityContainer* pAccessibilityContainer = null;
179 Variant variantKeypadStyle = (int)keypadStyleInfo.keypadStyle;
181 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
182 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_CANCEL_ABB, cancelText);
184 __pChildEdit->SetFullScreenKeypadEdit(true);
186 r = __pChildEdit->Initialize(editStyle, INPUT_STYLE_OVERLAY, limitLength);
187 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
189 __pChildEdit->SetTextPredictionEnabled(keypadStyleInfo.textPredictionEnabled);
190 __pChildEdit->SetKeypadNormalNumberStyle(keypadStyleInfo.isNormalNumberStyle);
191 __pChildEdit->SetPropertyKeypadStyle(variantKeypadStyle);
193 if (!keypadStyleInfo.enterActionEnabled)//EditField Style
195 __pChildEdit->SetKeypadActionEnabled(false);
198 __pChildEdit->SetLowerCaseModeEnabled(keypadStyleInfo.isLowerCaseModeEnabled);
200 r = __pChildEdit->SetKeypadCommandButtonVisible(false);
201 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
203 __pChildEdit->AddKeypadEventListener(*this);
205 r = AttachChild(*__pChildEdit);
206 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
208 pAccessibilityContainer = GetAccessibilityContainer();
209 if (pAccessibilityContainer)
211 _AccessibilityContainer* pAccessibilityEdit = __pChildEdit->GetAccessibilityContainer();
212 if (pAccessibilityEdit)
214 pAccessibilityContainer->AddChildContainer(*pAccessibilityEdit);
220 if (editStyle & EDIT_STYLE_PASSWORD)
222 __pChildEdit->SetPasswordVisible(__pCallerEdit->IsPasswordVisible());
227 SetClipChildrenEnabled(false);
231 __pIndicator = _Indicator::CreateIndicator();
232 SysTryCatch(NID_UI_CTRL, __pIndicator, , GetLastResult(), "Unable to create Indicator");
234 _VisualElement* pKeypadVisualElement = GetVisualElement();
235 pKeypadVisualElement->AttachChild(*__pIndicator);
237 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*__pIndicator);
238 r = pImpl->SetZOrderGroup(_ControlVisualElement::Z_ORDER_GROUP_CONTROL + 4);
240 float indicatorwidth = 0.0f;
241 float indicatorheight = 0.0f;
243 if (GetOrientation() == _CONTROL_ORIENTATION_PORTRAIT)
245 indicatorwidth = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF().width;
246 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
250 indicatorwidth = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF().height;
251 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
254 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, indicatorwidth, indicatorheight));
255 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
258 UsbKeyboardConnected = __pChildEdit->IsUsbKeyboardConnected();
260 r = ChangeLayoutInternal(LAYOUT_CHANGE_NONE);
261 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
263 __pChildEdit->SetVisibleState(true);
265 __isInitialized = true;
267 r = _SettingInfoImpl::AddSettingEventListenerForInternal(*this);
268 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
278 _Keypad::Dispose(void)
280 result r = E_SUCCESS;
283 DetachChild(*__pFooter);
289 DetachChild(*__pChildEdit);
293 __pCallerEdit = null;
303 _VisualElement* pKeypadVisualElement = GetVisualElement();
304 pKeypadVisualElement->DetachChild(*__pIndicator);
309 _SettingInfoImpl::RemoveSettingEventListenerForInternal(*this);
315 _Keypad::CreateFooter(void)
317 result r = E_SUCCESS;
319 _Toolbar* pFooter = null;
323 _ControlManager* pControlManager = _ControlManager::GetInstance();
324 SysTryReturn(NID_UI_CTRL, pControlManager, null, E_SYSTEM, "Fail to get ControlManager instance");
326 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
327 SysTryReturn(NID_UI_CTRL, pFrame, null, E_SYSTEM, "This instance is not constructed.");
331 FloatRectangle bounds(0.0f,0.0f,0.0f,0.0f);
333 FloatDimension screenSize = pControlManager->GetScreenSizeF();
335 pFooter = _Toolbar::CreateToolbarN(false);
336 SysTryReturn(NID_UI_CTRL, pFooter, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
338 r = pFooter->Construct();
339 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
341 r = pFooter->SetStyle(TOOLBAR_TEXT);
342 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
344 pFooter->SetResizable(true);
345 pFooter->SetMovable(true);
347 _ControlOrientation orientation = GetOrientation();
349 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
351 bounds.width = screenSize.width;
355 bounds.width = screenSize.height;
359 GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, height);
360 bounds.height = height;
362 r = pFooter->SetBounds(bounds);
363 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
365 pFooter->SetResizable(false);
366 pFooter->SetMovable(false);
368 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
370 r = pFooter->AddItem(CreateButtonItemN(COMMAND_DONE_BUTTON_ID, doneText));
371 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
373 pFooter->AddActionEventListener(*this);
375 r = AttachChild(*pFooter);
376 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
392 _Keypad::CreateButtonItemN(int actionId, const String& text)
394 result r = E_SUCCESS;
395 _Button* pButton = _Button::CreateButtonN();
396 SysTryReturn(NID_UI_CTRL, pButton, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
398 r = pButton->SetActionId(actionId);
399 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
401 r = pButton->SetText(text);
402 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
412 _Keypad::ChangeLayoutInternal(LayoutChangeState layoutChangeState)
414 result r = E_SUCCESS;
415 _ControlManager* pControlManager = _ControlManager::GetInstance();
416 SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "Failed to get root.");
417 FloatDimension screenSize = pControlManager->GetScreenSizeF();
418 _ControlOrientation orientation = GetOrientation();
420 _Frame* pFrame = dynamic_cast <_Frame*>(pControlManager->GetCurrentFrame());
421 SysTryReturn(NID_UI_CTRL, pFrame, null, E_SYSTEM, "This instance is not constructed.");
423 FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
424 FloatRectangle keypadRect(0.0f, 0.0f, 0.0f, 0.0f);
425 float indicatorHeight = 0.0f;
426 float clipboardHeight = 0.0f;
427 bool isKeypadExist = false;
428 bool isClipboardExist = false;
430 FloatDimension indicatorDimension(0.0f, 0.0f);
431 FloatDimension keypadDimsnsion(0.0f, 0.0f);
433 if (__isInitialized || __pChildEdit->IsUsbKeyboardConnected())
435 isKeypadExist = __pChildEdit->CheckKeypadExist(orientation);
436 isClipboardExist = __pChildEdit->IsClipboardExist();
439 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
441 bounds.width = screenSize.width;
442 bounds.height = screenSize.height;
446 bounds.width = screenSize.height;
447 bounds.height = screenSize.width;
450 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
452 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorHeight);
455 indicatorDimension.height = indicatorHeight;
459 r = SetBounds(CoordinateSystem::AlignToDevice(bounds));
460 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
464 FloatRectangle editRect = CoordinateSystem::AlignToDevice(bounds);
466 editRect.y = CoordinateSystem::AlignToDevice(indicatorDimension).height;
468 float footerHeight = 0.0f;
469 FloatDimension footerDimension(0.0f, 0.0f);
471 GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, footerHeight);
472 footerDimension.height = footerHeight;
474 editRect.height -= CoordinateSystem::AlignToDevice(indicatorDimension).height;
475 editRect.height -= CoordinateSystem::AlignToDevice(footerDimension).height;
477 if ((isClipboardExist && layoutChangeState == LAYOUT_CHANGE_ROTATE))
483 if (isKeypadExist || isClipboardExist)
487 r = __pChildEdit->GetKeypadBounds(keypadRect);
488 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
491 if (isClipboardExist)
493 clipboardHeight = __pChildEdit->GetClipboardHeight();
496 if (clipboardHeight > keypadRect.height)
498 keypadDimsnsion.height = clipboardHeight;
502 keypadDimsnsion.height = keypadRect.height;
505 editRect.height -= CoordinateSystem::AlignToDevice(keypadDimsnsion).height;
509 r = __pChildEdit->SetBounds(editRect);
510 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
512 FloatRectangle footerBounds(0.0f, 0.0f, 0.0f, 0.0f);
514 footerBounds.y = editRect.height + CoordinateSystem::AlignToDevice(indicatorDimension).height;
515 footerBounds.width = editRect.width;
516 footerBounds.height = CoordinateSystem::AlignToDevice(footerDimension).height;
518 __pFooter->SetResizable(true);
519 __pFooter->SetMovable(true);
521 __pFooter->SetBounds(footerBounds);
523 __pFooter->SetResizable(false);
524 __pFooter->SetMovable(false);
526 SysLog(NID_UI_CTRL, "[FULLEDIT] ChangeLayoutInternal Draw FullScreen window- Footer position(%f, %f, %f, %f)", footerBounds.x, footerBounds.y, footerBounds.width, footerBounds.height);
533 _Keypad::OnAttachedToMainTree(void)
535 result r = E_SUCCESS;
537 GetEcoreEvasMgr()->GetEcoreEvas()->SetOwner(*this, *GetOwner());//set owner to EcoreEvas for orientation set.
539 r = __pChildEdit->SetText(__text);
540 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
544 __pIndicator->OnAttachedToMainTree();
545 __pIndicator->AddIndicatorObject(this, GetRootWindow());
546 __pIndicator->SetIndicatorShowState(true);
547 __pIndicator->SetIndicatorAutoHide(false, true);
556 _Keypad::OnDetachingFromMainTree(void)
560 __pIndicator->DeleteIndicatorObject();
563 if (__pCallerEdit && !__pCallerEdit->IsInputEventEnabled())
565 __pCallerEdit->UnlockInputEvent();
568 return _Window::OnDetachingFromMainTree();
572 _Keypad::OnNativeWindowActivated(void)
574 if (__isFirstCall && __pChildEdit)
576 __pChildEdit->SetFocused();
577 __isFirstCall = false;
578 ChangeLayoutInternal(LAYOUT_CHANGE_NONE);
585 _Keypad::IsRotationSynchronized(void) const
591 _Keypad::OnDraw(void)
593 Color backgroundColor;
594 GET_COLOR_CONFIG(EDIT::BG_NORMAL, backgroundColor);
595 SetBackgroundColor(backgroundColor);
601 _Keypad::SetSingleLineEnabled(bool enabled)
603 SetProperty("singleLineEnabled", Variant(enabled));
609 _Keypad::IsSingleLineEnabled(void) const
611 Variant enabled = GetProperty("singleLineEnabled");
613 return enabled.ToBool();
617 _Keypad::SetPropertySingleLineEnabled(const Variant& enabled)
619 __isSingleLineEnabled = enabled.ToBool();
625 _Keypad::GetPropertySingleLineEnabled(void) const
627 return Variant(__isSingleLineEnabled);
631 _Keypad::GetText(void) const
633 Variant text = GetProperty("text");
635 return text.ToString();
639 _Keypad::SetText(const String& text)
641 SetProperty("text", Variant(text));
647 _Keypad::SetPropertyText(const Variant& text)
649 __text = text.ToString();
655 _Keypad::GetPropertyText(void) const
657 return Variant(__text);
661 _Keypad::AddTextEventListener(const _ITextEventListener& listener)
663 if (__pTextEvent == null)
665 __pTextEvent = _TextEvent::CreateInstanceN(*this);
666 SysTryReturn(NID_UI_CTRL, __pTextEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.\n");
669 return __pTextEvent->AddListener(listener);
673 _Keypad::RemoveTextEventListener(const _ITextEventListener& listener)
675 SysTryReturn(NID_UI_CTRL, __pTextEvent, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] This instance isn't constructed.");
676 __pTextEvent->RemoveListener(listener);
682 _Keypad::SetEditTextFilter(IEditTextFilter* pFilter)
686 __pChildEdit->SetEditTextFilter(pFilter);
693 _Keypad::SendOpaqueCommand (const Tizen::Base::String& command)
697 __pChildEdit->SendOpaqueCommand(command);
704 _Keypad::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
706 if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
708 OnActionPerformed(source, FOOTER_BACK_BUTTON_ID);
715 _Keypad::OnActionPerformed(const _Control& source, int actionId)
717 bool isReCreationLock = false;
718 if ((actionId != COMMAND_DONE_BUTTON_ID) && (actionId != FOOTER_BACK_BUTTON_ID))
723 __pChildEdit->HideKeypad();
727 __pCallerEdit->SetKeypadEnabled(false);
728 isReCreationLock = true;
731 if (isReCreationLock)
733 __pCallerEdit->SetKeypadEnabled(true);
736 CoreTextEventStatus textEventStatus = CORE_TEXT_EVENT_CHANGED;
737 if (actionId == COMMAND_DONE_BUTTON_ID)
739 __text = __pChildEdit->GetText();
740 textEventStatus = CORE_TEXT_EVENT_CHANGED;
744 textEventStatus = CORE_TEXT_EVENT_CANCELED;
747 __isCommandButtonPressed = true;
751 __pCallerEdit->SetText(__text);
752 _Control* pParent = __pCallerEdit->GetParent();
755 pParent->Invalidate(true);
758 __pCallerEdit->SendTextEvent(textEventStatus);
762 GetOwner()->Invalidate(true);
765 IEventArg* pEventArg = _TextEvent::CreateTextEventArgN(textEventStatus);
768 __pTextEvent->Fire(*pEventArg);
777 _Keypad::OnKeypadWillOpen(void)
779 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadWillOpen");
784 _Keypad::OnKeypadOpened(void)
786 if (__pChildEdit->IsUsbKeyboardConnected())
788 __isPredictionWindowOpendInUSBMode = true;
791 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadOpened");
793 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_SHOW);//usb off & bounded or usb on & prediction
799 _Keypad::OnKeypadClosed(void)
801 __isPredictionWindowOpendInUSBMode = false;
803 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadClosed");
805 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_HIDE);
811 _Keypad::OnKeypadBoundsChanged(void)
813 SysLog(NID_UI_CTRL, "[FULLEDIT] OnKeypadBoundsChanged");
815 ChangeLayoutInternal(LAYOUT_CHANGE_KEYPAD_BOUNDS_CHANGED);// predictive window show/hide
821 _Keypad::OnKeypadActionPerformed(CoreKeypadAction keypadAction)
827 _Keypad::OnChangeLayout(_ControlOrientation orientation)
829 float indicatorheight = 0.0f;
831 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
832 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
836 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
838 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
839 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, portraitSize.width, indicatorheight));
843 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, GetOrientation(), indicatorheight);
844 __pIndicator->SetBounds(FloatRectangle(0.0f, 0.0f, landscapeSize.width, indicatorheight));
847 __pIndicator->OnChangeLayout(orientation);
852 ChangeLayoutInternal(LAYOUT_CHANGE_ROTATE);
859 _Keypad::OnSettingChanged(String& key)
861 const wchar_t* LOCALE_LANGUAGE = L"http://tizen.org/setting/locale.language";
862 if (key == LOCALE_LANGUAGE)
866 _Button* pButton = __pFooter->GetItem(0);
870 GET_STRING_CONFIG(IDS_TPLATFORM_BUTTON_DONE, doneText);
871 pButton->SetText(doneText);
878 _Keypad::IsLayoutChangable(void) const
884 _Keypad::OnActivated(void)
886 _Window::OnActivated();
890 __pIndicator->Activate();
895 _Keypad::OnDeactivated(void)
897 _Window::OnDeactivated();
901 __pIndicator->Deactivate();
905 } } } // Tizen::Ui::Controls