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.h;h=6c12dd3b25dc5f02b95fc3755d8d038dc3d07b71;hp=4edd28117830a6cf7db2343daf16dfe4f47941cd;hb=0a602bfd2ebfc87655895aaaabecce8de5c12d33;hpb=09f35f81061ca470e79ac674024b9e587ff44e7f diff --git a/dali-toolkit/internal/text/text-controller.h b/dali-toolkit/internal/text/text-controller.h index 4edd281..6c12dd3 100644 --- a/dali-toolkit/internal/text/text-controller.h +++ b/dali-toolkit/internal/text/text-controller.h @@ -20,6 +20,7 @@ // EXTERNAL INCLUDES #include +#include #include #include #include @@ -31,6 +32,7 @@ // INTERNAL INCLUDES #include #include +#include #include #include @@ -65,9 +67,9 @@ enum PlaceholderType * It provides a view of the text that can be used by rendering back-ends. * * For selectable/editable UI controls, the controller handles input events from the UI control - * and decorations (grab handles etc) via an observer interface. + * and decorations (grab handles etc) via an interface. */ -class Controller : public RefObject, public Decorator::Observer +class Controller : public RefObject, public Decorator::ControllerInterface { public: @@ -110,6 +112,14 @@ public: static ControllerPtr New( ControlInterface& controlInterface ); /** + * @brief Called to enable text input. + * + * @note Selectable or editable controls should call this once after Controller::New(). + * @param[in] decorator Used to create cursor, selection handle decorations etc. + */ + void EnableTextInput( DecoratorPtr decorator ); + + /** * @brief Replaces any text previously set. * * @note This will be converted into UTF-32 when stored in the text model. @@ -311,14 +321,6 @@ public: float GetUnderlineHeight() const; /** - * @brief Called to enable text input. - * - * @note Only selectable or editable controls should calls this. - * @param[in] decorator Used to create cursor, selection handle decorations etc. - */ - void EnableTextInput( DecoratorPtr decorator ); - - /** * @brief Called to enable/disable cursor blink. * * @note Only editable controls should calls this. @@ -405,6 +407,38 @@ public: Size& layoutSize ); /** + * @brief Whether to enable the multi-line layout. + * + * @param[in] enable \e true enables the multi-line (by default) + */ + void SetMultiLineEnabled( bool enable ); + + /** + * @return Whether the multi-line layout is enabled. + */ + bool IsMultiLineEnabled() const; + + /** + * @copydoc Dali::Toolkit::Text::LayoutEngine::SetHorizontalAlignment() + */ + void SetHorizontalAlignment( LayoutEngine::HorizontalAlignment alignment ); + + /** + * @copydoc Dali::Toolkit::Text::LayoutEngine::GetHorizontalAlignment() + */ + LayoutEngine::HorizontalAlignment GetHorizontalAlignment() const; + + /** + * @copydoc Dali::Toolkit::Text::LayoutEngine::SetVerticalAlignment() + */ + void SetVerticalAlignment( LayoutEngine::VerticalAlignment alignment ); + + /** + * @copydoc Dali::Toolkit::Text::LayoutEngine::GetVerticalAlignment() + */ + LayoutEngine::VerticalAlignment GetVerticalAlignment() const; + + /** * @brief Calulates the alignment of the whole text inside the bounding box. * * @param[in] size The size of the bounding box. @@ -470,9 +504,28 @@ public: void PanEvent( Gesture::State state, const Vector2& displacement ); /** - * @copydoc Dali::Toolkit::Text::Decorator::Observer::HandleEvent() + * @brief Event received from IMF manager + * + * @param[in] imfManager The IMF manager. + * @param[in] imfEvent The event received. + * @return A data struture indicating if update is needed, cursor position and current text. + */ + ImfManager::ImfCallbackData OnImfEvent( ImfManager& imfManager, const ImfManager::ImfEventData& imfEvent ); + + /** + * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::GetTargetSize() + */ + virtual void GetTargetSize( Vector2& targetSize ); + + /** + * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::AddDecoration() + */ + virtual void AddDecoration( Actor& actor ); + + /** + * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::DecorationEvent() */ - virtual void HandleEvent( HandleType handle, HandleState state, float x, float y ); + virtual void DecorationEvent( HandleType handle, HandleState state, float x, float y ); protected: @@ -484,6 +537,21 @@ protected: private: /** + * @brief Helper to clear font-specific data. + */ + void ShowPlaceholderText(); + + /** + * @brief Helper to clear all the model data except for LogicalModel::mText. + */ + void ClearModelData(); + + /** + * @brief Helper to clear font-specific data (only). + */ + void ClearFontData(); + + /** * @brief Private constructor. */ Controller( ControlInterface& controlInterface );