Add ECORE_WL2_EVENT_POINTER_CONSTRAINTS event
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / common / window-base.h
index d014379..782bc9e 100644 (file)
@@ -77,9 +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;
@@ -466,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
 
   /**
@@ -565,6 +629,11 @@ 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.
@@ -583,6 +652,11 @@ public:
    */
   InsetsChangedSignalType& InsetsChangedSignal();
 
+  /**
+   * @brief This signal is emitted when window pointer is locked/unlocked
+   */
+  PointerConstraintsSignalType& PointerConstraintsSignal();
+
 protected:
   // Undefined
   WindowBase(const WindowBase&) = delete;
@@ -610,9 +684,11 @@ protected:
   UpdatePositionSizeType                  mUpdatePositionSizeSignal;
   AuxiliaryMessageSignalType              mAuxiliaryMessageSignal;
   MouseInOutEventSignalType               mMouseInOutEventSignal;
+  MouseRelativeEventSignalType            mMouseRelativeEventSignal;
   MoveCompletedSignalType                 mMoveCompletedSignal;
   ResizeCompletedSignalType               mResizeCompletedSignal;
   InsetsChangedSignalType                 mInsetsChangedSignal;
+  PointerConstraintsSignalType            mPointerConstraintsSignal;
 };
 
 } // namespace Adaptor