X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.h;h=426cc607db63393981c16fdd61c62569217edd6a;hp=81125dafc9d9a0a44150bd26154f2dbf082a01a0;hb=df2e95e1470c73ed44bfa2cfe1c65d68bcb4e5c9;hpb=e0c3ff90edd572ae3ba104d207deb1586eae4aed diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index 81125da..426cc60 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -19,8 +19,9 @@ */ // EXTERNAL INCLUDES -#include +#include #include +#include // INTERNAL INCLUDES #include @@ -45,9 +46,12 @@ struct Event CURSOR_KEY_EVENT, TAP_EVENT, PAN_EVENT, + LONG_PRESS_EVENT, GRAB_HANDLE_EVENT, LEFT_SELECTION_HANDLE_EVENT, - RIGHT_SELECTION_HANDLE_EVENT + RIGHT_SELECTION_HANDLE_EVENT, + SELECT, + SELECT_ALL }; union Param @@ -98,7 +102,9 @@ struct EventData enum State { INACTIVE, + INTERRUPTED, SELECTING, + SELECTION_CHANGED, EDITING, EDITING_WITH_POPUP, GRAB_HANDLE_PANNING, @@ -149,6 +155,7 @@ struct EventData bool mUpdateRightSelectionPosition : 1; ///< True if the visual position of the right selection handle must be recalculated. bool mScrollAfterUpdatePosition : 1; ///< Whether to scroll after the cursor position is updated. bool mScrollAfterDelete : 1; ///< Whether to scroll after delete characters. + bool mAllTextSelected : 1; ///< True if the selection handles are selecting all the text }; struct ModifyEvent @@ -197,6 +204,7 @@ struct Controller::Impl mFontDefaults( NULL ), mEventData( NULL ), mFontClient(), + mClipboard(), mView(), mLayoutEngine(), mModifyEvents(), @@ -211,6 +219,7 @@ struct Controller::Impl mVisualModel = VisualModel::New(); mFontClient = TextAbstraction::FontClient::Get(); + mClipboard = Clipboard::Get(); mView.SetVisualModel( mVisualModel ); @@ -305,6 +314,12 @@ struct Controller::Impl ClearPreEditFlag(); } + bool IsClipboardEmpty() + { + bool result( mClipboard && mClipboard.NumberOfItems() ); + return !result; // // If NumberOfItems greater than 0, return false + } + void UpdateModel( OperationsMask operationsRequired ); /** @@ -315,19 +330,43 @@ struct Controller::Impl */ void GetDefaultFonts( Dali::Vector& fonts, Length numberOfCharacters ); + /** + * @brief Retrieve the line height of the default font. + */ + float GetDefaultFontLineHeight(); + void OnCursorKeyEvent( const Event& event ); void OnTapEvent( const Event& event ); void OnPanEvent( const Event& event ); + void OnLongPressEvent( const Event& event ); + void OnHandleEvent( const Event& event ); + void OnSelectEvent( const Event& event ); + + void OnSelectAllEvent(); + + void RetrieveSelection( std::string& selectedText, bool deleteAfterRetreival ); + + void ShowClipboard(); + + void HideClipboard(); + + bool CopyStringToClipboard( std::string& source ); + + void SendSelectionToClipboard( bool deleteAfterSending ); + + void GetTextFromClipboard( unsigned int itemIndex, std::string& retreivedString ); + void RepositionSelectionHandles( CharacterIndex selectionStart, CharacterIndex selectionEnd ); void RepositionSelectionHandles( float visualX, float visualY ); - void ChangeState( EventData::State newState ); + void SetPopupButtons(); + void ChangeState( EventData::State newState ); LineIndex GetClosestLine( float y ) const; void FindSelectionIndices( float visualX, float visualY, CharacterIndex& startIndex, CharacterIndex& endIndex ); @@ -422,6 +461,7 @@ struct Controller::Impl FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. EventData* mEventData; ///< Avoid allocating everything for text input until EnableTextInput(). TextAbstraction::FontClient mFontClient; ///< Handle to the font client. + Clipboard mClipboard; ///< Handle to the system clipboard View mView; ///< The view interface to the rendering back-end. LayoutEngine mLayoutEngine; ///< The layout engine. std::vector mModifyEvents; ///< Temporary stores the text set until the next relayout.