X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fcontrols%2Ftext-input%2Ftext-input-impl.h;h=556dacac131cf689a696a820a9a11fc99ad30a29;hp=115355d05dbeae15da0da45cf10030875ac7e8ee;hb=7d06085244b3d0ff90ac7bed11fc816931ed3565;hpb=a881757839b7abb008873a68c67e17b3ba39669b diff --git a/base/dali-toolkit/internal/controls/text-input/text-input-impl.h b/base/dali-toolkit/internal/controls/text-input/text-input-impl.h index 115355d..556daca 100644 --- a/base/dali-toolkit/internal/controls/text-input/text-input-impl.h +++ b/base/dali-toolkit/internal/controls/text-input/text-input-impl.h @@ -26,7 +26,6 @@ #include #include -#include #include namespace Dali @@ -43,10 +42,17 @@ class TextView; typedef IntrusivePtr TextInputPtr; -class TextInput : public ControlImpl +class TextInput : public Control { public: + // Properties + enum + { + TEXTINPUT_PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, + TEXTINPUT_PROPERTY_END_INDEX = TEXTINPUT_PROPERTY_START_INDEX + 512 ///< Reserving property indices + }; + /** * Create a new TextInput * @return instrusive ptr to a TextInput @@ -131,6 +137,11 @@ public: Toolkit::TextInput::StyleChangedSignalV2& StyleChangedSignal(); /** + * @copydoc Toolkit::TextInput::TextModifiedSignal() + */ + Toolkit::TextInput::TextModifiedSignalType& TextModifiedSignal(); + + /** * @copydoc Toolkit::TextInput::MaxInputCharactersReachedSignal() */ Toolkit::TextInput::MaxInputCharactersReachedSignalV2& MaxInputCharactersReachedSignal(); @@ -373,6 +384,22 @@ public: */ std::size_t GetNumberOfCharacters() const; + /** + * Styling + */ + + /** + * Set the diffuse color for the highlight + * @param[in] color color to use + */ + void SetMaterialDiffuseColor( const Vector4& color ); + + /** + * Get the diffuse color used by the highlight + * @return color + */ + const Vector4& GetMaterialDiffuseColor() const; + private: /** @@ -521,11 +548,11 @@ private: virtual void OnKeyInputFocusLost(); /** - * From ControlImpl; called whenever the control is added to the stage. + * From Control; called whenever the control is added to the stage. */ virtual void OnControlStageConnection(); -private: // From ControlImpl +private: // From Control /** * Creation of the layer that is used by top level active parts of the TextInput like handles @@ -533,17 +560,17 @@ private: // From ControlImpl void CreateActiveLayer(); /** - * @copydoc Toolkit::ControlImpl::OnInitialize() + * @copydoc Control::OnInitialize() */ virtual void OnInitialize(); /** - * @copydoc Toolkit::ControlImpl::OnControlSizeSet() + * @copydoc Control::OnControlSizeSet() */ virtual void OnControlSizeSet(const Vector3& targetSize); /** - * @copydoc Toolkit::ControlImpl::OnRelaidOut() + * @copydoc Control::OnRelaidOut() */ virtual void OnRelaidOut( Vector2 size, ActorSizeContainer& container ); @@ -838,12 +865,11 @@ public: // Public to allow internal testing. std::size_t InsertAt( const Text& newText, const std::size_t insertionPosition, const std::size_t numberOfCharactersToReplace ); /** - * Creates a cursor from the supplied image - * @param[in] cursorImage the image to be used for the cursor. - * @param[in] border the nine patch border corresponding to the supplied image. - * @return the image actor to be used as the cursor. - */ - ImageActor CreateCursor( Image cursorImage, const Vector4& border ); + * Creates a cursor. + * @param[in] color the cursor color. + * @return the image actor to be used as the cursor. + */ + ImageActor CreateCursor( const Vector4 &color ); /** * Moves cursor to the right @@ -1027,21 +1053,16 @@ public: // Public to allow internal testing. void ClearPopup(); /** - * Adds a popup option. - * @note Creates popup frame if not already created. - * @param[in] name The unique name for this option. - * @param[in] caption The caption (label) for this option - * @param[in] icon the image icon to be displayed for this option - * @param[in] finalOption Flag to indicate that this is the final option. - * (set to true on the last option you add) + * Adds Popup options which have been enabled. */ - void AddPopupOption(const std::string& name, const std::string& caption, const Image icon, bool finalOption = false); + void AddPopupOptions(); /** * Sets popup position * @param[in] position The actual position for this popup. + * @param[in] alternativePosition Alternative popup position if no space in upper area. */ - void SetPopupPosition(const Vector3& position); + void SetPopupPosition(const Vector3& position, const Vector2& alternativePosition ); /** * Hides the popup @@ -1063,8 +1084,10 @@ public: // Public to allow internal testing. /** * Setup the selection popup and clipboard if relevant so the correct options are shown when ShowPopup is called. + * @param[in] treatWhiteSpaceAsAnyOtherCharacter If whitespace should not be selected in the same manner as other characters set + * this to false. default is true. */ - void SetUpPopUpSelection(); + void SetUpPopupSelection( bool treatWhiteSpaceAsAnyOtherCharacter = true ); /** * Return the logical index containing the character position closest to the source. @@ -1197,8 +1220,9 @@ public: // Public to allow internal testing. /** * Hide highlight shown between selection handles. + * @param[in] hidePopup flag to hide the popup too, default is to hide popup. */ - void RemoveHighlight(); + void RemoveHighlight( bool hidePopup = true ); /** * Highlights text that has been selected @@ -1312,11 +1336,46 @@ public: // Public to allow internal testing. void GetTextLayoutInfo(); /** + * Set the offset for positioning Popup from the TextInput + * @param[in] offset in the order, left, top, right, bottom + */ + void SetOffsetFromText( const Vector4& offset ); + + /** + * Get the offset of the Popup from the TextInput + * @return Vector4 with the offset in the order, left, top, right, bottom + */ + const Vector4& GetOffsetFromText() const; + + // Properties + + /** + * Called when a property of an object of this type is set. + * @param[in] object The object whose property is set. + * @param[in] index The property index. + * @param[in] value The new property value. + */ + static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ); + + /** + * Called to retrieve a property of an object of this type. + * @param[in] object The object whose property is to be retrieved. + * @param[in] index The property index. + * @return The current value of the property. + */ + static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex ); + + /** * Emits the style changed signal. */ void EmitStyleChangedSignal(); /** + * Emit signal when text is modified. + */ + void EmitTextModified(); + + /** * Emits max input characters reached signal. */ void EmitMaxInputCharactersReachedSignal(); @@ -1396,7 +1455,7 @@ private: ///< the text size after layout and the scroll offset. MarkupProcessor::StyledTextArray mCurrentCopySelecton; ///< Array to store copied text. - TextInputPopup mPopUpPanel; ///< Panel to house cut and paste, select all buttons. + TextInputPopup mPopupPanel; ///< Panel to house cut and paste, select all buttons. Timer mScrollTimer; Vector2 mScrollDisplacement; @@ -1407,7 +1466,11 @@ private: Vector4 mSelectionHandleFlipMargin; Vector4 mBoundingRectangleWorldCoordinates; - Clipboard mClipboard; ///< Handle to clipboard + Clipboard mClipboard; ///< Handle to clipboard + + // Styling + Vector4 mMaterialColor; // Color of the highlight + Vector4 mPopupOffsetFromText; // Offset of Popup from the TextInput. bool mOverrideAutomaticAlignment:1; ///< Whether to override the alignment automatically set by the text content (e.g. european LTR or arabic RTL) bool mCursorRTLEnabled:1; ///< Enable state of Alternate RTL Cursor (need to keep track of this as it's not always enabled) @@ -1446,6 +1509,7 @@ private: Toolkit::TextInput::InputSignalV2 mInputStartedSignalV2; ///< Signal emitted when input starts Toolkit::TextInput::InputSignalV2 mInputFinishedSignalV2; ///< Signal emitted when input ends Toolkit::TextInput::StyleChangedSignalV2 mStyleChangedSignalV2; ///< Signal emitted when style changes. + Toolkit::TextInput::TextModifiedSignalType mTextModifiedSignal; ///< Signal emitted when text modified. Toolkit::TextInput::MaxInputCharactersReachedSignalV2 mMaxInputCharactersReachedSignalV2; ///< Signal emitted when max input characters is reached. Toolkit::TextInput::InputSignalV2 mCutAndPasteToolBarDisplayedV2; ///< Signal emitted when toolbar displayed Toolkit::TextInput::InputTextExceedBoundariesSignalV2 mInputTextExceedBoundariesSignalV2; ///< Signal emitted when input text exceeds the boundaries of the text-input.