2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 * @file FUiCtrl_ExpandableEditAreaImpl.cpp
19 * @brief This is the implementation for the _ExpandableEditAreaImpl class.
23 #include <FBaseSysLog.h>
24 #include <FBaseInternalTypes.h>
25 #include <FBase_LocalizedNumParser.h>
26 #include <FUiAccessibilityContainer.h>
27 #include <FUiAccessibilityElement.h>
28 #include <FUiCtrlInputTypes.h>
29 #include "FUi_UiBuilder.h"
30 #include "FUi_ResourceSizeInfo.h"
31 #include "FUiCtrl_Edit.h"
32 #include "FUiCtrl_ExpandableEditAreaImpl.h"
33 #include "FUiCtrl_TokenEdit.h"
34 #include "FUi_CoordinateSystemUtils.h"
36 using namespace Tizen::Base;
37 using namespace Tizen::Graphics;
38 using namespace Tizen::Locales;
39 using namespace Tizen::Base::Runtime;
41 namespace Tizen { namespace Ui { namespace Controls
43 _ExpandableEditAreaImpl*
44 _ExpandableEditAreaImpl::GetInstance(ExpandableEditArea& expandableEditArea)
46 return (static_cast<_ExpandableEditAreaImpl*> (expandableEditArea._pControlImpl));
49 const _ExpandableEditAreaImpl*
50 _ExpandableEditAreaImpl::GetInstance(const ExpandableEditArea& expandableEditArea)
52 return (static_cast<const _ExpandableEditAreaImpl*> (expandableEditArea._pControlImpl));
55 _ExpandableEditAreaImpl::_ExpandableEditAreaImpl(ExpandableEditArea* pPublic, _Edit* pCore)
56 : _ControlImpl(pPublic, pCore)
57 , __pExpandableEditArea(pCore)
58 , __expandableEditAreaStyle(EXPANDABLE_EDIT_AREA_STYLE_NORMAL)
59 , __expandableEditAreaTitleStyle(EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE)
60 , __maxLineCount(EXPANDABLE_EDIT_AREA_DEFAULT_MAX_LINE_COUNT)
61 , __pPublicTextEvent(null)
62 , __pPublicExpandableEditAreaEvent(null)
63 , __pPublicTextBlockEvent(null)
64 , __pPublicKeypadEvent(null)
65 , __pPublicLanguageEvent(null)
66 , __pTokenFilter(null)
70 _ExpandableEditAreaImpl::~_ExpandableEditAreaImpl(void)
72 if (__pExpandableEditArea)
74 __pExpandableEditArea->RemoveTextEventListener(*this);
75 __pExpandableEditArea->RemoveExpandableEditAreaEventListener(*this);
76 __pExpandableEditArea->RemoveTextBlockEventListener(*this);
77 __pExpandableEditArea->RemoveKeypadEventListener(*this);
80 delete __pPublicTextEvent;
81 __pPublicTextEvent = null;
83 delete __pPublicExpandableEditAreaEvent;
84 __pPublicExpandableEditAreaEvent = null;
86 delete __pPublicTextBlockEvent;
87 __pPublicTextBlockEvent = null;
89 delete __pPublicKeypadEvent;
90 __pPublicKeypadEvent = null;
94 _ExpandableEditAreaImpl*
95 _ExpandableEditAreaImpl::CreateExpandableEditAreaImplN(ExpandableEditArea* pControl, const Rectangle& rect,
96 ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle)
100 result r = E_SUCCESS;
102 FloatRectangle fRect = _CoordinateSystemUtils::ConvertToFloat(rect);
104 _ExpandableEditAreaImpl* pImpl = CreateExpandableEditAreaImplFN(pControl, fRect, style, titleStyle);
107 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
112 _ExpandableEditAreaImpl*
113 _ExpandableEditAreaImpl::CreateExpandableEditAreaImplFN(ExpandableEditArea* pControl, const FloatRectangle& fRect,
114 ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle)
118 result r = E_SUCCESS;
120 r = FUNC_SIZE_INFO(ExpandableEditArea)().CheckInitialSizeValidF(FloatDimension(fRect.width, fRect.height), _CONTROL_ORIENTATION_PORTRAIT);
121 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.");
124 if (style == EXPANDABLE_EDIT_AREA_STYLE_NORMAL)
126 pCore = _Edit::CreateEditN();
130 pCore = _TokenEdit::CreateTokenEditN();
132 SysTryReturn(NID_UI_CTRL, pCore != null, null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
134 _ExpandableEditAreaImpl* pImpl = new (std::nothrow) _ExpandableEditAreaImpl(pControl, pCore);
135 r = CheckConstruction(pCore, pImpl);
136 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
138 r = pImpl->InitializeBoundsPropertiesF(FUNC_SIZE_INFO(ExpandableEditArea)(), fRect, _CONTROL_ORIENTATION_PORTRAIT);
139 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
141 r = pCore->AddExpandableEditAreaEventListener(*pImpl);
142 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
144 r = pCore->AddKeypadEventListener(*pImpl);
145 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
147 r = pCore->AddTextBlockEventListener(*pImpl);
148 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
150 r = pCore->AddTextEventListener(*pImpl);
151 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
153 r = pCore->AddLanguageEventListener(*pImpl);
154 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
164 _ExpandableEditAreaImpl::GetPublicClassName(void) const
166 return "Tizen::Ui::Controls::ExpandableEditArea";
169 const ExpandableEditArea&
170 _ExpandableEditAreaImpl::GetPublic(void) const
172 return static_cast <const ExpandableEditArea&>(_ControlImpl::GetPublic());
176 _ExpandableEditAreaImpl::GetPublic(void)
178 return static_cast <ExpandableEditArea&>(_ControlImpl::GetPublic());
182 _ExpandableEditAreaImpl::GetCore(void) const
184 return static_cast <const _Edit&>(_ControlImpl::GetCore());
188 _ExpandableEditAreaImpl::GetCore(void)
190 return static_cast <_Edit&>(_ControlImpl::GetCore());
194 _ExpandableEditAreaImpl::Construct(const Rectangle& rect, ExpandableEditAreaStyle style,
195 ExpandableEditAreaTitleStyle titleStyle, int maxExpandableLines)
199 result r = E_SUCCESS;
201 FloatRectangle fRect = _CoordinateSystemUtils::ConvertToFloat(rect);
203 r = CreateExpandableEditArea(fRect, style, titleStyle, maxExpandableLines);
204 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
210 _ExpandableEditAreaImpl::Construct(const FloatRectangle& fRect, ExpandableEditAreaStyle style,
211 ExpandableEditAreaTitleStyle titleStyle, int maxExpandableLines)
215 result r = E_SUCCESS;
217 r = CreateExpandableEditArea(fRect, style, titleStyle, maxExpandableLines);
218 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
224 _ExpandableEditAreaImpl::Dispose(void)
228 result r = E_SUCCESS;
230 if (__pExpandableEditArea)
232 delete __pExpandableEditArea;
233 __pExpandableEditArea = null;
240 _ExpandableEditAreaImpl::CreateExpandableEditArea(const FloatRectangle& fRect, ExpandableEditAreaStyle style,
241 ExpandableEditAreaTitleStyle titleStyle, int maxExpandableLines)
245 result r = E_SUCCESS;
247 int editStyle = EDIT_STYLE_NORMAL | EDIT_STYLE_FLEXIBLE;
248 if (style & EXPANDABLE_EDIT_AREA_STYLE_TOKEN)
250 editStyle |= EDIT_STYLE_TOKEN;
253 if (titleStyle == EXPANDABLE_EDIT_AREA_TITLE_STYLE_INNER)
255 editStyle |= EDIT_STYLE_TITLE_LEFT;
257 else if (titleStyle == EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP)
259 editStyle |= EDIT_STYLE_TITLE_TOP;
262 r = __pExpandableEditArea->Initialize(editStyle, INPUT_STYLE_OVERLAY, EXPANDABLE_EDIT_AREA_TEXT_LENGTH_MAX);
263 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
265 __pExpandableEditArea->SetMaxLineCount(maxExpandableLines);
271 _ExpandableEditAreaImpl::GetMargin(EditMarginType marginType) const
275 if (marginType == EDIT_MARGIN_TYPE_VERTICAL)
277 return __pExpandableEditArea->GetVerticalMargin(EDIT_TEXT_TOP_MARGIN);
281 return __pExpandableEditArea->GetHorizontalMargin(EDIT_TEXT_LEFT_MARGIN);
286 _ExpandableEditAreaImpl::GetMarginF(EditMarginType marginType) const
290 if (marginType == EDIT_MARGIN_TYPE_VERTICAL)
292 return __pExpandableEditArea->GetVerticalMarginF(EDIT_TEXT_TOP_MARGIN);
296 return __pExpandableEditArea->GetHorizontalMarginF(EDIT_TEXT_LEFT_MARGIN);
300 _ExpandableEditAreaImpl::SetMargin(EditMarginType marginType, int margin)
304 result r = E_SUCCESS;
306 if (marginType == EDIT_MARGIN_TYPE_HORIZONTAL)
308 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_LEFT_MARGIN);
309 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
310 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_RIGHT_MARGIN);
311 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
315 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_TOP_MARGIN);
316 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
317 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_BOTTOM_MARGIN);
318 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
325 _ExpandableEditAreaImpl::SetMargin(EditMarginType marginType, float margin)
329 result r = E_SUCCESS;
331 if (marginType == EDIT_MARGIN_TYPE_HORIZONTAL)
333 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_LEFT_MARGIN);
334 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
335 r = __pExpandableEditArea->SetHorizontalMargin(margin, EDIT_TEXT_RIGHT_MARGIN);
336 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
340 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_TOP_MARGIN);
341 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
342 r = __pExpandableEditArea->SetVerticalMargin(margin, EDIT_TEXT_BOTTOM_MARGIN);
343 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
350 _ExpandableEditAreaImpl::GetKeypadAction(void) const
354 CoreKeypadAction coreKeypadAction = __pExpandableEditArea->GetKeypadAction();
355 KeypadAction publicKeypadAction = KEYPAD_ACTION_ENTER;
357 switch (coreKeypadAction)
359 case CORE_KEYPAD_ACTION_ENTER:
360 publicKeypadAction = KEYPAD_ACTION_ENTER;
363 case CORE_KEYPAD_ACTION_GO:
364 publicKeypadAction = KEYPAD_ACTION_GO;
367 case CORE_KEYPAD_ACTION_NEXT:
368 publicKeypadAction = KEYPAD_ACTION_NEXT;
371 case CORE_KEYPAD_ACTION_SEND:
372 publicKeypadAction = KEYPAD_ACTION_SEND;
375 case CORE_KEYPAD_ACTION_SEARCH:
376 publicKeypadAction = KEYPAD_ACTION_SEARCH;
379 case CORE_KEYPAD_ACTION_LOGIN:
380 publicKeypadAction = KEYPAD_ACTION_LOGIN;
383 case CORE_KEYPAD_ACTION_SIGN_IN:
384 publicKeypadAction = KEYPAD_ACTION_SIGN_IN;
387 case CORE_KEYPAD_ACTION_JOIN:
388 publicKeypadAction = KEYPAD_ACTION_JOIN;
391 case CORE_KEYPAD_ACTION_DONE:
392 publicKeypadAction = KEYPAD_ACTION_DONE;
399 return publicKeypadAction;
403 _ExpandableEditAreaImpl::SetKeypadAction(KeypadAction keypadAction)
407 CoreKeypadAction coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
409 switch (keypadAction)
411 case KEYPAD_ACTION_ENTER:
412 coreKeypadAction = CORE_KEYPAD_ACTION_ENTER;
415 case KEYPAD_ACTION_GO:
416 coreKeypadAction = CORE_KEYPAD_ACTION_GO;
419 case KEYPAD_ACTION_NEXT:
420 coreKeypadAction = CORE_KEYPAD_ACTION_NEXT;
423 case KEYPAD_ACTION_SEND:
424 coreKeypadAction = CORE_KEYPAD_ACTION_SEND;
427 case KEYPAD_ACTION_SEARCH:
428 coreKeypadAction = CORE_KEYPAD_ACTION_SEARCH;
431 case KEYPAD_ACTION_LOGIN:
432 coreKeypadAction = CORE_KEYPAD_ACTION_LOGIN;
435 case KEYPAD_ACTION_SIGN_IN:
436 coreKeypadAction = CORE_KEYPAD_ACTION_SIGN_IN;
439 case KEYPAD_ACTION_JOIN:
440 coreKeypadAction = CORE_KEYPAD_ACTION_JOIN;
443 case KEYPAD_ACTION_DONE:
444 coreKeypadAction = CORE_KEYPAD_ACTION_DONE;
451 return __pExpandableEditArea->SetKeypadAction(coreKeypadAction);
455 _ExpandableEditAreaImpl::GetKeypadStyle(void) const
459 return __pExpandableEditArea->GetKeypadStyle();
463 _ExpandableEditAreaImpl::SetKeypadStyle(KeypadStyle keypadStyle)
467 return __pExpandableEditArea->SetKeypadStyle(keypadStyle);
471 _ExpandableEditAreaImpl::IsTextPredictionEnabled(void) const
473 return __pExpandableEditArea->IsTextPredictionEnabled();
477 _ExpandableEditAreaImpl::SetTextPredictionEnabled(bool enable)
479 return __pExpandableEditArea->SetTextPredictionEnabled(enable);
483 _ExpandableEditAreaImpl::HideKeypad(void)
487 return __pExpandableEditArea->HideKeypad();
491 _ExpandableEditAreaImpl::GetTextSize(void) const
495 return __pExpandableEditArea->GetTextSize();
499 _ExpandableEditAreaImpl::GetTextSizeF(void) const
503 return __pExpandableEditArea->GetTextSizeF();
507 _ExpandableEditAreaImpl::SetTextSize(int size)
511 return __pExpandableEditArea->SetTextSize(size);
515 _ExpandableEditAreaImpl::SetTextSize(float size)
519 return __pExpandableEditArea->SetTextSize(size);
523 _ExpandableEditAreaImpl::GetColor(EditStatus status) const
527 return __pExpandableEditArea->GetColor(status);
531 _ExpandableEditAreaImpl::GetTextColor(EditTextColor type) const
534 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.");
536 return __pExpandableEditArea->GetTextColor(type);
540 _ExpandableEditAreaImpl::SetBackgroundBitmap(EditStatus status, const Bitmap& bitmap)
544 return __pExpandableEditArea->SetBackgroundBitmap(status, bitmap);
548 _ExpandableEditAreaImpl::SetColor(EditStatus status, const Color& color)
552 return __pExpandableEditArea->SetColor(status, color);
556 _ExpandableEditAreaImpl::SetTextColor(EditTextColor type, const Color& color)
560 return __pExpandableEditArea->SetTextColor(type, color);
564 _ExpandableEditAreaImpl::GetText(int start, int end) const
568 return __pExpandableEditArea->GetText(start, end);
572 _ExpandableEditAreaImpl::AddExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener)
574 result r = E_SUCCESS;
577 if (__pPublicExpandableEditAreaEvent == null)
579 __pPublicExpandableEditAreaEvent = _PublicExpandableEditAreaEvent::CreateInstanceN(GetPublic());
581 SysTryReturnResult(NID_UI_CTRL, __pPublicExpandableEditAreaEvent != null, r, "Propagating.");
584 r = __pPublicExpandableEditAreaEvent->AddListener(listener);
585 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.");
591 _ExpandableEditAreaImpl::RemoveExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener)
595 SysTryReturnResult(NID_UI_CTRL, __pPublicExpandableEditAreaEvent != null, E_SYSTEM, "A system error has occurred. The _PublicExpandableEditAreaEvent instance is null");
597 result r = __pPublicExpandableEditAreaEvent->RemoveListener(listener);
598 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.");
605 _ExpandableEditAreaImpl::AddKeypadEventListener(IKeypadEventListener& listener)
607 result r = E_SUCCESS;
610 if (__pPublicKeypadEvent == null)
612 __pPublicKeypadEvent = _PublicKeypadEvent::CreateInstanceN(GetPublic());
614 SysTryReturnResult(NID_UI_CTRL, __pPublicKeypadEvent != null, r, "Propagating.");
617 r = __pPublicKeypadEvent->AddListener(listener);
618 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.");
624 _ExpandableEditAreaImpl::RemoveKeypadEventListener(IKeypadEventListener& listener)
628 SysTryReturnResult(NID_UI_CTRL, __pPublicKeypadEvent != null, E_SYSTEM, "A system error has occurred. The _PublicKeypadEvent instance is null.");
630 result r = __pPublicKeypadEvent->RemoveListener(listener);
631 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.");
638 _ExpandableEditAreaImpl::AddTextBlockEventListener(ITextBlockEventListener& listener)
640 result r = E_SUCCESS;
643 if (__pPublicTextBlockEvent == null)
645 __pPublicTextBlockEvent = _PublicTextBlockEvent::CreateInstanceN(GetPublic());
647 SysTryReturnResult(NID_UI_CTRL, __pPublicTextBlockEvent != null, r, "Propagating.");
650 r = __pPublicTextBlockEvent->AddListener(listener);
651 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.");
657 _ExpandableEditAreaImpl::RemoveTextBlockEventListener(ITextBlockEventListener& listener)
661 SysTryReturnResult(NID_UI_CTRL, __pPublicTextBlockEvent, E_SYSTEM, "A system error has occurred. The _PublicTextBlockEvent instance is null.");
663 result r = __pPublicTextBlockEvent->RemoveListener(listener);
664 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.");
670 _ExpandableEditAreaImpl::AddTextEventListener(ITextEventListener& listener)
672 result r = E_SUCCESS;
675 if (__pPublicTextEvent == null)
677 __pPublicTextEvent = _PublicTextEvent::CreateInstanceN(GetPublic());
679 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
682 r = __pPublicTextEvent->AddListener(listener);
683 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.");
689 _ExpandableEditAreaImpl::RemoveTextEventListener(ITextEventListener& listener)
693 SysTryReturnResult(NID_UI_CTRL, __pPublicTextEvent, E_SYSTEM, "A system error has occurred. The _PublicTextEvent instance is null.");
695 result r = __pPublicTextEvent->RemoveListener(listener);
696 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.");
702 _ExpandableEditAreaImpl::AddLanguageEventListener(ILanguageEventListener& listener)
704 result r = E_SUCCESS;
707 if (__pPublicLanguageEvent == null)
709 __pPublicLanguageEvent = _PublicLanguageEvent::CreateInstanceN(GetPublic());
711 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
714 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
716 r = __pPublicLanguageEvent->AddListener(listener);
722 _ExpandableEditAreaImpl::RemoveLanguageEventListener(ILanguageEventListener& listener)
726 SysAssertf(__pPublicLanguageEvent != null, "Not yet constructed. Construct() should be called before use.");
728 return __pPublicLanguageEvent->RemoveListener(listener);
732 _ExpandableEditAreaImpl::SetLowerCaseModeEnabled(bool enable)
736 __pExpandableEditArea->SetLowerCaseModeEnabled(enable);
742 _ExpandableEditAreaImpl::IsLowerCaseModeEnabled(void) const
746 return __pExpandableEditArea->IsLowerCaseModeEnabled();
750 _ExpandableEditAreaImpl::SetCursorPosition(int position)
754 return __pExpandableEditArea->SetCursorPosition(position);
758 _ExpandableEditAreaImpl::GetCursorPosition(void) const
762 return __pExpandableEditArea->GetCursorPosition();
766 _ExpandableEditAreaImpl::GetText(void) const
770 return __pExpandableEditArea->GetText();
774 _ExpandableEditAreaImpl::GetTextLength(void) const
778 return __pExpandableEditArea->GetTextLength();
782 _ExpandableEditAreaImpl::SetText(const String& text)
786 return __pExpandableEditArea->SetText(text);
790 _ExpandableEditAreaImpl::InsertTextAt(int index, const String& text)
794 return __pExpandableEditArea->InsertTextAt(index, text);
798 _ExpandableEditAreaImpl::AppendText(const String& text)
802 return __pExpandableEditArea->AppendText(text);
806 _ExpandableEditAreaImpl::AppendCharacter(const Character& character)
810 return __pExpandableEditArea->AppendCharacter(character);
814 _ExpandableEditAreaImpl::InsertTextAt(int position, const String& text, const Bitmap& textImage)
818 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
819 SysTryReturnResult(NID_UI_CTRL, pTokenEdit == null, E_UNSUPPORTED_OPERATION,
820 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_STYLE_TOKEN does not support this operation.");
822 return __pExpandableEditArea->InsertTextAt(position, text, textImage);
826 _ExpandableEditAreaImpl::AppendText(const String& text, const Bitmap& textImage)
830 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
831 SysTryReturnResult(NID_UI_CTRL, pTokenEdit == null, E_UNSUPPORTED_OPERATION,
832 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_STYLE_TOKEN does not support this operation.");
834 return __pExpandableEditArea->AppendText(text, textImage);
838 _ExpandableEditAreaImpl::Clear(void)
842 return __pExpandableEditArea->ClearText();
846 _ExpandableEditAreaImpl::DeleteCharacterAt(int index)
850 return __pExpandableEditArea->DeleteCharacterAt(index);
854 _ExpandableEditAreaImpl::InsertCharacterAt(int index, const Character& character)
858 return __pExpandableEditArea->InsertCharacterAt(index, character);
862 _ExpandableEditAreaImpl::SetGuideText(const String& guideText)
866 __pExpandableEditArea->SetGuideText(guideText);
872 _ExpandableEditAreaImpl::GetGuideText(void) const
876 return __pExpandableEditArea->GetGuideText();
880 _ExpandableEditAreaImpl::GetGuideTextColor(void) const
884 return __pExpandableEditArea->GetGuideTextColor();
888 _ExpandableEditAreaImpl::SetGuideTextColor(const Color& color)
892 return __pExpandableEditArea->SetGuideTextColor(color);
896 _ExpandableEditAreaImpl::GetLineSpacing(void) const
900 return __pExpandableEditArea->GetLineSpacing();
904 _ExpandableEditAreaImpl::GetLineSpacingF(void) const
908 return __pExpandableEditArea->GetLineSpacingF();
912 _ExpandableEditAreaImpl::SetLineSpacing(int multiplier, int extra)
916 SysTryReturn(NID_UI_CTRL, multiplier >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. multiplier = %d ", multiplier);
917 SysTryReturn(NID_UI_CTRL, extra >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. extra = %d ", extra);
919 return __pExpandableEditArea->SetLineSpacing(DEFAULT_LINE_SPACE * multiplier + extra);
923 _ExpandableEditAreaImpl::SetLineSpacing(int multiplier, float extra)
927 SysTryReturn(NID_UI_CTRL, multiplier >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. multiplier = %d ", multiplier);
928 SysTryReturn(NID_UI_CTRL, extra >= 0.0f, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. extra = %d ", extra);
930 return __pExpandableEditArea->SetLineSpacing(DEFAULT_LINE_SPACE * multiplier + extra);
934 _ExpandableEditAreaImpl::GetTitleTextColor(EditStatus status) const
938 return __pExpandableEditArea->GetTitleTextColor(status);
942 _ExpandableEditAreaImpl::SetTitleTextColor(EditStatus status, const Color& color)
946 return __pExpandableEditArea->SetTitleTextColor(status, color);
950 _ExpandableEditAreaImpl::GetTokenColor(ExpandableEditAreaTokenStatus status) const
954 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
955 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
956 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
961 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL :
962 var = pTokenEdit->GetPropertyNormalTokenColor();
965 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED :
966 var = pTokenEdit->GetPropertySelectedTokenColor();
973 return var.ToColor();
977 _ExpandableEditAreaImpl::SetTokenColor(ExpandableEditAreaTokenStatus status, const Color& color)
981 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
982 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
983 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
989 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL :
990 pTokenEdit->SetPropertyNormalTokenColor(var);
993 case EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED :
994 pTokenEdit->SetPropertySelectedTokenColor(var);
1005 _ExpandableEditAreaImpl::GetTokenTextColor(void) const
1009 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1010 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
1011 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1013 Variant var = pTokenEdit->GetPropertyTokenTextColor();
1015 return var.ToColor();
1019 _ExpandableEditAreaImpl::GetSelectedTokenTextColor(void) const
1023 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1024 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, Color(), E_UNSUPPORTED_OPERATION,
1025 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1027 return pTokenEdit->GetSelectedTokenTextColor();
1031 _ExpandableEditAreaImpl::SetTokenTextColor(const Color& color)
1035 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1036 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1037 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1041 return pTokenEdit->SetPropertyTokenTextColor(var);
1045 _ExpandableEditAreaImpl::SetSelectedTokenTextColor(const Color& color)
1049 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1050 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1051 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1053 return pTokenEdit->SetSelectedTokenTextColor(color);
1057 _ExpandableEditAreaImpl::SetCurrentLanguage(LanguageCode languageCode)
1061 return __pExpandableEditArea->SetCurrentLanguage(languageCode);
1065 _ExpandableEditAreaImpl::GetCurrentLanguage(LanguageCode& language) const
1069 return __pExpandableEditArea->GetCurrentLanguage(language);
1073 _ExpandableEditAreaImpl::SetEditTextFilter(IEditTextFilter* pFilter)
1077 __pExpandableEditArea->SetEditTextFilter(pFilter);
1083 _ExpandableEditAreaImpl::SendOpaqueCommand (const String& command)
1087 __pExpandableEditArea->SendOpaqueCommand(command);
1093 _ExpandableEditAreaImpl::SetKeypadEnabled(bool enable)
1097 __pExpandableEditArea->SetKeypadEnabled(enable);
1103 _ExpandableEditAreaImpl::IsKeypadEnabled(void) const
1107 return __pExpandableEditArea->IsKeypadEnabled();
1111 _ExpandableEditAreaImpl::ShowKeypad(void)
1115 return __pExpandableEditArea->ShowKeypad();
1119 _ExpandableEditAreaImpl::GetTextLineCount(void) const
1123 return __pExpandableEditArea->GetTextLineCount();
1127 _ExpandableEditAreaImpl::GetBlockRange(int& start, int& end) const
1131 __pExpandableEditArea->GetBlockRange(start, end);
1133 if (!((start == 0) && (end == 0)))
1142 _ExpandableEditAreaImpl::ReleaseBlock(void)
1146 return __pExpandableEditArea->ReleaseTextBlock();
1150 _ExpandableEditAreaImpl::RemoveTextBlock(void)
1154 return __pExpandableEditArea->RemoveTextBlock();
1158 _ExpandableEditAreaImpl::SetBlockRange(int start, int end)
1162 int tempTextLength = __pExpandableEditArea->GetTextLength();
1163 SysTryReturnResult(NID_UI_CTRL, ((start > -1) && (end > -1) && (end >= start) && (end < tempTextLength)), E_OUT_OF_RANGE,
1164 "start (%d) and end (%d) is out of range.", start, end);
1166 return __pExpandableEditArea->SetBlockRange(start, end + 1);
1170 _ExpandableEditAreaImpl::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
1178 _ExpandableEditAreaImpl::SetMaxLineCount(int maxLineCount)
1182 __pExpandableEditArea->SetMaxLineCount(maxLineCount);
1186 _ExpandableEditAreaImpl::GetMaxLineCount(void) const
1190 return __pExpandableEditArea->GetMaxLineCount();
1194 _ExpandableEditAreaImpl::GetTitleText(void) const
1198 return __pExpandableEditArea->GetTitleText();
1202 _ExpandableEditAreaImpl::SetTitleText(const String& title)
1206 SysTryReturnResult(NID_UI_CTRL, (__pExpandableEditArea->GetEditStyle() & (EDIT_STYLE_TITLE_LEFT | EDIT_STYLE_TITLE_TOP)),
1207 E_UNSUPPORTED_OPERATION, "The current title style cannot support this function.\n");
1209 return __pExpandableEditArea->SetTitleText(title);
1213 _ExpandableEditAreaImpl::GetLimitLength(void) const
1217 return __pExpandableEditArea->GetTextLimitLength();
1221 _ExpandableEditAreaImpl::SetLimitLength(int limitLength)
1225 return __pExpandableEditArea->SetLimitLength(limitLength);
1229 _ExpandableEditAreaImpl::SetAutoResizingEnabled(bool enable)
1233 Variant var(enable);
1235 return __pExpandableEditArea->SetPropertyAutoResizingEnabled(var);
1239 _ExpandableEditAreaImpl::IsAutoResizingEnabled(void) const
1243 Variant var = __pExpandableEditArea->GetPropertyAutoResizingEnabled();
1245 return var.ToBool();
1249 _ExpandableEditAreaImpl::SetAutoShrinkModeEnabled(bool enable)
1253 __pExpandableEditArea->SetAutoShrinkModeEnabled(enable);
1257 _ExpandableEditAreaImpl::IsAutoShrinkModeEnabled(void) const
1261 return __pExpandableEditArea->IsAutoShrinkModeEnabled();
1265 _ExpandableEditAreaImpl::GetTokenFilter(void) const
1269 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1270 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, null, E_UNSUPPORTED_OPERATION,
1271 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1273 return __pTokenFilter;
1277 _ExpandableEditAreaImpl::SetTokenFilter(const ITokenFilter* pFilter)
1281 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1282 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1283 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1285 __pTokenFilter = const_cast <ITokenFilter*>(pFilter);
1287 return pTokenEdit->SetTokenFilter(this);
1291 _ExpandableEditAreaImpl::AppendToken(const String& token)
1295 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1296 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1297 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1299 return pTokenEdit->AppendToken(token);
1303 _ExpandableEditAreaImpl::InsertTokenAt(int index, const String& token)
1307 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1308 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1309 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1311 return pTokenEdit->InsertTokenAt(index, token);
1315 _ExpandableEditAreaImpl::GetTokenAt(int index) const
1319 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1320 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, String(), E_UNSUPPORTED_OPERATION,
1321 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1323 return pTokenEdit->GetTokenAt(index);
1327 _ExpandableEditAreaImpl::GetTokenCount(void) const
1331 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1332 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, -1, E_UNSUPPORTED_OPERATION,
1333 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1335 return pTokenEdit->GetTokenCount();
1339 _ExpandableEditAreaImpl::GetSelectedTokenIndex(void) const
1343 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1344 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, -1, E_UNSUPPORTED_OPERATION,
1345 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1347 return pTokenEdit->GetSelectedTokenIndex();
1351 _ExpandableEditAreaImpl::IsTokenEditModeEnabled(void) const
1355 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1356 SysTryReturn(NID_UI_CTRL, pTokenEdit != null, false, E_UNSUPPORTED_OPERATION,
1357 "[E_UNSUPPORTED_OPERATION] ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1359 Variant var = pTokenEdit->GetPropertyTokenEditModeEnabled();
1361 return var.ToBool();
1365 _ExpandableEditAreaImpl::RemoveTokenAt(int index)
1369 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1370 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1371 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1373 return pTokenEdit->RemoveTokenAt(index);
1377 _ExpandableEditAreaImpl::SetTokenSelected(int index, bool selected)
1381 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1382 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1383 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1385 return pTokenEdit->SetTokenSelected(index, selected);
1389 _ExpandableEditAreaImpl::SetTokenEditModeEnabled(bool enable)
1393 _TokenEdit* pTokenEdit = dynamic_cast <_TokenEdit*>(__pExpandableEditArea);
1394 SysTryReturnResult(NID_UI_CTRL, pTokenEdit != null, E_UNSUPPORTED_OPERATION,
1395 "ExpandableEditArea of style EXPANDABLE_EDIT_AREA_NORMAL does not support this operation.");
1397 Variant var(enable);
1398 return pTokenEdit->SetPropertyTokenEditModeEnabled(var);
1402 _ExpandableEditAreaImpl::OnTextValueChanged(const _Control& source)
1404 if (__pPublicTextEvent != null)
1406 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CHANGED);
1407 result r = GetLastResult();
1408 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1410 __pPublicTextEvent->Fire(*pEventArg);
1415 _ExpandableEditAreaImpl::OnTextValueChangeCanceled(const _Control& source)
1417 if (__pPublicTextEvent != null)
1419 IEventArg* pEventArg = _PublicTextEvent::CreateTextEventArgN(TEXT_EVENT_CANCELED);
1420 result r = GetLastResult();
1421 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1423 __pPublicTextEvent->Fire(*pEventArg);
1428 _ExpandableEditAreaImpl::OnExpandableEditAreaLineAdded(const _Control& source, int newLineCount)
1430 if (__pPublicExpandableEditAreaEvent)
1432 IEventArg* pEventArg = _PublicExpandableEditAreaEvent::CreateExpandableEditAreaEventArgN(
1433 EXPANDABLE_EDITAREA_EVENT_ADDED, newLineCount);
1434 result r = GetLastResult();
1435 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1437 __pPublicExpandableEditAreaEvent->Fire(*pEventArg);
1442 _ExpandableEditAreaImpl::OnExpandableEditAreaLineRemoved(const _Control& source, int newLineCount)
1444 if (__pPublicExpandableEditAreaEvent)
1446 IEventArg* pEventArg = _PublicExpandableEditAreaEvent::CreateExpandableEditAreaEventArgN(
1447 EXPANDABLE_EDITAREA_EVENT_REMOVED, newLineCount);
1448 result r = GetLastResult();
1449 SysTryReturnVoidResult(NID_UI_CTRL, pEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1451 __pPublicExpandableEditAreaEvent->Fire(*pEventArg);
1456 _ExpandableEditAreaImpl::OnTextBlockSelected(_Control& source, int start, int end)
1458 if (__pPublicTextBlockEvent != null)
1460 IEventArg* pTextBlockEventArg = _PublicTextBlockEvent::CreateTextBlockEventArgN(start, end);
1461 result r = GetLastResult();
1462 SysTryReturnVoidResult(NID_UI_CTRL, pTextBlockEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1464 __pPublicTextBlockEvent->Fire(*pTextBlockEventArg);
1469 _ExpandableEditAreaImpl::OnKeypadWillOpen(void)
1471 if (__pPublicKeypadEvent)
1473 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1474 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CREATED);
1475 result r = GetLastResult();
1476 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1478 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1483 _ExpandableEditAreaImpl::OnKeypadOpened(void)
1485 if (__pPublicKeypadEvent)
1487 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1488 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_OPEN);
1489 result r = GetLastResult();
1490 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1492 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1497 _ExpandableEditAreaImpl::OnKeypadClosed(void)
1499 if (__pPublicKeypadEvent)
1501 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1502 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_CLOSE);
1503 result r = GetLastResult();
1504 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1506 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1511 _ExpandableEditAreaImpl::OnKeypadBoundsChanged(void)
1513 if (__pPublicKeypadEvent)
1515 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1516 GetPublic(), KEYPAD_ACTION_ENTER, KEYPAD_EVENT_STATUS_BOUNDS_CHANGED);
1517 result r = GetLastResult();
1518 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1520 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1525 _ExpandableEditAreaImpl::OnLanguageChanged(LanguageCode oldLanguage, LanguageCode newLanguage)
1527 if (__pPublicLanguageEvent)
1529 IEventArg* pKLanguageEventArg = _PublicLanguageEvent::CreateLanguageEventArgN(GetPublic(), oldLanguage, newLanguage);
1530 result r = GetLastResult();
1531 SysTryReturnVoidResult(NID_UI_CTRL, pKLanguageEventArg, r, "[%s] Propagating.", GetErrorMessage(r));
1533 __pPublicLanguageEvent->Fire(*pKLanguageEventArg);
1537 SysLog(NID_UI_CTRL, "Event is not created.");
1542 _ExpandableEditAreaImpl::OnKeypadActionPerformed(CoreKeypadAction keypadAction)
1544 if (__pPublicKeypadEvent)
1546 KeypadAction onKeypadAction = KEYPAD_ACTION_ENTER;
1547 switch (keypadAction)
1549 case CORE_KEYPAD_ACTION_ENTER:
1550 onKeypadAction = KEYPAD_ACTION_ENTER;
1553 case CORE_KEYPAD_ACTION_GO:
1554 onKeypadAction = KEYPAD_ACTION_GO;
1557 case CORE_KEYPAD_ACTION_NEXT:
1558 onKeypadAction = KEYPAD_ACTION_NEXT;
1561 case CORE_KEYPAD_ACTION_SEND:
1562 onKeypadAction = KEYPAD_ACTION_SEND;
1565 case CORE_KEYPAD_ACTION_SEARCH:
1566 onKeypadAction = KEYPAD_ACTION_SEARCH;
1569 case CORE_KEYPAD_ACTION_LOGIN:
1570 onKeypadAction = KEYPAD_ACTION_LOGIN;
1573 case CORE_KEYPAD_ACTION_SIGN_IN:
1574 onKeypadAction = KEYPAD_ACTION_SIGN_IN;
1577 case CORE_KEYPAD_ACTION_JOIN:
1578 onKeypadAction = KEYPAD_ACTION_JOIN;
1581 case CORE_KEYPAD_ACTION_DONE:
1582 onKeypadAction = KEYPAD_ACTION_DONE;
1589 IEventArg* pKeypadEventArg = _PublicKeypadEvent::CreateKeypadEventArgN(
1590 GetPublic(), onKeypadAction, KEYPAD_EVENT_STATUS_ENTERACTION);
1591 result r = GetLastResult();
1592 SysTryReturnVoidResult(NID_UI_CTRL, pKeypadEventArg != null, r, "[%s] Propagating.", GetErrorMessage(r));
1594 __pPublicKeypadEvent->Fire(*pKeypadEventArg);
1599 _ExpandableEditAreaImpl::ReplaceToken(const String& token, String& replacement)
1601 bool enable = false;
1604 enable = __pTokenFilter->ReplaceToken(token, replacement);
1611 class _ExpandableEditAreaMaker
1612 : public _UiBuilderControlMaker
1615 _ExpandableEditAreaMaker(_UiBuilder* uibuilder)
1616 : _UiBuilderControlMaker(uibuilder){};
1617 virtual ~_ExpandableEditAreaMaker(){};
1618 static _UiBuilderControlMaker* GetInstance(_UiBuilder* uibuilder)
1620 _ExpandableEditAreaMaker* pExpandableEditAreaMaker = new (std::nothrow) _ExpandableEditAreaMaker(uibuilder);
1621 return pExpandableEditAreaMaker;
1625 virtual Control* Make(_UiBuilderControl* pControl)
1627 result r = E_SUCCESS;
1629 FloatRectangle rect;
1630 ExpandableEditArea* pExpandableEditArea = null;
1631 _UiBuilderControlLayout* pControlProperty = null;
1632 ExpandableEditAreaStyle style = EXPANDABLE_EDIT_AREA_STYLE_NORMAL;
1633 ExpandableEditAreaTitleStyle titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE;
1634 bool lowerCaseMode = false;
1635 KeypadAction keypadAction = KEYPAD_ACTION_ENTER;
1636 KeypadStyle keypadStyle = KEYPAD_STYLE_NORMAL;
1639 float verticalMarin = 0.0f;
1640 float horizontalMargin = 0.0f;
1642 float textSize = 6.0f;
1644 int limitLength = 0;
1647 bool autoResizing = false;
1648 bool autoShrink = false;
1649 String elementString;
1651 GetProperty(pControl, &pControlProperty);
1652 if (pControlProperty == null)
1657 pExpandableEditArea = new (std::nothrow) ExpandableEditArea();
1658 if (pExpandableEditArea == null)
1663 rect = pControlProperty->GetRectF();
1665 if (pControl->GetElement(L"style", elementString))
1667 if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_STYLE_NORMAL", false))
1669 style = EXPANDABLE_EDIT_AREA_STYLE_NORMAL;
1673 style = EXPANDABLE_EDIT_AREA_STYLE_TOKEN;
1677 if (pControl->GetElement(L"titleStyle", elementString))
1679 if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE", false))
1681 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE;
1683 else if (elementString.Equals(L"EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP", false))
1685 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_TOP;
1689 titleStyle = EXPANDABLE_EDIT_AREA_TITLE_STYLE_INNER;
1693 if (pControl->GetElement(L"maxLines", elementString))
1695 Base::Integer::Parse(elementString, maxLines);
1698 r = pExpandableEditArea->Construct(rect, style, titleStyle, maxLines);
1704 if (pControl->GetElement(L"text", elementString))
1706 r = pExpandableEditArea->SetText(elementString);
1709 if (pControl->GetElement(L"guideText", elementString))
1711 r = pExpandableEditArea->SetGuideText(elementString);
1714 if (pControl->GetElement(L"keypadStyle", elementString))
1716 if (elementString.Equals(L"KEYPAD_STYLE_NORMAL", false))
1718 keypadStyle = KEYPAD_STYLE_NORMAL;
1720 else if (elementString.Equals(L"KEYPAD_STYLE_PASSWORD", false))
1722 keypadStyle = KEYPAD_STYLE_PASSWORD;
1724 else if (elementString.Equals(L"KEYPAD_STYLE_EMAIL", false))
1726 keypadStyle = KEYPAD_STYLE_EMAIL;
1728 else if (elementString.Equals(L"KEYPAD_STYLE_URL", false))
1730 keypadStyle = KEYPAD_STYLE_URL;
1732 else if (elementString.Equals(L"KEYPAD_STYLE_NUMBER", false))
1734 keypadStyle = KEYPAD_STYLE_NUMBER;
1736 else if (elementString.Equals(L"KEYPAD_STYLE_PHONE_NUMBER", false))
1738 keypadStyle = KEYPAD_STYLE_PHONE_NUMBER;
1740 else if (elementString.Equals(L"KEYPAD_STYLE_IP_V4", false))
1742 keypadStyle = KEYPAD_STYLE_IP_V4;
1745 r = pExpandableEditArea->SetKeypadStyle(keypadStyle);
1748 if (pControl->GetElement(L"keypadAction", elementString))
1750 if (elementString.Equals(L"KEYPAD_ACTION_ENTER", false))
1752 keypadAction = KEYPAD_ACTION_ENTER;
1754 else if (elementString.Equals(L"KEYPAD_ACTION_GO", false))
1756 keypadAction = KEYPAD_ACTION_GO;
1758 else if (elementString.Equals(L"KEYPAD_ACTION_NEXT", false))
1760 keypadAction = KEYPAD_ACTION_NEXT;
1762 else if (elementString.Equals(L"KEYPAD_ACTION_SEND", false))
1764 keypadAction = KEYPAD_ACTION_SEND;
1766 else if (elementString.Equals(L"KEYPAD_ACTION_SEARCH", false))
1768 keypadAction = KEYPAD_ACTION_SEARCH;
1770 else if (elementString.Equals(L"KEYPAD_ACTION_LOGIN", false))
1772 keypadAction = KEYPAD_ACTION_LOGIN;
1774 else if (elementString.Equals(L"KEYPAD_ACTION_SIGN_IN", false))
1776 keypadAction = KEYPAD_ACTION_SIGN_IN;
1778 else if (elementString.Equals(L"KEYPAD_ACTION_JOIN", false))
1780 keypadAction = KEYPAD_ACTION_JOIN;
1782 else if (elementString.Equals(L"KEYPAD_ACTION_DONE", false))
1784 keypadAction = KEYPAD_ACTION_DONE;
1787 r = pExpandableEditArea->SetKeypadAction(keypadAction);
1790 if (pControl->GetElement(L"lowerCaseMode", elementString))
1792 if (elementString.Equals(L"true", false))
1794 lowerCaseMode = true;
1798 lowerCaseMode = false;
1801 r = pExpandableEditArea->SetLowerCaseModeEnabled(lowerCaseMode);
1804 if (pControl->GetElement(L"textSize", elementString))
1806 textSize = _LocalizedNumParser::ToDouble(elementString, "C");
1807 _ICoordinateSystemTransformer* pTransform = GetTransformer();
1810 textSize = pTransform->Transform(textSize);
1812 r = pExpandableEditArea->SetTextSize(textSize);
1815 if (pControl->GetElement(L"verticalMargin", elementString))
1817 verticalMarin = _LocalizedNumParser::ToDouble(elementString, "C");
1818 r = pExpandableEditArea->SetMargin(EDIT_MARGIN_TYPE_VERTICAL, verticalMarin);
1821 if (pControl->GetElement(L"horizontalMargin", elementString))
1823 horizontalMargin = _LocalizedNumParser::ToDouble(elementString, "C");
1824 r = pExpandableEditArea->SetMargin(EDIT_MARGIN_TYPE_HORIZONTAL, horizontalMargin);
1827 if (pControl->GetElement(L"limitLength", elementString))
1829 Base::Integer::Parse(elementString, limitLength);
1830 r = pExpandableEditArea->SetLimitLength(limitLength);
1833 if (pControl->GetElement(L"titleText", elementString))
1835 r = pExpandableEditArea->SetTitleText(elementString);
1838 if (pControl->GetElement(L"normalBGBitmapPath", elementString))
1840 Bitmap* pNormalBGBitmap = null;
1841 pNormalBGBitmap = LoadBitmapN(elementString);
1842 if (pNormalBGBitmap != null)
1844 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_NORMAL, *pNormalBGBitmap);
1845 delete pNormalBGBitmap;
1849 if (pControl->GetElement(L"disabledBGBitmapPath", elementString))
1851 Bitmap* pNormalBGBitmap = null;
1852 pNormalBGBitmap = LoadBitmapN(elementString);
1853 if (pNormalBGBitmap != null)
1855 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_DISABLED, *pNormalBGBitmap);
1856 delete pNormalBGBitmap;
1860 if (pControl->GetElement(L"highlightedBGBitmapPath", elementString))
1862 Bitmap* pNormalBGBitmap = null;
1863 pNormalBGBitmap = LoadBitmapN(elementString);
1864 if (pNormalBGBitmap != null)
1866 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_HIGHLIGHTED, *pNormalBGBitmap);
1867 delete pNormalBGBitmap;
1871 if (pControl->GetElement(L"pressedBGBitmapPath", elementString))
1873 Bitmap* pNormalBGBitmap = null;
1874 pNormalBGBitmap = LoadBitmapN(elementString);
1875 if (pNormalBGBitmap != null)
1877 r = pExpandableEditArea->SetBackgroundBitmap(EDIT_STATUS_PRESSED, *pNormalBGBitmap);
1878 delete pNormalBGBitmap;
1882 if (pControl->GetElement(L"normalColorOpacity", elementString))
1884 Base::Integer::Parse(elementString, opacity);
1886 if (pControl->GetElement(L"normalColor", elementString))
1888 ConvertStringToColor32(elementString, opacity, color);
1889 r = pExpandableEditArea->SetColor(EDIT_STATUS_NORMAL, color);
1892 if (pControl->GetElement(L"disabledColorOpacity", elementString))
1894 Base::Integer::Parse(elementString, opacity);
1896 if (pControl->GetElement(L"disabledColor", elementString))
1898 ConvertStringToColor32(elementString, opacity, color);
1899 r = pExpandableEditArea->SetColor(EDIT_STATUS_DISABLED, color);
1902 if (pControl->GetElement(L"highlightedColorOpacity", elementString))
1904 Base::Integer::Parse(elementString, opacity);
1906 if (pControl->GetElement(L"highlightedColor", elementString))
1908 ConvertStringToColor32(elementString, opacity, color);
1909 r = pExpandableEditArea->SetColor(EDIT_STATUS_HIGHLIGHTED, color);
1912 if (pControl->GetElement(L"pressedColorOpacity", elementString))
1914 Base::Integer::Parse(elementString, opacity);
1916 if (pControl->GetElement(L"pressedColor", elementString))
1918 ConvertStringToColor32(elementString, opacity, color);
1919 r = pExpandableEditArea->SetColor(EDIT_STATUS_PRESSED, color);
1922 if (pControl->GetElement(L"guideTextColor", elementString))
1925 ConvertStringToColor32(elementString, opacity, color);
1926 r = pExpandableEditArea->SetGuideTextColor(color);
1929 if (pControl->GetElement(L"normalTitleTextColor", elementString))
1932 ConvertStringToColor32(elementString, opacity, color);
1933 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_NORMAL, color);
1936 if (pControl->GetElement(L"disabledTitleTextColor", elementString))
1939 ConvertStringToColor32(elementString, opacity, color);
1940 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_DISABLED, color);
1943 if (pControl->GetElement(L"highlightedTitleTextColor", elementString))
1946 ConvertStringToColor32(elementString, opacity, color);
1947 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_HIGHLIGHTED, color);
1950 if (pControl->GetElement(L"pressedTitleTextColor", elementString))
1953 ConvertStringToColor32(elementString, opacity, color);
1954 r = pExpandableEditArea->SetTitleTextColor(EDIT_STATUS_PRESSED, color);
1957 if (pControl->GetElement(L"normalTextColor", elementString))
1960 ConvertStringToColor32(elementString, opacity, color);
1961 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_NORMAL, color);
1964 if (pControl->GetElement(L"disabledTextColor", elementString))
1967 ConvertStringToColor32(elementString, opacity, color);
1968 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_DISABLED, color);
1971 if (pControl->GetElement(L"highlightedTextColor", elementString))
1974 ConvertStringToColor32(elementString, opacity, color);
1975 r = pExpandableEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, color);
1978 if (pControl->GetElement(L"normalTokenColor", elementString))
1981 ConvertStringToColor32(elementString, opacity, color);
1982 r = pExpandableEditArea->SetTokenColor(EXPANDABLE_EDIT_AREA_TOKEN_STATUS_NORMAL, color);
1985 if (pControl->GetElement(L"selectedTokenColor", elementString))
1988 ConvertStringToColor32(elementString, opacity, color);
1989 r = pExpandableEditArea->SetTokenColor(EXPANDABLE_EDIT_AREA_TOKEN_STATUS_SELECTED, color);
1992 if (pControl->GetElement(L"selectedTokenTextColor", elementString))
1995 ConvertStringToColor32(elementString, opacity, color);
1996 r = pExpandableEditArea->SetSelectedTokenTextColor(color);
1999 if (pControl->GetElement(L"tokenTextColor", elementString))
2002 ConvertStringToColor32(elementString, opacity, color);
2003 r = pExpandableEditArea->SetTokenTextColor(color);
2006 if (pControl->GetElement(L"autoResizing", elementString))
2008 if (elementString.Equals(L"true", false))
2010 autoResizing = true;
2014 autoResizing = false;
2017 r = pExpandableEditArea->SetAutoResizingEnabled(autoResizing);
2020 if (pControl->GetElement(L"autoShrinkModeEnabled", elementString))
2022 if (elementString.Equals(L"true", false))
2031 pExpandableEditArea->SetAutoShrinkModeEnabled(autoShrink);
2034 if (pControl->GetElement(L"accessibilityHint", elementString))
2036 AccessibilityContainer* pContainer = pExpandableEditArea->GetAccessibilityContainer();
2039 AccessibilityElement* pElement = pContainer->GetElement(L"EditText");
2042 pElement->SetHint(elementString);
2047 return pExpandableEditArea;
2051 _ExpandableEditAreaRegister::_ExpandableEditAreaRegister(void)
2053 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
2054 pUiBuilderControlTableManager->RegisterControl(L"ExpandableEditArea", _ExpandableEditAreaMaker::GetInstance);
2056 _ExpandableEditAreaRegister::~_ExpandableEditAreaRegister(void)
2058 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
2059 pUiBuilderControlTableManager->UnregisterControl(L"ExpandableEditArea");
2061 static _ExpandableEditAreaRegister ExpandableEditAreaRegisterToUIbuilder;
2062 }}} // Tizen::Ui::Controls