[ATSPI] Add ScrollStarted/ScrollFinished interface 24/284124/4
authorHosang Kim <hosang12.kim@samsung.com>
Fri, 28 Oct 2022 10:57:02 +0000 (19:57 +0900)
committerHosang Kim <hosang12.kim@samsung.com>
Thu, 10 Nov 2022 05:55:55 +0000 (14:55 +0900)
 This interface is used for scrollable object scroll started or
 finished.

Change-Id: I14c40e2bb624020762cc2c909410c7321d99e3f7

dali/devel-api/adaptor-framework/accessibility-bridge.h
dali/devel-api/adaptor-framework/accessibility.h
dali/devel-api/atspi-interfaces/accessible.h
dali/internal/accessibility/bridge/accessible.cpp
dali/internal/accessibility/bridge/bridge-object.cpp
dali/internal/accessibility/bridge/bridge-object.h
dali/internal/accessibility/bridge/dummy/dummy-atspi.cpp
dali/internal/accessibility/bridge/dummy/dummy-atspi.h

index 3456863..89217c7 100644 (file)
@@ -268,6 +268,20 @@ struct DALI_ADAPTOR_API Bridge
   virtual void EmitSocketAvailable(Accessible* obj) = 0;
 
   /**
+   * @brief Emits ScrollStarted event on at-spi bus.
+   *
+   * @param obj Accessible Object
+   */
+  virtual void EmitScrollStarted(Accessible *obj) = 0;
+
+    /**
+   * @brief Emits ScrollFinished event on at-spi bus.
+   *
+   * @param obj Accessible Object
+   */
+  virtual void EmitScrollFinished(Accessible *obj) = 0;
+
+  /**
    * @brief Emits state-changed event on at-spi bus.
    *
    * @param[in] obj The accessible object
index 77c7257..a6c0da8 100644 (file)
@@ -496,6 +496,8 @@ enum class AtspiEvent
   ATTRIBUTES_CHANGED,\r
   MOVED_OUT,\r
   WINDOW_CHANGED,\r
+  SCROLL_STARTED,\r
+  SCROLL_FINISHED,\r
   MAX_COUNT\r
 };\r
 \r
index edac6d9..0156cc9 100644 (file)
@@ -139,6 +139,18 @@ public:
   void EmitSocketAvailable();
 
   /**
+   * @brief Emits "ScrollStarted" event.
+   *
+   */
+  void EmitScrollStarted();
+
+  /**
+   * @brief Emits "ScrollFinished" event.
+   *
+   */
+  void EmitScrollFinished();
+
+  /**
    * @brief Emits "highlighted" event.
    *
    * @param[in] event The enumerated window event
index c2a62b3..d0e2700 100644 (file)
@@ -125,6 +125,22 @@ void Accessible::EmitSocketAvailable()
   }
 }
 
+void Accessible::EmitScrollStarted()
+{
+  if(auto bridgeData = GetBridgeData())
+  {
+    bridgeData->mBridge->EmitScrollStarted(this);
+  }
+}
+
+void Accessible::EmitScrollFinished()
+{
+  if(auto bridgeData = GetBridgeData())
+  {
+    bridgeData->mBridge->EmitScrollFinished(this);
+  }
+}
+
 void Accessible::Emit(WindowEvent event, unsigned int detail)
 {
   if(auto bridgeData = GetBridgeData())
index 26b697c..d9c6d84 100644 (file)
@@ -315,3 +315,31 @@ void BridgeObject::EmitSocketAvailable(Accessible* obj)
     obj->GetAddress(),
     {"", "root"});
 }
+
+void BridgeObject::EmitScrollStarted(Accessible* obj)
+{
+  if(!IsUp() || obj->IsHidden() || obj->GetSuppressedEvents()[AtspiEvent::SCROLL_STARTED])
+  {
+    return;
+  }
+
+  mDbusServer.emit2<Address>(
+    GetAccessiblePath(obj),
+    Accessible::GetInterfaceName(AtspiInterface::EVENT_OBJECT),
+    "ScrollStarted",
+    {"", "root"});
+}
+
+void BridgeObject::EmitScrollFinished(Accessible* obj)
+{
+  if(!IsUp() || obj->IsHidden() || obj->GetSuppressedEvents()[AtspiEvent::SCROLL_FINISHED])
+  {
+    return;
+  }
+
+  mDbusServer.emit2<Address>(
+    GetAccessiblePath(obj),
+    Accessible::GetInterfaceName(AtspiInterface::EVENT_OBJECT),
+    "ScrollFinished",
+    {"", "root"});
+}
\ No newline at end of file
index 9784469..1b6637d 100644 (file)
@@ -90,6 +90,16 @@ protected:
    */
   void EmitSocketAvailable(Dali::Accessibility::Accessible* obj) override;
 
+  /**
+   * @copydoc Dali::Accessibility::Bridge::EmitScrollStarted()
+   */
+  void EmitScrollStarted(Dali::Accessibility::Accessible* obj) override;
+
+  /**
+   * @copydoc Dali::Accessibility::Bridge::EmitScrollFinished()
+   */
+  void EmitScrollFinished(Dali::Accessibility::Accessible* obj) override;
+
 protected:
   DBus::DBusInterfaceDescription::SignalId mStateChanged;
 };
index 713dd3c..b5e253b 100644 (file)
@@ -141,6 +141,14 @@ void Accessibility::Accessible::EmitSocketAvailable()
 {
 }
 
+void Accessibility::Accessible::EmitScrollStarted()
+{
+}
+
+void Accessibility::Accessible::EmitScrollFinished()
+{
+}
+
 void Accessibility::Accessible::NotifyAccessibilityStateChange(Accessibility::States states, bool isRecursive)
 {
 }
index 12ab7c6..36bb615 100644 (file)
@@ -130,6 +130,14 @@ struct DummyBridge : Dali::Accessibility::Bridge
   {
   }
 
+  void EmitScrollStarted(Accessibility::Accessible* obj) override
+  {
+  }
+
+  void EmitScrollFinished(Accessibility::Accessible* obj) override
+  {
+  }
+
   void EmitStateChanged(Accessibility::Accessible* obj, Accessibility::State state, int newValue, int reserved) override
   {
   }