Text Selection Popup to use Style sheet for Properties
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-selection-popup-impl.h
index 8d75848..619dc37 100644 (file)
@@ -44,7 +44,6 @@ namespace
 enum PopupCustomisations
 {
   POPUP_MAXIMUM_SIZE,
-  POPUP_MINIMUM_SIZE,
   OPTION_MAXIMUM_SIZE,
   OPTION_MINIMUM_SIZE,
   OPTION_DIVIDER_SIZE
@@ -99,9 +98,11 @@ public:
   /**
    * @brief New constructor with provided buttons to enable.
    * @param[in] buttonsToEnable bit mask of buttons to enable
+   * @param[in] callbackInterface The text popup callback interface which receives the button click callbacks.
    * @return A handle to the TextSelectionPopup control.
    */
-  static Toolkit::TextSelectionPopup New( Toolkit::TextSelectionPopup::Buttons buttonsToEnable );
+  static Toolkit::TextSelectionPopup New( Toolkit::TextSelectionPopup::Buttons buttonsToEnable,
+                                          TextSelectionPopupCallbackInterface* callbackInterface );
 
   // Properties
 
@@ -122,6 +123,16 @@ public:
    */
   static Property::Value GetProperty( BaseObject* object, Property::Index index );
 
+  /**
+   * @copydoc Toolkit::TextSelectionPopup::RaiseAbove()
+   */
+  void RaiseAbove( Layer target );
+
+  /**
+   * @copydoc Toolkit::TextSelectionPopup::ShowPopup()
+   */
+  void ShowPopup();
+
 private: // From Control
 
   /**
@@ -129,14 +140,54 @@ private: // From Control
    */
   virtual void OnInitialize();
 
+  /**
+   * @copydoc Control::OnStageConnection()
+   */
+  virtual void OnStageConnection( int depth );
+
 private: // Implementation
 
   /**
-   * @brief When a popup button is pressed
+   * @brief When the cut button is pressed.
+   * @param[in] button the button pressed
+   * @return @e true to consume the event.
+   */
+  bool OnCutButtonPressed( Toolkit::Button button );
+
+  /**
+   * @brief When the copy button is pressed.
+   * @param[in] button the button pressed
+   * @return @e true to consume the event.
+   */
+  bool OnCopyButtonPressed( Toolkit::Button button );
+
+  /**
+   * @brief When the paste button is pressed.
+   * @param[in] button the button pressed
+   * @return @e true to consume the event.
+   */
+  bool OnPasteButtonPressed( Toolkit::Button button );
+
+  /**
+   * @brief When the select button is pressed.
    * @param[in] button the button pressed
-   * @return bool
+   * @return @e true to consume the event.
    */
-  bool OnButtonPressed( Toolkit::Button button );
+  bool OnSelectButtonPressed( Toolkit::Button button );
+
+  /**
+   * @brief When the select all button is pressed.
+   * @param[in] button the button pressed
+   * @return @e true to consume the event.
+   */
+  bool OnSelectAllButtonPressed( Toolkit::Button button );
+
+  /**
+   * @brief When the clipboard button is pressed.
+   * @param[in] button the button pressed
+   * @return @e true to consume the event.
+   */
+  bool OnClipboardButtonPressed( Toolkit::Button button );
 
   /**
    * @brief Method to set the dimension or dimension constraint on certain aspects of the Popup.
@@ -171,7 +222,7 @@ private: // Implementation
 
   void CreateOrderedListOfPopupOptions();
 
-  void AddOption( const std::string& name, const std::string& caption, const Image iconImage, bool showDivider, bool showIcons, bool showCaption );
+  void AddOption( const ButtonRequirement& button, bool showDivider, bool showIcons, bool showCaption );
 
   std::size_t GetNumberOfEnabledOptions();
 
@@ -182,7 +233,7 @@ private: // Implementation
   /**
    * Construct a new TextField.
    */
-  TextSelectionPopup();
+  TextSelectionPopup( TextSelectionPopupCallbackInterface* callbackInterface );
 
   /**
    * A reference counted object may only be deleted by calling Unreference()
@@ -210,9 +261,6 @@ private: // Data
   Image mSelectIconImage;
   Image mSelectAllIconImage;
 
-  Size mMaxSize;                       // Maximum size of the Popup
-  Size mMinSize;                       // Minimum size of the Popup
-
   Size mOptionMaxSize;                 // Maximum size of an Option button
   Size mOptionMinSize;                 // Minimum size of an Option button
   Size mOptionDividerSize;             // Size of divider line
@@ -220,8 +268,9 @@ private: // Data
   std::vector<ButtonRequirement> mOrderListOfButtons; // List of buttons in the order to be displayed and a flag to indicate if needed.
 
   Toolkit::TextSelectionPopup::Buttons mEnabledButtons; // stores enabled buttons
+  Toolkit::TextSelectionPopupCallbackInterface* mCallbackInterface;
 
-  Vector4 mLineColor;                   // Color of the line around the text input popup
+  Vector4 mDividerColor;                // Color of the divider between buttons
   Vector4 mIconColor;                   // Color of the popup icon.
   Vector4 mPressedColor;                // Color of the popup option when pressed.