From 1f6fcac32b2d4402adf3ae7feac2b35f333e037b Mon Sep 17 00:00:00 2001 From: Bartlomiej Grzelewski Date: Thu, 15 Apr 2021 10:52:01 +0200 Subject: [PATCH] [AT-SPI] Add SetTextContents, InsertText and DeleteText Extend at-spi interface of EditableText objects. Change-Id: I32b315f996bb1a8b769a71196f6606e628f0a302 --- .../adaptor-framework/accessibility-impl.h | 29 ++++++++++++++++++++++ .../accessibility/bridge/bridge-editable-text.cpp | 18 ++++++++++++++ .../accessibility/bridge/bridge-editable-text.h | 3 +++ 3 files changed, 50 insertions(+) diff --git a/dali/devel-api/adaptor-framework/accessibility-impl.h b/dali/devel-api/adaptor-framework/accessibility-impl.h index c2741d2..cb7c0b3 100644 --- a/dali/devel-api/adaptor-framework/accessibility-impl.h +++ b/dali/devel-api/adaptor-framework/accessibility-impl.h @@ -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; }; /** diff --git a/dali/internal/accessibility/bridge/bridge-editable-text.cpp b/dali/internal/accessibility/bridge/bridge-editable-text.cpp index 4d383ed..bda4a28 100644 --- a/dali/internal/accessibility/bridge/bridge-editable-text.cpp +++ b/dali/internal/accessibility/bridge/bridge-editable-text.cpp @@ -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 BridgeEditableText::CutText(int32_t startPos, int32_t e return FindSelf()->CutText(startPos, endPos); } +DBus::ValueOrError BridgeEditableText::DeleteText(int32_t startPos, int32_t endPos) +{ + return FindSelf()->DeleteText(startPos, endPos); +} + +DBus::ValueOrError BridgeEditableText::InsertText(int32_t startPos, std::string text, [[maybe_unused]] int32_t length) +{ + return FindSelf()->InsertText(startPos, std::move(text)); +} + DBus::ValueOrError BridgeEditableText::PasteText(int32_t pos) { // auto imfManager = Dali::Internal::Adaptor::ImfManager::Get(); @@ -61,3 +74,8 @@ DBus::ValueOrError BridgeEditableText::PasteText(int32_t pos) // return true; return false; } + +DBus::ValueOrError BridgeEditableText::SetTextContents(std::string newContents) +{ + return FindSelf()->SetTextContents(std::move(newContents)); +} diff --git a/dali/internal/accessibility/bridge/bridge-editable-text.h b/dali/internal/accessibility/bridge/bridge-editable-text.h index 9b4901f..a6815d0 100644 --- a/dali/internal/accessibility/bridge/bridge-editable-text.h +++ b/dali/internal/accessibility/bridge/bridge-editable-text.h @@ -33,7 +33,10 @@ protected: public: DBus::ValueOrError CopyText(int32_t startPos, int32_t endPos); DBus::ValueOrError CutText(int32_t startPos, int32_t endPos); + DBus::ValueOrError DeleteText(int32_t startPos, int32_t endPos); + DBus::ValueOrError InsertText(int32_t startPos, std::string text, int32_t length); DBus::ValueOrError PasteText(int32_t pos); + DBus::ValueOrError SetTextContents(std::string newContents); }; #endif // DALI_INTERNAL_ACCESSIBILITY_BRIDGE_EDITABLE_TEXT_H -- 2.7.4