INACTIVE,
INTERRUPTED,
SELECTING,
- SELECTION_CHANGED,
EDITING,
EDITING_WITH_POPUP,
EDITING_WITH_GRAB_HANDLE,
+ EDITING_WITH_PASTE_POPUP,
GRAB_HANDLE_PANNING,
SELECTION_HANDLE_PANNING
};
~EventData();
- DecoratorPtr mDecorator; ///< Pointer to the decorator
- std::string mPlaceholderTextActive; ///< The text to display when the TextField is empty with key-input focus
- std::string mPlaceholderTextInactive; ///< The text to display when the TextField is empty and inactive
- Vector4 mPlaceholderTextColor; ///< The in/active placeholder text color
+ static bool IsEditingState( State stateToCheck )
+ {
+ return ( stateToCheck == EDITING || stateToCheck == EDITING_WITH_POPUP || stateToCheck == EDITING_WITH_GRAB_HANDLE || stateToCheck == EDITING_WITH_PASTE_POPUP );
+ }
+
+ DecoratorPtr mDecorator; ///< Pointer to the decorator.
+ ImfManager mImfManager; ///< The Input Method Framework Manager.
+ std::string mPlaceholderTextActive; ///< The text to display when the TextField is empty with key-input focus.
+ std::string mPlaceholderTextInactive; ///< The text to display when the TextField is empty and inactive.
+ Vector4 mPlaceholderTextColor; ///< The in/active placeholder text color.
/**
* This is used to delay handling events until after the model has been updated.
return ( mEventData && mEventData->mIsShowingPlaceholderText );
}
+ /**
+ * @brief Helper to check whether active place-holder text is available.
+ */
+ bool IsFocusedPlaceholderAvailable() const
+ {
+ return ( mEventData && !mEventData->mPlaceholderTextActive.empty() );
+ }
+
bool IsShowingRealText() const
{
return ( !IsShowingPlaceholderText() &&
void ResetImfManager()
{
- // Reset incase we are in a pre-edit state.
- ImfManager imfManager = ImfManager::Get();
- if ( imfManager )
+ if( mEventData )
{
- imfManager.Reset(); // Will trigger a commit message
- }
+ // Reset incase we are in a pre-edit state.
+ if( mEventData->mImfManager )
+ {
+ mEventData->mImfManager.Reset(); // Will trigger a message ( commit, get surrounding )
+ }
- ClearPreEditFlag();
+ ClearPreEditFlag();
+ }
}
bool IsClipboardEmpty()
void GetTextFromClipboard( unsigned int itemIndex, std::string& retreivedString );
- void RepositionSelectionHandles( CharacterIndex selectionStart, CharacterIndex selectionEnd );
+ void RepositionSelectionHandles();
void RepositionSelectionHandles( float visualX, float visualY );
void SetPopupButtons();
/**
* @brief Updates the cursor position.
*
- * Retrieves the x,y position of the cursor logical position and sets it into the decorator.
+ * Sets the cursor's position into the decorator. It transforms the cursor's position into decorator's coords.
* It sets the position of the secondary cursor if it's a valid one.
* Sets which cursors are active.
+ *
+ * @param[in] cursorInfo Contains the selection handle position in Actor's coords.
+ *
*/
- void UpdateCursorPosition();
+ void UpdateCursorPosition( const CursorInfo& cursorInfo );
/**
- * @brief Updates the position of the given selection handle.
+ * @brief Updates the position of the given selection handle. It transforms the handle's position into decorator's coords.
*
* @param[in] handleType One of the selection handles.
+ * @param[in] cursorInfo Contains the selection handle position in Actor's coords.
*/
- void UpdateSelectionHandle( HandleType handleType );
+ void UpdateSelectionHandle( HandleType handleType,
+ const CursorInfo& cursorInfo );
/**
* @biref Clamps the horizontal scrolling to get the control always filled with text.
*
* This method is called after deleting text.
*/
- void ScrollTextToMatchCursor();
+ void ScrollTextToMatchCursor( const CursorInfo& cursorInfo);
ControlInterface& mControlInterface; ///< Reference to the text controller.
LogicalModelPtr mLogicalModel; ///< Pointer to the logical model.
bool mRecalculateNaturalSize:1; ///< Whether the natural size needs to be recalculated.
bool mUserDefinedFontFamily:1; ///< Whether the Font family was set by the user instead of being left as sytem default.
+
};
} // namespace Text