void FeedKeyEvent(Window window, const Dali::KeyEvent& keyEvent)
{
Integration::KeyEvent convertedEvent(keyEvent.GetKeyName(), keyEvent.GetLogicalKey(), keyEvent.GetKeyString(), keyEvent.GetKeyCode(), keyEvent.GetKeyModifier(), keyEvent.GetTime(), static_cast<Integration::KeyEvent::State>(keyEvent.GetState()), keyEvent.GetCompose(), keyEvent.GetDeviceName(), keyEvent.GetDeviceClass(), keyEvent.GetDeviceSubclass());
+ convertedEvent.receiveTime = keyEvent.GetReceiveTime();
GetImplementation(window).FeedKeyEvent(convertedEvent);
}
return GetImplementation(window).PointerConstraintsSignal();
}
+KeyEventSignalType& KeyEventMonitorSignal(Window window)
+{
+ return GetImplementation(window).KeyEventMonitorSignal();
+}
+
} // namespace DevelWindow
} // namespace Dali
*/
DALI_ADAPTOR_API PointerConstraintsSignalType& PointerConstraintsSignal(Window window);
+/**
+ * @brief This signal is emitted when the key event monitor is received.
+ * @param[in] window The window instance
+ * @return The signal to connect to
+ */
+DALI_ADAPTOR_API KeyEventSignalType& KeyEventMonitorSignal(Window window);
+
} // namespace DevelWindow
} // namespace Dali
return mScene.InterceptKeyEventSignal();
}
+ /**
+ * @copydoc Dali::Integration::SceneHolder::KeyEventMonitorSignal()
+ */
+ Dali::Integration::SceneHolder::KeyEventSignalType& KeyEventMonitorSignal()
+ {
+ return mScene.KeyEventMonitorSignal();
+ }
+
/**
* @copydoc Dali::Integration::SceneHolder::TouchedSignal()
*/
void SceneHolder::FeedKeyEvent(Dali::KeyEvent& keyEvent)
{
Integration::KeyEvent event(keyEvent.GetKeyName(), keyEvent.GetLogicalKey(), keyEvent.GetKeyString(), keyEvent.GetKeyCode(), keyEvent.GetKeyModifier(), keyEvent.GetTime(), static_cast<Integration::KeyEvent::State>(keyEvent.GetState()), keyEvent.GetCompose(), keyEvent.GetDeviceName(), keyEvent.GetDeviceClass(), keyEvent.GetDeviceSubclass());
+ event.receiveTime = keyEvent.GetReceiveTime();
GetImplementation(*this).FeedKeyEvent(event);
}
return GetImplementation(*this).InterceptKeyEventSignal();
}
+SceneHolder::KeyEventSignalType& SceneHolder::KeyEventMonitorSignal()
+{
+ return GetImplementation(*this).KeyEventMonitorSignal();
+}
+
SceneHolder::TouchEventSignalType& SceneHolder::TouchedSignal()
{
return GetImplementation(*this).TouchedSignal();
*/
KeyEventGeneratedSignalType& InterceptKeyEventSignal();
+ /**
+ * @brief This signal is emitted when key event is received.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(const KeyEvent& event);
+ * @endcode
+ * @return The signal to connect to
+ */
+ KeyEventSignalType& KeyEventMonitorSignal();
+
/**
* @brief This signal is emitted when the screen is touched and when the touch ends
* (i.e. the down & up touch events only).
void Adaptor::FeedKeyEvent(Dali::KeyEvent& keyEvent)
{
Integration::KeyEvent convertedEvent(keyEvent.GetKeyName(), keyEvent.GetLogicalKey(), keyEvent.GetKeyString(), keyEvent.GetKeyCode(), keyEvent.GetKeyModifier(), keyEvent.GetTime(), static_cast<Integration::KeyEvent::State>(keyEvent.GetState()), keyEvent.GetCompose(), keyEvent.GetDeviceName(), keyEvent.GetDeviceClass(), keyEvent.GetDeviceSubclass());
+ convertedEvent.receiveTime = keyEvent.GetReceiveTime();
mWindows.front()->FeedKeyEvent(convertedEvent);
}
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, compose, deviceName, deviceClass, deviceSubclass);
keyEvent.isRepeat = isRepeat;
keyEvent.windowId = GetNativeWindowId();
+ keyEvent.receiveTime = TimeService::GetMilliSeconds();
mKeyEventSignal.Emit(keyEvent);
}
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, compose, deviceName, deviceClass, deviceSubclass);
keyEvent.windowId = GetNativeWindowId();
+ keyEvent.receiveTime = TimeService::GetMilliSeconds();
mKeyEventSignal.Emit(keyEvent);
}