Refactored text selection popup to reduce loc
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-selection-popup-impl.h
index 82947a1..db51100 100644 (file)
@@ -24,6 +24,7 @@
 #include <string>
 
 // INTERNAL INCLUDES
+#include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/controls/table-view/table-view.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
@@ -139,6 +140,11 @@ private: // From Control
    */
   void OnInitialize() override;
 
+  /**
+   * @copydoc Toolkit::Internal::Control::CreateAccessibleObject()
+   */
+  DevelControl::ControlAccessible* CreateAccessibleObject() override;
+
 private: // Implementation
   void HideAnimationFinished(Animation& animation);
 
@@ -229,6 +235,18 @@ private: // Implementation
    */
   std::string GetPressedImage() const;
 
+  /**
+   * Set option divider padding
+   * @param[in] padding BEGIN END BOTTOM TOP
+   */
+  void SetOptionDividerPadding(const Padding& padding);
+
+  /**
+   * Get option divider padding
+   * @return Padding
+   */
+  Padding GetOptionDividerPadding() const;
+
   void CreateOrderedListOfPopupOptions();
 
   void AddOption(const ButtonRequirement& button, bool showDivider, bool showIcons, bool showCaption);
@@ -254,6 +272,20 @@ private: // Implementation
    */
   virtual ~TextSelectionPopup();
 
+protected:
+  struct PropertyHandler;
+
+  class TextSelectionPopupAccessible : public DevelControl::ControlAccessible
+  {
+  public:
+    using DevelControl::ControlAccessible::ControlAccessible;
+
+    /**
+     * @copydoc DevelControl::ControlAccessible::CalculateStates()
+     */
+    Dali::Accessibility::States CalculateStates() override;
+  };
+
 private:
   // Undefined copy constructor and assignment operators
   TextSelectionPopup(const TextSelectionPopup&);
@@ -272,10 +304,11 @@ private: // Data
   std::string mSelectIconImage;
   std::string mSelectAllIconImage;
 
-  Size mPopupMaxSize;      // Maximum 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
+  Size    mPopupMaxSize;         // Maximum 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
+  Padding mOptionDividerPadding; // Padding of divider line
 
   std::vector<ButtonRequirement> mOrderListOfButtons; // List of buttons in the order to be displayed and a flag to indicate if needed.