#define DALI_INTERNAL_WINDOWSYSTEM_COMMON_WINDOW_BASE_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.
// Window
typedef Signal<void(bool)> IconifySignalType;
+ typedef Signal<void(bool)> MaximizeSignalType;
typedef Signal<void(bool)> FocusSignalType;
typedef Signal<void()> OutputSignalType;
typedef Signal<void()> DeleteSignalType;
typedef Signal<void()> KeyboardRepeatSettingsChangedSignalType;
typedef Signal<void()> WindowRedrawRequestSignalType;
typedef Signal<void(Dali::PositionSize&)> UpdatePositionSizeType;
+ typedef Signal<void(const std::string&, const std::string&, const Property::Array&)> AuxiliaryMessageSignalType;
// Input events
typedef Signal<void(Integration::Point&, uint32_t)> TouchEventSignalType;
// Accessibility
typedef Signal<void(StyleChange::Type)> StyleSignalType;
- typedef Signal<void(const AccessibilityInfo&)> AccessibilitySignalType;
/**
* @brief Default constructor
virtual int GetNativeWindowId() = 0;
/**
+ * @brief Get the native window resource id assinged by window manager
+ * @return The native window resource id
+ */
+ virtual std::string GetNativeWindowResourceId() = 0;
+
+ /**
* @brief Create the egl window
*/
virtual EGLNativeWindowType CreateEglWindow(int width, int height) = 0;
virtual void MoveResize(Dali::PositionSize positionSize) = 0;
/**
+ * @copydoc Dali::Window::SetLayout()
+ */
+ virtual void SetLayout(unsigned int numCols, unsigned int numRows, unsigned int column, unsigned int row, unsigned int colSpan, unsigned int rowSpan) = 0;
+
+ /**
* @copydoc Dali::Window::SetClass()
*/
virtual void SetClass(const std::string& name, const std::string& className) = 0;
virtual void Activate() = 0;
/**
+ * @copydoc Dali::DevelWindow::Maximize()
+ */
+ virtual void Maximize(bool maximize) = 0;
+
+ /**
+ * @copydoc Dali::DevelWindow::IsMaximized()
+ */
+ virtual bool IsMaximized() const = 0;
+
+ /**
+ * @copydoc Dali::DevelWindow::SetMaximumSize()
+ */
+ virtual void SetMaximumSize(Dali::Window::WindowSize size) = 0;
+
+ /**
+ * @copydoc Dali::DevelWindow::Minimize()
+ */
+ virtual void Minimize(bool minimize) = 0;
+
+ /**
+ * @copydoc Dali::DevelWindow::IsMinimized()
+ */
+ virtual bool IsMinimized() const = 0;
+
+ /**
+ * @copydoc Dali::DevelWindow::SetMimimumSize()
+ */
+ virtual void SetMimimumSize(Dali::Window::WindowSize size) = 0;
+
+ /**
* @copydoc Dali::Window::SetAvailableOrientations()
*/
virtual void SetAvailableAnlges(const std::vector<int>& angles) = 0;
virtual void SetType(Dali::WindowType type) = 0;
/**
+ * @copydoc Dali::Window::GetType()
+ */
+ virtual Dali::WindowType GetType() const = 0;
+
+ /**
* @copydoc Dali::Window::SetNotificationLevel()
*/
virtual Dali::WindowOperationResult SetNotificationLevel(Dali::WindowNotificationLevel level) = 0;
virtual void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) = 0;
/**
- * @brief Return the orientation of the surface.
- * @return The orientation
+ * @brief Return the angle of the window's rotation.
+ * @return The window orientation
*/
- virtual int GetOrientation() const = 0;
+ virtual int GetWindowRotationAngle() const = 0;
/**
- * @brief Get the screen rotation angle of the window
+ * @brief Get the angle of screen rotation for the window
+ * @return The screen orientation
*/
virtual int GetScreenRotationAngle() = 0;
/**
- * @brief Set the rotation angle of the window
+ * @brief Set the screen rotation angle of the window
*/
virtual void SetWindowRotationAngle(int degree) = 0;
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) = 0;
+ virtual void SetParent(WindowBase* parentWinBase, bool belowParent) = 0;
/**
* @brief Create a sync fence that can tell the frame is rendered by the graphics driver.
*/
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
/**
IconifySignalType& IconifyChangedSignal();
/**
+ * @brief This signal is emitted when the window becomes maximized or unmaximized.
+ */
+ MaximizeSignalType& MaximizeChangedSignal();
+
+ /**
* @brief This signal is emitted when the window focus is changed.
*/
FocusSignalType& FocusChangedSignal();
StyleSignalType& StyleChangedSignal();
/**
- * @brief This signal is emitted when an accessibility event is received.
- */
- AccessibilitySignalType& AccessibilitySignal();
-
- /**
* @brief This signal is emitted when window's transition animation is started or ended.
*/
TransitionEffectEventSignalType& TransitionEffectEventSignal();
*/
UpdatePositionSizeType& UpdatePositionSizeSignal();
+ /**
+ * @brief This signal is emitted when the window is received the auxiliary message from display server.
+ */
+ AuxiliaryMessageSignalType& AuxiliaryMessageSignal();
+
protected:
// Undefined
WindowBase(const WindowBase&) = delete;
protected:
IconifySignalType mIconifyChangedSignal;
+ MaximizeSignalType mMaximizeChangedSignal;
FocusSignalType mFocusChangedSignal;
OutputSignalType mOutputTransformedSignal;
DeleteSignalType mDeleteRequestSignal;
SelectionSignalType mSelectionDataSendSignal;
SelectionSignalType mSelectionDataReceivedSignal;
StyleSignalType mStyleChangedSignal;
- AccessibilitySignalType mAccessibilitySignal;
TransitionEffectEventSignalType mTransitionEffectEventSignal;
KeyboardRepeatSettingsChangedSignalType mKeyboardRepeatSettingsChangedSignal;
WindowRedrawRequestSignalType mWindowRedrawRequestSignal;
UpdatePositionSizeType mUpdatePositionSizeSignal;
-
+ AuxiliaryMessageSignalType mAuxiliaryMessageSignal;
};
} // namespace Adaptor