Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_EditPresenter.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_EditPresenter.h
19  * @brief               This is the header file for the _EditPresenter class.
20  *
21  * This header file contains the declarations of the %_EditPresenter class.
22  */
23
24 #ifndef _FUI_CTRL_INTERNAL_EDIT_PRESENTER_H_
25 #define _FUI_CTRL_INTERNAL_EDIT_PRESENTER_H_
26
27 #include <FBaseCharacter.h>
28 #include <FBaseObject.h>
29 #include <FBaseString.h>
30 #include <FGrp_TextTextObject.h>
31 #include <FUiCtrlControlsTypes.h>
32 #include <FUiIInputConnectionEventListener.h>
33 #include "FUi_InputConnectionImpl.h"
34 #include "FUi_UiTouchEvent.h"
35 #include "FUiCtrl_Edit.h"
36 #include "FUiCtrl_EditModel.h"
37 #include "FUiCtrl_IFrameEventListener.h"
38 #include "FUiCtrl_IEditCopyPasteEventListener.h"
39 #include "FUiCtrl_Keypad.h"
40 #include "FUiCtrl_Toolbar.h"
41
42 namespace Tizen { namespace Ui { namespace Controls
43 {
44 const int EDIT_SCROLLFRAME_MAX = 5;
45 const int EDIT_PASSWORD_BUFFER_MAX = 1024;
46 const int SCROLL_STYLE_VERTICAL = 2;
47 const int ANIMATION_DURATION = 333;
48
49 enum _EditFooterVisibleStatus
50 {
51         EDIT_FOOTER_VISIBLE_STATUS_NONE = 0,
52         EDIT_FOOTER_VISIBLE_STATUS_SHOW,
53         EDIT_FOOTER_VISIBLE_STATUS_HIDE
54 };
55
56 enum _EditTextStatus
57 {
58         EDIT_TEXT_STATUS_COMPOSE_NON = 0,
59         EDIT_TEXT_STATUS_COMPOSE
60 };
61
62 enum _EditFontChange
63 {
64         EDIT_FONT_CHANGE_CONTENT = 0,
65         EDIT_FONT_CHANGE_TITLE,
66         EDIT_FONT_CHANGE_ALL
67 };
68
69 struct _EditScrollEffectInfo
70 {
71         int previousY;
72         int currentY;
73         int effectGap;
74         int effectFrame;
75         int touchScrollFrameLevel[EDIT_SCROLLFRAME_MAX];
76 };
77
78 class _Form;
79 class _EditCopyPasteManager;
80 class _FlickAnimation;
81 class _Frame;
82 class _Scroll;
83 class _ScrollPanel;
84
85 class _EditAnimationProvider
86         : public Tizen::Ui::Animations::VisualElementAnimationProvider
87 {
88 public:
89         _EditAnimationProvider(void);
90
91         virtual ~_EditAnimationProvider(void);
92
93         virtual Tizen::Ui::Animations::VisualElementAnimation* CreateAnimationForProperty(Tizen::Ui::Animations::VisualElement& source, const Tizen::Base::String& property);
94 }; // _EditAnimationProvider
95
96
97 class _EditPresenter
98         : public Tizen::Base::Object
99         , virtual public Tizen::Base::Runtime::IEventListener
100         , public IInputConnectionEventListener
101         , public IInputConnectionProvider
102         , public Tizen::Base::Runtime::ITimerEventListener
103         , public _IEditCopyPasteEventListener
104         , virtual public _IFrameEventListener
105 {
106 public:
107         _EditPresenter(void);
108         virtual ~_EditPresenter(void);
109
110         static _EditPresenter* CreateInstanceN(void);
111         virtual result Initialize(const _Control& control);
112         result AddActionEventListener(const _IActionEventListener& listener);
113         result RemoveActionEventListener(const _IActionEventListener& listener);
114         virtual bool OnLongPressGestureDetected(void);
115         virtual bool OnTapGestureDetected(void);
116         virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
117         virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
118         virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
119         virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
120         virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
121         virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
122         virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
123
124         virtual void OnClipboardPopupClosed(const ClipboardItem* pClipboardItem);
125         virtual result SetInitialBounds(void);
126         virtual result Draw(Tizen::Graphics::Canvas& canvas);
127         virtual result DrawCursor(Tizen::Graphics::Canvas& canvas, Tizen::Graphics::Rectangle& cursorRect, bool isCursorOpaque);
128         virtual result DrawScrollBar(void);
129         virtual bool OnFocusGained(void);
130         virtual bool OnFocusLost(void);
131
132         virtual bool OnNotifiedN(Tizen::Base::Collection::IList* pArgs);
133         virtual void OnFrameActivated(const Tizen::Ui::Controls::_Frame& source);
134         virtual void OnFrameDeactivated(const Tizen::Ui::Controls::_Frame& source);
135
136         virtual result SetLineSpacing(int linePixelGap);
137         virtual int GetLineSpacing(void) const;
138
139         void OnScrollPanelBoundsChanged(void);
140
141         void OnFontInfoRequested(unsigned long& style, int& size);
142         void OnFontChanged(Tizen::Graphics::Font* pFont);
143
144         result SetAutoLinkMask(unsigned long autoLinks);
145         result SetAutoResizingEnabled(bool enable);
146         result SetBlockRange(int start, int end);
147         result SetCurrentInputModeCategory(EditInputModeCategory inputModeCategory);
148         result SetCurrentLanguage(Tizen::Locales::LanguageCode languageCode);
149         result SetCursorPosition(int position);
150         void SetClientBounds(void);
151         result SetEllipsisPosition(EllipsisPosition position);
152         virtual result SetFlexBounds(const Tizen::Graphics::Rectangle& bounds);
153         result SetTextSize(const int size);
154         result SetFont(const Tizen::Graphics::Font& font);
155         result AdjustFont(Tizen::Graphics::Font& font, _EditFontChange fontChange = EDIT_FONT_CHANGE_CONTENT);
156         result SetFontType(const Tizen::Base::String& typefaceName, unsigned long styleMask);
157         result SetTextStyle(unsigned long style);
158         result SetGuideText(const Tizen::Base::String& guideText);
159         result SetInputModeCategory(unsigned long categories, bool enable);
160         result SetInputModePanelCategory(unsigned long panelCategory);
161         result SetKeypadActionEnabled(bool enable);
162         result SetKeypadAction(CoreKeypadAction keypadAction);
163         void SetKeypadEnabled(bool enable);
164         result SetKeypadStyle(KeypadStyle keypadStyle);
165         result SetKeypadNormalNumberStyle(bool enable);
166         result SetTextPredictionEnabled(bool enable);
167         result SetTextLimitLength(int limitLength);
168         void SetLowerCaseModeEnabled(bool enable);
169         void SetMaxLineCount(int maxLineCount);
170         result SetKeypadCommandButton(CommandButtonPosition position, const Tizen::Base::String& text, int actionId);
171         _Toolbar* GetKeypadCommandButton(void) const;
172         result SetKeypadCommandButtonVisible(bool visible);
173         bool SetKeypadBounds(const Tizen::Graphics::Rectangle& bounds);
174         result SetText(const Tizen::Base::String& text);
175         result SetTextAlignment(HorizontalAlignment alignment);
176         result SetTextBounds(Tizen::Graphics::Rectangle& bounds);
177         result SetTitleText(const Tizen::Base::String& title);
178         result SetViewModeEnabled(bool enable);
179         unsigned long GetAutoLinkMask(void) const;
180         void GetBlockRange(int& start, int& end) const;
181         EditInputModeCategory GetCurrentInputModeCategory(void) const;
182         result GetCurrentLanguage(Tizen::Locales::LanguageCode& language) const;
183         void GetCurrentTextRange(int& start, int& end) const;
184         int GetCursorPositionAt(const Tizen::Graphics::Point& touchPoint) const;
185         int GetCursorPosition(void) const;
186         result GetCursorBounds(bool isAbsRect, Tizen::Graphics::Rectangle& cursorBounds);
187         EllipsisPosition GetEllipsisPosition(void) const;
188         Tizen::Graphics::Font* GetFont(void) const;
189         Tizen::Graphics::Font* CopyFontN(const Tizen::Graphics::Font* pFont);
190         Tizen::Graphics::Font* CreateFontN(const Tizen::Graphics::Font* pFont, unsigned long styleMask);
191         Tizen::Graphics::Font* CreateFontN(const Tizen::Graphics::Font* pFont, unsigned long newStyle, int newSize);
192         Tizen::Graphics::Font* CreateFontN(const Tizen::Graphics::Font* pSrcFaceFont, const Tizen::Graphics::Font* pSrcStyleFont);
193         unsigned int GetFontStyle(const Tizen::Graphics::Font* pBaseFont) const;
194         result GetFontType(Tizen::Base::String& typefaceName, unsigned long& styleMask) const;
195         Tizen::Base::String GetTitleFontFaceName(void);
196         unsigned long GetTextStyle(void) const;
197         Tizen::Base::String GetGuideText(void) const;
198         int GetTextSize(void) const;
199         unsigned long GetInputModeCategory(void) const;
200         CoreKeypadAction GetKeypadAction(void) const;
201         result GetKeypadBounds(Tizen::Graphics::Rectangle& bounds) const;
202         KeypadStyle GetKeypadStyle(void) const;
203         int GetTextLimitLength(void) const;
204         int GetMaxLineCount(void) const;
205         int GetKeypadCommandButtonActionId(CommandButtonPosition position) const;
206         Tizen::Base::String GetKeypadCommandButtonText(CommandButtonPosition position) const;
207         _Form* GetParentForm(void);
208         int GetRemainingLength(void) const;
209         Tizen::Base::String GetText(void) const;
210         Tizen::Base::String GetText(int start, int end) const;
211         HorizontalAlignment GetTextAlignment(void) const;
212         int GetTextLength(void) const;
213         int GetTextLineCount(void) const;
214         int GetTextTotalHeight(void) const;
215         Tizen::Base::String GetTitleText(void) const;
216         void GetWordPosition(int cursorPos, int& startPos, int& endPos) const;
217         result GetTextImageRangeAt(int postion, int& startPosition, int& endPosition) const;
218         bool IsAutoResizingEnabled(void) const;
219         bool IsBlocked(void) const;
220         bool IsClipped(void) const;
221         bool IsFocused(void) const;
222         bool IsKeypadActionEnabled(void) ;
223         bool IsKeypadEnabled(void) ;
224         bool IsLowerCaseModeEnabled(void) const;
225         bool IsKeypadCommandButtonVisible(void) const;
226         bool IsViewModeEnabled(void) const;
227         bool IsTextPredictionEnabled(void) const;
228         bool IsKeypadExist(void) const;
229         void CheckUSBKeyboardStatus(void);
230         void CheckKeypadStatus(void);
231         bool IsUsbKeyboardConnected(void) const;
232
233         result AppendCharacter(const Tizen::Base::Character& character);
234         result AppendText(const Tizen::Base::String& text);
235         result BeginTextBlock(void);
236         result CalculateAbsoluteCursorBounds(int index, Tizen::Graphics::Rectangle& absCursorBounds);
237         result ChangeLayout(_ControlOrientation orientation);
238         result ClearText(void);
239         result CopyText(void);
240         virtual result CutText(void);
241         result DeleteCharacterAt(int index);
242         result DeleteCharacterAtCursorPosition(void);
243         result DeleteText(int start, int end);
244         void SetCursorDisabled(bool disabled);
245         result HideKeypad(bool focus = false);
246         void ChangeKeypadStatus(void);
247         result InsertCharacterAt(int index, const Tizen::Base::Character& character);
248         result InsertTextAt(int index, const Tizen::Base::String& text);
249         result InsertTextAt(int position, const Tizen::Base::String& text, const Tizen::Graphics::Bitmap& textImage);
250         result InsertTextAtCursorPosition(const Tizen::Base::String& text);
251         result PasteText(void);
252         result ReleaseTextBlock(void);
253         result RemoveTextBlock(void);
254         result Resize(void);
255         result ShowKeypad(bool focus = true);
256         result StartFlickAnimation(const Tizen::Graphics::Point& flickPosition, int flickTime);
257         Tizen::Graphics::Rectangle GetTextAreaBounds(void) const;
258         Tizen::Graphics::Rectangle GetTitleBounds(void) const;
259         Tizen::Graphics::Rectangle GetClearIconBounds(void) const;
260         void FinishTextComposition(void);
261         void InitializeCopyPasteManager(void);
262         bool IsCopyPastePopupVisible(void) const;
263         bool GetTextCompositionState(void) const;
264         bool IsCopyPastePopup(const _Control& control) const;
265         Tizen::Graphics::_Text::TextObject* GetTextObject(void) const;
266         EditStatus GetCurrentStatus(void) const;
267         result ScrollContents(int moveY);
268         void DrawText(void);
269         result UpdateComponentInformation(void);
270         void SetCursorChangedFlag(bool enabled);
271         bool GetCursorChangedFlag(void) const;
272         void SetAutoShrinkModeEnabled(bool enable);
273         bool IsAutoShrinkModeEnabled(void) const;
274         result SetDefaultFont(void);
275         void SetEditGroupStyle(GroupStyle groupStyle);
276         void ScrollPanelToCursorPosition(bool show = true);
277         void SetSearchBarFlag(bool enabled);
278         bool GetSearchBarFlag(void) const;
279         void SetKeypadClosedEventSkipped(bool skipped);
280         void PostInternalEvent(const Tizen::Base::String& type);
281
282 protected:
283         virtual void OnInputConnectionTextCommitted(InputConnection& source, const Tizen::Base::String& committedText);
284         virtual void DeleteSurroundingText(InputConnection& source, int offset, int chars);
285         virtual void OnTextCommitted(const Tizen::Base::String& commitText);
286         virtual void OnSurroundingTextDeleted(int offset, int charCount);
287         result InitializeAtFirstDrawing(void);
288         result CalculateCursorBounds(const Tizen::Graphics::Rectangle& textBounds, Tizen::Graphics::Rectangle& cursorBounds, int curPos = -1);
289         Tizen::Ui::Animations::_VisualElement* GetCursorVisualElement(void) const;
290         virtual Tizen::Graphics::Rectangle GetTextBounds(void) const;
291         result DrawBackground(Tizen::Graphics::Canvas& canvas, bool drawTitleText = true);
292         result InitializeCursor(void);
293         result DrawText(Tizen::Graphics::Canvas& canvas);
294         bool IsInitialized(void) const;
295         void StopCursorTimer(void);
296         result StartCursorTimer(void);
297         virtual void OnCursorTimerExpired(void);
298         virtual result SetModel(const _EditModel& editModel);
299         virtual int CalculateFlexibleHeight(void);
300         void SetCursorEnabled(bool enable);
301         bool IsCursorEnabled(void) const;
302         void SetScrollBarVisible(bool enable);
303         void SetScrollBarBounds(const Tizen::Graphics::Rectangle& bounds);
304         Tizen::Graphics::Rectangle GetDisplayScrollBounds(void) const;
305         Tizen::Graphics::Rectangle GetInitialBounds(void) const;
306         void SetPreviousScrollBarPosition(int position);
307         int GetPreviousScrollPosition(void) const;
308         void SetMaximumPreviousScrollBarPosition(int position);
309         _Scroll* GetScrollBar(void) const;
310         _Edit* GetEditView(void) const;
311
312 private:
313         virtual void OnEditCopyPasteStatusChanged(CoreCopyPasteStatus status, CoreCopyPasteAction action);
314         virtual void OnInputConnectionPanelShowStateChanged(InputConnection& source, InputPanelShowState showState);
315         virtual void OnInputConnectionPanelLanguageChanged(InputConnection& source, Tizen::Locales::LanguageCode language);
316         virtual void OnInputConnectionPanelBoundsChanged(InputConnection& source, const Tizen::Graphics::Rectangle& bounds);
317         virtual void OnInputConnectionTextPredictionShowStateChanged(InputConnection& source, bool isShown);
318         virtual void OnInputConnectionTextPredictionBoundsChanged(InputConnection& source, const Tizen::Graphics::Rectangle& bounds);
319         virtual void OnInputConnectionComposingTextChanged(InputConnection& source, const Tizen::Base::String& composingText, int cursorPosition);
320         virtual void GetPreviousText(InputConnection& source, Tizen::Base::String& text, int& cursorPosition);
321         void OnComposingTextChanged(const Tizen::Base::String& preeditText, int cursorPosition);
322         void OnKeypadStateChanged(void *data, InputPanelShowState showState);
323         void OnLanguageStateChanged(void* data, Tizen::Locales::LanguageCode newLanguageCode);
324         result InitializeFlickAnimation(void);
325         void InitializeParentPanel(void);
326         result InitializeEditFieldClientRect(void);
327         result SetInitialEditFieldBounds(void);
328         virtual result AdjustFlexibleHeight(void);
329         result SetKeypadCommandButton(const Tizen::Graphics::Rectangle& bounds);
330         result SetTitleTextSlidingAction(Tizen::Graphics::_Text::TextObjectActionType action);
331         result SetWrap(Tizen::Graphics::_Text::TextObjectWrapType wrapMode);
332         bool IsGuideTextActivated(void) const;
333         bool IsContained(Tizen::Graphics::Rectangle& paramRect) const;
334         int CalculateMaximumFlexibleHeight(void);
335         result ChangePasswordToEchoCharacter(int cursorPos, int textLength);
336         result ConvertLinkType(void);
337         int GetLinkElementOffsetInTextBuffer(int elementIndex) const;
338         // todo : move to DrawBackground
339         result DrawBackgroundBitmap(Tizen::Graphics::Canvas& canvas, bool focused);
340         result DrawChangeableBackground(Tizen::Graphics::Canvas& canvas, bool focused, int bitmapId, int effectBitmapId, bool outLine = false, int outlineBitmapId = 0);
341         result DrawClearIcon(Tizen::Graphics::Canvas& canvas);
342         // todo : move to DrawBackground
343         result DrawSingleLineBackground(Tizen::Graphics::Canvas& canvas, bool drawTitleText);
344         // todo : move to DrawBackgroundBitmap
345         result DrawSingleLineBackgroundBitmap(Tizen::Graphics::Canvas& canvas, bool focused);
346         // todo : move to DrawText
347         result DrawTextForEntireFontSetting(Tizen::Graphics::Canvas& canvas);
348         result DrawTitleText(Tizen::Graphics::Canvas& canvas);
349         result MoveCursor(const Tizen::Graphics::Rectangle& fromRect, const Tizen::Graphics::Rectangle& toRect);
350         bool IsHorizontalDirection(const _TouchInfo& touchInfo);
351         result ScrollContentsOnFlick(void);
352         result ChangePasswordToEchoCharacter(wchar_t* dspStrBuffer, wchar_t echoChar);
353         // todo : move to PastePasswordEchoCharacter
354         result ReplaceTextIntoPasswordHyphenString(void);
355         // todo : delete, do not use
356         result SetFocused(void);
357         void ScrollText(int distance);
358         void FadeOutScrollBar(void);
359         // todo : move to OperateFlickScrollEffect
360         bool ScrollOnFlick(int moveDistanceY);
361         result StartFlickTimer(int flickVelocityX, int flickVelocityY);
362         void StopFlickTimer(void);
363         void StopPasswordTimer(void);
364         result StartPasswordTimer(void);
365         result OnPasswordTimerExpired(void);
366         void StopTitleSlidingTimer(void);
367         result StartTitleSlidingTimer(void);
368         result OnTitleSlidingTimerExpired(void);
369         result OnFlickTimerExpired(void);
370         bool IsDelimiter(wchar_t character) const;
371         void AdjustParentPanelHeight(bool restore, bool panelResizeByPrediction=false);
372         result ChangeLayoutInternal(_ControlOrientation orientation);
373         _Button* CreateCommandButtonItemN(int actionId, const Tizen::Base::String& text);
374         void CheckFooterVisible(void);
375         void SetFooterVisible(bool isVisible);
376         result ShowFullscreenKeypad(void);
377         InputPanelAction ConvertKeypadAction(CoreKeypadAction keypadAction);
378         void ScrollPanelToTop(bool show);
379         void ScrollPanelToExposedRegion(bool show);
380         result Dispose(void);
381
382         _EditPresenter(const _EditPresenter&);
383         _EditPresenter& operator =(const _EditPresenter&);
384
385 private:
386         _Edit* __pEdit;
387         wchar_t* __pTextBuffer;
388         Tizen::Base::String* __pTextString;
389         _EditModel* __pEditModel;
390         _Scroll* __pScrollBar;
391         // todo : check to be needed
392         _EditScrollEffectInfo* __pScrollEffect;
393         int __limitLength;
394         HorizontalAlignment __horizontalAlignment;
395         bool __isScrollBarVisible;
396         Tizen::Graphics::Rectangle __scrollBarBounds;
397         Tizen::Graphics::Rectangle __initialBounds;
398         int __previousScrollBarPos;        // First save prev scroll and if scroll pos is changed then draw scroll
399         int __previousScrollBarMaxPos;     // When scroll max value is changed then draw scroll
400
401         _IActionEventListener* __pActionEventListener;
402
403         Tizen::Base::Runtime::Timer* __pCursorTimer;
404         Tizen::Base::Runtime::Timer* __pFlickAnimationTimer;
405         Tizen::Base::Runtime::Timer* __pPasswordTimer;
406         Tizen::Base::Runtime::Timer* __pTitleSlidingTimer;
407
408         Tizen::Graphics::Font* __pFont;
409
410         Tizen::Ui::Animations::_VisualElement* __pCursorVisualElement;
411         Tizen::Ui::Animations::_VisualElement* __pTextVisualElement;
412
413         _EditCopyPasteManager* __pCopyPasteManager;
414         _FlickAnimation* __pFlickAnimation;
415         _Form* __pParentForm;
416         _Keypad* __pFullscreenKeypad;
417         _ScrollPanel* __pParentPanel;
418         _Toolbar* __pCommandButton;
419
420         _InputConnectionImpl* __pInputConnection;
421         bool __isInputConnectionBound;
422
423         Tizen::Base::String __guideText;
424         Tizen::Base::String __titleText;
425
426         Tizen::Graphics::Point __pressedPoint;
427         bool __isCopyPastePopupMoving;
428         Tizen::Graphics::Point __pressedAbsolutePoint;
429
430         Tizen::Graphics::Rectangle __clearIconBounds;
431         Tizen::Graphics::Rectangle __textBoxBounds;
432         Tizen::Graphics::Rectangle __textObjectBounds;
433         Tizen::Graphics::Rectangle __titleBounds;
434         Tizen::Graphics::Rectangle __clientBounds;
435         Tizen::Graphics::Rectangle __previousCursorBounds;
436         Tizen::Graphics::Rectangle __keypadBounds;
437
438         Tizen::Graphics::_Text::TextObject* __pTextObject;
439         Tizen::Graphics::_Text::TextObject* __pGuideTextObject;
440         Tizen::Graphics::_Text::TextObject* __pTitleTextObject;
441         Tizen::Graphics::_Text::TextObjectActionType __titleSlidingAction;
442         Tizen::Graphics::_Text::TextObjectWrapType  __textObjectWrap;
443
444         bool __isTextBlocked;
445         bool __isGuideTextColorChanged;
446         bool __isKeypadCommandButtonVisible;
447         bool __isKeypadHiding;
448         bool __isTextComposing;
449         bool __isCopyPastePopupVisible;
450         bool __isCursorChanged;
451         bool __isCursorInitialized;
452         bool __isCursorDisabled;
453         // todo : check InitAtFirstDrawing
454         bool __isInitialized;
455         // todo : check
456         bool __isMovingCursorByTouchMove;
457         bool __isTouchMoving;
458         bool __isTouchPressed;
459         bool __isClearIconPressed;
460         bool __isCursorOpaque;
461         bool __isTouchReleaseSkipped;
462         bool __isViewerModeEnabled;
463         bool __isKeypadNormalNumberStyleEnabled;
464         bool __isTextCompositionFinished;
465         bool __isFlexibleHeightFrozen;
466         bool __isKeypadShowing;
467
468         int __blockStartPos;
469         int __cursorPos;
470         int __maximumFlexibleHeight;
471         int __prevTotalTextHeight;
472         int __textLength;
473         int __composingTextLength;
474         int __titleWidth;
475         int __verticalMargin;
476         bool __isUSBKeyboardConnected;
477         bool __rotated;
478         bool __isCutLinkParserEnabled;
479
480         static bool __isKeypadExist;
481         static int __initialParentHeight;
482         static bool __isPanelBoundsChanging;
483
484         wchar_t __echoChar;
485
486         _EditFooterVisibleStatus __footerVisibleStatus;
487         _EditTextStatus __ContentTextStatus;
488
489         _EditAnimationProvider* __pEditVEDelegator;
490
491         bool __isAutoShrinkEnabled;
492
493         GroupStyle __groupStyle;
494
495         bool __isFontInitialized;
496         int __contentFontSize;
497         int __titleFontSize;
498         unsigned long __contentFontStyle;
499         unsigned long __contentTextStyle;
500         Tizen::Base::String __titleFontFaceName;
501         bool __isSearchBar;
502         bool __isKeypadClosedEventSkipped;
503         _Frame* __pCurrentFrame;
504 }; // _EditPresenter
505
506 }}} // Tizen::Ui::Controls
507
508 #endif  // _FUI_CTRL_INTERNAL_EDIT_PRESENTER_H_