X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-selection-toolbar-impl.h;h=5cc4fdad951d206c764e1971d9fd2619af63c688;hp=3593e7977680c6a8b9512058de9d9b8fd3dad69c;hb=3d655cb57a51fee5d3a887aa36f4c6b8b77c2f7d;hpb=14179d13fb9fa5e3d91eafcc6227228f12078dfc diff --git a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h index 3593e79..5cc4fda 100644 --- a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H__ -#define __DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H__ +#ifndef DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H +#define DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -21,7 +21,8 @@ // INTERNAL INCLUDES #include #include -#include +#include +#include #include // EXTERNAL INCLUDES @@ -36,11 +37,6 @@ namespace Toolkit namespace Internal { -namespace -{ - -} // namespace - class TextSelectionToolbar : public Control { public: @@ -70,31 +66,54 @@ public: static Property::Value GetProperty( BaseObject* object, Property::Index index ); /** - * @copydoc TextSelectionToolbar::AddOption + * @copydoc Toolkit::TextSelectionToolbar::AddOption() */ void AddOption( Actor& option ); /** - * @copydoc TextSelectionToolbar::AddDivider + * @copydoc Toolkit::TextSelectionToolbar::AddDivider() */ void AddDivider( Actor& divider ); /** - * @copydoc ResizeDividers + * @copydoc Toolkit::TextSelectionToolbar::ResizeDividers() */ void ResizeDividers( Size& size ); + /** + * @copydoc Toolkit::TextSelectionToolbar::RaiseAbove() + */ + void RaiseAbove( Actor target ); + + /** + * Sets the scroll bar padding. + * + * @param[in] padding The padding value. + */ + void SetScrollBarPadding( const Vector2& padding ); + + /** + * @return The padding value. + */ + const Vector2& GetScrollBarPadding() const; + + /** + * @copydoc Toolkit::TextSelectionToolbar::ScrollTo() + */ + void ScrollTo( const Vector2& position ); + private: // From Control /** * @copydoc Control::OnInitialize() */ - virtual void OnInitialize(); + void OnInitialize() override; /** * @copydoc Control::OnRelayout() */ - virtual void OnRelayout( const Vector2& size, RelayoutContainer& container ); + void OnRelayout( const Vector2& size, RelayoutContainer& container ) override; + /** * @brief Set max size of Popup * @param[in] maxSize Size (Vector2) @@ -107,11 +126,17 @@ private: // From Control */ const Dali::Vector2& GetPopupMaxSize() const; +private: // Implementation + + /** + * @copydoc Toolkit::TextSelectionToolbar::ConfigureScrollview() + */ + void ConfigureScrollview( const Property::Map& properties ); + /** * @brief Set up scrollview to scroll Toolbar horizontally - * @param[out] scrollView scrollview to setup */ - void SetUpScrollView( Toolkit::ScrollView& scrollView ); + void SetUpScrollView(); /** * @brief Set up the parts that make the Toolbar @@ -119,6 +144,13 @@ private: // From Control void SetUp(); /** + * @brief Enable or disable the scroll-bar + * + * @param[in] enable True if the scroll-bar is required + */ + void SetUpScrollBar( bool enable ); + + /** * Toolbar has started to scroll * @param[in] position current scroll view position */ @@ -130,8 +162,6 @@ private: // From Control */ void OnScrollCompleted( const Vector2& position ); -private: // Implementation - /** * Construct a new TextField. */ @@ -150,13 +180,16 @@ private: private: // Data - Toolkit::TableView mTableOfButtons; // Actor which holds all the buttons, sensitivity can be set on buttons via this actor - Toolkit::ScrollView mScrollView; // Provides scrolling of Toolbar when content does not fit. - RulerPtr mRulerX; // Ruler to clamp horizontal scrolling. Updates on Relayout - Size mMaxSize; // Max size of the Toolbar - unsigned int mIndexInTable; // Index in table to add option - Dali::Vector< unsigned int > mDividerIndexes; // Vector of indexes in the Toolbar that contain dividers. - + Actor mToolbarActor; ///< The actor used to house the toolbar. + Toolkit::TableView mTableOfButtons; ///< Actor which holds all the buttons, sensitivity can be set on buttons via this actor + Toolkit::ScrollView mScrollView; ///< Provides scrolling of Toolbar when content does not fit. + Toolkit::ScrollBar mScrollBar; ///< An horizontal scroll bar for the text's popup options. + RulerPtr mRulerX; ///< Ruler to clamp horizontal scrolling. Updates on Relayout + Size mMaxSize; ///< Max size of the Toolbar + Vector2 mScrollBarPadding; ///< The padding used to position the scroll indicator. + unsigned int mIndexInTable; ///< Index in table to add option + Dali::Vector< unsigned int > mDividerIndexes; ///< Vector of indexes in the Toolbar that contain dividers. + bool mFirstScrollEnd; ///< Used for RTL mirroring. Avoids the overshoot to be shown the first time the popup is shown. }; } // namespace Internal @@ -185,4 +218,4 @@ inline const Toolkit::Internal::TextSelectionToolbar& GetImpl( const Toolkit::Te } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H__ +#endif // DALI_TOOLKIT_INTERNAL_TEXT_SELECTION_TOOLBAR_H