+ /**
+ * @brief Get the angle of screen rotation for the window
+ * @return The screen orientation
+ */
+ virtual int GetScreenRotationAngle() = 0;
+
+ /**
+ * @brief Set the screen rotation angle of the window
+ */
+ virtual void SetWindowRotationAngle(int degree) = 0;
+
+ /**
+ * @brief Inform the window rotation is completed
+ */
+ virtual void WindowRotationCompleted(int degree, int width, int height) = 0;
+
+ /**
+ * @brief starts the window is moved by display server
+ */
+ virtual void RequestMoveToServer() = 0;
+
+ /**
+ * @brief starts the window is resized by display server
+ *
+ * @param[in] direction It is direction of the started edge/side.
+ */
+ virtual void RequestResizeToServer(WindowResizeDirection direction) = 0;
+
+ /**
+ * @brief Enables the floating mode of window.
+ *
+ * The floating mode is to support making partial size window easliy.
+ * It is useful to make popup style window
+ * and this window is always upper than the other normal window.
+ *
+ * A special display server(as a Tizen display server) supports this mode.
+ *
+ * @param[in] enable Enable floating mode or not.
+ */
+ virtual void EnableFloatingMode(bool enable) = 0;
+
+ /**
+ * @brief Gets whether floating mode is enabled or not.
+ */
+ virtual bool IsFloatingModeEnabled() const = 0;
+
+ /**
+ * @copydoc Dali::Window::SetTransparency()
+ */
+ virtual void SetTransparency(bool transparent) = 0;
+
+ /**
+ * @copydoc Dali::Window::SetParent()
+ */
+ virtual void SetParent(WindowBase* parentWinBase, bool belowParent) = 0;
+
+ /**
+ * @brief Create a sync fence that can tell the frame is rendered by the graphics driver.
+ * @return The file descriptor that tells when it is rendered.
+ */
+ virtual int CreateFrameRenderedSyncFence() = 0;
+
+ /**
+ * @brief Create a sync fence that can tell the frame is presented by the display server.
+ * @return The file descriptor that tells when it is presented.
+ */
+ virtual int CreateFramePresentedSyncFence() = 0;
+
+ /**
+ * @copydoc Dali::Window::SetPositionSizeWithAngle()
+ */
+ virtual void SetPositionSizeWithAngle(PositionSize positionSize, int angle) = 0;
+
+ /**
+ * @brief Initialize for Ime window.
+ * It should be called when the window is only used for Ime keyboard window.
+ */
+ virtual void InitializeIme() = 0;
+
+ /**
+ * @brief Send the signal to display server for Ime Window is ready to render.
+ * It is used for compositing by display server.
+ */
+ virtual void ImeWindowReadyToRender() = 0;
+
+ /**
+ * @brief Includes input region.
+ * @param[in] inputRegion The added region to accept input events.
+ */
+ virtual void IncludeInputRegion(const Rect<int>& inputRegion) = 0;
+
+ /**
+ * @brief Excludes input region.
+ * @param[in] inputRegion The subtracted region to except input events.
+ */
+ virtual void ExcludeInputRegion(const Rect<int>& inputRegion) = 0;
+
+ // Signals
+
+ /**
+ * @brief This signal is emitted when the window becomes iconified or deiconified.
+ */
+ IconifySignalType& IconifyChangedSignal();
+
+ /**
+ * @brief This signal is emitted when the window focus is changed.
+ */
+ FocusSignalType& FocusChangedSignal();
+
+ /**
+ * @brief This signal is emitted when the output is transformed.
+ */
+ OutputSignalType& OutputTransformedSignal();
+
+ /**
+ * @brief This signal is emitted when the window receives a delete request.
+ */
+ DeleteSignalType& DeleteRequestSignal();
+
+ /**
+ * @brief This signal is emitted when the window is damaged.
+ */
+ DamageSignalType& WindowDamagedSignal();
+
+ /**
+ * @brief This signal is emitted when a rotation event is recevied.
+ */
+ RotationSignalType& RotationSignal();
+
+ /**
+ * @brief This signal is emitted when a touch event is received.
+ */
+ TouchEventSignalType& TouchEventSignal();
+
+ /**
+ * @brief This signal is emitted when a mouse wheel is received.
+ */
+ WheelEventSignalType& WheelEventSignal();
+
+ /**
+ * @brief This signal is emitted when a key event is received.
+ */
+ KeyEventSignalType& KeyEventSignal();
+
+ /**
+ * @brief This signal is emitted when the source window notifies us the content in clipboard is selected.
+ */
+ SelectionSignalType& SelectionDataSendSignal();
+
+ /**
+ * @brief This signal is emitted when the source window sends us about the selected content.
+ */
+ SelectionSignalType& SelectionDataReceivedSignal();
+
+ /**
+ * @brief This signal is emitted when the style is changed.
+ */
+ StyleSignalType& StyleChangedSignal();
+
+ /**
+ * @brief This signal is emitted when window's transition animation is started or ended.
+ */
+ TransitionEffectEventSignalType& TransitionEffectEventSignal();
+
+ /**
+ * @brief This signal is emitted when the keyboard repeat is changed.
+ */
+ KeyboardRepeatSettingsChangedSignalType& KeyboardRepeatSettingsChangedSignal();
+
+ /**
+ * @brief This signal is emitted when the window redraw is requested.
+ */
+ WindowRedrawRequestSignalType& WindowRedrawRequestSignal();
+
+ /**
+ * @brief This signal is emitted when the window is resized or moved by display server.
+ */
+ UpdatePositionSizeType& UpdatePositionSizeSignal();
+
+ /**
+ * @brief This signal is emitted when the window is received the auxiliary message from display server.
+ */
+ AuxiliaryMessageSignalType& AuxiliaryMessageSignal();
+
+protected: