2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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_EditAreaImpl.cpp
20 * @brief This is the implementation file for _EditAreaImpl class.
23 #include <FApp_AppInfo.h>
24 #include <FBaseInternalTypes.h>
25 #include <FBaseSysLog.h>
26 #include <FUiCtrlInputTypes.h>
27 #include "FUi_ResourceSizeInfo.h"
28 #include "FUi_ResourceManager.h"
29 #include "FUi_UiBuilder.h"
30 #include "FUiCtrl_EditAreaImpl.h"
32 using namespace Tizen::App;
33 using namespace Tizen::Base;
34 using namespace Tizen::Base::Runtime;
35 using namespace Tizen::Base::Utility;
36 using namespace Tizen::Graphics;
37 using namespace Tizen::Locales;
39 namespace Tizen { namespace Ui { namespace Controls
43 _EditAreaImpl::EditAreaSizeInfo::GetDefaultMinimumSize(_ControlOrientation orientation) const
46 Dimension editAreaMinimumSize(0, 0);
48 r = GET_DIMENSION_CONFIG(EDIT::MIN_SIZE, orientation, editAreaMinimumSize);
49 SysTryReturn(NID_UI, r == E_SUCCESS, editAreaMinimumSize, r, "System Error occurred.");
51 return editAreaMinimumSize;
55 _EditAreaImpl::GetInstance(EditArea& editArea)
57 return (static_cast<_EditAreaImpl*> (editArea._pControlImpl));
61 _EditAreaImpl::GetInstance(const EditArea& editArea)
63 return (static_cast<const _EditAreaImpl*> (editArea._pControlImpl));
66 _EditAreaImpl::_EditAreaImpl(EditArea* pPublic, _Edit* pCore)
67 : _ControlImpl(pPublic, pCore)
69 , __inputModeCategory(EDIT_INPUTMODE_ALPHA | EDIT_INPUTMODE_PREDICTIVE | EDIT_INPUTMODE_NUMERIC | EDIT_INPUTMODE_SYMBOL)
70 , __currentInputMode(EDIT_INPUTMODE_ALPHA)
71 , __pPublicActionEvent(null)
72 , __pPublicKeypadEvent(null)
73 , __pPublicLanguageEvent(null)
74 , __pPublicLinkEvent(null)
75 , __pPublicScrollPanelEvent(null)
76 , __pPublicTextBlockEvent(null)
77 , __pPublicTextEvent(null)
78 , __autoLinkMask(LINK_TYPE_NONE)
82 _EditAreaImpl::~_EditAreaImpl(void)
86 __pEdit->RemoveActionEventListener(*this);
87 __pEdit->RemoveLanguageEventListener(*this);
88 __pEdit->RemoveKeypadEventListener(*this);
89 __pEdit->RemoveTextBlockEventListener(*this);
90 __pEdit->RemoveTextEventListener(*this);
91 __pEdit->RemoveScrollPanelEventListener(*this);
92 __pEdit->RemoveUiLinkEventListener(*this);
95 if (__pPublicActionEvent)
97 delete __pPublicActionEvent;
98 __pPublicActionEvent = null;
101 if (__pPublicKeypadEvent)
103 delete __pPublicKeypadEvent;
104 __pPublicKeypadEvent = null;
107 if (__pPublicTextBlockEvent)
109 delete __pPublicTextBlockEvent;
110 __pPublicTextBlockEvent = null;
113 if (__pPublicLinkEvent)
115 delete __pPublicLinkEvent;
116 __pPublicLinkEvent = null;
119 if (__pPublicLanguageEvent)
121 delete __pPublicLanguageEvent;
122 __pPublicLanguageEvent = null;
125 if (__pPublicScrollPanelEvent)
127 delete __pPublicScrollPanelEvent;
128 __pPublicScrollPanelEvent = null;
131 if (__pPublicTextEvent)
133 delete __pPublicTextEvent;
134 __pPublicTextEvent = null;
139 _EditAreaImpl::CreateEditAreaImplN(EditArea* pControl, const Rectangle& rect)
142 result r = E_SUCCESS;
146 pCore = _Edit::CreateEditN();
147 SysTryReturn(NID_UI_CTRL, pCore, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
149 _EditAreaImpl* pImpl = new (std::nothrow) _EditAreaImpl(pControl, pCore);
151 r = CheckConstruction(pCore, pImpl);
152 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
158 _EditAreaImpl::GetPublicClassName(void) const
160 return "Tizen::Ui::Controls::EditArea";
164 _EditAreaImpl::GetPublic(void) const
166 return static_cast <const EditArea&>(_ControlImpl::GetPublic());
170 _EditAreaImpl::GetPublic(void)
172 return static_cast <EditArea&>(_ControlImpl::GetPublic());
176 _EditAreaImpl::GetCore(void) const
178 return static_cast <const _Edit&>(_ControlImpl::GetCore());
182 _EditAreaImpl::GetCore(void)
184 return static_cast <_Edit&>(_ControlImpl::GetCore());
188 _EditAreaImpl::Initialize(InputStyle inputStyle, int limitLength)
190 SysTryReturnResult(NID_UI_CTRL, (limitLength > 0), E_INVALID_ARG, "[E_INVALID_ARG] The limit length must be more than 0.");
192 result r = __pEdit->Initialize(EDIT_STYLE_NORMAL, inputStyle, limitLength);
193 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
195 if (!_AppInfo::IsOspCompat())
197 __pEdit->SetKeypadCommandButtonVisible(false);
200 __pPublicActionEvent = _PublicActionEvent::CreateInstanceN(GetPublic());
201 SysTryReturn(NID_UI_CTRL, __pPublicActionEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
203 r = __pEdit->AddActionEventListener(*this);
204 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
206 __pPublicLanguageEvent = _PublicLanguageEvent::CreateInstanceN(GetPublic());
207 SysTryReturn(NID_UI_CTRL, __pPublicLanguageEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
209 r = __pEdit->AddLanguageEventListener(*this);
210 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
212 __pPublicKeypadEvent = _PublicKeypadEvent::CreateInstanceN(GetPublic());
213 SysTryReturn(NID_UI_CTRL, __pPublicKeypadEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
215 r = __pEdit->AddKeypadEventListener(*this);
216 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
218 __pPublicTextBlockEvent = _PublicTextBlockEvent::CreateInstanceN(GetPublic());
219 SysTryReturn(NID_UI_CTRL, __pPublicTextBlockEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
221 r = __pEdit->AddTextBlockEventListener(*this);
222 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
224 __pPublicTextEvent = _PublicTextEvent::CreateInstanceN(GetPublic());
225 SysTryReturn(NID_UI_CTRL, __pPublicTextEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
227 r = __pEdit->AddTextEventListener(*this);
228 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
230 __pPublicScrollPanelEvent = _PublicScrollPanelEvent::CreateInstanceN(GetPublic());
231 SysTryReturn(NID_UI_CTRL, __pPublicScrollPanelEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
233 if (inputStyle == INPUT_STYLE_OVERLAY)
235 r = __pEdit->AddScrollPanelEventListener(*this);
236 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
239 __pPublicLinkEvent = _PublicLinkEvent::CreateInstanceN(GetPublic());
240 SysTryReturn(NID_UI_CTRL, __pPublicLinkEvent, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] System error occurred.");
242 r = __pEdit->AddUiLinkEventListener(*this);
243 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
245 if (inputStyle == INPUT_STYLE_OVERLAY)
247 __pEdit->SetAutoLinkMask(LINK_TYPE_URL | LINK_TYPE_EMAIL | LINK_TYPE_TEL_NUM);
254 _EditAreaImpl::GetTextAlignment(void) const
256 return __pEdit->GetTextAlignment();
260 _EditAreaImpl::SetTextAlignment(HorizontalAlignment alignment)
262 return __pEdit->SetTextAlignment(alignment);
266 _EditAreaImpl::IsViewModeEnabled(void) const
268 return __pEdit->GetPropertyViewModeEnabled().ToBool();
272 _EditAreaImpl::SetViewModeEnabled(bool enable)
274 Variant variantEnable(enable);
276 return __pEdit->SetPropertyViewModeEnabled(variantEnable);
280 _EditAreaImpl::SetAutoLinkMask(unsigned long autoLinks)
282 result r = E_SUCCESS;
283 Variant variantAutoLinks(autoLinks);
285 r = __pEdit->SetPropertyAutoLinkMask(variantAutoLinks);
289 __autoLinkMask = autoLinks;
297 _EditAreaImpl::GetAutoLinkMask(void) const
299 SysTryReturn(NID_UI_CTRL, (__pEdit->GetInputStyle() == INPUT_STYLE_OVERLAY), LINK_TYPE_NONE, E_UNSUPPORTED_OPERATION, "[E_UNSUPPORTED_OPERATION] The current state unable to this operation.");
300 return __autoLinkMask;
304 _EditAreaImpl::GetLineSpacing(void) const
306 return __pEdit->GetLineSpacing();
310 _EditAreaImpl::SetLineSpacing(int multiplier, int extra)
312 SysTryReturn(NID_UI_CTRL, multiplier >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The invalid argument is given.");
313 SysTryReturn(NID_UI_CTRL, extra >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The invalid argument is given.");
315 return __pEdit->SetLineSpacing(DEFAULT_LINE_SPACE * multiplier + extra);
319 _EditAreaImpl::GetMargin(EditMarginType marginType) const
321 if (marginType == EDIT_MARGIN_TYPE_VERTICAL)
323 return __pEdit->GetVerticalMargin(EDIT_TEXT_TOP_MARGIN);
327 return __pEdit->GetHorizontalMargin(EDIT_TEXT_LEFT_MARGIN);
332 _EditAreaImpl::SetMargin(EditMarginType marginType, int margin)
334 result r = E_SUCCESS;
335 Variant varMargin(margin);
337 if (marginType == EDIT_MARGIN_TYPE_HORIZONTAL)
339 r = __pEdit->SetHorizontalMargin(margin, EDIT_TEXT_LEFT_MARGIN);
340 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
341 r = __pEdit->SetHorizontalMargin(margin, EDIT_TEXT_RIGHT_MARGIN);
342 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
346 r = __pEdit->SetVerticalMargin(margin, EDIT_TEXT_TOP_MARGIN);
347 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
348 r = __pEdit->SetVerticalMargin(margin, EDIT_TEXT_BOTTOM_MARGIN);
349 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
356 _EditAreaImpl::SetKeypadActionEnabled(bool enable)
358 Variant variantEnable(enable);
360 return __pEdit->SetPropertyKeypadActionEnabled(variantEnable);
364 _EditAreaImpl::IsKeypadActionEnabled(void) const
366 return __pEdit->GetPropertyKeypadActionEnabled().ToBool();
370 _EditAreaImpl::GetKeypadAction(void) const
372 int coreKeypadAction = __pEdit->GetPropertyKeypadAction().ToInt();
373 KeypadAction publicKeypadAction = KEYPAD_ACTION_ENTER;
375 switch (coreKeypadAction)
377 case CORE_KEYPAD_ACTION_ENTER:
378 publicKeypadAction = KEYPAD_ACTION_ENTER;
381 case CORE_KEYPAD_ACTION_GO:
382 publicKeypadAction = KEYPAD_ACTION_GO;
385 case CORE_KEYPAD_ACTION_NEXT:
386 publicKeypadAction = KEYPAD_ACTION_NEXT;
389 case CORE_KEYPAD_ACTION_SEND:
390 publicKeypadAction = KEYPAD_ACTION_SEND;
393 case CORE_KEYPAD_ACTION_SEARCH:
394 publicKeypadAction = KEYPAD_ACTION_SEARCH;
397 case CORE_KEYPAD_ACTION_LOGIN:
398 publicKeypadAction = KEYPAD_ACTION_LOGIN;
401 case CORE_KEYPAD_ACTION_SIGN_IN:
402 publicKeypadAction = KEYPAD_ACTION_SIGN_IN;
405 case CORE_KEYPAD_ACTION_JOIN:
406 publicKeypadAction = KEYPAD_ACTION_JOIN;
409 case CORE_KEYPAD_ACTION_DONE:
410 publicKeypadAction = KEYPAD_ACTION_DONE;
417 return publicKeypadAction;
421 _EditAreaImpl::SetKeypadAction(KeypadAction keypadAction)
423 CoreKeypadAction coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
425 switch (keypadAction)
427 case KEYPAD_ACTION_ENTER:
428 coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
431 case KEYPAD_ACTION_GO:
432 coreKeypadAction = CORE_KEYPAD_ACTION_GO;
435 case KEYPAD_ACTION_NEXT:
436 coreKeypadAction = CORE_KEYPAD_ACTION_NEXT;
439 case KEYPAD_ACTION_SEND:
440 coreKeypadAction = CORE_KEYPAD_ACTION_SEND;
443 case KEYPAD_ACTION_SEARCH:
444 coreKeypadAction = CORE_KEYPAD_ACTION_SEARCH;
447 case KEYPAD_ACTION_LOGIN:
448 coreKeypadAction = CORE_KEYPAD_ACTION_LOGIN;
451 case KEYPAD_ACTION_SIGN_IN:
452 coreKeypadAction = CORE_KEYPAD_ACTION_SIGN_IN;
455 case KEYPAD_ACTION_JOIN:
456 coreKeypadAction = CORE_KEYPAD_ACTION_JOIN;
459 case KEYPAD_ACTION_DONE:
460 coreKeypadAction = CORE_KEYPAD_ACTION_DONE;
467 Variant variantKeypadAction((int)coreKeypadAction);
469 return __pEdit->SetPropertyKeypadAction(variantKeypadAction);
473 _EditAreaImpl::GetKeypadStyle(void) const
475 return (KeypadStyle)__pEdit->GetPropertyKeypadStyle().ToInt();
479 _EditAreaImpl::SetKeypadStyle(KeypadStyle keypadStyle)
481 Variant variantKeypadStyle((int)keypadStyle);
483 return __pEdit->SetPropertyKeypadStyle(variantKeypadStyle);
487 _EditAreaImpl::SetOverlayKeypadCommandButtonVisible(bool visible)
489 Variant variantVisible(visible);
491 return __pEdit->SetPropertyOverlayKeypadCommandButtonVisible(variantVisible);
495 _EditAreaImpl::IsOverlayCommandButtonVisible(void) const
497 return __pEdit->GetPropertyOverlayKeypadCommandButtonVisible().ToBool();
501 _EditAreaImpl::HideKeypad(void)
503 return __pEdit->HideKeypad();
507 _EditAreaImpl::GetTextSize(void) const
509 return __pEdit->GetPropertyTextSize().ToInt();
513 _EditAreaImpl::SetTextSize(int size)
515 Variant variantSize(size);
517 return __pEdit->SetPropertyTextSize(variantSize);
521 _EditAreaImpl::GetColor(EditStatus status) const
527 case EDIT_STATUS_NORMAL:
528 color = __pEdit->GetPropertyNormalColor().ToColor();
531 case EDIT_STATUS_DISABLED:
532 color = __pEdit->GetPropertyDisabledColor().ToColor();
535 case EDIT_STATUS_HIGHLIGHTED:
536 color = __pEdit->GetPropertyHighlightedColor().ToColor();
539 case EDIT_STATUS_PRESSED:
540 color = __pEdit->GetPropertyPressedColor().ToColor();
551 _EditAreaImpl::GetTextColor(EditTextColor type) const
553 return __pEdit->GetTextColor(type);
557 _EditAreaImpl::SetBackgroundBitmap(EditStatus status, const Bitmap& bitmap)
559 return __pEdit->SetBackgroundBitmap(status, bitmap);
563 _EditAreaImpl::SetColor(EditStatus status, const Color& color)
565 result r = E_SUCCESS;
566 Variant variantColor(color);
570 case EDIT_STATUS_NORMAL:
571 r = __pEdit->SetPropertyNormalColor(variantColor);
574 case EDIT_STATUS_DISABLED:
575 r = __pEdit->SetPropertyDisabledColor(variantColor);
578 case EDIT_STATUS_HIGHLIGHTED:
579 r = __pEdit->SetPropertyHighlightedColor(variantColor);
582 case EDIT_STATUS_PRESSED:
583 r = __pEdit->SetPropertyPressedColor(variantColor);
590 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Unable to set color.", GetErrorMessage(r));
596 _EditAreaImpl::SetTextColor(EditTextColor type, const Color& color)
598 return __pEdit->SetTextColor(type, color);
602 _EditAreaImpl::GetText(int start, int end) const
604 return __pEdit->GetText(start, end);
608 _EditAreaImpl::AddUiLinkEventListener(IUiLinkEventListener& listener)
611 SysAssertf(__pPublicLinkEvent != null, "Not yet constructed. Construct() should be called before use.");
613 return __pPublicLinkEvent->AddListener(listener);
617 _EditAreaImpl::RemoveUiLinkEventListener(IUiLinkEventListener& listener)
620 SysAssertf(__pPublicLinkEvent != null, "Not yet constructed. Construct() should be called before use.");
622 return __pPublicLinkEvent->RemoveListener(listener);
626 _EditAreaImpl::AddKeypadEventListener(IKeypadEventListener& listener)
629 SysAssertf(__pPublicKeypadEvent != null, "Not yet constructed. Construct() should be called before use.");
631 return __pPublicKeypadEvent->AddListener(listener);
635 _EditAreaImpl::RemoveKeypadEventListener(IKeypadEventListener& listener)
638 SysAssertf(__pPublicKeypadEvent != null, "Not yet constructed. Construct() should be called before use.");
640 return __pPublicKeypadEvent->RemoveListener(listener);
644 _EditAreaImpl::AddTextBlockEventListener(ITextBlockEventListener& listener)
647 SysAssertf(__pPublicTextBlockEvent != null, "Not yet constructed. Construct() should be called before use.");
649 return __pPublicTextBlockEvent->AddListener(listener);
653 _EditAreaImpl::RemoveTextBlockEventListener(ITextBlockEventListener& listener)
656 SysAssertf(__pPublicTextBlockEvent != null, "Not yet constructed. Construct() should be called before use.");
658 return __pPublicTextBlockEvent->RemoveListener(listener);
662 _EditAreaImpl::AddTextEventListener(ITextEventListener& listener)
665 SysAssertf(__pPublicTextEvent != null, "Not yet constructed. Construct() should be called before use.");
667 return __pPublicTextEvent->AddListener(listener);
671 _EditAreaImpl::RemoveTextEventListener(ITextEventListener& listener)
674 SysAssertf(__pPublicTextEvent != null, "Not yet constructed. Construct() should be called before use.");
676 return __pPublicTextEvent->RemoveListener(listener);
680 _EditAreaImpl::AddScrollPanelEventListener(IScrollPanelEventListener& listener)
683 SysTryReturn(NID_UI_CTRL, (__pEdit->GetInputStyle() == INPUT_STYLE_OVERLAY), E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.")
684 SysAssertf(__pPublicScrollPanelEvent != null, "Not yet constructed. Construct() should be called before use.");
686 return __pPublicScrollPanelEvent->AddListener(listener);
690 _EditAreaImpl::RemoveScrollPanelEventListener(IScrollPanelEventListener& listener)
693 SysAssertf(__pPublicScrollPanelEvent != null, "Not yet constructed. Construct() should be called before use.");
695 return __pPublicScrollPanelEvent->RemoveListener(listener);
699 _EditAreaImpl::AddActionEventListener(IActionEventListener& listener)
702 SysAssertf(__pPublicActionEvent != null, "Not yet constructed. Construct() should be called before use.");
704 return __pPublicActionEvent->AddListener(listener);
708 _EditAreaImpl::RemoveActionEventListener(IActionEventListener& listener)
711 SysAssertf(__pPublicActionEvent != null, "Not yet constructed. Construct() should be called before use.");
713 return __pPublicActionEvent->RemoveListener(listener);
717 _EditAreaImpl::AddLanguageEventListener(ILanguageEventListener& listener)
720 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
722 return __pPublicLanguageEvent->AddListener(listener);
726 _EditAreaImpl::RemoveLanguageEventListener(ILanguageEventListener& listener)
729 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
731 return __pPublicLanguageEvent->RemoveListener(listener);
735 _EditAreaImpl::GetRemainingLength(void) const
737 return __pEdit->GetRemainingLength();
741 _EditAreaImpl::SetLowerCaseModeEnabled(bool enable)
743 Variant variantEnable(enable);
745 __pEdit->SetPropertyLowerCaseModeEnabled(variantEnable);
749 _EditAreaImpl::IsLowerCaseModeEnabled(void) const
751 return __pEdit->GetPropertyLowerCaseModeEnabled().ToBool();
755 _EditAreaImpl::SetInputModeCategory(unsigned long categories, bool enable)
757 result r = E_SUCCESS;
758 const unsigned long INPUT_MODE_ALL_MASK = EDIT_INPUTMODE_ALPHA | EDIT_INPUTMODE_PREDICTIVE | EDIT_INPUTMODE_NUMERIC| EDIT_INPUTMODE_SYMBOL;
759 KeypadStyle keypadStyle = GetKeypadStyle();
763 case KEYPAD_STYLE_NUMBER:
765 case KEYPAD_STYLE_IP_V4:
768 if (categories & (EDIT_INPUTMODE_ALPHA | EDIT_INPUTMODE_PREDICTIVE | EDIT_INPUTMODE_SYMBOL))
770 SysLogException(NID_UI_CTRL, E_INVALID_OPERATION, "[E_INVALID_OPERATION] The current keypad style can not support given categories.");
772 return E_INVALID_OPERATION;
777 if (categories & EDIT_INPUTMODE_NUMERIC)
779 SysLogException(NID_UI_CTRL, E_INVALID_OPERATION, "[E_INVALID_OPERATION] The current keypad style can not support given categories.");
781 return E_INVALID_OPERATION;
786 case KEYPAD_STYLE_PHONE_NUMBER:
789 if (categories & (EDIT_INPUTMODE_ALPHA | EDIT_INPUTMODE_PREDICTIVE))
791 SysLogException(NID_UI_CTRL, E_INVALID_OPERATION, "[E_INVALID_OPERATION] The current keypad style can not support given categories.");
793 return E_INVALID_OPERATION;
796 if (!((categories & EDIT_INPUTMODE_NUMERIC) && (categories & EDIT_INPUTMODE_SYMBOL)))
798 SysLogException(NID_UI_CTRL, E_INVALID_OPERATION, "[E_INVALID_OPERATION] The current keypad style can not support given categories.");
800 return E_INVALID_OPERATION;
805 if (categories & (EDIT_INPUTMODE_NUMERIC | EDIT_INPUTMODE_SYMBOL))
807 SysLogException(NID_UI_CTRL, E_INVALID_OPERATION, "[E_INVALID_OPERATION] The current keypad style can not support given categories.");
809 return E_INVALID_OPERATION;
818 if (((enable == true) && (categories == 0)) || ((enable == false) && (categories == INPUT_MODE_ALL_MASK)))
820 SysLogException(NID_UI_CTRL, E_INVALID_ARG, "[E_INVALID_ARG] All input modes cannot be disabled.");
822 return E_INVALID_ARG;
825 if ((enable == false) && (categories & __currentInputMode))
827 SysLogException(NID_UI_CTRL, E_INVALID_ARG, "[E_INVALID_ARG] The current input modes cannot be disabled.");
829 return E_INVALID_ARG;
834 __inputModeCategory = categories;
835 if ((~categories) & EDIT_INPUTMODE_PREDICTIVE)
837 __pEdit->SetTextPredictionEnabled(false);
842 __inputModeCategory = (~categories & INPUT_MODE_ALL_MASK);
843 if (categories == EDIT_INPUTMODE_PREDICTIVE)
845 __pEdit->SetTextPredictionEnabled(false);
849 // if currentInputModeCategory doesn't exist in categories, then set tempInputMode.
850 if (!(categories & __currentInputMode))
852 const int INPUT_MODE_CATEGORY_MAX = 4;
853 EditInputModeCategory newInputMode = __currentInputMode;
854 EditInputModeCategory tempInputMode = EDIT_INPUTMODE_ALPHA;
855 for (int i = 0; i < INPUT_MODE_CATEGORY_MAX; i++)
857 if ( (categories & tempInputMode) && (tempInputMode != EDIT_INPUTMODE_PREDICTIVE))
859 newInputMode = tempInputMode;
863 switch (tempInputMode)
865 case EDIT_INPUTMODE_ALPHA:
866 tempInputMode = EDIT_INPUTMODE_PREDICTIVE;
869 case EDIT_INPUTMODE_PREDICTIVE:
870 tempInputMode = EDIT_INPUTMODE_NUMERIC;
873 case EDIT_INPUTMODE_NUMERIC:
874 tempInputMode = EDIT_INPUTMODE_SYMBOL;
882 if (__currentInputMode != newInputMode)
884 r = SetCurrentInputModeCategory(newInputMode);
892 _EditAreaImpl::SetCurrentInputModeCategory(EditInputModeCategory inputModeCategory)
894 KeypadStyle currentKeypadStyle = GetKeypadStyle();
895 KeypadStyle keypadStyle = KEYPAD_STYLE_NORMAL;
897 if (inputModeCategory == EDIT_INPUTMODE_NUMERIC)
899 if (currentKeypadStyle == KEYPAD_STYLE_NORMAL)
901 __pEdit->SetKeypadNormalNumberStyle(true);
905 keypadStyle = KEYPAD_STYLE_NUMBER;
906 Variant variantKeypadStyle((int)keypadStyle);
908 __pEdit->SetPropertyKeypadStyle(variantKeypadStyle);
911 else if (inputModeCategory == EDIT_INPUTMODE_SYMBOL)
913 if (currentKeypadStyle == KEYPAD_STYLE_NORMAL)
915 __pEdit->SetKeypadNormalNumberStyle(true);
918 else if (inputModeCategory == EDIT_INPUTMODE_PREDICTIVE)
920 __pEdit->SetTextPredictionEnabled(true);
923 __currentInputMode = inputModeCategory;
929 _EditAreaImpl::GetInputModeCategory(void) const
931 return __inputModeCategory;
934 EditInputModeCategory
935 _EditAreaImpl::GetCurrentInputModeCategory(void) const
937 return __currentInputMode;
941 _EditAreaImpl::IsTextPredictionEnabled(void) const
943 return __pEdit->IsTextPredictionEnabled();
947 _EditAreaImpl::SetTextPredictionEnabled(bool enable)
949 return __pEdit->SetTextPredictionEnabled(enable);
953 _EditAreaImpl::SetCursorPosition(int position)
955 Variant variantPosition(position);
957 return __pEdit->SetPropertyCursorPosition(variantPosition);
961 _EditAreaImpl::GetCursorPosition(void) const
963 return __pEdit->GetPropertyCursorPosition().ToInt();
967 _EditAreaImpl::GetText(void) const
969 return __pEdit->GetPropertyText().ToString();
973 _EditAreaImpl::GetTextLength(void) const
975 return __pEdit->GetTextLength();
979 _EditAreaImpl::SetText(const String& text)
981 Variant variantText(text);
983 return __pEdit->SetPropertyText(variantText);
987 _EditAreaImpl::InsertTextAtCursorPosition(const String& text)
989 return __pEdit->InsertTextAtCursorPosition(text);
993 _EditAreaImpl::AppendText(const String& text)
995 return __pEdit->AppendText(text);
999 _EditAreaImpl::AppendCharacter(const Character& character)
1001 return __pEdit->AppendCharacter(character);
1005 _EditAreaImpl::InsertTextAt(int position, const String& text, const Bitmap& textImage)
1007 return __pEdit->InsertTextAt(position, text, textImage);
1011 _EditAreaImpl::AppendText(const String& text, const Bitmap& textImage)
1013 return __pEdit->AppendText(text, textImage);
1017 _EditAreaImpl::Clear(void)
1019 return __pEdit->ClearText();
1023 _EditAreaImpl::DeleteCharacterAtCursorPosition(void)
1025 return __pEdit->DeleteCharacterAtCursorPosition();
1029 _EditAreaImpl::GetCurrentTextRange(int& start, int& end) const
1031 return __pEdit->GetCurrentTextRange(start, end);
1035 _EditAreaImpl::SetGuideText(const String& guideText)
1037 Variant variantGuideText(guideText);
1039 __pEdit->SetPropertyGuideText(variantGuideText);
1043 _EditAreaImpl::GetGuideText(void) const
1045 return __pEdit->GetPropertyGuideText().ToString();
1049 _EditAreaImpl::GetGuideTextColor(void) const
1051 return __pEdit->GetPropertyGuideTextColor().ToColor();
1055 _EditAreaImpl::SetGuideTextColor(const Color& color)
1057 Variant variantColor(color);
1059 return __pEdit->SetPropertyGuideTextColor(variantColor);
1063 _EditAreaImpl::SetKeypadEnabled(bool enable)
1065 Variant variantEnable(enable);
1067 __pEdit->SetPropertyKeypadEnabled(variantEnable);
1071 _EditAreaImpl::IsKeypadEnabled(void) const
1073 return __pEdit->GetPropertyKeypadEnabled().ToBool();
1077 _EditAreaImpl::ShowKeypad(void)
1079 return __pEdit->ShowKeypad();
1083 _EditAreaImpl::GetTextLineCount(void) const
1085 return __pEdit->GetTextLineCount();
1089 _EditAreaImpl::GetBlockRange(int& start, int& end) const
1091 __pEdit->GetBlockRange(start, end);
1095 _EditAreaImpl::BeginBlock(void)
1097 return __pEdit->BeginTextBlock();
1101 _EditAreaImpl::ReleaseBlock(void)
1103 return __pEdit->ReleaseTextBlock();
1107 _EditAreaImpl::IsBlocked(void) const
1109 return __pEdit->IsBlocked();
1113 _EditAreaImpl::Copy(void)
1115 return __pEdit->CopyText();
1119 _EditAreaImpl::Cut(void)
1121 return __pEdit->CutText();
1125 _EditAreaImpl::Paste(void)
1127 return __pEdit->PasteText();
1131 _EditAreaImpl::Remove(void)
1133 SysTryReturnResult(NID_UI_CTRL, (__pEdit->RemoveTextBlock() == E_SUCCESS), E_SYSTEM, "A system error has occurred");
1139 _EditAreaImpl::IsClipped(void) const
1141 return __pEdit->IsClipped();
1145 _EditAreaImpl::SetOverlayKeypadCommandButton(CommandButtonPosition position, const String& text, int actionId)
1147 return __pEdit->SetKeypadCommandButton(position, text, actionId);
1151 _EditAreaImpl::GetOverlayKeypadCommandButtonText(CommandButtonPosition position) const
1153 return __pEdit->GetKeypadCommandButtonText(position);
1157 _EditAreaImpl::GetOverlayKeypadCommandButtonActionId(CommandButtonPosition position) const
1159 return __pEdit->GetKeypadCommandButtonActionId(position);
1163 _EditAreaImpl::SetCurrentLanguage(LanguageCode languageCode)
1165 return __pEdit->SetCurrentLanguage(languageCode);
1169 _EditAreaImpl::GetCurrentLanguage(LanguageCode& language) const
1171 return __pEdit->GetCurrentLanguage(language);
1175 _EditAreaImpl::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
1181 _EditAreaImpl::OnTextValueChanged(const _Control& source)
1183 if (__pPublicTextEvent != null)
1185 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CHANGED);
1186 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
1188 __pPublicTextEvent->Fire(*pEventArg);
1192 SysLog(NID_UI_CTRL, "Event is not created.");
1197 _EditAreaImpl::OnTextValueChangeCanceled(const _Control& source)
1199 if (__pPublicTextEvent != null)
1201 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CANCELED);
1202 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
1204 __pPublicTextEvent->Fire(*pEventArg);
1208 SysLog(NID_UI_CTRL, "Event is not created.");
1213 _EditAreaImpl::OnActionPerformed(const _Control& source, int actionId)
1215 if (__pPublicActionEvent != null)
1217 IEventArg* pActionEventArg = _PublicActionEvent::CreateActionEventArgN(actionId);
1218 SysTryReturnVoidResult(NID_UI_CTRL, pActionEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1220 __pPublicActionEvent->Fire(*pActionEventArg);
1224 SysLog(NID_UI_CTRL, "Event is not created.");
1229 _EditAreaImpl::OnLinkClicked(_Control& source, const String& text, Utility::LinkType linkType, const String& link)
1231 if (__pPublicLinkEvent != null)
1233 IEventArg* pLinkEventArg = _PublicLinkEvent::CreateLinkEventArgN(text, linkType, link);
1234 SysTryReturnVoidResult(NID_UI_CTRL, pLinkEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1236 __pPublicLinkEvent->Fire(*pLinkEventArg);
1240 SysLog(NID_UI_CTRL, "Event is not created.");
1245 _EditAreaImpl::OnTextBlockSelected(_Control& source, int start, int end)
1247 if (__pPublicTextBlockEvent != null)
1249 IEventArg* pTextBlockEventArg = _PublicTextBlockEvent::CreateTextBlockEventArgN(start, end);
1250 SysTryReturnVoidResult(NID_UI_CTRL, pTextBlockEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _TextBlockEventArg.");
1252 __pPublicTextBlockEvent->Fire(*pTextBlockEventArg);
1256 SysLog(NID_UI_CTRL, "Event is not created.");
1261 _EditAreaImpl::OnKeypadWillOpen(void)
1263 if (__pPublicKeypadEvent)
1265 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1266 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CREATED);
1267 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1269 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1273 SysLog(NID_UI_CTRL, "Event is not created.");
1278 _EditAreaImpl::OnKeypadOpened(void)
1280 if (__pPublicKeypadEvent)
1282 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1283 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_OPEN);
1284 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1286 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1290 SysLog(NID_UI_CTRL, "Event is not created.");
1295 _EditAreaImpl::OnKeypadClosed(void)
1297 if (__pPublicKeypadEvent)
1299 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1300 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CLOSE);
1301 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1303 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1307 SysLog(NID_UI_CTRL, "Event is not created.");
1312 _EditAreaImpl::OnKeypadBoundsChanged(void)
1314 if (__pPublicKeypadEvent)
1316 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1317 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_BOUNDS_CHANGED);
1318 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1320 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1324 SysLog(NID_UI_CTRL, "Event is not created.");
1329 _EditAreaImpl::OnKeypadActionPerformed(CoreKeypadAction keypadAction)
1331 if (__pPublicKeypadEvent)
1333 KeypadAction onKeypadAction = KEYPAD_ACTION_ENTER;
1334 switch (keypadAction)
1336 case CORE_KEYPAD_ACTION_ENTER:
1337 onKeypadAction = KEYPAD_ACTION_ENTER;
1340 case CORE_KEYPAD_ACTION_GO:
1341 onKeypadAction = KEYPAD_ACTION_GO;
1344 case CORE_KEYPAD_ACTION_NEXT:
1345 onKeypadAction = KEYPAD_ACTION_NEXT;
1348 case CORE_KEYPAD_ACTION_SEND:
1349 onKeypadAction = KEYPAD_ACTION_SEND;
1352 case CORE_KEYPAD_ACTION_SEARCH:
1353 onKeypadAction = KEYPAD_ACTION_SEARCH;
1356 case CORE_KEYPAD_ACTION_LOGIN:
1357 onKeypadAction = KEYPAD_ACTION_LOGIN;
1360 case CORE_KEYPAD_ACTION_SIGN_IN:
1361 onKeypadAction = KEYPAD_ACTION_SIGN_IN;
1364 case CORE_KEYPAD_ACTION_JOIN:
1365 onKeypadAction = KEYPAD_ACTION_JOIN;
1368 case CORE_KEYPAD_ACTION_DONE:
1369 onKeypadAction = KEYPAD_ACTION_DONE;
1376 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1377 GetPublic(), onKeypadAction, KEYPAD_EVENT_STATUS_ENTERACTION);
1378 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1380 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1384 SysLog(NID_UI_CTRL, "Event is not created.");
1389 _EditAreaImpl::OnLanguageChanged(LanguageCode oldLanguage, LanguageCode newLanguage)
1391 if (__pPublicLanguageEvent)
1393 IEventArg* pKLanguageEventArg = _PublicLanguageEvent::CreateLanguageEventArgN(GetPublic(), oldLanguage, newLanguage);
1394 SysTryReturnVoidResult(NID_UI_CTRL, pKLanguageEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _KeypadEventArg.");
1396 __pPublicLanguageEvent->Fire(*pKLanguageEventArg);
1400 SysLog(NID_UI_CTRL, "Event is not created.");
1405 _EditAreaImpl::OnOverlayControlCreated(const _Control& source)
1407 if (__pPublicScrollPanelEvent != null)
1409 IEventArg* pEventArg = _PublicScrollPanelEvent::CreateScrollPanelEventArgN(OVERLAY_CONTROL_CREATED);
1410 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1412 __pPublicScrollPanelEvent->Fire(*pEventArg);
1416 SysLog(NID_UI_CTRL, "Event is not created.");
1421 _EditAreaImpl::OnOverlayControlOpened(const _Control& source)
1423 if (__pPublicScrollPanelEvent != null)
1425 IEventArg* pEventArg = _PublicScrollPanelEvent::CreateScrollPanelEventArgN(OVERLAY_CONTROL_OPENED);
1426 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1428 __pPublicScrollPanelEvent->Fire(*pEventArg);
1432 SysLog(NID_UI_CTRL, "Event is not created.");
1437 _EditAreaImpl::OnOverlayControlClosed(const _Control& source)
1439 if (__pPublicScrollPanelEvent != null)
1441 IEventArg* pEventArg = _PublicScrollPanelEvent::CreateScrollPanelEventArgN(OVERLAY_CONTROL_CLOSED);
1442 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1444 __pPublicScrollPanelEvent->Fire(*pEventArg);
1448 SysLog(NID_UI_CTRL, "Event is not created.");
1453 _EditAreaImpl::OnOtherControlSelected(const _Control& source)
1455 if (__pPublicScrollPanelEvent != null)
1457 IEventArg* pEventArg = _PublicScrollPanelEvent::CreateScrollPanelEventArgN(OTHER_CONTROL_SELECTED);
1458 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create _LinkEventArg.");
1460 __pPublicScrollPanelEvent->Fire(*pEventArg);
1464 SysLog(NID_UI_CTRL, "Event is not created.");
1468 class _EditAreaMaker
1469 : public _UiBuilderControlMaker
1472 _EditAreaMaker(_UiBuilder* pUiBuilder)
1473 : _UiBuilderControlMaker(pUiBuilder){};
1474 virtual ~_EditAreaMaker(){};
1475 static _UiBuilderControlMaker* GetInstance(_UiBuilder* pUiBuilder)
1477 _EditAreaMaker* pEditAreaMaker = new (std::nothrow) _EditAreaMaker(pUiBuilder);
1478 return pEditAreaMaker;
1481 virtual Control* Make(_UiBuilderControl* pControl)
1483 result r = E_SYSTEM;
1484 _UiBuilderControlLayout* pControlProperty = null;
1485 EditArea* pEditArea = null;
1487 String elementString;
1488 InputStyle inputStyle = INPUT_STYLE_FULLSCREEN;
1489 int limitLength = EDIT_AREA_DEFAULT_LIMIT_LENGTH;
1491 KeypadStyle keypadStyle = KEYPAD_STYLE_NORMAL;
1492 KeypadAction keypadAction = KEYPAD_ACTION_ENTER;
1493 bool lowerCaseMode = false;
1494 HorizontalAlignment horizontalAlignment = ALIGNMENT_LEFT;
1495 bool viewModeEnable = false;
1496 bool commandButtonVisible = false;
1499 int opacity = EDIT_COLOR_OPACITY;
1500 int horizontalMargin = 0;
1501 int verticalMargin = 0;
1503 GetProperty(pControl, &pControlProperty);
1504 if (pControlProperty == null)
1509 pEditArea = new (std::nothrow) EditArea();
1510 if (pEditArea == null)
1515 rect = pControlProperty->GetRect();
1517 if (pControl->GetElement(L"inputStyle", elementString) || pControl->GetElement(L"InputStyle", elementString))
1519 if (elementString.Equals(L"INPUT_STYLE_OVERLAY", false))
1521 inputStyle = INPUT_STYLE_OVERLAY;
1525 inputStyle = INPUT_STYLE_FULLSCREEN;
1528 if (pControl->GetElement(L"commandButtonVisible", elementString))
1530 if (elementString.Equals(L"true", false))
1532 commandButtonVisible = true;
1538 commandButtonVisible = true;
1543 if (pControl->GetElement(L"limitLength", elementString))
1545 Base::Integer::Parse(elementString, limitLength);
1548 r = pEditArea->Construct(rect, inputStyle, limitLength);
1555 if (commandButtonVisible == false)
1557 pEditArea->SetOverlayKeypadCommandButtonVisible(false);
1560 if (pControl->GetElement(L"text", elementString))
1562 r = pEditArea->SetText(elementString);
1564 if (pControl->GetElement(L"guideText", elementString))
1566 pEditArea->SetGuideText(elementString);
1569 if (pControl->GetElement(L"keypadStyle", elementString))
1571 if (elementString.Equals(L"KEYPAD_STYLE_NORMAL", false))
1573 keypadStyle = KEYPAD_STYLE_NORMAL;
1575 else if (elementString.Equals(L"KEYPAD_STYLE_PASSWORD", false))
1577 keypadStyle = KEYPAD_STYLE_PASSWORD;
1579 else if (elementString.Equals(L"KEYPAD_STYLE_EMAIL", false))
1581 keypadStyle = KEYPAD_STYLE_EMAIL;
1583 else if (elementString.Equals(L"KEYPAD_STYLE_URL", false))
1585 keypadStyle = KEYPAD_STYLE_URL;
1587 else if (elementString.Equals(L"KEYPAD_STYLE_NUMBER", false))
1589 keypadStyle = KEYPAD_STYLE_NUMBER;
1591 else if (elementString.Equals(L"KEYPAD_STYLE_PHONE_NUMBER", false))
1593 keypadStyle = KEYPAD_STYLE_PHONE_NUMBER;
1595 else if (elementString.Equals(L"KEYPAD_STYLE_IP_V4", false))
1597 keypadStyle = KEYPAD_STYLE_IP_V4;
1600 r = pEditArea->SetKeypadStyle(keypadStyle);
1603 if (pControl->GetElement(L"keypadAction", elementString))
1605 if (elementString.Equals(L"KEYPAD_ACTION_ENTER", false))
1607 keypadAction = KEYPAD_ACTION_ENTER;
1609 else if (elementString.Equals(L"KEYPAD_ACTION_GO", false))
1611 keypadAction = KEYPAD_ACTION_GO;
1613 else if (elementString.Equals(L"KEYPAD_ACTION_NEXT", false))
1615 keypadAction = KEYPAD_ACTION_NEXT;
1617 else if (elementString.Equals(L"KEYPAD_ACTION_SEND", false))
1619 keypadAction = KEYPAD_ACTION_SEND;
1621 else if (elementString.Equals(L"KEYPAD_ACTION_SEARCH", false))
1623 keypadAction = KEYPAD_ACTION_SEARCH;
1625 else if (elementString.Equals(L"KEYPAD_ACTION_LOGIN", false))
1627 keypadAction = KEYPAD_ACTION_LOGIN;
1629 else if (elementString.Equals(L"KEYPAD_ACTION_SIGN_IN", false))
1631 keypadAction = KEYPAD_ACTION_SIGN_IN;
1633 else if (elementString.Equals(L"KEYPAD_ACTION_JOIN", false))
1635 keypadAction = KEYPAD_ACTION_JOIN;
1637 else if (elementString.Equals(L"KEYPAD_ACTION_DONE", false))
1639 keypadAction = KEYPAD_ACTION_DONE;
1642 r = pEditArea->SetKeypadAction(keypadAction);
1645 if (pControl->GetElement(L"textHorizontalAlignment", elementString))
1647 if (elementString.Equals(L"ALIGNMENT_LEFT", false))
1649 horizontalAlignment = ALIGNMENT_LEFT;
1651 else if (elementString.Equals(L"ALIGNMENT_CENTER", false))
1653 horizontalAlignment = ALIGNMENT_CENTER;
1655 else if (elementString.Equals(L"ALIGNMENT_RIGHT", false))
1657 horizontalAlignment = ALIGNMENT_RIGHT;
1660 r = pEditArea->SetTextAlignment(horizontalAlignment);
1663 if (pControl->GetElement(L"lowerCaseMode", elementString))
1665 if (elementString.Equals(L"true", false))
1667 lowerCaseMode = true;
1671 lowerCaseMode = false;
1674 pEditArea->SetLowerCaseModeEnabled(lowerCaseMode);
1677 if (pControl->GetElement(L"textSize", elementString))
1679 Base::Integer::Parse(elementString, fontSize);
1680 _ICoordinateSystemTransformer* pTransform = GetTransformer();
1683 fontSize = pTransform->Transform(fontSize);
1686 r = pEditArea->SetTextSize(fontSize);
1689 if (pControl->GetElement(L"viewMode", elementString))
1691 if (elementString.Equals(L"true", false))
1693 viewModeEnable = true;
1694 r = pEditArea->SetViewModeEnabled(viewModeEnable);
1698 if (pControl->GetElement(L"normalBGBitmapPath", elementString))
1700 Bitmap* pressedBGBitmap = null;
1701 pressedBGBitmap = LoadBitmapN(elementString);
1702 if (pressedBGBitmap != null)
1704 r = pEditArea->SetBackgroundBitmap(EDIT_STATUS_NORMAL, *pressedBGBitmap);
1705 delete pressedBGBitmap;
1709 if (pControl->GetElement(L"disabledBGBitmapPath", elementString))
1711 Bitmap* disalbedBGBitmap = null;
1712 disalbedBGBitmap = LoadBitmapN(elementString);
1713 if (disalbedBGBitmap != null)
1715 r = pEditArea->SetBackgroundBitmap(EDIT_STATUS_DISABLED, *disalbedBGBitmap);
1716 delete disalbedBGBitmap;
1720 if (pControl->GetElement(L"highlightedBGBitmapPath", elementString))
1722 Bitmap* highlightedBGBitmap = null;
1723 highlightedBGBitmap = LoadBitmapN(elementString);
1724 if (highlightedBGBitmap != null)
1726 r = pEditArea->SetBackgroundBitmap(EDIT_STATUS_HIGHLIGHTED, *highlightedBGBitmap);
1727 delete highlightedBGBitmap;
1731 if (pControl->GetElement(L"pressedBGBitmapPath", elementString))
1733 Bitmap* pressedBGBitmap = null;
1734 pressedBGBitmap = LoadBitmapN(elementString);
1735 if (pressedBGBitmap != null)
1737 r = pEditArea->SetBackgroundBitmap(EDIT_STATUS_PRESSED, *pressedBGBitmap);
1738 delete pressedBGBitmap;
1742 if (pControl->GetElement(L"normalColorOpacity", elementString))
1744 Base::Integer::Parse(elementString, opacity);
1746 if (pControl->GetElement(L"normalColor", elementString))
1748 ConvertStringToColor32(elementString, opacity, color);
1749 r = pEditArea->SetColor(EDIT_STATUS_NORMAL, color);
1752 if (pControl->GetElement(L"pressedColorOpacity", elementString))
1754 Base::Integer::Parse(elementString, opacity);
1756 if (pControl->GetElement(L"pressedColor", elementString))
1758 ConvertStringToColor32(elementString, opacity, color);
1759 r = pEditArea->SetColor(EDIT_STATUS_PRESSED, color);
1762 if (pControl->GetElement(L"highlightedColorOpacity", elementString))
1764 Base::Integer::Parse(elementString, opacity);
1766 if (pControl->GetElement(L"highlightedColor", elementString))
1768 ConvertStringToColor32(elementString, opacity, color);
1769 r = pEditArea->SetColor(EDIT_STATUS_HIGHLIGHTED, color);
1772 if (pControl->GetElement(L"disabledColorOpacity", elementString))
1774 Base::Integer::Parse(elementString, opacity);
1776 if (pControl->GetElement(L"disabledColor", elementString))
1778 ConvertStringToColor32(elementString, opacity, color);
1779 r = pEditArea->SetColor(EDIT_STATUS_DISABLED, color);
1782 opacity = EDIT_COLOR_OPACITY;
1783 if (pControl->GetElement(L"guideTextColor", elementString))
1785 ConvertStringToColor32(elementString, opacity, color);
1786 r = pEditArea->SetGuideTextColor(color);
1789 if (pControl->GetElement(L"normalTextColor", elementString))
1791 ConvertStringToColor32(elementString, opacity, color);
1792 r = pEditArea->SetTextColor(EDIT_TEXT_COLOR_NORMAL, color);
1795 if (pControl->GetElement(L"disabledTextColor", elementString))
1797 ConvertStringToColor32(elementString, opacity, color);
1798 pEditArea->SetTextColor(EDIT_TEXT_COLOR_DISABLED, color);
1801 if (pControl->GetElement(L"highlightedTextColor", elementString))
1803 ConvertStringToColor32(elementString, opacity, color);
1804 r = pEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, color);
1807 if (pControl->GetElement(L"linkTextColor", elementString))
1809 ConvertStringToColor32(elementString, opacity, color);
1810 r = pEditArea->SetTextColor(EDIT_TEXT_COLOR_LINK, color);
1813 if (pControl->GetElement(L"horizontalMargin", elementString))
1815 Base::Integer::Parse(elementString, horizontalMargin);
1816 r = pEditArea->SetMargin(EDIT_MARGIN_TYPE_HORIZONTAL, horizontalMargin);
1819 if (pControl->GetElement(L"verticalMargin", elementString))
1821 Base::Integer::Parse(elementString, verticalMargin);
1822 r = pEditArea->SetMargin(EDIT_MARGIN_TYPE_VERTICAL, verticalMargin);
1828 }; // _EditAreaMaker
1830 _EditAreaRegister::_EditAreaRegister(void)
1832 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
1833 pUiBuilderControlTableManager->RegisterControl(L"EditArea", _EditAreaMaker::GetInstance);
1835 _EditAreaRegister::~_EditAreaRegister(void)
1837 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
1838 pUiBuilderControlTableManager->UnregisterControl(L"EditArea");
1840 static _EditAreaRegister EditAreaRegisterToUiBuilder;
1841 }}} // Tizen::Ui::Controls