Tizen 2.1 base
[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 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
8 //
9 //     http://floralicense.org/license/
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 <FUiControl.h>
35 #include <FUiCtrlControlsTypes.h>
36 #include <FUiCtrlEditTypes.h>
37 #include <FUiCtrlGroupTypes.h>
38 #include <FUiCtrlIExpandableEditAreaEventListener.h>
39 #include <FUiCtrlInputTypes.h>
40 #include <FUiIActionEventListener.h>
41 #include <FUiIClipboardPopupEventListener.h>
42 #include <FUiITextEventListener.h>
43 #include "FUi_Control.h"
44 #include "FUi_ITouchFlickGestureEventListener.h"
45 #include "FUi_ITouchLongPressGestureEventListener.h"
46 #include "FUi_ITouchTapGestureEventListener.h"
47 #include "FUi_ResourceManager.h"
48 #include "FUi_TouchFlickGestureDetector.h"
49 #include "FUi_TouchLongPressGestureDetector.h"
50 #include "FUi_TouchTapGestureDetector.h"
51 #include "FUiCtrl_ExpandableEditAreaEvent.h"
52 #include "FUiCtrl_IActionEventListener.h"
53 #include "FUiCtrl_IExpandableEditAreaEventListener.h"
54 #include "FUiCtrl_IKeypadEventListener.h"
55 #include "FUiCtrl_ITextBlockEventListener.h"
56 #include "FUiCtrl_ITextEventListener.h"
57 #include "FUiCtrl_ILanguageEventListener.h"
58 #include "FUiCtrl_IScrollPanelEventListener.h"
59 #include "FUiCtrl_IUiLinkEventListener.h"
60 #include "FUiCtrl_KeypadEvent.h"
61 #include "FUiCtrl_LanguageEvent.h"
62 #include "FUiCtrl_LinkEvent.h"
63 #include "FUiCtrl_ScrollPanelEvent.h"
64 #include "FUiCtrl_TextBlockEvent.h"
65 #include "FUiCtrl_TextEvent.h"
66
67
68 namespace Tizen { namespace Ui
69 {
70 class _AccessibilityElement;
71 }} // Tizen::Ui
72
73 namespace Tizen { namespace Ui { namespace Animations
74 {
75 class _VisualElement;
76 }}}
77
78 namespace Tizen { namespace Ui { namespace Controls
79 {
80
81 struct EditColor
82 {
83         Tizen::Graphics::Color textColor;
84         Tizen::Graphics::Color titleTextColor;
85         Tizen::Graphics::Color backgroundColor;
86 };
87
88 struct EditBlockTextColor
89 {
90         bool used;
91         Tizen::Graphics::Color blockTextColor;
92 };
93
94 struct EditCutlinkColor
95 {
96         Tizen::Graphics::Color cutlinkFgColor;
97         Tizen::Graphics::Color cutlinkBgColor;
98 };
99
100 enum EditCutLinkType
101 {
102         EDIT_LINK_TYPE_INVALID = -1,
103         EDIT_LINK_TYPE_URL,
104         EDIT_LINK_TYPE_EMAIL,
105         EDIT_LINK_TYPE_PHONE_NUM,
106         EDIT_LINK_TYPE_STREAMING_URL,
107         EDIT_LINK_TYPE_MAX
108 };
109
110 enum EditTextHorizontalMargin
111 {
112         EDIT_TEXT_LEFT_MARGIN,
113         EDIT_TEXT_RIGHT_MARGIN,
114         EDIT_TEXT_HORIZONTAL_MARGIN
115 };
116
117 enum EditTextVerticalMargin
118 {
119         EDIT_TEXT_TOP_MARGIN,
120         EDIT_TEXT_BOTTOM_MARGIN,
121         EDIT_TEXT_VERTICAL_MARGIN
122 };
123
124 enum EditAccessibilityElementType
125 {
126         EDIT_ACCESSIBILITY_ELEMENT_TYPE_TITLE_TEXT,
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 int DEFAULT_LINE_SPACE = 1;
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 {
176 public:
177         DECLARE_CLASS_BEGIN(_Edit, _Control);
178         DECLARE_PROPERTY("autoResizingEnabled", GetPropertyAutoResizingEnabled, SetPropertyAutoResizingEnabled);
179         DECLARE_PROPERTY("guideTextColor", GetPropertyGuideTextColor, SetPropertyGuideTextColor);
180         DECLARE_PROPERTY("normalColor", GetPropertyNormalColor, SetPropertyNormalColor);
181         DECLARE_PROPERTY("disabledColor", GetPropertyDisabledColor, SetPropertyDisabledColor);
182         DECLARE_PROPERTY("highlightedColor", GetPropertyHighlightedColor, SetPropertyHighlightedColor);
183         DECLARE_PROPERTY("pressedColor", GetPropertyPressedColor, SetPropertyPressedColor);
184         DECLARE_PROPERTY("normalTextColor", GetPropertyNormalTextColor, SetPropertyNormalTextColor);
185         DECLARE_PROPERTY("disabledTextColor", GetPropertyDisabledTextColor, SetPropertyDisabledTextColor);
186         DECLARE_PROPERTY("highlightedTextColor", GetPropertyHighlightedTextColor, SetPropertyHighlightedTextColor);
187         DECLARE_PROPERTY("pressedTextColor", GetPropertyPressedTextColor, SetPropertyPressedTextColor);
188         DECLARE_PROPERTY("lineSpacing", GetPropertyLineSpacing, SetPropertyLineSpacing);
189         DECLARE_PROPERTY("textSize", GetPropertyTextSize, SetPropertyTextSize);
190         DECLARE_PROPERTY("cursorPosition", GetPropertyCursorPosition, SetPropertyCursorPosition);
191         DECLARE_PROPERTY("guideText", GetPropertyGuideText, SetPropertyGuideText);
192         DECLARE_PROPERTY("keypadActionEnabled", GetPropertyKeypadActionEnabled, SetPropertyKeypadActionEnabled);
193         DECLARE_PROPERTY("keypadAction", GetPropertyKeypadAction, SetPropertyKeypadAction);
194         DECLARE_PROPERTY("keypadEnabled", GetPropertyKeypadEnabled, SetPropertyKeypadEnabled);
195         DECLARE_PROPERTY("keypadStyle", GetPropertyKeypadStyle, SetPropertyKeypadStyle);
196         DECLARE_PROPERTY("lowerCaseModeEnabled", GetPropertyLowerCaseModeEnabled, SetPropertyLowerCaseModeEnabled);
197         DECLARE_PROPERTY("overlayKeypadCommandButtonVisible", GetPropertyOverlayKeypadCommandButtonVisible, SetPropertyOverlayKeypadCommandButtonVisible);
198         DECLARE_PROPERTY("text", GetPropertyText, SetPropertyText);
199         DECLARE_PROPERTY("viewModeEnabled", GetPropertyViewModeEnabled, SetPropertyViewModeEnabled);
200         DECLARE_PROPERTY("autoLinkMask", GetPropertyAutoLinkMask, SetPropertyAutoLinkMask);
201         DECLARE_PROPERTY("titleText", GetPropertyTitleText, SetPropertyTitleText);
202         DECLARE_PROPERTY("normalTitleTextColor", GetPropertyNormalTitleTextColor, SetPropertyNormalTitleTextColor);
203         DECLARE_PROPERTY("disabledTitleTextColor", GetPropertyDisabledTitleTextColor, SetPropertyDisabledTitleTextColor);
204         DECLARE_PROPERTY("highlightedTitleTextColor", GetPropertyHighlightedTitleTextColor, SetPropertyHighlightedTitleTextColor);
205         DECLARE_PROPERTY("pressedTitleTextColor", GetPropertyPressedTitleTextColor, SetPropertyPressedTitleTextColor);
206         DECLARE_PROPERTY("blockedTextColor", GetPropertyBlockedTextColor, SetPropertyBlockedTextColor);
207         DECLARE_PROPERTY("topMargin", GetPropertyTopMargin, SetPropertyTopMargin);
208         DECLARE_PROPERTY("bottomMargin", GetPropertyBottomMargin, SetPropertyBottomMargin);
209         DECLARE_PROPERTY("leftMargin", GetPropertyLeftMargin, SetPropertyLeftMargin);
210         DECLARE_PROPERTY("rightMargin", GetPropertyRightMargin, SetPropertyRightMargin);
211         DECLARE_CLASS_END();
212
213         result SetPropertyAutoResizingEnabled(const Variant& enable);
214         result SetPropertyGuideTextColor(const Variant& color);
215         result SetPropertyNormalColor(const Variant& color);
216         result SetPropertyDisabledColor(const Variant& color);
217         result SetPropertyHighlightedColor(const Variant& color);
218         result SetPropertyPressedColor(const Variant& color);
219         result SetPropertyNormalTextColor(const Variant& color);
220         result SetPropertyDisabledTextColor(const Variant& color);
221         result SetPropertyHighlightedTextColor(const Variant& color);
222         result SetPropertyPressedTextColor(const Variant& color);
223         result SetPropertyLineSpacing(const Variant& lineSpacing);
224         result SetPropertyTextSize(const Variant& textSize);
225         result SetPropertyCursorPosition(const Variant& position);
226         result SetPropertyGuideText(const Variant& guideText);
227         result SetPropertyKeypadActionEnabled(const Variant& enabled);
228         result SetPropertyKeypadAction(const Variant& action);
229         result SetPropertyKeypadEnabled(const Variant& enabled);
230         result SetPropertyKeypadStyle(const Variant& style);
231         result SetPropertyLowerCaseModeEnabled(const Variant& enabled);
232         result SetPropertyOverlayKeypadCommandButtonVisible(const Variant& visible);
233         result SetPropertyText(const Variant& text);
234         result SetPropertyViewModeEnabled(const Variant& enabled);
235         result SetPropertyAutoLinkMask(const Variant& autoLinks);
236         result SetPropertyTitleText(const Variant& titleText);
237         result SetPropertyNormalTitleTextColor(const Variant& color);
238         result SetPropertyDisabledTitleTextColor(const Variant& color);
239         result SetPropertyHighlightedTitleTextColor(const Variant& color);
240         result SetPropertyPressedTitleTextColor(const Variant& color);
241         result SetPropertyBlockedTextColor(const Variant& color);
242         result SetPropertyTopMargin(const Variant& margin);
243         result SetPropertyBottomMargin(const Variant& margin);
244         result SetPropertyLeftMargin(const Variant& margin);
245         result SetPropertyRightMargin(const Variant& margin);
246
247         Variant GetPropertyAutoResizingEnabled(void) const;
248         Variant GetPropertyGuideTextColor(void) const;
249         Variant GetPropertyNormalColor(void) const;
250         Variant GetPropertyDisabledColor(void) const;
251         Variant GetPropertyHighlightedColor(void) const;
252         Variant GetPropertyPressedColor(void) const;
253         Variant GetPropertyNormalTextColor(void) const;
254         Variant GetPropertyDisabledTextColor(void) const;
255         Variant GetPropertyHighlightedTextColor(void) const;
256         Variant GetPropertyPressedTextColor(void) const;
257         Variant GetPropertyLineSpacing(void) const;
258         Variant GetPropertyTextSize(void) const;
259         Variant GetPropertyCursorPosition(void) const;
260         Variant GetPropertyGuideText(void) const;
261         Variant GetPropertyKeypadActionEnabled(void) const;
262         Variant GetPropertyKeypadAction(void) const;
263         Variant GetPropertyKeypadEnabled(void) const;
264         Variant GetPropertyKeypadStyle(void) const;
265         Variant GetPropertyLowerCaseModeEnabled(void) const;
266         Variant GetPropertyOverlayKeypadCommandButtonVisible(void) const;
267         Variant GetPropertyText(void) const;
268         Variant GetPropertyViewModeEnabled(void) const;
269         Variant GetPropertyAutoLinkMask(void) const;
270         Variant GetPropertyTitleText(void) const;
271         Variant GetPropertyNormalTitleTextColor(void) const;
272         Variant GetPropertyDisabledTitleTextColor(void) const;
273         Variant GetPropertyHighlightedTitleTextColor(void) const;
274         Variant GetPropertyPressedTitleTextColor(void) const;
275         Variant GetPropertyBlockedTextColor(void) const;
276         Variant GetPropertyTopMargin(void) const;
277         Variant GetPropertyBottomMargin(void) const;
278         Variant GetPropertyLeftMargin(void) const;
279         Variant GetPropertyRightMargin(void) const;
280
281 public:
282         _Edit(void);
283         virtual ~_Edit(void);
284
285         static _Edit* CreateEditN(void);
286         virtual result Initialize(int editStyle, InputStyle inputStyle, int limitLength, GroupStyle groupStyle = GROUP_STYLE_NONE);
287
288         result SetAutoLinkMask(unsigned long autoLinks);
289         result SetAutoResizingEnabled(bool enable);
290         result SetBackgroundBitmap(EditStatus status, const Tizen::Graphics::Bitmap& bitmap);
291         result SetBlockRange(int start, int end);
292         result SetBlockTextColor(const Tizen::Graphics::Color& color);
293         result SetColor(EditStatus status, const Tizen::Graphics::Color& color);
294         result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
295         result SetCursorPosition(int position);
296         void SetCutlinkColorInfo(EditCutLinkType type, EditCutlinkColor colorInfo);
297         void SetEllipsisPosition(EllipsisPosition position);
298         result SetFont(const Tizen::Graphics::Font& font);
299         result SetFontType(const Tizen::Base::String& typefaceName, unsigned long styleMask);
300         result SetTextStyle(unsigned long style);
301         void SetGuideText(const Tizen::Base::String& guideText);
302         result SetGuideTextColor(const Tizen::Graphics::Color& color);
303         result SetHorizontalMargin(int margin, EditTextHorizontalMargin marginType = EDIT_TEXT_HORIZONTAL_MARGIN);
304         result SetKeypadAction(CoreKeypadAction keypadAction);
305         result SetKeypadActionEnabled(bool enabled);
306         void SetKeypadEnabled(bool enable);
307         result SetKeypadStyle(KeypadStyle keypadStyle);
308         result SetKeypadNormalNumberStyle(bool enable);
309         result SetTextPredictionEnabled(bool enable);
310         result SetLimitLength(int limitLength);
311         result SetLineSpacing(int linePixelGap);
312         void SetLowerCaseModeEnabled(bool enable);
313         void SetMaxLineCount(int maxLineCount);
314         result SetKeypadCommandButton(CommandButtonPosition position, const Tizen::Base::String& text, int actionId);
315         result SetKeypadCommandButtonVisible(bool visible);
316         _Toolbar* GetKeypadCommandButton(void) const;
317         result SetText(const Tizen::Base::String& text);
318         result SetTextAlignment(HorizontalAlignment alignment);
319         result SetTextColor(EditTextColor type, const Tizen::Graphics::Color& color);
320         result SetTextSize(int size);
321         virtual result SetTitleText(const Tizen::Base::String& title);
322         result SetTitleTextColor(EditStatus status, const Tizen::Graphics::Color& color);
323         result SetViewModeEnabled(bool enable);
324         result SetVerticalMargin(int margin, EditTextVerticalMargin marginType = EDIT_TEXT_VERTICAL_MARGIN);
325         void SetEditStyle(unsigned long style);
326         void SetBorderRoundStyleEnabled(bool enable);
327
328         unsigned long GetAutoLinkMask(void) const;
329         Tizen::Graphics::Bitmap* GetBackgroundBitmap(EditStatus status) const;
330         result LoadDefaultBackgroundBitmap(GroupStyle groupStyle);
331         result ReplaceDefaultBackgroundBitmapForSearchBar(void);
332         Tizen::Graphics::Bitmap* GetDefaultBackgroundBitmap(EditStatus status) const;
333         bool IsCustomDefaultBackgroundBitmap(EditStatus status) const;
334         Tizen::Graphics::Bitmap* GetDefaultBackgroundEffectBitmap(void) const;
335         void GetBlockRange(int& start, int& end) const;
336         Tizen::Graphics::Color GetBlockTextColor(void) const;
337         Tizen::Graphics::Color GetColor(EditStatus status) const;
338         result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
339         void GetCurrentTextRange(int& start, int& end) const;
340         int GetCursorPosition(void) const;
341         int GetCursorPositionAt(const Tizen::Graphics::Point& point) const;
342         result GetCursorBounds(bool isAbsRect, Tizen::Graphics::Rectangle& cursorBounds) const;
343         void GetCutlinkColorInfo(EditCutLinkType type, EditCutlinkColor* colorInfo) const;
344         EllipsisPosition GetEllipsisPosition(void) const;
345         void GetFontType(Tizen::Base::String& typefaceName, unsigned long& styleMask) const;
346         unsigned long GetTextStyle(void) const;
347         Tizen::Base::String GetGuideText(void) const;
348         Tizen::Graphics::Color GetGuideTextColor(void) const;
349         int GetHorizontalMargin(EditTextHorizontalMargin marginType) const;
350         InputStyle GetInputStyle(void) const;
351         CoreKeypadAction GetKeypadAction(void) const;
352         bool GetKeypadActionEnabled(void) const;
353         result GetKeypadBounds(Tizen::Graphics::Rectangle& rect) const;
354         KeypadStyle GetKeypadStyle(void) const;
355         int GetTextLimitLength(void) const;
356         int GetLineSpacing(void) const;
357         int GetMaxLineCount(void) const;
358         int GetKeypadCommandButtonActionId(CommandButtonPosition position) const;
359         Tizen::Base::String GetKeypadCommandButtonText(CommandButtonPosition position) const;
360         int GetRemainingLength(void) const;
361         Tizen::Base::String GetText(void) const;
362         Tizen::Base::String GetText(int start, int end) const;
363         HorizontalAlignment GetTextAlignment(void) const;
364         Tizen::Graphics::Color GetTextColor(EditStatus status) const;
365         Tizen::Graphics::Color GetTextColor(EditTextColor type) const;
366         int GetTextLength(void) const;
367         int GetTextLineCount(void) const;
368         int GetTextSize(void) const;
369         int GetTextTotalHeight(void) const;
370         virtual Tizen::Base::String GetTitleText(void) const;
371         Tizen::Graphics::Color GetTitleTextColor(EditStatus status) const;
372         int GetVerticalMargin(EditTextVerticalMargin marginType) const;
373         unsigned long GetEditStyle(void) const;
374         void GetWordPosition(int cursorPos, int& startPos, int& endPos) const;
375         result GetTextImageRangeAt(int postion, int& startPosition, int& endPosition) const;
376
377         result AppendCharacter(const Tizen::Base::Character& character);
378         result AppendText(const Tizen::Base::String& text);
379         result BeginTextBlock(void);
380         bool CalculateAbsoluteCursorBounds(int index ,Tizen::Graphics::Rectangle& absCursorRect);
381         result ClearText(void);
382         result CopyText(void);
383         result CutText(void);
384         result DeleteCharacterAt(int index);
385         result DeleteCharacterAtCursorPosition(void);
386         void SetCursorDisabled(bool disabled);
387         result HideKeypad(void);
388         void InitializeColorInformation(void);
389         void SetViewModeColorInformation(bool enabled);
390         result InsertTextAtCursorPosition(const Tizen::Base::String& text);
391         result InsertCharacterAt(int index, const Tizen::Base::Character& character);
392         result InsertTextAt(int index, const Tizen::Base::String& text);
393         result InsertTextAt(int position, const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
394         result AppendText(const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
395         bool IsAutoResizingEnabled(void) const;
396         bool IsBlocked(void) const;
397         bool IsClipped(void) const;
398         bool IsLowerCaseModeEnabled(void) const;
399         bool IsKeypadCommandButtonVisible(void) const;
400         bool IsSettingGuideTextColor(void) const;
401         bool IsViewModeEnabled(void) const;
402         bool IsKeypadEnabled(void) const;
403         bool IsTextPredictionEnabled(void) const;
404         void UpdateAccessibilityElement(EditAccessibilityElementType type);
405         void SetFullScreenKeypadEdit(bool enabled);
406         bool IsFullScreenKeypadEdit(void);
407         bool IsBorderRoundStyleEnabled(void) const;
408         bool IsUsbKeyboardConnected(void) const;
409         bool IsKeypadExist(void) const;
410         virtual void SetAutoShrinkModeEnabled(bool enable);
411         virtual bool IsAutoShrinkModeEnabled(void) const;
412
413         result PasteText(void);
414         result ReleaseTextBlock(void);
415         result RemoveTextBlock(void);
416         result ShowKeypad(void);
417
418         result AddActionEventListener(const _IActionEventListener& listener);
419         result AddExpandableEditAreaEventListener(const _IExpandableEditAreaEventListener& listener);
420         result AddKeypadEventListener(const _IKeypadEventListener& listener);
421         result AddLanguageEventListener(const _ILanguageEventListener& listener);
422         result AddScrollPanelEventListener(const _IScrollPanelEventListener& listener);
423         result AddTextBlockEventListener(const _ITextBlockEventListener& listener);
424         result AddTextEventListener(const _ITextEventListener& listener);
425         result AddUiLinkEventListener(const _IUiLinkEventListener& listener);
426
427         result RemoveActionEventListener(const _IActionEventListener& listener);
428         result RemoveExpandableEditAreaEventListener(const _IExpandableEditAreaEventListener& listener);
429         result RemoveKeypadEventListener(const _IKeypadEventListener& listener);
430         result RemoveLanguageEventListener(const _ILanguageEventListener& listener);
431         result RemoveScrollPanelEventListener(const _IScrollPanelEventListener& listener);
432         result RemoveTextBlockEventListener(const _ITextBlockEventListener& listener);
433         result RemoveTextEventListener(const _ITextEventListener& listener);
434         result RemoveUiLinkEventListener(const _IUiLinkEventListener& listener);
435
436         result AttachScrollPanelEvent(void);
437         result DetachScrollPanelEvent(void);
438
439         result SendExpandableEditAreaEvent(_ExpandableEditAreaEventStatus status, int selectedTokenIndex = -1);
440         result SendKeypadEvent(CoreKeypadAction keypadAction, CoreKeypadEventStatus eventstatus);
441         result SendLanguageEvent(Tizen::Locales::LanguageCode prevLanguageCode, Tizen::Locales::LanguageCode currentLanguageCode);
442         result SendLinkEvent(const Tizen::Base::String& text, Tizen::Base::Utility::LinkType linkType, const Tizen::Base::String& link);
443         result SendScrollPanelEvent(CoreScrollPanelStatus eventstatus);
444         result SendTextBlockEvent(int start, int end);
445         result SendTextEvent(CoreTextEventStatus textEventStatus);
446
447         void OnScrollPanelBoundsChanged(void);
448         virtual result OnAttachedToMainTree(void);
449         virtual void OnBoundsChanged(void);
450         virtual void OnChangeLayout(_ControlOrientation orientation);
451         virtual void OnClipboardPopupClosed(const ClipboardItem* pClipboardItem);
452         virtual void OnDraw(void);
453         virtual bool OnFocusGained(const _Control& source);
454         virtual bool OnFocusLost(const _Control& source);
455         virtual bool OnFlickGestureDetected(_TouchFlickGestureDetector& gesture);
456         virtual bool OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture);
457         virtual bool OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture);
458         virtual bool OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture);
459         virtual bool OnTapGestureDetected(_TouchTapGestureDetector& gesture);
460         virtual bool OnTapGestureCanceled(_TouchTapGestureDetector& gesture);
461         virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
462         virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
463         virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
464         virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
465         virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
466         virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
467         virtual bool OnNotifiedN(const _Control& source, Tizen::Base::Collection::IList* pArgs);
468
469         virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
470         virtual void OnFontInfoRequested(unsigned long& style, int& size);
471
472         virtual void OnAncestorEnableStateChanged(const _Control& control);
473
474         _EditPresenter* GetPresenter(void) const;
475         Tizen::Graphics::Dimension GetContentSizeInternal(void) const;
476
477 protected:
478         result SetPresenter(const _EditPresenter& pPresenter);
479
480 private:
481         _Edit(const _Edit&);
482         _Edit& operator =(const _Edit&);
483         _EditPresenter* _pEditPresenter;
484
485 private:
486         int __bottomMargin;
487         int __leftMargin;
488         int __lineSpacing;
489         int __rightMargin;
490         int __textSize;
491         int __topMargin;
492         int __editStyle;
493         bool __borderRoundStyle;
494
495         EllipsisPosition __ellipsisPosition;
496         InputStyle __inputStyle;
497         bool __isConstructed;
498
499         EditColor __color[EDIT_COLOR_MAX];
500         EditBlockTextColor __blockTextColor;
501         EditCutlinkColor __cutlinkColor[EDIT_LINK_TYPE_MAX];
502         Tizen::Graphics::Color __guideTextColor;
503         bool __isSettingGuideTextColor;
504
505         Tizen::Graphics::Bitmap* __pBackgroundBitmap[EDIT_COLOR_MAX];
506
507 //Default Bitmap
508         Tizen::Graphics::Bitmap* __pDefaultBackgroundBitmap[EDIT_COLOR_MAX];
509         Tizen::Graphics::Bitmap* __pDefaultBackgroundEffectBitmap;
510
511         Tizen::Ui::_TouchFlickGestureDetector* __pGestureFlick;
512         Tizen::Ui::_TouchLongPressGestureDetector* __pGestureLongPress;
513         Tizen::Ui::_TouchTapGestureDetector* __pGestureTap;
514         Tizen::Ui::Controls::_EditInternalTouchEventListener* __pEditInternalTouchEventListener;
515
516         _ExpandableEditAreaEvent* __pExpandableEditAreaEvent;
517         _KeypadEvent* __pKeypadEvent;
518         _LanguageEvent* __pLanguageEvent;
519         _LinkEvent* __pLinkEvent;
520         _ScrollPanelEvent* __pScrollPanelEvent;
521         _TextBlockEvent* __pTextBlockEvent;
522         _TextEvent* __pTextEvent;
523         Tizen::Ui::_AccessibilityElement* __pTitleTextAccessibilityElement;
524         Tizen::Ui::_AccessibilityElement* __pTextAccessibilityElement;
525         Tizen::Ui::_AccessibilityElement* __pClearButtonTextAccessibilityElement;
526         Tizen::Ui::_AccessibilityElement* __pToolbarAccessibilityElement;
527         bool __isAccessibilityCreated;
528         bool __isFullScreenKeypadEdit;
529 }; // _Edit
530
531 }}} // Tizen::Ui::Controls
532
533 #endif  // _FUI_CTRL_INTERNAL_EDIT_H_