Add KeyEventGeneratedSignal for Get KeyEvent normally 68/207868/8
authorSunghyun kim <scholb.kim@samsung.com>
Thu, 13 Jun 2019 10:13:47 +0000 (19:13 +0900)
committerSunghyun kim <scholb.kim@samsung.com>
Fri, 2 Aug 2019 07:52:20 +0000 (16:52 +0900)
Window can get KeyEvent even if control already use it.

Change-Id: I20e69ad3838640de7da309bc6ad2d1b37e51cbfc

dali/devel-api/adaptor-framework/window-devel.cpp
dali/devel-api/adaptor-framework/window-devel.h
dali/internal/window-system/common/window-impl.h

index 17a2993..dd28579 100644 (file)
@@ -55,6 +55,11 @@ KeyEventSignalType& KeyEventSignal( Window window )
   return GetImplementation( window ).KeyEventSignal();
 }
 
+KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window )
+{
+  return GetImplementation( window ).KeyEventGeneratedSignal();
+}
+
 TouchSignalType& TouchSignal( Window window )
 {
   return GetImplementation( window ).TouchSignal();
index 3da549e..e61381e 100644 (file)
@@ -35,6 +35,8 @@ typedef Signal< void () > EventProcessingFinishedSignalType;       ///< Event Pr
 
 typedef Signal< void (const KeyEvent&) > KeyEventSignalType;       ///< Key event signal type
 
+typedef Signal< bool (const KeyEvent&) > KeyEventGeneratedSignalType;       ///< Key event generated signal type
+
 typedef Signal< void (const TouchData&) > TouchSignalType;         ///< Touch signal type
 
 typedef Signal< void (const WheelEvent&) > WheelEventSignalType;   ///< Touched signal type
@@ -84,6 +86,18 @@ DALI_ADAPTOR_API EventProcessingFinishedSignalType& EventProcessingFinishedSigna
 DALI_ADAPTOR_API KeyEventSignalType& KeyEventSignal( Window window );
 
 /**
+ * @brief This signal is emitted when key event is received.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ *   bool YourCallbackName(const KeyEvent& event);
+ * @endcode
+ * @param[in] window The window instance
+ * @return The signal to connect to
+ */
+DALI_ADAPTOR_API KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window );
+
+/**
  * @brief This signal is emitted when the screen is touched and when the touch ends
  * (i.e. the down & up touch events only).
  *
index 7fd04f9..4dc14e4 100644 (file)
@@ -457,22 +457,27 @@ public: // Signals
   /**
    * @copydoc Dali::Window::SignalEventProcessingFinished()
    */
-  Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() { return mScene.EventProcessingFinishedSignal(); };
+  Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() { return mScene.EventProcessingFinishedSignal(); }
 
   /**
    * @copydoc Dali::Window::KeyEventSignal()
    */
-  Dali::DevelWindow::KeyEventSignalType& KeyEventSignal() { return mScene.KeyEventSignal(); };
+  Dali::DevelWindow::KeyEventSignalType& KeyEventSignal() { return mScene.KeyEventSignal(); }
+
+  /**
+   * @copydoc Dali::Window::KeyEventGeneratedSignal()
+   */
+  Dali::DevelWindow::KeyEventGeneratedSignalType& KeyEventGeneratedSignal() { return mScene.KeyEventGeneratedSignal(); }
 
   /**
     * @copydoc Dali::Window::TouchSignal()
     */
-  Dali::DevelWindow::TouchSignalType& TouchSignal() { return mScene.TouchSignal(); };
+  Dali::DevelWindow::TouchSignalType& TouchSignal() { return mScene.TouchSignal(); }
 
   /**
    * @copydoc Dali::Window::WheelEventSignal()
    */
-  Dali::DevelWindow::WheelEventSignalType& WheelEventSignal() { return mScene.WheelEventSignal(); };
+  Dali::DevelWindow::WheelEventSignalType& WheelEventSignal() { return mScene.WheelEventSignal(); }
 
 private: