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_EditAreaImpl.h
19 * @brief This is the header file for the _EditAreaImpl class.
21 * This header file contains the declarations of the %_EditAreaPresenter class.
24 #ifndef _FUI_CTRL_INTERNAL_EDIT_AREA_IMPL_H_
25 #define _FUI_CTRL_INTERNAL_EDIT_AREA_IMPL_H_
27 #include <FUiCtrlEditArea.h>
28 #include "FUi_ControlImpl.h"
29 #include "FUi_IFocusEventListener.h"
30 #include "FUiCtrl_Edit.h"
31 #include "FUiCtrl_IActionEventListener.h"
32 #include "FUiCtrl_IKeypadEventListener.h"
33 #include "FUiCtrl_ILanguageEventListener.h"
34 #include "FUiCtrl_IScrollPanelEventListener.h"
35 #include "FUiCtrl_ITextBlockEventListener.h"
36 #include "FUiCtrl_ITextEventListener.h"
37 #include "FUiCtrl_IUiLinkEventListener.h"
38 #include "FUiCtrl_PublicActionEvent.h"
39 #include "FUiCtrl_PublicKeypadEvent.h"
40 #include "FUiCtrl_PublicLanguageEvent.h"
41 #include "FUiCtrl_PublicLinkEvent.h"
42 #include "FUiCtrl_PublicScrollPanelEvent.h"
43 #include "FUiCtrl_PublicTextBlockEvent.h"
44 #include "FUiCtrl_PublicTextEvent.h"
46 namespace Tizen { namespace Ui { namespace Controls
51 , virtual public Tizen::Base::Runtime::IEventListener
52 , public _ITextEventListener
53 , public _IActionEventListener
54 , public _IKeypadEventListener
55 , public _IUiLinkEventListener
56 , public _ITextBlockEventListener
57 , public _ILanguageEventListener
58 , public _IScrollPanelEventListener
61 class EditAreaSizeInfo : public _ControlImpl::SizeInfo
63 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(Tizen::Ui::_ControlOrientation orientation) const;
67 _EditAreaImpl(EditArea* pPublic, _Edit* pCore);
68 virtual ~_EditAreaImpl(void);
70 static _EditAreaImpl* CreateEditAreaImplN(EditArea* pControl, const Tizen::Graphics::Rectangle& rect);
71 result Initialize(InputStyle inputStyle = INPUT_STYLE_FULLSCREEN, int limitLength = 1000);
73 virtual const _Edit& GetCore(void) const;
74 virtual _Edit& GetCore(void);
75 virtual const EditArea& GetPublic(void) const;
76 virtual EditArea& GetPublic(void);
77 virtual const char* GetPublicClassName(void) const;
79 result SetAutoLinkMask(unsigned long autoLinks);
80 result SetBackgroundBitmap(EditStatus status, const Tizen::Graphics::Bitmap& bitmap);
81 result SetColor(EditStatus status, const Tizen::Graphics::Color& color);
82 result SetCurrentInputModeCategory(EditInputModeCategory inputModeCategory);
83 result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
84 result SetCursorPosition(int position);
85 void SetGuideText(const Tizen::Base::String& guideText);
86 result SetGuideTextColor(const Tizen::Graphics::Color& color);
87 result SetInputModeCategory(unsigned long categories, bool enable);
88 result SetKeypadActionEnabled(bool enable);
89 result SetKeypadAction(Tizen::Ui::KeypadAction keypadAction);
90 void SetKeypadEnabled(bool enable);
91 result SetKeypadStyle(KeypadStyle keypadStyle);
92 result SetLineSpacing(int multiplier, int extra);
93 void SetLowerCaseModeEnabled(bool enable);
94 result SetMargin(EditMarginType marginType, int margin);
95 result SetOverlayKeypadCommandButton(CommandButtonPosition position, const Tizen::Base::String& text, int actionId);
96 result SetOverlayKeypadCommandButtonVisible(bool visible);
97 result SetText(const Tizen::Base::String& text);
98 result SetTextAlignment(HorizontalAlignment alignment);
99 result SetTextColor(EditTextColor type, const Tizen::Graphics::Color& color);
100 result SetTextSize(int size);
101 result SetViewModeEnabled(bool enable);
102 result SetTextPredictionEnabled(bool enable);
104 unsigned long GetAutoLinkMask(void) const;
105 void GetBlockRange(int& start, int& end) const;
106 Tizen::Graphics::Color GetColor(EditStatus status) const;
107 EditInputModeCategory GetCurrentInputModeCategory(void) const;
108 result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
109 void GetCurrentTextRange(int& start, int& end) const;
110 int GetCursorPosition(void) const;
111 Tizen::Base::String GetGuideText(void) const;
112 Tizen::Graphics::Color GetGuideTextColor(void) const;
113 unsigned long GetInputModeCategory(void) const;
114 Tizen::Base::String GetText(void) const;
115 Tizen::Base::String GetText(int start, int end) const;
116 HorizontalAlignment GetTextAlignment(void) const;
117 Tizen::Graphics::Color GetTextColor(EditTextColor type) const;
118 int GetTextLength(void) const;
119 int GetTextLineCount(void) const;
120 int GetTextSize(void) const;
121 Tizen::Ui::KeypadAction GetKeypadAction(void) const;
122 KeypadStyle GetKeypadStyle(void) const;
123 int GetLineSpacing(void) const;
124 int GetMargin(EditMarginType marginType) const;
125 int GetOverlayKeypadCommandButtonActionId(CommandButtonPosition position) const;
126 Tizen::Base::String GetOverlayKeypadCommandButtonText(CommandButtonPosition position) const;
127 int GetRemainingLength(void) const;
129 result AppendCharacter(const Tizen::Base::Character& character);
130 result AppendText(const Tizen::Base::String& text);
131 result BeginBlock(void);
135 result DeleteCharacterAtCursorPosition(void);
136 result HideKeypad(void);
137 result InsertTextAtCursorPosition(const Tizen::Base::String& text);
138 result InsertTextAt(int position, const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
139 result AppendText(const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
140 bool IsBlocked(void) const;
141 bool IsClipped(void) const;
142 bool IsKeypadEnabled(void) const;
143 bool IsKeypadActionEnabled(void) const;
144 bool IsLowerCaseModeEnabled(void) const;
145 bool IsOverlayCommandButtonVisible(void) const;
146 bool IsViewModeEnabled(void) const;
147 bool IsTextPredictionEnabled(void) const;
150 result ReleaseBlock(void);
152 result ShowKeypad(void);
154 result AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
155 result AddKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
156 result AddLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
157 result AddScrollPanelEventListener(Tizen::Ui::IScrollPanelEventListener& listener);
158 result AddTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
159 result AddTextEventListener(Tizen::Ui::ITextEventListener& listener);
160 result AddUiLinkEventListener(Tizen::Ui::IUiLinkEventListener& listener);
161 result RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
162 result RemoveKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
163 result RemoveLanguageEventListener(Tizen::Ui::ILanguageEventListener& listener);
164 result RemoveScrollPanelEventListener(Tizen::Ui::IScrollPanelEventListener& listener);
165 result RemoveTextBlockEventListener(Tizen::Ui::ITextBlockEventListener& listener);
166 result RemoveTextEventListener(Tizen::Ui::ITextEventListener& listener);
167 result RemoveUiLinkEventListener(Tizen::Ui::IUiLinkEventListener& listener);
169 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
170 virtual result OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);
171 virtual void OnKeypadActionPerformed(CoreKeypadAction keypadAction);
172 virtual void OnKeypadClosed(void);
173 virtual void OnKeypadOpened(void);
174 virtual void OnKeypadWillOpen(void);
175 virtual void OnKeypadBoundsChanged(void);
176 virtual void OnLanguageChanged(Tizen::Locales::LanguageCode oldLanguage, Tizen::Locales::LanguageCode newLanguage);
177 virtual void OnLinkClicked(Tizen::Ui::_Control& source, const Tizen::Base::String& text, Tizen::Base::Utility::LinkType linkType, const Tizen::Base::String& link);
178 virtual void OnOtherControlSelected(const Tizen::Ui::_Control& source);
179 virtual void OnOverlayControlClosed(const Tizen::Ui::_Control& source);
180 virtual void OnOverlayControlCreated(const Tizen::Ui::_Control& source);
181 virtual void OnOverlayControlOpened(const Tizen::Ui::_Control& source);
182 virtual void OnTextBlockSelected(Tizen::Ui::_Control& source, int start, int end);
183 virtual void OnTextValueChanged(const Tizen::Ui::_Control& source);
184 virtual void OnTextValueChangeCanceled(const Tizen::Ui::_Control& source);
187 static _EditAreaImpl* GetInstance(EditArea& editArea);
188 static const _EditAreaImpl* GetInstance(const EditArea& pEditArea);
191 _EditAreaImpl(const _EditAreaImpl&);
192 _EditAreaImpl& operator =(const _EditAreaImpl&);
196 unsigned long __inputModeCategory;
197 EditInputModeCategory __currentInputMode;
199 _PublicActionEvent* __pPublicActionEvent;
200 _PublicKeypadEvent* __pPublicKeypadEvent;
201 _PublicLanguageEvent* __pPublicLanguageEvent;
202 _PublicLinkEvent* __pPublicLinkEvent;
203 _PublicScrollPanelEvent* __pPublicScrollPanelEvent;
204 _PublicTextBlockEvent* __pPublicTextBlockEvent;
205 _PublicTextEvent* __pPublicTextEvent;
206 unsigned long __autoLinkMask;
209 }}} // Tizen::Ui::Controls
211 #endif // _FUI_CTRL_INTERNAL_EDIT_AREA_IMPL_H_