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=3a8930849aacbd99cdebe63ecbf953720a34d75f;hp=68659b6b558f067502432cea15cd0d53a30e8b15;hb=406208364fe0ee31f31f475ba7ee7709e56d3e27;hpb=b83826885c880591d542619f44a1e728e41d9f97 diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index 68659b6..3a89308 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H__ -#define __DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H__ +#ifndef DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H +#define DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,7 +91,8 @@ struct EventData EDITING_WITH_GRAB_HANDLE, EDITING_WITH_PASTE_POPUP, GRAB_HANDLE_PANNING, - SELECTION_HANDLE_PANNING + SELECTION_HANDLE_PANNING, + TEXT_PANNING }; EventData( DecoratorPtr decorator ); @@ -115,8 +116,11 @@ struct EventData */ std::vector mEventQueue; ///< The queue of touch events etc. + Vector mInputStyleChangedQueue; ///< Queue of changes in the input style. Used to emit the signal in the iddle callback. + InputStyle mInputStyle; ///< The style to be set to the new inputed text. + State mPreviousState; ///< Stores the current state before it's updated with the new one. State mState; ///< Selection mode, edit mode etc. CharacterIndex mPrimaryCursorPosition; ///< Index into logical model for primary cursor. @@ -140,6 +144,7 @@ struct EventData bool mUpdateGrabHandlePosition : 1; ///< True if the visual position of the grab handle must be recalculated. bool mUpdateLeftSelectionPosition : 1; ///< True if the visual position of the left selection handle must be recalculated. bool mUpdateRightSelectionPosition : 1; ///< True if the visual position of the right selection handle must be recalculated. + bool mIsLeftHandleSelected : 1; ///< Whether is the left handle the one which is selected. bool mUpdateHighlightBox : 1; ///< True if the text selection high light box must be updated. bool mScrollAfterUpdatePosition : 1; ///< Whether to scroll after the cursor position is updated. bool mScrollAfterDelete : 1; ///< Whether to scroll after delete characters. @@ -163,7 +168,6 @@ struct FontDefaults { FontDefaults() : mFontDescription(), - mFontStyle(), mDefaultPointSize( 0.f ), mFontId( 0u ), familyDefined( false ), @@ -189,7 +193,6 @@ struct FontDefaults } TextAbstraction::FontDescription mFontDescription; ///< The default font's description. - std::string mFontStyle; ///< The font's style string set through the property system. float mDefaultPointSize; ///< The default font's point size. FontId mFontId; ///< The font's id of the default font. bool familyDefined:1; ///< Whether the default font's family name is defined. @@ -282,8 +285,10 @@ struct OutlineDefaults struct Controller::Impl { - Impl( ControlInterface& controlInterface ) + Impl( ControlInterface* controlInterface, + EditableControlInterface* editableControlInterface ) : mControlInterface( controlInterface ), + mEditableControlInterface( editableControlInterface ), mLogicalModel(), mVisualModel(), mFontDefaults( NULL ), @@ -299,13 +304,14 @@ struct Controller::Impl mLayoutEngine(), mModifyEvents(), mTextColor( Color::BLACK ), + mScrollPosition(), mTextUpdateInfo(), mOperationsPending( NO_OPERATION ), mMaximumNumberOfCharacters( 50u ), mRecalculateNaturalSize( true ), mMarkupProcessorEnabled( false ), mClipboardHideEnabled( true ), - mAutoScrollEnabled( false ), + mIsAutoScrollEnabled( false ), mAutoScrollDirectionRTL( false ) { mLogicalModel = LogicalModel::New(); @@ -335,8 +341,10 @@ struct Controller::Impl delete mEventData; } + // Text Controller Implementation. + /** - * @brief Request a relayout using the ControlInterface. + * @copydoc Text::Controller::RequestRelayout() */ void RequestRelayout(); @@ -438,6 +446,11 @@ struct Controller::Impl void NotifyImfManager(); /** + * @brief Helper to notify IMF manager with multi line status. + */ + void NotifyImfMultiLineStatus(); + + /** * @brief Retrieve the current cursor position. * * @return The cursor position. @@ -469,6 +482,12 @@ struct Controller::Impl return !result; // If NumberOfItems greater than 0, return false } + bool IsClipboardVisible() + { + bool result( mClipboard && mClipboard.IsVisible() ); + return result; + } + /** * @brief Calculates the start character index of the first paragraph to be updated and * the end character index of the last paragraph to be updated. @@ -576,7 +595,7 @@ struct Controller::Impl void SendSelectionToClipboard( bool deleteAfterSending ); - void GetTextFromClipboard( unsigned int itemIndex, std::string& retrievedString ); + void RequestGetTextFromClipboard(); void RepositionSelectionHandles(); void RepositionSelectionHandles( float visualX, float visualY ); @@ -672,7 +691,8 @@ private: public: - ControlInterface& mControlInterface; ///< Reference to the text controller. + ControlInterface* mControlInterface; ///< Reference to the text controller. + EditableControlInterface* mEditableControlInterface; ///< Reference to the editable text controller. LogicalModelPtr mLogicalModel; ///< Pointer to the logical model. VisualModelPtr mVisualModel; ///< Pointer to the visual model. FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. @@ -700,7 +720,7 @@ public: bool mRecalculateNaturalSize:1; ///< Whether the natural size needs to be recalculated. bool mMarkupProcessorEnabled:1; ///< Whether the mark-up procesor is enabled. bool mClipboardHideEnabled:1; ///< Whether the ClipboardHide function work or not - bool mAutoScrollEnabled:1; ///< Whether auto text scrolling is enabled. + bool mIsAutoScrollEnabled:1; ///< Whether auto text scrolling is enabled. CharacterDirection mAutoScrollDirectionRTL:1; ///< Direction of auto scrolling, true if rtl }; @@ -711,4 +731,4 @@ public: } // namespace Dali -#endif // __DALI_TOOLKIT_TEXT_CONTROLLER_H__ +#endif // DALI_TOOLKIT_TEXT_CONTROLLER_H