#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.
// 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>
{
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
* @SINCE_1_9.24
* @param[in] rhs A reference to the moved handle
*/
- Window(Window&& rhs);
+ Window(Window&& rhs) noexcept;
/**
* @brief Move assignment operator.
* @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.
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).
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