Support to get the rect value to recalulate with the default system coordinates.
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / common / window-impl.h
index 761bb0e..ef258cb 100644 (file)
@@ -326,11 +326,16 @@ public:
   static Dali::Window Get(Dali::Actor actor);
 
   /**
-   * @copydoc Dali::DevelWindow::SetParent()
+   * @copydoc Dali::DevelWindow::SetParent(Window window, Window parent)
    */
   void SetParent(Dali::Window& parent);
 
   /**
+   * @copydoc Dali::DevelWindow::SetParent(Window window, Window parent, bool belowParent)
+   */
+  void SetParent(Dali::Window& parent, bool belowParent);
+
+  /**
    * @copydoc Dali::DevelWindow::Unparent()
    */
   void Unparent();
@@ -401,6 +406,16 @@ public: // Dali::Internal::Adaptor::SceneHolder
    */
   void ExcludeInputRegion(const Rect<int>& inputRegion);
 
+  /**
+   * @copydoc Dali::DevelWindow::SetNeedsRotationCompletedAcknowledgement()
+   */
+  void SetNeedsRotationCompletedAcknowledgement(bool needAcknowledgement);
+
+  /**
+   * @copydoc Dali::DevelWindow::SendRotationCompletedAcknowledgement()
+   */
+  void SendRotationCompletedAcknowledgement();
+
 private:
   /**
    * @brief Enumeration for orietation mode.
@@ -468,7 +483,7 @@ private:
   /**
    * @brief Called when the window is resized or moved by display server.
    *
-   * @param positionSize the updated window's position and size.
+   * @param[in] positionSize the updated window's position and size.
    */
   void OnUpdatePositionSize(Dali::PositionSize& positionSize);
 
@@ -492,6 +507,20 @@ private:
    */
   bool IsOrientationAvailable(WindowOrientation orientation) const;
 
+  /**
+   * @brief Return the rect value to recalulate with the default system coordinates.
+   *
+   * Some native window APIs work the geometry value based on the default system coordinates.
+   * IncludeInputRegion() and ExcludeInputRegion() are one of them.
+   * When the window is rotated, current window's geometry already were set with the rotated angle.
+   * If IncludeInputRegion() or ExcludeInputRegion() are called with rotated angle by application,
+   * the rect's area should be re-calcuated on the default system coordinates.
+   *
+   * @param[in] rect the window's current position and size with current window rotation angle.
+   * @return the re-calculated rect on the default system coordinates.
+   */
+  Rect<int> RecalculateRect(const Rect<int>& rect);
+
 private: // Dali::Internal::Adaptor::SceneHolder
   /**
    * @copydoc Dali::Internal::Adaptor::SceneHolder::OnAdaptorSet
@@ -605,6 +634,7 @@ private:
   bool                 mIsFocusAcceptable : 1;
   bool                 mIconified : 1;
   bool                 mOpaqueState : 1;
+  bool                 mWindowRotationAcknowledgement : 1;
   Dali::Window         mParentWindow;
 
   OrientationPtr   mOrientation;