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.
18 * @file FUiCtrl_ExpandableEditAreaImpl.cpp
19 * @brief This is the implementation for the _ExpandableEditAreaImpl class.
23 #include <FBaseSysLog.h>
24 #include <FBaseInternalTypes.h>
25 #include <FUiCtrlInputTypes.h>
26 #include "FUi_UiBuilder.h"
27 #include "FUi_ResourceSizeInfo.h"
28 #include "FUiCtrl_Edit.h"
29 #include "FUiCtrl_ExpandableEditAreaImpl.h"
30 #include "FUiCtrl_TokenEdit.h"
32 static const int _EXPANDABLE_EDIT_AREA_DEFAULT_MAX_LINE_COUNT = 10;
34 using namespace Tizen::Base;
35 using namespace Tizen::Graphics;
36 using namespace Tizen::Locales;
37 using namespace Tizen::Base::Runtime;
39 namespace Tizen { namespace Ui { namespace Controls
41 _ExpandableEditAreaImpl*
42 _ExpandableEditAreaImpl::GetInstance(ExpandableEditArea& expandableEditArea)
44 return (static_cast<_ExpandableEditAreaImpl*> (expandableEditArea._pControlImpl));
47 const _ExpandableEditAreaImpl*
48 _ExpandableEditAreaImpl::GetInstance(const ExpandableEditArea& expandableEditArea)
50 return (static_cast<const _ExpandableEditAreaImpl*> (expandableEditArea._pControlImpl));
53 _ExpandableEditAreaImpl::_ExpandableEditAreaImpl(ExpandableEditArea* pPublic, _Edit* pCore)
54 : _ControlImpl(pPublic, pCore)
55 , __pExpandableEditArea(pCore)
56 , __expandableEditAreaStyle(EXPANDABLE_EDIT_AREA_STYLE_NORMAL)
57 , __expandableEditAreaTitleStyle(EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE)
58 , __maxLineCount(_EXPANDABLE_EDIT_AREA_DEFAULT_MAX_LINE_COUNT)
59 , __pPublicTextEvent(null)
60 , __pPublicExpandableEditAreaEvent(null)
61 , __pPublicTextBlockEvent(null)
62 , __pPublicKeypadEvent(null)
63 , __pPublicLanguageEvent(null)
64 , __pTokenFilter(null)
68 _ExpandableEditAreaImpl::~_ExpandableEditAreaImpl(void)
70 if (__pExpandableEditArea)
72 __pExpandableEditArea->RemoveTextEventListener(*this);
73 __pExpandableEditArea->RemoveExpandableEditAreaEventListener(*this);
74 __pExpandableEditArea->RemoveTextBlockEventListener(*this);
75 __pExpandableEditArea->RemoveKeypadEventListener(*this);
78 delete __pPublicTextEvent;
79 __pPublicTextEvent = null;
81 delete __pPublicExpandableEditAreaEvent;
82 __pPublicExpandableEditAreaEvent = null;
84 delete __pPublicTextBlockEvent;
85 __pPublicTextBlockEvent = null;
87 delete __pPublicKeypadEvent;
88 __pPublicKeypadEvent = null;
92 _ExpandableEditAreaImpl*
93 _ExpandableEditAreaImpl::CreateExpandableEditAreaImplN(ExpandableEditArea* pControl, const Rectangle& rect,
94 ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle)
100 r = FUNC_SIZE_INFO(ExpandableEditArea)().CheckInitialSizeValid(Dimension(rect.width, rect.height), _CONTROL_ORIENTATION_PORTRAIT);
101 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. The given rect size is not valid.");
104 if (style == EXPANDABLE_EDIT_AREA_STYLE_NORMAL)
106 pCore = _Edit::CreateEditN();
110 pCore = _TokenEdit::CreateTokenEditN();
112 SysTryReturn(NID_UI_CTRL, pCore != null, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
114 _ExpandableEditAreaImpl* pImpl = new (std::nothrow) _ExpandableEditAreaImpl(pControl, pCore);
115 r = CheckConstruction(pCore, pImpl);
116 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
118 r = pImpl->InitializeBoundsProperties(FUNC_SIZE_INFO(ExpandableEditArea)(), _CONTROL_ORIENTATION_PORTRAIT);
119 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
121 r = pCore->AddExpandableEditAreaEventListener(*pImpl);
122 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
124 r = pCore->AddKeypadEventListener(*pImpl);
125 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
127 r = pCore->AddTextBlockEventListener(*pImpl);
128 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
130 r = pCore->AddTextEventListener(*pImpl);
131 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
133 r = pCore->AddLanguageEventListener(*pImpl);
134 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
144 _ExpandableEditAreaImpl::GetPublicClassName(void) const
146 return "Tizen::Ui::Controls::ExpandableEditArea";
149 const ExpandableEditArea&
150 _ExpandableEditAreaImpl::GetPublic(void) const
152 return static_cast <const ExpandableEditArea&>(_ControlImpl::GetPublic());
156 _ExpandableEditAreaImpl::GetPublic(void)
158 return static_cast <ExpandableEditArea&>(_ControlImpl::GetPublic());
162 _ExpandableEditAreaImpl::GetCore(void) const
164 return static_cast <const _Edit&>(_ControlImpl::GetCore());
168 _ExpandableEditAreaImpl::GetCore(void)
170 return static_cast <_Edit&>(_ControlImpl::GetCore());
174 _ExpandableEditAreaImpl::Construct(const Rectangle& rect, ExpandableEditAreaStyle style,
175 ExpandableEditAreaTitleStyle titleStyle, int maxExpandableLines)
179 result r = E_SUCCESS;
181 r = CreateExpandableEditArea(rect, style, titleStyle, maxExpandableLines);
182 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
188 _ExpandableEditAreaImpl::Dispose(void)
192 result r = E_SUCCESS;
194 if (__pExpandableEditArea)
196 delete __pExpandableEditArea;
197 __pExpandableEditArea = null;
204 _ExpandableEditAreaImpl::CreateExpandableEditArea(const Rectangle& rect, ExpandableEditAreaStyle style,
205 ExpandableEditAreaTitleStyle titleStyle, int maxExpandableLines)
209 result r = E_SUCCESS;
211 int editStyle = EDIT_STYLE_NORMAL | EDIT_STYLE_FLEXIBLE;
212 if (style & EXPANDABLE_EDIT_AREA_STYLE_TOKEN)
214 editStyle |= EDIT_STYLE_TOKEN;
217 if (titleStyle == EXPANDABLE_EDIT_AREA_TITLE_STYLE_INNER)
219 editStyle |= EDIT_STYLE_TITLE_LEFT;
221 else if (titleStyle == EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP)
223 editStyle |= EDIT_STYLE_TITLE_TOP;
226 r = __pExpandableEditArea->Initialize(editStyle, INPUT_STYLE_OVERLAY, 1000);
227 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
229 __pExpandableEditArea->SetMaxLineCount(maxExpandableLines);
235 _ExpandableEditAreaImpl::GetMargin(EditMarginType marginType) const
239 if (marginType == EDIT_MARGIN_TYPE_VERTICAL)
241 return __pExpandableEditArea->GetVerticalMargin(EDIT_TEXT_TOP_MARGIN);
245 return __pExpandableEditArea->GetHorizontalMargin(EDIT_TEXT_LEFT_MARGIN);
250 _ExpandableEditAreaImpl::SetMargin(EditMarginType marginType, int margin)
254 result r = E_SUCCESS;
255 Variant varMargin(margin);
257 if (marginType == EDIT_MARGIN_TYPE_HORIZONTAL)
259 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_LEFT_MARGIN);
260 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
261 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_RIGHT_MARGIN);
262 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
266 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_TOP_MARGIN);
267 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
268 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_BOTTOM_MARGIN);
269 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
276 _ExpandableEditAreaImpl::GetKeypadAction(void) const
280 CoreKeypadAction coreKeypadAction = __pExpandableEditArea->GetKeypadAction();
281 KeypadAction publicKeypadAction = KEYPAD_ACTION_ENTER;
283 switch (coreKeypadAction)
285 case CORE_KEYPAD_ACTION_ENTER:
286 publicKeypadAction = KEYPAD_ACTION_ENTER;
289 case CORE_KEYPAD_ACTION_GO:
290 publicKeypadAction = KEYPAD_ACTION_GO;
293 case CORE_KEYPAD_ACTION_NEXT:
294 publicKeypadAction = KEYPAD_ACTION_NEXT;
297 case CORE_KEYPAD_ACTION_SEND:
298 publicKeypadAction = KEYPAD_ACTION_SEND;
301 case CORE_KEYPAD_ACTION_SEARCH:
302 publicKeypadAction = KEYPAD_ACTION_SEARCH;
305 case CORE_KEYPAD_ACTION_LOGIN:
306 publicKeypadAction = KEYPAD_ACTION_LOGIN;
309 case CORE_KEYPAD_ACTION_SIGN_IN:
310 publicKeypadAction = KEYPAD_ACTION_SIGN_IN;
313 case CORE_KEYPAD_ACTION_JOIN:
314 publicKeypadAction = KEYPAD_ACTION_JOIN;
317 case CORE_KEYPAD_ACTION_DONE:
318 publicKeypadAction = KEYPAD_ACTION_DONE;
325 return publicKeypadAction;
329 _ExpandableEditAreaImpl::SetKeypadAction(KeypadAction keypadAction)
333 CoreKeypadAction coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
335 switch (keypadAction)
337 case KEYPAD_ACTION_ENTER:
338 coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
341 case KEYPAD_ACTION_GO:
342 coreKeypadAction = CORE_KEYPAD_ACTION_GO;
345 case KEYPAD_ACTION_NEXT:
346 coreKeypadAction = CORE_KEYPAD_ACTION_NEXT;
349 case KEYPAD_ACTION_SEND:
350 coreKeypadAction = CORE_KEYPAD_ACTION_SEND;
353 case KEYPAD_ACTION_SEARCH:
354 coreKeypadAction = CORE_KEYPAD_ACTION_SEARCH;
357 case KEYPAD_ACTION_LOGIN:
358 coreKeypadAction = CORE_KEYPAD_ACTION_LOGIN;
361 case KEYPAD_ACTION_SIGN_IN:
362 coreKeypadAction = CORE_KEYPAD_ACTION_SIGN_IN;
365 case KEYPAD_ACTION_JOIN:
366 coreKeypadAction = CORE_KEYPAD_ACTION_JOIN;
369 case KEYPAD_ACTION_DONE:
370 coreKeypadAction = CORE_KEYPAD_ACTION_DONE;
377 return __pExpandableEditArea->SetKeypadAction(coreKeypadAction);
381 _ExpandableEditAreaImpl::GetKeypadStyle(void) const
385 return __pExpandableEditArea->GetKeypadStyle();
389 _ExpandableEditAreaImpl::SetKeypadStyle(KeypadStyle keypadStyle)
393 return __pExpandableEditArea->SetKeypadStyle(keypadStyle);
397 _ExpandableEditAreaImpl::IsTextPredictionEnabled(void) const
399 return __pExpandableEditArea->IsTextPredictionEnabled();
403 _ExpandableEditAreaImpl::SetTextPredictionEnabled(bool enable)
405 return __pExpandableEditArea->SetTextPredictionEnabled(enable);
409 _ExpandableEditAreaImpl::HideKeypad(void)
413 return __pExpandableEditArea->HideKeypad();
417 _ExpandableEditAreaImpl::GetTextSize(void) const
421 return __pExpandableEditArea->GetTextSize();
425 _ExpandableEditAreaImpl::SetTextSize(int size)
429 return __pExpandableEditArea->SetTextSize(size);
433 _ExpandableEditAreaImpl::GetColor(EditStatus status) const
437 return __pExpandableEditArea->GetColor(status);
441 _ExpandableEditAreaImpl::GetTextColor(EditTextColor type) const
444 SysTryReturn(NID_UI_CTRL, type != EDIT_TEXT_COLOR_LINK, Color(), E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. The EditTextColor type is EDIT_TEXT_COLOR_LINK.");
446 return __pExpandableEditArea->GetTextColor(type);
450 _ExpandableEditAreaImpl::SetBackgroundBitmap(EditStatus status, const Bitmap& bitmap)
454 return __pExpandableEditArea->SetBackgroundBitmap(status, bitmap);
458 _ExpandableEditAreaImpl::SetColor(EditStatus status, const Color& color)
462 return __pExpandableEditArea->SetColor(status, color);
466 _ExpandableEditAreaImpl::SetTextColor(EditTextColor type, const Color& color)
470 return __pExpandableEditArea->SetTextColor(type, color);
474 _ExpandableEditAreaImpl::GetText(int start, int end) const
478 return __pExpandableEditArea->GetText(start, end);
482 _ExpandableEditAreaImpl::AddExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener)
484 result r = E_SUCCESS;
487 if (__pPublicExpandableEditAreaEvent == null)
489 __pPublicExpandableEditAreaEvent = _PublicExpandableEditAreaEvent::CreateInstanceN(GetPublic());
491 SysTryReturnResult(NID_UI_CTRL, __pPublicExpandableEditAreaEvent != null, r, "Propagating.");
494 r = __pPublicExpandableEditAreaEvent->AddListener(listener);
495 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_ALREADY_EXIST, E_SYSTEM, "A system error has occurred. The IExpandableEditAreaEventListener instance already exists in the event listener list.");
501 _ExpandableEditAreaImpl::RemoveExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener)
505 SysTryReturnResult(NID_UI_CTRL, __pPublicExpandableEditAreaEvent != null, E_SYSTEM, "A system error has occurred. The _PublicExpandableEditAreaEvent instance is null");
507 result r = __pPublicExpandableEditAreaEvent->RemoveListener(listener);
508 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_NOT_FOUND, E_SYSTEM, "A system error has occurred. The IExpandableEditAreaEventListener instance does not exist in the event listener list.");
515 _ExpandableEditAreaImpl::AddKeypadEventListener(IKeypadEventListener& listener)
517 result r = E_SUCCESS;
520 if (__pPublicKeypadEvent == null)
522 __pPublicKeypadEvent = _PublicKeypadEvent::CreateInstanceN(GetPublic());
524 SysTryReturnResult(NID_UI_CTRL, __pPublicKeypadEvent != null, r, "Propagating.");
527 r = __pPublicKeypadEvent->AddListener(listener);
528 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_ALREADY_EXIST, E_SYSTEM, "A system error has occurred. The IKeypadEventListener instance already exists in the event listener list.");
534 _ExpandableEditAreaImpl::RemoveKeypadEventListener(IKeypadEventListener& listener)
538 SysTryReturnResult(NID_UI_CTRL, __pPublicKeypadEvent != null, E_SYSTEM, "A system error has occurred. The _PublicKeypadEvent instance is null.");
540 result r = __pPublicKeypadEvent->RemoveListener(listener);
541 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_NOT_FOUND, E_SYSTEM, "A system error has occurred. The IKeypadEventListener instance does not exist in the event listener list.");
548 _ExpandableEditAreaImpl::AddTextBlockEventListener(ITextBlockEventListener& listener)
550 result r = E_SUCCESS;
553 if (__pPublicTextBlockEvent == null)
555 __pPublicTextBlockEvent = _PublicTextBlockEvent::CreateInstanceN(GetPublic());
557 SysTryReturnResult(NID_UI_CTRL, __pPublicTextBlockEvent != null, r, "Propagating.");
560 r = __pPublicTextBlockEvent->AddListener(listener);
561 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_ALREADY_EXIST, E_SYSTEM, "A system error has occurred. The ITextBlockEventListener instance already exists in the event listener list.");
567 _ExpandableEditAreaImpl::RemoveTextBlockEventListener(ITextBlockEventListener& listener)
571 SysTryReturnResult(NID_UI_CTRL, __pPublicTextBlockEvent, E_SYSTEM, "A system error has occurred. The _PublicTextBlockEvent instance is null.");
573 result r = __pPublicTextBlockEvent->RemoveListener(listener);
574 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_NOT_FOUND, E_SYSTEM, "A system error has occurred. The ITextBlockEventListener instance does not exist in the event listener list.");
580 _ExpandableEditAreaImpl::AddTextEventListener(ITextEventListener& listener)
582 result r = E_SUCCESS;
585 if (__pPublicTextEvent == null)
587 __pPublicTextEvent = _PublicTextEvent::CreateInstanceN(GetPublic());
589 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
592 r = __pPublicTextEvent->AddListener(listener);
593 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_ALREADY_EXIST, E_SYSTEM, "A system error has occurred. The ITextEventListener instance already exists in the event listener list.");
599 _ExpandableEditAreaImpl::RemoveTextEventListener(ITextEventListener& listener)
603 SysTryReturnResult(NID_UI_CTRL, __pPublicTextEvent, E_SYSTEM, "A system error has occurred. The _PublicTextEvent instance is null.");
605 result r = __pPublicTextEvent->RemoveListener(listener);
606 SysTryReturnResult(NID_UI_CTRL, r != E_OBJ_NOT_FOUND, E_SYSTEM, "A system error has occurred. The ITextEventListener instance does not exist in the event listener list.");
612 _ExpandableEditAreaImpl::AddLanguageEventListener(ILanguageEventListener& listener)
614 result r = E_SUCCESS;
617 if (__pPublicLanguageEvent == null)
619 __pPublicLanguageEvent = _PublicLanguageEvent::CreateInstanceN(GetPublic());
621 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
624 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
626 r = __pPublicLanguageEvent->AddListener(listener);
632 _ExpandableEditAreaImpl::RemoveLanguageEventListener(ILanguageEventListener& listener)
636 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
638 return __pPublicLanguageEvent->RemoveListener(listener);
642 _ExpandableEditAreaImpl::SetLowerCaseModeEnabled(bool enable)
646 __pExpandableEditArea->SetLowerCaseModeEnabled(enable);
652 _ExpandableEditAreaImpl::IsLowerCaseModeEnabled(void) const
656 return __pExpandableEditArea->IsLowerCaseModeEnabled();
660 _ExpandableEditAreaImpl::SetCursorPosition(int position)
664 return __pExpandableEditArea->SetCursorPosition(position);
668 _ExpandableEditAreaImpl::GetCursorPosition(void) const
672 return __pExpandableEditArea->GetCursorPosition();
676 _ExpandableEditAreaImpl::GetText(void) const
680 return __pExpandableEditArea->GetText();
684 _ExpandableEditAreaImpl::GetTextLength(void) const
688 return __pExpandableEditArea->GetTextLength();
692 _ExpandableEditAreaImpl::SetText(const String& text)
696 return __pExpandableEditArea->SetText(text);
700 _ExpandableEditAreaImpl::InsertTextAt(int index, const String& text)
704 return __pExpandableEditArea->InsertTextAt(index, text);
708 _ExpandableEditAreaImpl::AppendText(const String& text)
712 return __pExpandableEditArea->AppendText(text);
716 _ExpandableEditAreaImpl::AppendCharacter(const Character& character)
720 return __pExpandableEditArea->AppendCharacter(character);
724 _ExpandableEditAreaImpl::InsertTextAt(int position, const String& text, const Bitmap& textImage)
728 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
729 SysTryReturnResult(NID_UI_CTRL, pTokenEdit == null, E_UNSUPPORTED_OPERATION,
730 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_STYLE_TOKEN does not support this operation.");
732 return __pExpandableEditArea->InsertTextAt(position, text, textImage);
736 _ExpandableEditAreaImpl::AppendText(const String& text, const Bitmap& textImage)
740 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
741 SysTryReturnResult(NID_UI_CTRL, pTokenEdit == null, E_UNSUPPORTED_OPERATION,
742 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_STYLE_TOKEN does not support this operation.");
744 return __pExpandableEditArea->AppendText(text, textImage);
748 _ExpandableEditAreaImpl::Clear(void)
752 return __pExpandableEditArea->ClearText();
756 _ExpandableEditAreaImpl::DeleteCharacterAt(int index)
760 return __pExpandableEditArea->DeleteCharacterAt(index);
764 _ExpandableEditAreaImpl::InsertCharacterAt(int index, const Character& character)
768 return __pExpandableEditArea->InsertCharacterAt(index, character);
772 _ExpandableEditAreaImpl::SetGuideText(const String& guideText)
776 __pExpandableEditArea->SetGuideText(guideText);
782 _ExpandableEditAreaImpl::GetGuideText(void) const
786 return __pExpandableEditArea->GetGuideText();
790 _ExpandableEditAreaImpl::GetGuideTextColor(void) const
794 return __pExpandableEditArea->GetGuideTextColor();
798 _ExpandableEditAreaImpl::SetGuideTextColor(const Color& color)
802 return __pExpandableEditArea->SetGuideTextColor(color);
806 _ExpandableEditAreaImpl::GetLineSpacing (void) const
808 return __pExpandableEditArea->GetLineSpacing();
812 _ExpandableEditAreaImpl::SetLineSpacing (int multiplier, int extra)
814 SysTryReturn(NID_UI_CTRL, multiplier >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. multiplier = %d ", multiplier);
815 SysTryReturn(NID_UI_CTRL, extra >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. extra = %d ", extra);
817 return __pExpandableEditArea->SetLineSpacing(DEFAULT_LINE_SPACE * multiplier + extra);
821 _ExpandableEditAreaImpl::GetTitleTextColor(EditStatus status) const
825 return __pExpandableEditArea->GetTitleTextColor(status);
829 _ExpandableEditAreaImpl::SetTitleTextColor(EditStatus status, const Color& color)
833 return __pExpandableEditArea->SetTitleTextColor(status, color);
837 _ExpandableEditAreaImpl::GetTokenColor(ExpandableEditAreaTokenStatus status) const
841 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
842 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
843 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
848 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL :
849 var = pTokenEdit->GetPropertyNormalTokenColor();
852 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED :
853 var = pTokenEdit->GetPropertySelectedTokenColor();
860 return var.ToColor();
864 _ExpandableEditAreaImpl::SetTokenColor(ExpandableEditAreaTokenStatus status, const Color& color)
868 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
869 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
870 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
876 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL :
877 pTokenEdit->SetPropertyNormalTokenColor(var);
880 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED :
881 pTokenEdit->SetPropertySelectedTokenColor(var);
892 _ExpandableEditAreaImpl::GetTokenTextColor(void) const
896 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
897 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
898 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
900 Variant var = pTokenEdit->GetPropertyTokenTextColor();
902 return var.ToColor();
906 _ExpandableEditAreaImpl::GetSelectedTokenTextColor(void) const
910 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
911 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
912 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
914 return pTokenEdit->GetSelectedTokenTextColor();
918 _ExpandableEditAreaImpl::SetTokenTextColor(const Color& color)
922 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
923 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
924 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
928 return pTokenEdit->SetPropertyTokenTextColor(var);
932 _ExpandableEditAreaImpl::SetSelectedTokenTextColor(const Color& color)
936 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
937 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
938 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
940 return pTokenEdit->SetSelectedTokenTextColor(color);
944 _ExpandableEditAreaImpl::SetCurrentLanguage(LanguageCode languageCode)
948 return __pExpandableEditArea->SetCurrentLanguage(languageCode);
952 _ExpandableEditAreaImpl::GetCurrentLanguage(LanguageCode& language) const
956 return __pExpandableEditArea->GetCurrentLanguage(language);
960 _ExpandableEditAreaImpl::SetKeypadEnabled(bool enable)
964 __pExpandableEditArea->SetKeypadEnabled(enable);
968 _ExpandableEditAreaImpl::IsKeypadEnabled(void) const
972 return __pExpandableEditArea->IsKeypadEnabled();
976 _ExpandableEditAreaImpl::ShowKeypad(void)
980 return __pExpandableEditArea->ShowKeypad();
984 _ExpandableEditAreaImpl::GetTextLineCount(void) const
988 return __pExpandableEditArea->GetTextLineCount();
992 _ExpandableEditAreaImpl::GetBlockRange(int& start, int& end) const
996 __pExpandableEditArea->GetBlockRange(start, end);
998 if (!((start == 0) && (end == 0)))
1007 _ExpandableEditAreaImpl::ReleaseBlock(void)
1011 return __pExpandableEditArea->ReleaseTextBlock();
1015 _ExpandableEditAreaImpl::RemoveTextBlock(void)
1019 return __pExpandableEditArea->RemoveTextBlock();
1023 _ExpandableEditAreaImpl::SetBlockRange(int start, int end)
1027 int tempTextLength = __pExpandableEditArea->GetTextLength();
1028 SysTryReturnResult(NID_UI_CTRL, ((start > -1) && (end > -1) && (end >= start) && (end < tempTextLength)), E_OUT_OF_RANGE,
1029 "start (%d) and end (%d) is out of range.", start, end);
1031 return __pExpandableEditArea->SetBlockRange(start, end + 1);
1035 _ExpandableEditAreaImpl::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
1043 _ExpandableEditAreaImpl::SetMaxLineCount(int maxLineCount)
1047 __pExpandableEditArea->SetMaxLineCount(maxLineCount);
1051 _ExpandableEditAreaImpl::GetMaxLineCount(void) const
1055 return __pExpandableEditArea->GetMaxLineCount();
1059 _ExpandableEditAreaImpl::GetTitleText(void) const
1063 return __pExpandableEditArea->GetTitleText();
1067 _ExpandableEditAreaImpl::SetTitleText(const String& title)
1071 SysTryReturnResult(NID_UI_CTRL, (__pExpandableEditArea->GetEditStyle() & (EDIT_STYLE_TITLE_LEFT | EDIT_STYLE_TITLE_TOP)),
1072 E_UNSUPPORTED_OPERATION, "The current title style cannot support this function.\n");
1074 return __pExpandableEditArea->SetTitleText(title);
1078 _ExpandableEditAreaImpl::GetLimitLength(void) const
1082 return __pExpandableEditArea->GetTextLimitLength();
1086 _ExpandableEditAreaImpl::SetLimitLength(int limitLength)
1090 return __pExpandableEditArea->SetLimitLength(limitLength);
1094 _ExpandableEditAreaImpl::SetAutoResizingEnabled(bool enable)
1098 Variant var(enable);
1100 return __pExpandableEditArea->SetPropertyAutoResizingEnabled(var);
1104 _ExpandableEditAreaImpl::IsAutoResizingEnabled(void) const
1108 Variant var = __pExpandableEditArea->GetPropertyAutoResizingEnabled();
1110 return var.ToBool();
1114 _ExpandableEditAreaImpl::SetAutoShrinkModeEnabled(bool enable)
1118 __pExpandableEditArea->SetAutoShrinkModeEnabled(enable);
1122 _ExpandableEditAreaImpl::IsAutoShrinkModeEnabled(void) const
1126 return __pExpandableEditArea->IsAutoShrinkModeEnabled();
1130 _ExpandableEditAreaImpl::GetTokenFilter(void) const
1134 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1135 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, null, E_UNSUPPORTED_OPERATION,
1136 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1138 return __pTokenFilter;
1142 _ExpandableEditAreaImpl::SetTokenFilter(const ITokenFilter* pFilter)
1146 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1147 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1148 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1150 __pTokenFilter = const_cast <ITokenFilter*>(pFilter);
1152 return pTokenEdit->SetTokenFilter(this);
1156 _ExpandableEditAreaImpl::AppendToken(const String& token)
1160 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1161 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1162 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1164 return pTokenEdit->AppendToken(token);
1168 _ExpandableEditAreaImpl::InsertTokenAt(int index, const String& token)
1172 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1173 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1174 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1176 return pTokenEdit->InsertTokenAt(index, token);
1180 _ExpandableEditAreaImpl::GetTokenAt(int index) const
1184 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1185 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, String(), E_UNSUPPORTED_OPERATION,
1186 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1188 return pTokenEdit->GetTokenAt(index);
1192 _ExpandableEditAreaImpl::GetTokenCount(void) const
1196 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1197 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, -1, E_UNSUPPORTED_OPERATION,
1198 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1200 return pTokenEdit->GetTokenCount();
1204 _ExpandableEditAreaImpl::GetSelectedTokenIndex(void) const
1208 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1209 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, -1, E_UNSUPPORTED_OPERATION,
1210 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1212 return pTokenEdit->GetSelectedTokenIndex();
1216 _ExpandableEditAreaImpl::IsTokenEditModeEnabled(void) const
1220 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1221 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, false, E_UNSUPPORTED_OPERATION,
1222 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1224 Variant var = pTokenEdit->GetPropertyTokenEditModeEnabled();
1226 return var.ToBool();
1230 _ExpandableEditAreaImpl::RemoveTokenAt(int index)
1234 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1235 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1236 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1238 return pTokenEdit->RemoveTokenAt(index);
1242 _ExpandableEditAreaImpl::SetTokenSelected(int index, bool selected)
1246 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1247 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1248 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1250 return pTokenEdit->SetTokenSelected(index, selected);
1254 _ExpandableEditAreaImpl::SetTokenEditModeEnabled(bool enable)
1258 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1259 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1260 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1262 Variant var(enable);
1263 return pTokenEdit->SetPropertyTokenEditModeEnabled(var);
1267 _ExpandableEditAreaImpl::OnTextValueChanged(const _Control& source)
1269 if (__pPublicTextEvent != null)
1271 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CHANGED);
1272 result r = GetLastResult();
1273 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1275 __pPublicTextEvent->Fire(*pEventArg);
1280 _ExpandableEditAreaImpl::OnTextValueChangeCanceled(const _Control& source)
1282 if (__pPublicTextEvent != null)
1284 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CANCELED);
1285 result r = GetLastResult();
1286 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1288 __pPublicTextEvent->Fire(*pEventArg);
1293 _ExpandableEditAreaImpl::OnExpandableEditAreaLineAdded(const _Control& source, int newLineCount)
1295 if (__pPublicExpandableEditAreaEvent)
1297 IEventArg* pEventArg = _PublicExpandableEditAreaEvent::CreateExpandableEditAreaEventArgN(
1298 EXPANDABLE_EDITAREA_EVENT_ADDED);
1299 result r = GetLastResult();
1300 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1302 __pPublicExpandableEditAreaEvent->Fire(*pEventArg);
1307 _ExpandableEditAreaImpl::OnExpandableEditAreaLineRemoved(const _Control& source, int newLineCount)
1309 if (__pPublicExpandableEditAreaEvent)
1311 IEventArg* pEventArg = _PublicExpandableEditAreaEvent::CreateExpandableEditAreaEventArgN(
1312 EXPANDABLE_EDITAREA_EVENT_REMOVED);
1313 result r = GetLastResult();
1314 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1316 __pPublicExpandableEditAreaEvent->Fire(*pEventArg);
1321 _ExpandableEditAreaImpl::OnTextBlockSelected(_Control& source, int start, int end)
1323 if (__pPublicTextBlockEvent != null)
1325 IEventArg* pTextBlockEventArg = _PublicTextBlockEvent::CreateTextBlockEventArgN(start, end);
1326 result r = GetLastResult();
1327 SysTryReturnVoidResult(NID_UI_CTRL, pTextBlockEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1329 __pPublicTextBlockEvent->Fire(*pTextBlockEventArg);
1334 _ExpandableEditAreaImpl::OnKeypadWillOpen(void)
1336 if (__pPublicKeypadEvent)
1338 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1339 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CREATED);
1340 result r = GetLastResult();
1341 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1343 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1348 _ExpandableEditAreaImpl::OnKeypadOpened(void)
1350 if (__pPublicKeypadEvent)
1352 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1353 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_OPEN);
1354 result r = GetLastResult();
1355 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1357 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1362 _ExpandableEditAreaImpl::OnKeypadClosed(void)
1364 if (__pPublicKeypadEvent)
1366 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1367 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CLOSE);
1368 result r = GetLastResult();
1369 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1371 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1376 _ExpandableEditAreaImpl::OnKeypadBoundsChanged(void)
1378 if (__pPublicKeypadEvent)
1380 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1381 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_BOUNDS_CHANGED);
1382 result r = GetLastResult();
1383 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1385 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1390 _ExpandableEditAreaImpl::OnLanguageChanged(LanguageCode oldLanguage, LanguageCode newLanguage)
1392 if (__pPublicLanguageEvent)
1394 IEventArg* pKLanguageEventArg = _PublicLanguageEvent::CreateLanguageEventArgN(GetPublic(), oldLanguage, newLanguage);
1395 result r = GetLastResult();
1396 SysTryReturnVoidResult(NID_UI_CTRL, pKLanguageEventArg, r, "[%s] Propagating.", GetErrorMessage(r));
1398 __pPublicLanguageEvent->Fire(*pKLanguageEventArg);
1402 SysLog(NID_UI_CTRL, "Event is not created.");
1407 _ExpandableEditAreaImpl::OnKeypadActionPerformed(CoreKeypadAction keypadAction)
1409 if (__pPublicKeypadEvent)
1411 KeypadAction onKeypadAction = KEYPAD_ACTION_ENTER;
1412 switch (keypadAction)
1414 case CORE_KEYPAD_ACTION_ENTER:
1415 onKeypadAction = KEYPAD_ACTION_ENTER;
1418 case CORE_KEYPAD_ACTION_GO:
1419 onKeypadAction = KEYPAD_ACTION_GO;
1422 case CORE_KEYPAD_ACTION_NEXT:
1423 onKeypadAction = KEYPAD_ACTION_NEXT;
1426 case CORE_KEYPAD_ACTION_SEND:
1427 onKeypadAction = KEYPAD_ACTION_SEND;
1430 case CORE_KEYPAD_ACTION_SEARCH:
1431 onKeypadAction = KEYPAD_ACTION_SEARCH;
1434 case CORE_KEYPAD_ACTION_LOGIN:
1435 onKeypadAction = KEYPAD_ACTION_LOGIN;
1438 case CORE_KEYPAD_ACTION_SIGN_IN:
1439 onKeypadAction = KEYPAD_ACTION_SIGN_IN;
1442 case CORE_KEYPAD_ACTION_JOIN:
1443 onKeypadAction = KEYPAD_ACTION_JOIN;
1446 case CORE_KEYPAD_ACTION_DONE:
1447 onKeypadAction = KEYPAD_ACTION_DONE;
1454 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1455 GetPublic(), onKeypadAction, KEYPAD_EVENT_STATUS_ENTERACTION);
1456 result r = GetLastResult();
1457 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1459 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1464 _ExpandableEditAreaImpl::ReplaceToken(const String& token, String& replacement)
1466 bool enable = false;
1469 enable = __pTokenFilter->ReplaceToken(token, replacement);
1476 class _ExpandableEditAreaMaker
1477 : public _UiBuilderControlMaker
1480 _ExpandableEditAreaMaker(_UiBuilder* uibuilder)
1481 : _UiBuilderControlMaker(uibuilder){};
1482 virtual ~_ExpandableEditAreaMaker(){};
1483 static _UiBuilderControlMaker* GetInstance(_UiBuilder* uibuilder)
1485 _ExpandableEditAreaMaker* pExpandableEditAreaMaker = new (std::nothrow) _ExpandableEditAreaMaker(uibuilder);
1486 return pExpandableEditAreaMaker;
1490 virtual Control* Make(_UiBuilderControl* pControl)
1492 result r = E_SUCCESS;
1495 ExpandableEditArea* pExpandableEditArea = null;
1496 _UiBuilderControlLayout* pControlProperty = null;
1497 ExpandableEditAreaStyle style = EXPANDABLE_EDIT_AREA_STYLE_NORMAL;
1498 ExpandableEditAreaTitleStyle titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE;
1499 bool lowerCaseMode = false;
1500 KeypadAction keypadAction = KEYPAD_ACTION_ENTER;
1501 KeypadStyle keypadStyle = KEYPAD_STYLE_NORMAL;
1504 int verticalMarin = 0;
1505 int horizontalMargin = 0;
1509 int limitLength = 0;
1512 bool autoResizing = false;
1513 bool autoShrink = false;
1514 String elementString;
1516 GetProperty(pControl, &pControlProperty);
1517 if (pControlProperty == null)
1522 pExpandableEditArea = new (std::nothrow) ExpandableEditArea();
1523 if (pExpandableEditArea == null)
1528 rect = pControlProperty->GetRect();
1530 if (pControl->GetElement(L"style", elementString))
1532 if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_STYLE_NORMAL", false))
1534 style = EXPANDABLE_EDIT_AREA_STYLE_NORMAL;
1538 style = EXPANDABLE_EDIT_AREA_STYLE_TOKEN;
1542 if (pControl->GetElement(L"titleStyle", elementString))
1544 if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE", false))
1546 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE;
1548 else if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP", false))
1550 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP;
1554 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_INNER;
1558 if (pControl->GetElement(L"maxLines", elementString))
1560 Base::Integer::Parse(elementString, maxLines);
1563 r = pExpandableEditArea->Construct(rect, style, titleStyle, maxLines);
1569 if (pControl->GetElement(L"text", elementString))
1571 r = pExpandableEditArea->SetText(elementString);
1574 if (pControl->GetElement(L"guideText", elementString))
1576 r = pExpandableEditArea->SetGuideText(elementString);
1579 if (pControl->GetElement(L"keypadStyle", elementString))
1581 if (elementString.Equals(L"KEYPAD_STYLE_NORMAL", false))
1583 keypadStyle = KEYPAD_STYLE_NORMAL;
1585 else if (elementString.Equals(L"KEYPAD_STYLE_PASSWORD", false))
1587 keypadStyle = KEYPAD_STYLE_PASSWORD;
1589 else if (elementString.Equals(L"KEYPAD_STYLE_EMAIL", false))
1591 keypadStyle = KEYPAD_STYLE_EMAIL;
1593 else if (elementString.Equals(L"KEYPAD_STYLE_URL", false))
1595 keypadStyle = KEYPAD_STYLE_URL;
1597 else if (elementString.Equals(L"KEYPAD_STYLE_NUMBER", false))
1599 keypadStyle = KEYPAD_STYLE_NUMBER;
1601 else if (elementString.Equals(L"KEYPAD_STYLE_PHONE_NUMBER", false))
1603 keypadStyle = KEYPAD_STYLE_PHONE_NUMBER;
1605 else if (elementString.Equals(L"KEYPAD_STYLE_IP_V4", false))
1607 keypadStyle = KEYPAD_STYLE_IP_V4;
1610 r = pExpandableEditArea->SetKeypadStyle(keypadStyle);
1613 if (pControl->GetElement(L"keypadAction", elementString))
1615 if (elementString.Equals(L"KEYPAD_ACTION_ENTER", false))
1617 keypadAction = KEYPAD_ACTION_ENTER;
1619 else if (elementString.Equals(L"KEYPAD_ACTION_GO", false))
1621 keypadAction = KEYPAD_ACTION_GO;
1623 else if (elementString.Equals(L"KEYPAD_ACTION_NEXT", false))
1625 keypadAction = KEYPAD_ACTION_NEXT;
1627 else if (elementString.Equals(L"KEYPAD_ACTION_SEND", false))
1629 keypadAction = KEYPAD_ACTION_SEND;
1631 else if (elementString.Equals(L"KEYPAD_ACTION_SEARCH", false))
1633 keypadAction = KEYPAD_ACTION_SEARCH;
1635 else if (elementString.Equals(L"KEYPAD_ACTION_LOGIN", false))
1637 keypadAction = KEYPAD_ACTION_LOGIN;
1639 else if (elementString.Equals(L"KEYPAD_ACTION_SIGN_IN", false))
1641 keypadAction = KEYPAD_ACTION_SIGN_IN;
1643 else if (elementString.Equals(L"KEYPAD_ACTION_JOIN", false))
1645 keypadAction = KEYPAD_ACTION_JOIN;
1647 else if (elementString.Equals(L"KEYPAD_ACTION_DONE", false))
1649 keypadAction = KEYPAD_ACTION_DONE;
1652 r = pExpandableEditArea->SetKeypadAction(keypadAction);
1655 if (pControl->GetElement(L"lowerCaseMode", elementString))
1657 if (elementString.Equals(L"true", false))
1659 lowerCaseMode = true;
1663 lowerCaseMode = false;
1666 r = pExpandableEditArea->SetLowerCaseModeEnabled(lowerCaseMode);
1669 if (pControl->GetElement(L"textSize", elementString))
1671 Base::Integer::Parse(elementString, textSize);
1672 _ICoordinateSystemTransformer* pTransform = GetTransformer();
1675 textSize = pTransform->Transform(textSize);
1677 r = pExpandableEditArea->SetTextSize(textSize);
1680 if (pControl->GetElement(L"verticalMargin", elementString))
1682 Base::Integer::Parse(elementString, verticalMarin);
1683 r = pExpandableEditArea->SetMargin(EDIT_MARGIN_TYPE_VERTICAL, verticalMarin);
1686 if (pControl->GetElement(L"horizontalMargin", elementString))
1688 Base::Integer::Parse(elementString, horizontalMargin);
1689 r = pExpandableEditArea->SetMargin(EDIT_MARGIN_TYPE_HORIZONTAL, horizontalMargin);
1692 if (pControl->GetElement(L"limitLength", elementString))
1694 Base::Integer::Parse(elementString, limitLength);
1695 r = pExpandableEditArea->SetLimitLength(limitLength);
1698 if (pControl->GetElement(L"titleText", elementString))
1700 r = pExpandableEditArea->SetTitleText(elementString);
1703 if (pControl->GetElement(L"normalBGBitmapPath", elementString))
1705 Bitmap* pNormalBGBitmap = null;
1706 pNormalBGBitmap = LoadBitmapN(elementString);
1707 if (pNormalBGBitmap != null)
1709 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_NORMAL, *pNormalBGBitmap);
1710 delete pNormalBGBitmap;
1714 if (pControl->GetElement(L"disabledBGBitmapPath", elementString))
1716 Bitmap* pNormalBGBitmap = null;
1717 pNormalBGBitmap = LoadBitmapN(elementString);
1718 if (pNormalBGBitmap != null)
1720 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_DISABLED, *pNormalBGBitmap);
1721 delete pNormalBGBitmap;
1725 if (pControl->GetElement(L"highlightedBGBitmapPath", elementString))
1727 Bitmap* pNormalBGBitmap = null;
1728 pNormalBGBitmap = LoadBitmapN(elementString);
1729 if (pNormalBGBitmap != null)
1731 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_HIGHLIGHTED, *pNormalBGBitmap);
1732 delete pNormalBGBitmap;
1736 if (pControl->GetElement(L"pressedBGBitmapPath", elementString))
1738 Bitmap* pNormalBGBitmap = null;
1739 pNormalBGBitmap = LoadBitmapN(elementString);
1740 if (pNormalBGBitmap != null)
1742 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_PRESSED, *pNormalBGBitmap);
1743 delete pNormalBGBitmap;
1747 if (pControl->GetElement(L"normalColorOpacity", elementString))
1749 Base::Integer::Parse(elementString, opacity);
1751 if (pControl->GetElement(L"normalColor", elementString))
1753 ConvertStringToColor32(elementString, opacity, color);
1754 r = pExpandableEditArea->SetColor(EDIT_STATUS_NORMAL, color);
1757 if (pControl->GetElement(L"disabledColorOpacity", elementString))
1759 Base::Integer::Parse(elementString, opacity);
1761 if (pControl->GetElement(L"disabledColor", elementString))
1763 ConvertStringToColor32(elementString, opacity, color);
1764 r = pExpandableEditArea->SetColor(EDIT_STATUS_DISABLED, color);
1767 if (pControl->GetElement(L"highlightedColorOpacity", elementString))
1769 Base::Integer::Parse(elementString, opacity);
1771 if (pControl->GetElement(L"highlightedColor", elementString))
1773 ConvertStringToColor32(elementString, opacity, color);
1774 r = pExpandableEditArea->SetColor(EDIT_STATUS_HIGHLIGHTED, color);
1777 if (pControl->GetElement(L"pressedColorOpacity", elementString))
1779 Base::Integer::Parse(elementString, opacity);
1781 if (pControl->GetElement(L"pressedColor", elementString))
1783 ConvertStringToColor32(elementString, opacity, color);
1784 r = pExpandableEditArea->SetColor(EDIT_STATUS_PRESSED, color);
1787 if (pControl->GetElement(L"guideTextColor", elementString))
1790 ConvertStringToColor32(elementString, opacity, color);
1791 r = pExpandableEditArea->SetGuideTextColor(color);
1794 if (pControl->GetElement(L"normalTitleTextColor", elementString))
1797 ConvertStringToColor32(elementString, opacity, color);
1798 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_NORMAL, color);
1801 if (pControl->GetElement(L"disabledTitleTextColor", elementString))
1804 ConvertStringToColor32(elementString, opacity, color);
1805 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_DISABLED, color);
1808 if (pControl->GetElement(L"highlightedTitleTextColor", elementString))
1811 ConvertStringToColor32(elementString, opacity, color);
1812 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_HIGHLIGHTED, color);
1815 if (pControl->GetElement(L"pressedTitleTextColor", elementString))
1818 ConvertStringToColor32(elementString, opacity, color);
1819 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_PRESSED, color);
1822 if (pControl->GetElement(L"normalTextColor", elementString))
1825 ConvertStringToColor32(elementString, opacity, color);
1826 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_NORMAL, color);
1829 if (pControl->GetElement(L"disabledTextColor", elementString))
1832 ConvertStringToColor32(elementString, opacity, color);
1833 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_DISABLED, color);
1836 if (pControl->GetElement(L"highlightedTextColor", elementString))
1839 ConvertStringToColor32(elementString, opacity, color);
1840 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, color);
1843 if (pControl->GetElement(L"normalTokenColor", elementString))
1846 ConvertStringToColor32(elementString, opacity, color);
1847 r = pExpandableEditArea->SetTokenColor(EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL, color);
1850 if (pControl->GetElement(L"selectedTokenColor", elementString))
1853 ConvertStringToColor32(elementString, opacity, color);
1854 r = pExpandableEditArea->SetTokenColor(EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED, color);
1857 if (pControl->GetElement(L"tokenTextColor", elementString))
1860 ConvertStringToColor32(elementString, opacity, color);
1861 r = pExpandableEditArea->SetTokenTextColor(color);
1864 if (pControl->GetElement(L"autoResizing", elementString))
1866 if (elementString.Equals(L"true", false))
1868 autoResizing = true;
1872 autoResizing = false;
1875 r = pExpandableEditArea->SetAutoResizingEnabled(autoResizing);
1878 if (pControl->GetElement(L"autoShrinkModeEnabled", elementString))
1880 if (elementString.Equals(L"true", false))
1889 pExpandableEditArea->SetAutoShrinkModeEnabled(autoShrink);
1892 return pExpandableEditArea;
1896 _ExpandableEditAreaRegister::_ExpandableEditAreaRegister(void)
1898 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
1899 pUiBuilderControlTableManager->RegisterControl(L"ExpandableEditArea", _ExpandableEditAreaMaker::GetInstance);
1901 _ExpandableEditAreaRegister::~_ExpandableEditAreaRegister(void)
1903 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
1904 pUiBuilderControlTableManager->UnregisterControl(L"ExpandableEditArea");
1906 static _ExpandableEditAreaRegister ExpandableEditAreaRegisterToUIbuilder;
1907 }}} // Tizen::Ui::Controls