Merge "[Tizen][AT-SPI] Rework intercepting key events" into tizen
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / accessibility-bridge.h
index 0737c69..6d30da6 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_ADAPTOR_ACCESSIBILITY_BRIDGE_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 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.
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/actors/actor.h>
+#include <dali/public-api/events/key-event.h>
 #include <dali/public-api/math/rect.h>
 #include <functional>
 #include <memory>
@@ -160,6 +161,13 @@ struct DALI_ADAPTOR_API Bridge
   virtual Accessible* FindByPath(const std::string& path) const = 0;
 
   /**
+   * @brief Notifies accessibility dbus that window has just been created.
+   *
+   * @param[in] window The window to be created
+   */
+  virtual void WindowCreated(Window window) = 0;
+
+  /**
    * @brief Notifies accessibility dbus that window has just been shown.
    *
    * @param[in] window The window to be shown
@@ -339,19 +347,29 @@ struct DALI_ADAPTOR_API Bridge
   virtual void EmitBoundsChanged(Accessible* obj, Rect<> rect) = 0;
 
   /**
+   * @brief Emits org.a11y.atspi.Event.Window.PostRender on the AT-SPI bus.
+   *
+   * @param[in] obj The Accessible sender object
+   *
+   * The sender of this event is expected to be an Accessible object that
+   * represents a top-level window.
+   *
+   * The actual number of events emitted during a given time interval may be smaller
+   * than the number of calls to this method, but at least one is guaranteed.
+   */
+  virtual void EmitPostRender(Accessible *obj) = 0;
+
+  /**
    * @brief Emits key event on at-spi bus.
    *
    * Screen-reader might receive this event and reply, that given keycode is consumed. In that case
    * further processing of the keycode should be ignored.
    *
-   * @param[in] type Key event type
-   * @param[in] keyCode Key code
-   * @param[in] keyName Key name
-   * @param[in] timeStamp Time stamp
-   * @param[in] isText Whether it's text or not
-   * @return Whether this event is consumed or not
-   **/
-  virtual Consumed Emit(KeyEventType type, unsigned int keyCode, const std::string& keyName, unsigned int timeStamp, bool isText) = 0;
+   * @param[in] keyEvent The key event
+   * @param[in] callback Notification if the event was consumed
+   * @return true if the event was emitted
+   */
+  virtual bool EmitKeyEvent(Dali::KeyEvent keyEvent, std::function<void(Dali::KeyEvent, bool)> callback) = 0;
 
   /**
    * @brief Reads given text by screen reader