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