[AT-SPI] Add SetTextContents, InsertText and DeleteText 56/256956/5
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Thu, 15 Apr 2021 08:52:01 +0000 (10:52 +0200)
committerArtur Świgoń <a.swigon@samsung.com>
Thu, 27 May 2021 17:11:22 +0000 (19:11 +0200)
Extend at-spi interface of EditableText objects.

Change-Id: I32b315f996bb1a8b769a71196f6606e628f0a302

dali/devel-api/adaptor-framework/accessibility-impl.h
dali/internal/accessibility/bridge/bridge-editable-text.cpp
dali/internal/accessibility/bridge/bridge-editable-text.h

index c2741d2..cb7c0b3 100644 (file)
@@ -1019,6 +1019,35 @@ public:
    * @return true on success, false otherwise
    */
   virtual bool CutText(size_t startPosition, size_t endPosition) = 0;
+
+  /**
+   * @brief Delete text in range
+   *
+   * @param[in] startPosition index of first character
+   * @param[in] endPosition index of first character after the last one expected
+   *
+   * @return true on success, false otherwise
+   */
+  virtual bool DeleteText(size_t startPosition, size_t endPosition) = 0;
+
+  /**
+   * @brief Insert text at startPosition
+   *
+   * @param[in] startPosition index of first character
+   * @param[in] text text content
+   *
+   * @return true on success, false otherwise
+   */
+  virtual bool InsertText(size_t startPosition, std::string text) = 0;
+
+  /**
+   * @brief Replace text with content
+   *
+   * @param[in] newContents text content
+   *
+   * @return true on success, false otherwise
+   */
+  virtual bool SetTextContents(std::string newContents) = 0;
 };
 
 /**
index 4d383ed..bda4a28 100644 (file)
@@ -28,7 +28,10 @@ void BridgeEditableText::RegisterInterfaces()
   DBus::DBusInterfaceDescription desc{AtspiDbusInterfaceEditableText};
   AddFunctionToInterface(desc, "CopyText", &BridgeEditableText::CopyText);
   AddFunctionToInterface(desc, "CutText", &BridgeEditableText::CutText);
+  AddFunctionToInterface(desc, "DeleteText", &BridgeEditableText::DeleteText);
+  AddFunctionToInterface(desc, "InsertText", &BridgeEditableText::InsertText);
   AddFunctionToInterface(desc, "PasteText", &BridgeEditableText::PasteText);
+  AddFunctionToInterface(desc, "SetTextContents", &BridgeEditableText::SetTextContents);
   dbusServer.addInterface("/", desc, true);
 }
 
@@ -52,6 +55,16 @@ DBus::ValueOrError<bool> BridgeEditableText::CutText(int32_t startPos, int32_t e
   return FindSelf()->CutText(startPos, endPos);
 }
 
+DBus::ValueOrError<bool> BridgeEditableText::DeleteText(int32_t startPos, int32_t endPos)
+{
+  return FindSelf()->DeleteText(startPos, endPos);
+}
+
+DBus::ValueOrError<bool> BridgeEditableText::InsertText(int32_t startPos, std::string text, [[maybe_unused]] int32_t length)
+{
+  return FindSelf()->InsertText(startPos, std::move(text));
+}
+
 DBus::ValueOrError<bool> BridgeEditableText::PasteText(int32_t pos)
 {
   // auto imfManager = Dali::Internal::Adaptor::ImfManager::Get();
@@ -61,3 +74,8 @@ DBus::ValueOrError<bool> BridgeEditableText::PasteText(int32_t pos)
   // return true;
   return false;
 }
+
+DBus::ValueOrError<bool> BridgeEditableText::SetTextContents(std::string newContents)
+{
+  return FindSelf()->SetTextContents(std::move(newContents));
+}
index 9b4901f..a6815d0 100644 (file)
@@ -33,7 +33,10 @@ protected:
 public:
   DBus::ValueOrError<bool> CopyText(int32_t startPos, int32_t endPos);
   DBus::ValueOrError<bool> CutText(int32_t startPos, int32_t endPos);
+  DBus::ValueOrError<bool> DeleteText(int32_t startPos, int32_t endPos);
+  DBus::ValueOrError<bool> InsertText(int32_t startPos, std::string text, int32_t length);
   DBus::ValueOrError<bool> PasteText(int32_t pos);
+  DBus::ValueOrError<bool> SetTextContents(std::string newContents);
 };
 
 #endif // DALI_INTERNAL_ACCESSIBILITY_BRIDGE_EDITABLE_TEXT_H