Add ECORE_WL2_EVENT_POINTER_CONSTRAINTS event
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / common / window-base.h
index 6cb6819..782bc9e 100644 (file)
@@ -77,6 +77,11 @@ public:
   typedef Signal<void(Dali::PositionSize&)>                                            UpdatePositionSizeType;
   typedef Signal<void(const std::string&, const std::string&, const Property::Array&)> AuxiliaryMessageSignalType;
   typedef Signal<void(const Dali::DevelWindow::MouseInOutEvent&)>                      MouseInOutEventSignalType;
+  typedef Signal<void(const Dali::DevelWindow::MouseRelativeEvent&)>                   MouseRelativeEventSignalType;
+  typedef Signal<void(Dali::Int32Pair&)>                                               MoveCompletedSignalType;
+  typedef Signal<void(Dali::Uint16Pair&)>                                              ResizeCompletedSignalType;
+  typedef Signal<void(WindowInsetsPartType, WindowInsetsPartState, const Extents&)>    InsetsChangedSignalType;
+  typedef Signal<void(const Dali::Int32Pair&, bool, bool)>                             PointerConstraintsSignalType;
 
   // Input events
   typedef Signal<void(Integration::Point&, uint32_t)> TouchEventSignalType;
@@ -463,6 +468,68 @@ public:
    */
   virtual void ExcludeInputRegion(const Rect<int>& inputRegion) = 0;
 
+  /**
+   * @brief Sets the pointer constraints lock.
+   * @return Returns true if PointerConstraintsLock succeeds.
+   */
+  virtual bool PointerConstraintsLock() = 0;
+
+  /**
+   * @brief Sets the pointer constraints unlock.
+   * @return Returns true if PointerConstraintsUnlock succeeds.
+   */
+  virtual bool PointerConstraintsUnlock() = 0;
+
+  /**
+   * @brief Sets the locked pointer region
+   *
+   * @param[in] x The x position.
+   * @param[in] y The y position.
+   * @param[in] width The width.
+   * @param[in] height The height
+   */
+  virtual void LockedPointerRegionSet(int32_t x, int32_t y, int32_t width, int32_t height) = 0;
+
+  /**
+   * @brief Sets the locked pointer cursor position hintset
+   *
+   * @param[in] x The x position.
+   * @param[in] y The y position.
+   */
+  virtual void LockedPointerCursorPositionHintSet(int32_t x, int32_t y) = 0;
+
+  /**
+   * @brief Sets the pointer warp. The pointer moves to the set coordinates.
+   *
+   * @param[in] x The x position.
+   * @param[in] y The y position.
+   * @return Returns true if PointerWarp succeeds.
+   */
+  virtual bool PointerWarp(int32_t x, int32_t y) = 0;
+
+  /**
+   * @brief Sets visibility on/off of cursor
+   *
+   * @param[in] visible The visibility of cursor
+   */
+  virtual void CursorVisibleSet(bool visible) = 0;
+
+  /**
+   * @brief Requests grab key events according to the requested device subtype
+   *
+   * @param[in] deviceSubclass The deviceSubclass type.
+   * @return Returns true if KeyboardGrab succeeds.
+   */
+  virtual bool KeyboardGrab(Device::Subclass::Type deviceSubclass) = 0;
+
+  /**
+   * @brief Requests ungrab key events
+   *
+   * @param[in] window The window instance.
+   * @return Returns true if KeyboardUnGrab succeeds.
+   */
+  virtual bool KeyboardUnGrab() = 0;
+
   // Signals
 
   /**
@@ -546,7 +613,8 @@ public:
   WindowRedrawRequestSignalType& WindowRedrawRequestSignal();
 
   /**
-   * @brief This signal is emitted when the window is resized or moved by display server.
+   * @brief This signal is emitted when the window's geometry data is changed by display server or client.
+   * It is based on configure noification event.
    */
   UpdatePositionSizeType& UpdatePositionSizeSignal();
 
@@ -560,6 +628,35 @@ public:
    */
   MouseInOutEventSignalType& MouseInOutEventSignal();
 
+  /**
+   * @brief This signal is emitted when a mouse relative event is recevied.
+   */
+  MouseRelativeEventSignalType& MouseRelativeEventSignal();
+
+  /**
+   * @brief This signal is emitted when window has been moved by then display server.
+   * To be moved the window by display server, RequestMoveToServer() should be called.
+   * After the moving job is finished, this function will be called.
+   */
+  MoveCompletedSignalType& MoveCompletedSignal();
+
+  /**
+   * @brief This signal is emitted when window has been resized by then display server.
+   * To be resized the window by display server, RequestResizeToServer() should be called.
+   * After the resizing job is finished, this function will be called.
+   */
+  ResizeCompletedSignalType& ResizeCompletedSignal();
+
+  /**
+   * @brief This signal is emitted when window insets are changed by appearing or disappearing indicator, virtual keyboard, or clipboard.
+   */
+  InsetsChangedSignalType& InsetsChangedSignal();
+
+  /**
+   * @brief This signal is emitted when window pointer is locked/unlocked
+   */
+  PointerConstraintsSignalType& PointerConstraintsSignal();
+
 protected:
   // Undefined
   WindowBase(const WindowBase&) = delete;
@@ -587,6 +684,11 @@ protected:
   UpdatePositionSizeType                  mUpdatePositionSizeSignal;
   AuxiliaryMessageSignalType              mAuxiliaryMessageSignal;
   MouseInOutEventSignalType               mMouseInOutEventSignal;
+  MouseRelativeEventSignalType            mMouseRelativeEventSignal;
+  MoveCompletedSignalType                 mMoveCompletedSignal;
+  ResizeCompletedSignalType               mResizeCompletedSignal;
+  InsetsChangedSignalType                 mInsetsChangedSignal;
+  PointerConstraintsSignalType            mPointerConstraintsSignal;
 };
 
 } // namespace Adaptor