2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiCtrl_EditFieldImpl.h
20 * @brief This file contains implementation of _EditFieldImpl class
23 #ifndef _FUI_CTRL_EDIT_FIELD_IMPL_H_
24 #define _FUI_CTRL_EDIT_FIELD_IMPL_H_
26 #include <FUiCtrlEditField.h>
27 #include "FUi_ControlImpl.h"
28 #include "FUiCtrl_Edit.h"
29 #include "FUiCtrl_IActionEventListener.h"
30 #include "FUiCtrl_IKeypadEventListener.h"
31 #include "FUiCtrl_ILanguageEventListener.h"
32 #include "FUiCtrl_IScrollPanelEventListener.h"
33 #include "FUiCtrl_ITextBlockEventListener.h"
34 #include "FUiCtrl_ITextEventListener.h"
35 #include "FUiCtrl_IUiLinkEventListener.h"
37 namespace Tizen { namespace Ui
39 class ITouchEventListener;
40 class _IFocusEventListener;
43 namespace Tizen { namespace Ui { namespace Controls
45 class _PublicActionEvent;
46 class _PublicKeypadEvent;
47 class _PublicLanguageEvent;
48 class _PublicLinkEvent;
49 class _PublicScrollPanelEvent;
50 class _PublicTextBlockEvent;
51 class _PublicTextEvent;
55 , virtual public Tizen::Base::Runtime::IEventListener
56 , public _IActionEventListener
57 , public _IKeypadEventListener
58 , public _ILanguageEventListener
59 , public _IScrollPanelEventListener
60 , public _ITextBlockEventListener
61 , public _ITextEventListener
62 , public _IUiLinkEventListener
65 class EditFieldSizeInfo : public _ControlImpl::SizeInfo
68 EditFieldSizeInfo(void);
69 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(Tizen::Ui::_ControlOrientation orientation) const;
70 void SetTitleStyle(EditFieldTitleStyle titleStyle);
71 void SetSmallStyle(bool isSmallStyle);
74 EditFieldTitleStyle __titleStyle;
79 _EditFieldImpl(EditField* pPublic, _Edit* pCore);
80 virtual ~_EditFieldImpl(void);
82 static _EditFieldImpl* CreateEditFieldImplN(EditField* pControl, const Tizen::Graphics::Rectangle& rect, EditFieldStyle style, EditFieldTitleStyle titleStyle = EDIT_FIELD_TITLE_STYLE_NONE);
83 result Initialize(EditFieldStyle style = EDIT_FIELD_STYLE_NORMAL, InputStyle inputStyle = INPUT_STYLE_OVERLAY, EditFieldTitleStyle titleStlye = EDIT_FIELD_TITLE_STYLE_NONE, bool enableClear = false, int limitLength = 100, GroupStyle groupStyle = GROUP_STYLE_NONE);
85 virtual const _Edit& GetCore(void) const;
86 virtual _Edit& GetCore(void);
87 virtual const EditField& GetPublic(void) const;
88 virtual EditField& GetPublic(void);
89 virtual const char* GetPublicClassName(void) const;
91 result SetAutoLinkMask(unsigned long autoLinks);
92 result SetBackgroundBitmap(EditStatus status, const Tizen::Graphics::Bitmap& bitmap);
93 result SetColor(EditStatus status, const Tizen::Graphics::Color& color);
94 result SetCurrentInputModeCategory(EditInputModeCategory inputModeCategory);
95 result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
96 result SetCursorPosition(int position);
97 result SetEllipsisPosition(EllipsisPosition position);
98 void SetGuideText(const Tizen::Base::String& guideText);
99 result SetGuideTextColor(const Tizen::Graphics::Color& color);
100 result SetInputModeCategory(unsigned long categories, bool enable);
101 result SetKeypadActionEnabled(bool enable);
102 result SetKeypadAction(Tizen::Ui::KeypadAction keypadAction);
103 void SetKeypadEnabled(bool enable);
104 void SetLowerCaseModeEnabled(bool enable);
105 result SetMargin(EditMarginType marginType, int margin);
106 result SetOverlayKeypadCommandButton(CommandButtonPosition position, const Tizen::Base::String& text, int actionId);
107 result SetOverlayKeypadCommandButtonVisible(bool visible);
108 result SetText(const Tizen::Base::String& text);
109 result SetTextAlignment(HorizontalAlignment alignment);
110 result SetTextColor(EditTextColor type, const Tizen::Graphics::Color& color);
111 result SetTextSize(int size);
112 result SetTitleText(const Tizen::Base::String& title);
113 result SetTitleTextColor(EditStatus status, const Tizen::Graphics::Color& color);
114 result SetViewModeEnabled(bool enable);
115 result SetTextPredictionEnabled(bool enable);
117 unsigned long GetAutoLinkMask(void) const;
118 void GetBlockRange(int& start, int& end) const;
119 Tizen::Graphics::Color GetColor(EditStatus status) const;
120 EditInputModeCategory GetCurrentInputModeCategory(void) const;
121 result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
122 int GetCursorPosition(void) const;
123 void GetCurrentTextRange(int& start, int& end) const;
124 EllipsisPosition GetEllipsisPosition(void) const;
125 Tizen::Base::String GetGuideText(void) const;
126 Tizen::Graphics::Color GetGuideTextColor(void) const;
127 unsigned long GetInputModeCategory(void) const;
128 Tizen::Ui::KeypadAction GetKeypadAction(void) const;
129 KeypadStyle GetKeypadStyle(void) const;
130 int GetMargin(EditMarginType marginType) const;
131 int GetOverlayKeypadCommandButtonActionId(CommandButtonPosition position) const;
132 Tizen::Base::String GetOverlayKeypadCommandButtonText(CommandButtonPosition position) const;
133 int GetRemainingLength(void) const;
134 Tizen::Base::String GetText(void) const;
135 Tizen::Base::String GetText(int start, int end) const;
136 HorizontalAlignment GetTextAlignment(void) const;
137 Tizen::Graphics::Color GetTextColor(EditTextColor type) const;
138 int GetTextLength(void) const;
139 int GetTextSize(void) const;
140 Tizen::Base::String GetTitleText(void) const;
141 Tizen::Graphics::Color GetTitleTextColor(EditStatus status) const;
143 result AppendCharacter(const Tizen::Base::Character& character);
144 result AppendText(const Tizen::Base::String& text);
145 result BeginBlock(void);
149 result DeleteCharacterAtCursorPosition(void);
150 result HideKeypad(void);
151 result InsertTextAtCursorPosition(const Tizen::Base::String& text);
152 bool IsBlocked(void) const;
153 bool IsClipped(void) const;
154 bool IsKeypadEnabled(void) const;
155 bool IsKeypadActionEnabled(void) const;
156 bool IsLowerCaseModeEnabled(void) const;
157 bool IsOverlayCommandButtonVisible(void) const;
158 bool IsViewModeEnabled(void) const;
159 bool IsTextPredictionEnabled(void) const;
162 result ReleaseBlock(void);
164 result ShowKeypad(void);
166 result AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
167 result AddKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
168 result AddLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
169 result AddScrollPanelEventListener(Tizen::Ui::IScrollPanelEventListener& listener);
170 result AddTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
171 result AddTextEventListener(Tizen::Ui::ITextEventListener& listener);
172 result AddUiLinkEventListener(Tizen::Ui::IUiLinkEventListener& listener);
174 result RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
175 result RemoveKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
176 result RemoveLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
177 result RemoveScrollPanelEventListener(Tizen::Ui::IScrollPanelEventListener& listener);
178 result RemoveTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
179 result RemoveTextEventListener(Tizen::Ui::ITextEventListener& listener);
180 result RemoveUiLinkEventListener(Tizen::Ui::IUiLinkEventListener& listener);
182 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
183 virtual result OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);
184 virtual void OnKeypadActionPerformed(CoreKeypadAction keypadAction);
185 virtual void OnKeypadClosed(void);
186 virtual void OnKeypadOpened(void);
187 virtual void OnKeypadWillOpen(void);
188 virtual void OnKeypadBoundsChanged(void);
189 virtual void OnLanguageChanged(Tizen::Locales::LanguageCode oldLanguage, Tizen::Locales::LanguageCode newLanguage);
190 virtual void OnLinkClicked(Tizen::Ui::_Control& source, const Tizen::Base::String& text, Tizen::Base::Utility::LinkType linkType, const Tizen::Base::String& link);
191 virtual void OnOtherControlSelected(const Tizen::Ui::_Control& source);
192 virtual void OnOverlayControlClosed(const Tizen::Ui::_Control& source);
193 virtual void OnOverlayControlCreated(const Tizen::Ui::_Control& source);
194 virtual void OnOverlayControlOpened(const Tizen::Ui::_Control& source);
195 virtual void OnTextBlockSelected(Tizen::Ui::_Control& source, int start, int end);
196 virtual void OnTextValueChanged(const Tizen::Ui::_Control& source);
197 virtual void OnTextValueChangeCanceled(const Tizen::Ui::_Control& source);
200 static _EditFieldImpl* GetInstance(EditField& editField);
201 static const _EditFieldImpl* GetInstance(const EditField& editField);
204 virtual result Dispose(void);
207 _EditFieldImpl(const _EditFieldImpl&);
208 _EditFieldImpl& operator =(const _EditFieldImpl&);
214 EditFieldStyle __editFieldStyle;
215 InputStyle __inputStyle;
216 unsigned long __inputModeCategory;
217 EditInputModeCategory __currentInputMode;
219 _PublicActionEvent* __pPublicActionEvent;
220 _PublicKeypadEvent* __pPublicKeypadEvent;
221 _PublicLanguageEvent* __pPublicLanguageEvent;
222 _PublicLinkEvent* __pPublicLinkEvent;
223 _PublicScrollPanelEvent* __pPublicScrollPanelEvent;
224 _PublicTextBlockEvent* __pPublicTextBlockEvent;
225 _PublicTextEvent* __pPublicTextEvent;
226 unsigned long __autoLinkMask;
229 }}} // Tizen::Ui::Controls
231 #endif // _FUI_CTRL_EDIT_FIELD_IMPL_H_