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.
17 #ifndef _FUI_CTRL_INTERNAL_EXPANDABLEEDITAREA_IMPL_H_
18 #define _FUI_CTRL_INTERNAL_EXPANDABLEEDITAREA_IMPL_H_
20 #include <FUiCtrlExpandableEditArea.h>
21 #include <FUiITouchEventListener.h>
22 #include "FUi_ControlImpl.h"
23 #include "FUi_IFocusEventListener.h"
24 #include "FUiCtrl_Edit.h"
25 #include "FUiCtrl_IExpandableEditAreaEventListener.h"
26 #include "FUiCtrl_IKeypadEventListener.h"
27 #include "FUiCtrl_ILanguageEventListener.h"
28 #include "FUiCtrl_ITextEventListener.h"
29 #include "FUiCtrl_ITextBlockEventListener.h"
30 #include "FUiCtrl_ITokenFilter.h"
31 #include "FUiCtrl_PublicExpandableEditAreaEvent.h"
32 #include "FUiCtrl_PublicKeypadEvent.h"
33 #include "FUiCtrl_PublicLanguageEvent.h"
34 #include "FUiCtrl_PublicTextBlockEvent.h"
35 #include "FUiCtrl_PublicTextEvent.h"
37 namespace Tizen { namespace Ui { namespace Animations
40 }}} // Tizen::Ui::Animation
42 namespace Tizen { namespace Ui { namespace Controls
48 class _ExpandableEditAreaImpl
50 , virtual public Tizen::Base::Runtime::IEventListener
51 , public _ITextEventListener
52 , public _IExpandableEditAreaEventListener
53 , public _ITextBlockEventListener
54 , public _IKeypadEventListener
55 , public _ILanguageEventListener
56 , public _ITokenFilter
59 static _ExpandableEditAreaImpl* CreateExpandableEditAreaImplN(ExpandableEditArea* pControl, const Tizen::Graphics::Rectangle& rect, ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle);
60 _ExpandableEditAreaImpl(ExpandableEditArea* pPublic, _Edit* pCore);
61 virtual ~_ExpandableEditAreaImpl(void);
63 virtual const char* GetPublicClassName(void) const;
64 virtual const ExpandableEditArea& GetPublic(void) const;
65 virtual ExpandableEditArea& GetPublic(void);
66 virtual const _Edit& GetCore(void) const;
67 virtual _Edit& GetCore(void);
69 result Construct(const Tizen::Graphics::Rectangle& rect, ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle, int maxLines = 10);
70 result CreateExpandableEditArea(const Tizen::Graphics::Rectangle& rect, ExpandableEditAreaStyle style, ExpandableEditAreaTitleStyle titleStyle, int maxLines);
71 int GetMargin(EditMarginType marginType) const;
72 result SetMargin(EditMarginType marginType, int margin);
73 Tizen::Ui::KeypadAction GetKeypadAction(void) const;
74 result SetKeypadAction(Tizen::Ui::KeypadAction keypadAction);
75 KeypadStyle GetKeypadStyle(void) const;
76 result SetKeypadStyle(KeypadStyle keypadStyle);
77 result HideKeypad(void);
78 int GetTextSize(void) const;
79 result SetTextSize(int size);
80 Tizen::Graphics::Color GetColor(EditStatus status) const;
81 Tizen::Graphics::Color GetTextColor(EditTextColor type) const;
82 result SetBackgroundBitmap(EditStatus status, const Tizen::Graphics::Bitmap& bitmap);
83 result SetColor(EditStatus status, const Tizen::Graphics::Color& color);
84 result SetTextColor(EditTextColor type, const Tizen::Graphics::Color& color);
85 Tizen::Base::String GetText(int start, int end) const;
86 result AddExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener);
87 result RemoveExpandableEditAreaEventListener(IExpandableEditAreaEventListener& listener);
88 result AddKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
89 result RemoveKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
90 result AddTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
91 result RemoveTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
92 result AddTextEventListener(Tizen::Ui::ITextEventListener& listener);
93 result AddLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
94 result RemoveLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
95 result RemoveTextEventListener(Tizen::Ui::ITextEventListener& listener);
96 result SetLowerCaseModeEnabled(bool enable);
97 bool IsLowerCaseModeEnabled(void) const;
98 result SetCursorPosition(int position);
99 int GetCursorPosition(void) const;
100 Tizen::Base::String GetText(void) const;
101 int GetTextLength(void) const;
102 void SetMaxLineCount(int maxLineCount);
103 int GetMaxLineCount(void) const;
104 result SetText(const Tizen::Base::String& text);
105 result InsertTextAt(int index, const Tizen::Base::String& text);
106 result AppendText(const Tizen::Base::String& text);
107 result AppendCharacter(const Tizen::Base::Character& character);
108 result InsertTextAt(int position, const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
109 result AppendText(const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
111 result DeleteCharacterAt(int index);
112 result InsertCharacterAt(int index, const Tizen::Base::Character& character);
113 result SetTitleText(const Tizen::Base::String& title);
114 Tizen::Base::String GetTitleText(void) const;
115 result SetGuideText(const Tizen::Base::String& guideText);
116 Tizen::Base::String GetGuideText(void) const;
117 Tizen::Graphics::Color GetGuideTextColor(void) const;
118 result SetGuideTextColor(const Tizen::Graphics::Color& color);
119 int GetLineSpacing (void) const;
120 result SetLineSpacing (int multiplier, int extra);
121 Tizen::Graphics::Color GetTitleTextColor(EditStatus status) const;
122 result SetTitleTextColor(EditStatus status, const Tizen::Graphics::Color& color);
123 Tizen::Graphics::Color GetTokenColor(ExpandableEditAreaTokenStatus status) const;
124 result SetTokenColor(ExpandableEditAreaTokenStatus status, const Tizen::Graphics::Color& color);
125 Tizen::Graphics::Color GetTokenTextColor(void) const;
126 Tizen::Graphics::Color GetSelectedTokenTextColor(void) const;
127 result SetTokenTextColor(const Tizen::Graphics::Color& color);
128 result SetSelectedTokenTextColor(const Tizen::Graphics::Color& color);
129 int GetLimitLength(void) const;
130 result SetLimitLength(int limitLength);
131 result SetAutoResizingEnabled(bool enable);
132 bool IsAutoResizingEnabled(void) const;
133 void SetAutoShrinkModeEnabled(bool enable);
134 bool IsAutoShrinkModeEnabled(void) const;
136 void SetKeypadEnabled(bool enable);
137 bool IsKeypadEnabled(void) const;
138 result SetTextPredictionEnabled(bool enable);
139 bool IsTextPredictionEnabled(void) const;
141 result ShowKeypad(void);
142 int GetTextLineCount(void) const;
143 result GetBlockRange(int& start, int& end) const;
144 result ReleaseBlock(void);
145 result RemoveTextBlock(void);
146 result SetBlockRange(int start, int end);
149 ITokenFilter* GetTokenFilter(void) const;
150 result SetTokenFilter(const ITokenFilter* pFilter);
151 result AppendToken(const Tizen::Base::String& token);
152 result InsertTokenAt(int index, const Tizen::Base::String& token);
153 Tizen::Base::String GetTokenAt(int index) const;
154 int GetTokenCount(void) const;
155 int GetSelectedTokenIndex(void) const;
156 bool IsTokenEditModeEnabled(void) const;
157 result RemoveTokenAt(int index);
158 result SetTokenSelected(int index, bool selected);
159 result SetTokenEditModeEnabled(bool enable);
161 result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
162 result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
165 virtual result OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);
167 virtual void OnTextValueChanged(const Tizen::Ui::_Control& source);
168 virtual void OnTextValueChangeCanceled(const Tizen::Ui::_Control& source);
170 virtual void OnExpandableEditAreaLineAdded(const Tizen::Ui::_Control& source, int newLineCount);
171 virtual void OnExpandableEditAreaLineRemoved(const Tizen::Ui::_Control& source, int newLineCount);
173 virtual void OnTextBlockSelected(Tizen::Ui::_Control& source, int start, int end);
175 virtual void OnKeypadWillOpen(void);
176 virtual void OnKeypadOpened(void);
177 virtual void OnKeypadClosed(void);
178 virtual void OnKeypadBoundsChanged(void);
179 virtual void OnKeypadActionPerformed(CoreKeypadAction keypadAction);
181 virtual void OnLanguageChanged(Tizen::Locales::LanguageCode oldLanguage, Tizen::Locales::LanguageCode newLanguage);
183 virtual bool ReplaceToken(const Tizen::Base::String& token, Tizen::Base::String& replacement);
186 static _ExpandableEditAreaImpl* GetInstance(ExpandableEditArea& expandableEditArea);
187 static const _ExpandableEditAreaImpl* GetInstance(const ExpandableEditArea& expandableEditArea);
190 virtual result Dispose(void);
193 _ExpandableEditAreaImpl(const _ExpandableEditAreaImpl&);
194 _ExpandableEditAreaImpl& operator =(const _ExpandableEditAreaImpl&);
198 _Edit* __pExpandableEditArea;
199 ExpandableEditAreaStyle __expandableEditAreaStyle;
200 ExpandableEditAreaTitleStyle __expandableEditAreaTitleStyle;
203 _PublicTextEvent* __pPublicTextEvent;
204 _PublicExpandableEditAreaEvent* __pPublicExpandableEditAreaEvent;
205 _PublicTextBlockEvent* __pPublicTextBlockEvent;
206 _PublicKeypadEvent* __pPublicKeypadEvent;
207 _PublicLanguageEvent* __pPublicLanguageEvent;
209 ITokenFilter* __pTokenFilter;
210 }; // _ExpandableEditAreaImpl
212 }}} // Tizen::Ui::Controls
214 #endif // _FUICTRL__EXPANDABLE_EDIT_AREA_IMPL_H_