Blue Focus ring on Searchfield
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_Edit.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0/
10 //
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.
16 //
17 /**
18  * @file                FUiCtrl_Edit.h
19  * @brief               This is the header file for the _Edit class.
20  *
21  * This header file contains the declarations of the %_Edit class.
22  */
23
24 #ifndef _FUI_CTRL_INTERNAL_EDIT_H_
25 #define _FUI_CTRL_INTERNAL_EDIT_H_
26
27 #include <FBaseCharacter.h>
28 #include <FBaseString.h>
29 #include <FGrpBitmap.h>
30 #include <FGrpColor.h>
31 #include <FGrpPoint.h>
32 #include <FGrpRectangle.h>
33 #include <FGrp_TextTextObject.h>
34 #include <FSysISettingEventListener.h>
35 #include <FUiControl.h>
36 #include <FUiCtrlControlsTypes.h>
37 #include <FUiCtrlEditTypes.h>
38 #include <FUiCtrlIEditTextFilter.h>
39 #include <FUiCtrl_IEditTextFilter.h>
40 #include <FUiCtrlIExpandableEditAreaEventListener.h>
41 #include <FUiCtrlInputTypes.h>
42 #include <FUiIActionEventListener.h>
43 #include <FUiIClipboardPopupEventListener.h>
44 #include <FUiITextEventListener.h>
45 #include "FUi_Control.h"
46 #include "FUi_ITouchFlickGestureEventListener.h"
47 #include "FUi_ITouchLongPressGestureEventListener.h"
48 #include "FUi_ITouchTapGestureEventListener.h"
49 #include "FUi_ResourceManager.h"
50 #include "FUi_TouchFlickGestureDetector.h"
51 #include "FUi_TouchLongPressGestureDetector.h"
52 #include "FUi_TouchTapGestureDetector.h"
53 #include "FUiCtrl_ExpandableEditAreaEvent.h"
54 #include "FUiCtrl_IActionEventListener.h"
55 #include "FUiCtrl_IExpandableEditAreaEventListener.h"
56 #include "FUiCtrl_IKeypadEventListener.h"
57 #include "FUiCtrl_ITextBlockEventListener.h"
58 #include "FUiCtrl_ITextEventListener.h"
59 #include "FUiCtrl_ILanguageEventListener.h"
60 #include "FUiCtrl_IScrollPanelEventListener.h"
61 #include "FUiCtrl_IUiLinkEventListener.h"
62 #include "FUiCtrl_KeypadEvent.h"
63 #include "FUiCtrl_LanguageEvent.h"
64 #include "FUiCtrl_LinkEvent.h"
65 #include "FUiCtrl_ScrollPanelEvent.h"
66 #include "FUiCtrl_TextBlockEvent.h"
67 #include "FUiCtrl_TextEvent.h"
68
69 namespace Tizen { namespace Ui
70 {
71 class _AccessibilityElement;
72 }} // Tizen::Ui
73
74 namespace Tizen { namespace Ui { namespace Animations
75 {
76 class _VisualElement;
77 }}}
78
79 namespace Tizen { namespace Ui { namespace Controls
80 {
81
82 struct EditColor
83 {
84         Tizen::Graphics::Color textColor;
85         Tizen::Graphics::Color titleTextColor;
86         Tizen::Graphics::Color backgroundColor;
87 };
88
89 struct EditBlockTextColor
90 {
91         bool used;
92         Tizen::Graphics::Color blockTextColor;
93 };
94
95 struct EditCutlinkColor
96 {
97         Tizen::Graphics::Color cutlinkFgColor;
98         Tizen::Graphics::Color cutlinkBgColor;
99 };
100
101 enum EditCutLinkType
102 {
103         EDIT_LINK_TYPE_INVALID = -1,
104         EDIT_LINK_TYPE_URL,
105         EDIT_LINK_TYPE_EMAIL,
106         EDIT_LINK_TYPE_PHONE_NUM,
107         EDIT_LINK_TYPE_STREAMING_URL,
108         EDIT_LINK_TYPE_MAX
109 };
110
111 enum EditTextHorizontalMargin
112 {
113         EDIT_TEXT_LEFT_MARGIN,
114         EDIT_TEXT_RIGHT_MARGIN,
115         EDIT_TEXT_HORIZONTAL_MARGIN
116 };
117
118 enum EditTextVerticalMargin
119 {
120         EDIT_TEXT_TOP_MARGIN,
121         EDIT_TEXT_BOTTOM_MARGIN,
122         EDIT_TEXT_VERTICAL_MARGIN
123 };
124
125 enum EditAccessibilityElementType
126 {
127         EDIT_ACCESSIBILITY_ELEMENT_TYPE_TEXT,
128         EDIT_ACCESSIBILITY_ELEMENT_TYPE_CLEAR_ICON
129 };
130
131 const int EDIT_STYLE_SINGLE_LINE = 0x00000001;
132 const int EDIT_STYLE_NORMAL = 0x00000002;
133 const int EDIT_STYLE_BORDER = 0x00000004;
134 const int EDIT_STYLE_TITLE_LEFT = 0x00000010;
135 const int EDIT_STYLE_TITLE_TOP = 0x00000020;
136 const int EDIT_STYLE_PASSWORD = 0x00000100;
137 const int EDIT_STYLE_VIEWER = 0x00000200;
138 const int EDIT_STYLE_NOSCROLL = 0x00000400;
139 const int EDIT_STYLE_CLEAR = 0x00001000;
140 const int EDIT_STYLE_ICON_EMBEDDED = 0x00010000;
141 const int EDIT_STYLE_DASHBOARD_EMBEDDED = 0x00100000;
142 const int EDIT_STYLE_FLEXIBLE = 0x01000000;
143 const int EDIT_STYLE_TOKEN = 0x02000000;
144 const int EDIT_COLOR_OPACITY = 100;
145 const int EDIT_AREA_DEFAULT_LIMIT_LENGTH = 1000;
146 const int EDIT_FIELD_DEFAULT_LIMIT_LENGTH = 100;
147
148 const int EDIT_COLOR_MAX = 4;
149 const int EDIT_TEXT_COLOR_MAX = 4;
150 const int EDIT_MARGIN_COUNT_MAX = 2;
151 const float DEFAULT_LINE_SPACE = 1.0f;
152
153 /**
154  * @class _Edit
155  * @brief
156  * @since 2.0
157  */
158
159 class _EditPresenter;
160 class _Form;
161 class _ScrollPanelItemEvent;
162 class _EditInternalTouchEventListener;
163 class _Toolbar;
164
165 class _OSP_EXPORT_ _Edit
166         : public _Control
167         , virtual public Tizen::Base::Runtime::IEventListener
168         , virtual public Tizen::Ui::_IUiEventListener
169         , virtual public Tizen::Ui::_IUiEventPreviewer
170         , virtual public Tizen::Ui::_ITouchGestureEventListener
171         , public _ITouchFlickGestureEventListener
172         , public _ITouchLongPressGestureEventListener
173         , public _ITouchTapGestureEventListener
174         , public IClipboardPopupEventListener
175         , public _IEditTextFilter
176         , virtual public Tizen::System::ISettingEventListener
177 {
178 public:
179         DECLARE_CLASS_BEGIN(_Edit, _Control);
180         DECLARE_PROPERTY("autoResizingEnabled", GetPropertyAutoResizingEnabled, SetPropertyAutoResizingEnabled);
181         DECLARE_PROPERTY("guideTextColor", GetPropertyGuideTextColor, SetPropertyGuideTextColor);
182         DECLARE_PROPERTY("normalColor", GetPropertyNormalColor, SetPropertyNormalColor);
183         DECLARE_PROPERTY("disabledColor", GetPropertyDisabledColor, SetPropertyDisabledColor);
184         DECLARE_PROPERTY("highlightedColor", GetPropertyHighlightedColor, SetPropertyHighlightedColor);
185         DECLARE_PROPERTY("pressedColor", GetPropertyPressedColor, SetPropertyPressedColor);
186         DECLARE_PROPERTY("normalTextColor", GetPropertyNormalTextColor, SetPropertyNormalTextColor);
187         DECLARE_PROPERTY("disabledTextColor", GetPropertyDisabledTextColor, SetPropertyDisabledTextColor);
188         DECLARE_PROPERTY("highlightedTextColor", GetPropertyHighlightedTextColor, SetPropertyHighlightedTextColor);
189         DECLARE_PROPERTY("pressedTextColor", GetPropertyPressedTextColor, SetPropertyPressedTextColor);
190         DECLARE_PROPERTY("lineSpacing", GetPropertyLineSpacing, SetPropertyLineSpacing);
191         DECLARE_PROPERTY("textSize", GetPropertyTextSize, SetPropertyTextSize);
192         DECLARE_PROPERTY("cursorPosition", GetPropertyCursorPosition, SetPropertyCursorPosition);
193         DECLARE_PROPERTY("guideText", GetPropertyGuideText, SetPropertyGuideText);
194         DECLARE_PROPERTY("keypadActionEnabled", GetPropertyKeypadActionEnabled, SetPropertyKeypadActionEnabled);
195         DECLARE_PROPERTY("keypadAction", GetPropertyKeypadAction, SetPropertyKeypadAction);
196         DECLARE_PROPERTY("keypadEnabled", GetPropertyKeypadEnabled, SetPropertyKeypadEnabled);
197         DECLARE_PROPERTY("keypadStyle", GetPropertyKeypadStyle, SetPropertyKeypadStyle);
198         DECLARE_PROPERTY("lowerCaseModeEnabled", GetPropertyLowerCaseModeEnabled, SetPropertyLowerCaseModeEnabled);
199         DECLARE_PROPERTY("overlayKeypadCommandButtonVisible", GetPropertyOverlayKeypadCommandButtonVisible, SetPropertyOverlayKeypadCommandButtonVisible);
200         DECLARE_PROPERTY("text", GetPropertyText, SetPropertyText);
201         DECLARE_PROPERTY("viewModeEnabled", GetPropertyViewModeEnabled, SetPropertyViewModeEnabled);
202         DECLARE_PROPERTY("autoLinkMask", GetPropertyAutoLinkMask, SetPropertyAutoLinkMask);
203         DECLARE_PROPERTY("titleText", GetPropertyTitleText, SetPropertyTitleText);
204         DECLARE_PROPERTY("normalTitleTextColor", GetPropertyNormalTitleTextColor, SetPropertyNormalTitleTextColor);
205         DECLARE_PROPERTY("disabledTitleTextColor", GetPropertyDisabledTitleTextColor, SetPropertyDisabledTitleTextColor);
206         DECLARE_PROPERTY("highlightedTitleTextColor", GetPropertyHighlightedTitleTextColor, SetPropertyHighlightedTitleTextColor);
207         DECLARE_PROPERTY("pressedTitleTextColor", GetPropertyPressedTitleTextColor, SetPropertyPressedTitleTextColor);
208         DECLARE_PROPERTY("blockedTextColor", GetPropertyBlockedTextColor, SetPropertyBlockedTextColor);
209         DECLARE_PROPERTY("topMargin", GetPropertyTopMargin, SetPropertyTopMargin);
210         DECLARE_PROPERTY("bottomMargin", GetPropertyBottomMargin, SetPropertyBottomMargin);
211         DECLARE_PROPERTY("leftMargin", GetPropertyLeftMargin, SetPropertyLeftMargin);
212         DECLARE_PROPERTY("rightMargin", GetPropertyRightMargin, SetPropertyRightMargin);
213         DECLARE_CLASS_END();
214
215         result SetPropertyAutoResizingEnabled(const Variant& enable);
216         result SetPropertyGuideTextColor(const Variant& color);
217         result SetPropertyNormalColor(const Variant& color);
218         result SetPropertyDisabledColor(const Variant& color);
219         result SetPropertyHighlightedColor(const Variant& color);
220         result SetPropertyPressedColor(const Variant& color);
221         result SetPropertyNormalTextColor(const Variant& color);
222         result SetPropertyDisabledTextColor(const Variant& color);
223         result SetPropertyHighlightedTextColor(const Variant& color);
224         result SetPropertyPressedTextColor(const Variant& color);
225         result SetPropertyLineSpacing(const Variant& lineSpacing);
226         result SetPropertyTextSize(const Variant& textSize);
227         result SetPropertyCursorPosition(const Variant& position);
228         result SetPropertyGuideText(const Variant& guideText);
229         result SetPropertyKeypadActionEnabled(const Variant& enabled);
230         result SetPropertyKeypadAction(const Variant& action);
231         result SetPropertyKeypadEnabled(const Variant& enabled);
232         result SetPropertyKeypadStyle(const Variant& style);
233         result SetPropertyLowerCaseModeEnabled(const Variant& enabled);
234         result SetPropertyOverlayKeypadCommandButtonVisible(const Variant& visible);
235         result SetPropertyText(const Variant& text);
236         result SetPropertyViewModeEnabled(const Variant& enabled);
237         result SetPropertyAutoLinkMask(const Variant& autoLinks);
238         result SetPropertyTitleText(const Variant& titleText);
239         result SetPropertyNormalTitleTextColor(const Variant& color);
240         result SetPropertyDisabledTitleTextColor(const Variant& color);
241         result SetPropertyHighlightedTitleTextColor(const Variant& color);
242         result SetPropertyPressedTitleTextColor(const Variant& color);
243         result SetPropertyBlockedTextColor(const Variant& color);
244         result SetPropertyTopMargin(const Variant& margin);
245         result SetPropertyBottomMargin(const Variant& margin);
246         result SetPropertyLeftMargin(const Variant& margin);
247         result SetPropertyRightMargin(const Variant& margin);
248
249         Variant GetPropertyAutoResizingEnabled(void) const;
250         Variant GetPropertyGuideTextColor(void) const;
251         Variant GetPropertyNormalColor(void) const;
252         Variant GetPropertyDisabledColor(void) const;
253         Variant GetPropertyHighlightedColor(void) const;
254         Variant GetPropertyPressedColor(void) const;
255         Variant GetPropertyNormalTextColor(void) const;
256         Variant GetPropertyDisabledTextColor(void) const;
257         Variant GetPropertyHighlightedTextColor(void) const;
258         Variant GetPropertyPressedTextColor(void) const;
259         Variant GetPropertyLineSpacing(void) const;
260         Variant GetPropertyTextSize(void) const;
261         Variant GetPropertyCursorPosition(void) const;
262         Variant GetPropertyGuideText(void) const;
263         Variant GetPropertyKeypadActionEnabled(void) const;
264         Variant GetPropertyKeypadAction(void) const;
265         Variant GetPropertyKeypadEnabled(void) const;
266         Variant GetPropertyKeypadStyle(void) const;
267         Variant GetPropertyLowerCaseModeEnabled(void) const;
268         Variant GetPropertyOverlayKeypadCommandButtonVisible(void) const;
269         Variant GetPropertyText(void) const;
270         Variant GetPropertyViewModeEnabled(void) const;
271         Variant GetPropertyAutoLinkMask(void) const;
272         Variant GetPropertyTitleText(void) const;
273         Variant GetPropertyNormalTitleTextColor(void) const;
274         Variant GetPropertyDisabledTitleTextColor(void) const;
275         Variant GetPropertyHighlightedTitleTextColor(void) const;
276         Variant GetPropertyPressedTitleTextColor(void) const;
277         Variant GetPropertyBlockedTextColor(void) const;
278         Variant GetPropertyTopMargin(void) const;
279         Variant GetPropertyBottomMargin(void) const;
280         Variant GetPropertyLeftMargin(void) const;
281         Variant GetPropertyRightMargin(void) const;
282
283 public:
284         _Edit(void);
285         virtual ~_Edit(void);
286
287         static _Edit* CreateEditN(void);
288         virtual result Initialize(int editStyle, InputStyle inputStyle, int limitLength, GroupStyle groupStyle = GROUP_STYLE_NONE);
289
290         result SetAutoLinkMask(unsigned long autoLinks);
291         result SetAutoResizingEnabled(bool enable);
292         result SetBackgroundBitmap(EditStatus status, const Tizen::Graphics::Bitmap& bitmap);
293         result SetBlockRange(int start, int end);
294         result SetBlockTextColor(const Tizen::Graphics::Color& color);
295         result SetColor(EditStatus status, const Tizen::Graphics::Color& color);
296         result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
297         result SetCursorPosition(int position);
298         void SetCutlinkColorInfo(EditCutLinkType type, EditCutlinkColor colorInfo);
299         void SetEllipsisPosition(EllipsisPosition position);
300         result SetFont(const Tizen::Graphics::Font& font);
301         result SetFontType(const Tizen::Base::String& typefaceName, unsigned long styleMask);
302         result SetTextStyle(unsigned long style);
303         void SetGuideText(const Tizen::Base::String& guideText);
304         result SetGuideTextColor(const Tizen::Graphics::Color& color);
305         result SetHorizontalMargin(int margin, EditTextHorizontalMargin marginType = EDIT_TEXT_HORIZONTAL_MARGIN);
306         result SetHorizontalMargin(float margin, EditTextHorizontalMargin marginType = EDIT_TEXT_HORIZONTAL_MARGIN);
307         result SetKeypadAction(CoreKeypadAction keypadAction);
308         result SetKeypadActionEnabled(bool enabled);
309         void SetKeypadEnabled(bool enable);
310         result SetKeypadStyle(KeypadStyle keypadStyle);
311         result SetKeypadNormalNumberStyle(bool enable);
312         result SetTextPredictionEnabled(bool enable);
313         result SetLimitLength(int limitLength);
314         result SetLineSpacing(int linePixelGap);
315         result SetLineSpacing(float linePixelGap);
316         void SetLowerCaseModeEnabled(bool enable);
317         void SetMaxLineCount(int maxLineCount);
318         result SetKeypadCommandButton(CommandButtonPosition position, const Tizen::Base::String& text, int actionId);
319         result SetKeypadCommandButtonVisible(bool visible);
320         _Toolbar* GetKeypadCommandButton(void) const;
321         result SetText(const Tizen::Base::String& text);
322         result SetTextAlignment(HorizontalAlignment alignment);
323         result SetTextColor(EditTextColor type, const Tizen::Graphics::Color& color);
324         result SetTextSize(int size);
325         result SetTextSize(float size);
326         virtual result SetTitleText(const Tizen::Base::String& title);
327         result SetTitleTextColor(EditStatus status, const Tizen::Graphics::Color& color);
328         result SetViewModeEnabled(bool enable);
329         result SetVerticalMargin(int margin, EditTextVerticalMargin marginType = EDIT_TEXT_VERTICAL_MARGIN);
330         result SetVerticalMargin(float margin, EditTextVerticalMargin marginType = EDIT_TEXT_VERTICAL_MARGIN);
331         void SetEditStyle(unsigned long style);
332         void SetBorderRoundStyleEnabled(bool enable);
333         result SetPasswordVisible(bool visible);
334
335         unsigned long GetAutoLinkMask(void) const;
336         Tizen::Graphics::Bitmap* GetBackgroundBitmap(EditStatus status) const;
337         result LoadDefaultBackgroundBitmap(GroupStyle groupStyle);
338         result ReplaceDefaultBackgroundBitmapForSearchBar(void);
339         void SetSearchFieldFocus(bool state);
340         bool IsSearchFieldFocused(void) const;
341         Tizen::Graphics::Bitmap* GetDefaultBackgroundBitmap(EditStatus status) const;
342         bool IsCustomDefaultBackgroundBitmap(EditStatus status) const;
343         Tizen::Graphics::Bitmap* GetDefaultBackgroundEffectBitmap(void) const;
344         Tizen::Graphics::Bitmap* GetDefaultFocusBitmap(void) const;
345         void GetBlockRange(int& start, int& end) const;
346         Tizen::Graphics::Color GetBlockTextColor(void) const;
347         Tizen::Graphics::Color GetColor(EditStatus status) const;
348         result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
349         void GetCurrentTextRange(int& start, int& end) const;
350         int GetCursorPosition(void) const;
351         int GetCursorPositionAt(const Tizen::Graphics::FloatPoint& point) const;
352         result GetCursorBounds(bool isAbsRect, Tizen::Graphics::FloatRectangle& cursorBounds) const;
353         void GetCutlinkColorInfo(EditCutLinkType type, EditCutlinkColor* colorInfo) const;
354         EllipsisPosition GetEllipsisPosition(void) const;
355         void GetFontType(Tizen::Base::String& typefaceName, unsigned long& styleMask) const;
356         unsigned long GetTextStyle(void) const;
357         Tizen::Base::String GetGuideText(void) const;
358         Tizen::Graphics::Color GetGuideTextColor(void) const;
359         int GetHorizontalMargin(EditTextHorizontalMargin marginType) const;
360         float GetHorizontalMarginF(EditTextHorizontalMargin marginType) const;
361         InputStyle GetInputStyle(void) const;
362         CoreKeypadAction GetKeypadAction(void) const;
363         bool GetKeypadActionEnabled(void) const;
364         result GetKeypadBounds(Tizen::Graphics::FloatRectangle& rect) const;
365         float GetClipboardHeight(void) const;
366         KeypadStyle GetKeypadStyle(void) const;
367         int GetTextLimitLength(void) const;
368         int GetLineSpacing(void) const;
369         float GetLineSpacingF(void) const;
370         int GetMaxLineCount(void) const;
371         int GetKeypadCommandButtonActionId(CommandButtonPosition position) const;
372         Tizen::Base::String GetKeypadCommandButtonText(CommandButtonPosition position) const;
373         int GetRemainingLength(void) const;
374         Tizen::Base::String GetText(void) const;
375         Tizen::Base::String GetText(int start, int end) const;
376         HorizontalAlignment GetTextAlignment(void) const;
377         Tizen::Graphics::Color GetTextColor(EditStatus status) const;
378         Tizen::Graphics::Color GetTextColor(EditTextColor type) const;
379         int GetTextLength(void) const;
380         int GetTextLineCount(void) const;
381         int GetTextSize(void) const;
382         float GetTextSizeF(void) const;
383         int GetTextTotalHeight(void) const;
384         float GetTextTotalHeightF(void) const;
385         virtual Tizen::Base::String GetTitleText(void) const;
386         Tizen::Graphics::Color GetTitleTextColor(EditStatus status) const;
387         int GetVerticalMargin(EditTextVerticalMargin marginType) const;
388         float GetVerticalMarginF(EditTextVerticalMargin marginType) const;
389         unsigned long GetEditStyle(void) const;
390         void GetWordPosition(int cursorPos, int& startPos, int& endPos) const;
391         result GetTextImageRangeAt(int postion, int& startPosition, int& endPosition) const;
392
393         result AppendCharacter(const Tizen::Base::Character& character);
394         result AppendText(const Tizen::Base::String& text);
395         result BeginTextBlock(void);
396         bool CalculateAbsoluteCursorBounds(int index, Tizen::Graphics::FloatRectangle& absCursorRect);
397         result ClearText(void);
398         result CopyText(void);
399         result CutText(void);
400         result DeleteCharacterAt(int index);
401         result DeleteCharacterAtCursorPosition(void);
402         void SetCursorDisabled(bool disabled);
403         result HideKeypad(void);
404         void InitializeColorInformation(void);
405         void SetViewModeColorInformation(bool enabled);
406         result InsertTextAtCursorPosition(const Tizen::Base::String& text);
407         result InsertCharacterAt(int index, const Tizen::Base::Character& character);
408         result InsertTextAt(int index, const Tizen::Base::String& text);
409         result InsertTextAt(int position, const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
410         result AppendText(const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
411         bool IsAutoResizingEnabled(void) const;
412         bool IsBlocked(void) const;
413         bool IsClipped(void) const;
414         bool IsLowerCaseModeEnabled(void) const;
415         bool IsKeypadCommandButtonVisible(void) const;
416         bool IsSettingGuideTextColor(void) const;
417         bool IsViewModeEnabled(void) const;
418         bool IsKeypadEnabled(void) const;
419         bool IsTextPredictionEnabled(void) const;
420         virtual void UpdateAccessibilityElement(EditAccessibilityElementType type);
421         void SetFullScreenKeypadEdit(bool enabled);
422         bool IsFullScreenKeypadEdit(void);
423         bool IsBorderRoundStyleEnabled(void) const;
424         bool IsUsbKeyboardConnected(void) const;
425         bool IsKeypadExist(void) const;
426         bool IsClipboardExist(void) const;
427         bool CheckKeypadExist(_ControlOrientation orientation);
428         bool IsDestroyed(void) const;
429         bool IsPasswordVisible(void) const;
430         bool IsClearIconPressed(void) const;
431
432         void SetTextEventEnabled(bool enable);
433         bool IsTextEventEnabled(void) const;
434         virtual void SetAutoShrinkModeEnabled(bool enable);
435         virtual bool IsAutoShrinkModeEnabled(void) const;
436
437         result PasteText(void);
438         result ReleaseTextBlock(void);
439         result RemoveTextBlock(void);
440         result ShowKeypad(void);
441
442         result AddActionEventListener(const _IActionEventListener& listener);
443         result AddExpandableEditAreaEventListener(const _IExpandableEditAreaEventListener& listener);
444         result AddKeypadEventListener(const _IKeypadEventListener& listener);
445         result AddLanguageEventListener(const _ILanguageEventListener& listener);
446         result AddScrollPanelEventListener(const _IScrollPanelEventListener& listener);
447         result AddTextBlockEventListener(const _ITextBlockEventListener& listener);
448         result AddTextEventListener(const _ITextEventListener& listener);
449         result AddUiLinkEventListener(const _IUiLinkEventListener& listener);
450
451         result RemoveActionEventListener(const _IActionEventListener& listener);
452         result RemoveExpandableEditAreaEventListener(const _IExpandableEditAreaEventListener& listener);
453         result RemoveKeypadEventListener(const _IKeypadEventListener& listener);
454         result RemoveLanguageEventListener(const _ILanguageEventListener& listener);
455         result RemoveScrollPanelEventListener(const _IScrollPanelEventListener& listener);
456         result RemoveTextBlockEventListener(const _ITextBlockEventListener& listener);
457         result RemoveTextEventListener(const _ITextEventListener& listener);
458         result RemoveUiLinkEventListener(const _IUiLinkEventListener& listener);
459
460         result AttachScrollPanelEvent(void);
461         result DetachScrollPanelEvent(void);
462
463         result SendExpandableEditAreaEvent(_ExpandableEditAreaEventStatus status, int newLineCount = 0);
464         result SendKeypadEvent(CoreKeypadAction keypadAction, CoreKeypadEventStatus eventstatus);
465         result SendLanguageEvent(Tizen::Locales::LanguageCode prevLanguageCode, Tizen::Locales::LanguageCode currentLanguageCode);
466         result SendLinkEvent(const Tizen::Base::String& text, Tizen::Base::Utility::LinkType linkType, const Tizen::Base::String& link);
467         result SendScrollPanelEvent(CoreScrollPanelStatus eventstatus);
468         result SendTextBlockEvent(int start, int end);
469         result SendTextEvent(CoreTextEventStatus textEventStatus);
470
471         void OnScrollPanelBoundsChanged(void);
472         virtual result OnAttachedToMainTree(void);
473         virtual void OnBoundsChanged(void);
474         virtual void OnChangeLayout(_ControlOrientation orientation);
475         virtual void OnClipboardPopupClosed(const ClipboardItem* pClipboardItem);
476         virtual void OnDraw(void);
477         virtual bool OnFocusGained(const _Control& source);
478         virtual bool OnFocusLost(const _Control& source);
479         virtual bool OnFlickGestureDetected(_TouchFlickGestureDetector& gesture);
480         virtual bool OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture);
481         virtual bool OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture);
482         virtual bool OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture);
483         virtual bool OnTapGestureDetected(_TouchTapGestureDetector& gesture);
484         virtual bool OnTapGestureCanceled(_TouchTapGestureDetector& gesture);
485         virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
486         virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
487         virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
488         virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
489         virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
490         virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
491         virtual bool OnNotifiedN(const _Control& source, Tizen::Base::Collection::IList* pArgs);
492
493         virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
494         virtual void OnFontInfoRequested(unsigned long& style, float& size);
495
496         virtual result OnDetachingFromMainTree(void);
497         virtual void OnVisibleStateChanged(void);
498         virtual void OnAncestorEnableStateChanged(const _Control& control);
499         virtual void OnAncestorVisibleStateChanged(const _Control& control);
500         virtual void OnSettingChanged(Tizen::Base::String& key);
501
502         virtual void OnDrawFocus(void);
503
504         _EditPresenter* GetPresenter(void) const;
505         Tizen::Graphics::FloatDimension GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const;
506         bool IsInternalFocused(void) const;
507         bool ValidatePastedText(const Tizen::Base::String& pastedText, Tizen::Base::String& replacedText);
508         void SetEditTextFilter(IEditTextFilter* pFilter);
509         void SendOpaqueCommand(const Tizen::Base::String& command);
510         _AccessibilityElement* GetTextAccessibilityElement(void) const;
511
512 protected:
513         result SetPresenter(const _EditPresenter& pPresenter);
514
515 private:
516         _Edit(const _Edit&);
517         _Edit& operator =(const _Edit&);
518         _EditPresenter* _pEditPresenter;
519
520 private:
521         float __bottomMargin;
522         float __leftMargin;
523         float __lineSpacing;
524         float __rightMargin;
525         float __textSize;
526         float __topMargin;
527         int __editStyle;
528         bool __borderRoundStyle;
529
530         EllipsisPosition __ellipsisPosition;
531         InputStyle __inputStyle;
532         bool __isConstructed;
533
534         EditColor __color[EDIT_COLOR_MAX];
535         EditBlockTextColor __blockTextColor;
536         EditCutlinkColor __cutlinkColor[EDIT_LINK_TYPE_MAX];
537         Tizen::Graphics::Color __guideTextColor;
538         Tizen::Graphics::Color __pressedGuideTextColor;
539         bool __isSettingGuideTextColor;
540
541         Tizen::Graphics::Bitmap* __pBackgroundBitmap[EDIT_COLOR_MAX];
542
543 //Default Bitmap
544         Tizen::Graphics::Bitmap* __pDefaultBackgroundBitmap[EDIT_COLOR_MAX];
545         Tizen::Graphics::Bitmap* __pDefaultBackgroundEffectBitmap;
546         Tizen::Graphics::Bitmap* __pDefaultFocusBitmap;
547
548         Tizen::Ui::_TouchFlickGestureDetector* __pGestureFlick;
549         Tizen::Ui::_TouchLongPressGestureDetector* __pGestureLongPress;
550         Tizen::Ui::_TouchTapGestureDetector* __pGestureTap;
551         Tizen::Ui::Controls::_EditInternalTouchEventListener* __pEditInternalTouchEventListener;
552
553         _ExpandableEditAreaEvent* __pExpandableEditAreaEvent;
554         _KeypadEvent* __pKeypadEvent;
555         _LanguageEvent* __pLanguageEvent;
556         _LinkEvent* __pLinkEvent;
557         _ScrollPanelEvent* __pScrollPanelEvent;
558         _TextBlockEvent* __pTextBlockEvent;
559         _TextEvent* __pTextEvent;
560         Tizen::Ui::_AccessibilityElement* __pTextAccessibilityElement;
561         Tizen::Ui::_AccessibilityElement* __pClearButtonTextAccessibilityElement;
562         Tizen::Ui::_AccessibilityElement* __pToolbarAccessibilityElement;
563         bool __isAccessibilityCreated;
564         bool __isFullScreenKeypadEdit;
565         bool __internalFocus;
566         bool __isDestroyed;
567         IEditTextFilter* __pTextFilter;
568         Tizen::Graphics::FloatRectangle __previousBounds;
569         bool __isTouchMoving;
570         bool __isSearchFieldFocused;
571         bool __isTextEventEnabled;
572 }; // _Edit
573
574 }}} // Tizen::Ui::Controls
575
576 #endif  // _FUI_CTRL_INTERNAL_EDIT_H_