Add Window::SetLayout method
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / window.h
index e0c8d34..1d1f8a8 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_WINDOW_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/adaptor-framework/window-enumerations.h>
+#include <dali/public-api/math/int-pair.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/math/uint-16-pair.h>
 #include <dali/public-api/math/vector2.h>
@@ -71,7 +72,7 @@ class DALI_ADAPTOR_API Window : public BaseHandle
 {
 public:
   using WindowSize     = Uint16Pair; ///< Window size type @SINCE_1_2.60
-  using WindowPosition = Uint16Pair; ///< Window position type @SINCE_1_2.60
+  using WindowPosition = Int32Pair;  ///< Window position type @SINCE_2_1.45
 
   using FocusChangeSignalType = Signal<void(Window, bool)>;       ///< Window focus signal type @SINCE_1_4.35
   using ResizeSignalType      = Signal<void(Window, WindowSize)>; ///< Window resized signal type @SINCE_1_4.35
@@ -144,7 +145,7 @@ public:
    * @SINCE_1_9.24
    * @param[in] rhs A reference to the moved handle
    */
-  Window(Window&& rhs);
+  Window(Window&& rhs) noexcept;
 
   /**
    * @brief Move assignment operator.
@@ -153,7 +154,16 @@ public:
    * @param[in] rhs A reference to the moved handle
    * @return A reference to this handle
    */
-  Window& operator=(Window&& rhs);
+  Window& operator=(Window&& rhs) noexcept;
+
+  /**
+   * @brief Downcast sceneHolder to window
+   *
+   * @SINCE_2_1.46
+   * @param[in] handle The handle need to downcast
+   * @return Whether it's a valid window or not
+   */
+  static Window DownCast(BaseHandle handle);
 
   /**
    * @brief Adds a child Actor to the Window.
@@ -203,6 +213,16 @@ public:
   Layer GetRootLayer() const;
 
   /**
+   * @brief Returns the overlay Layer of the Window.
+   * If there isn't overlay layer yet, this method create overlay layer and
+   * exclusive render task internally.
+   *
+   * @SINCE_2_2.10
+   * @return The root layer
+   */
+  Layer GetOverlayLayer();
+
+  /**
    * @brief Queries the number of on-scene layers in the Window.
    *
    * Note that a default layer is always provided (count >= 1).
@@ -529,6 +549,22 @@ public:
   WindowPosition GetPosition() const;
 
   /**
+   * @brief Sets the layout of the window.
+   *
+   * This method sets the layout of the window based on the specified number of columns and rows,
+   * as well as the position and size of the window within that layout.
+   *
+   * @param numCols The number of columns in the layout.
+   * @param numRows The number of rows in the layout.
+   * @param column The column number of the window within the layout.
+   * @param row The row number of the window within the layout.
+   * @param colSpan The number of columns the window should span within the layout.
+   * @param rowSpan The number of rows the window should span within the layout.
+   * @SINCE_2_2.20
+   */
+  void SetLayout(unsigned int numCols, unsigned int numRows, unsigned int column, unsigned int row, unsigned int colSpan, unsigned int rowSpan);
+
+  /**
    * @brief Sets whether the window is transparent or not.
    *
    * @SINCE_1_2.60