/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
void BridgeEditableText::RegisterInterfaces()
{
- DBus::DBusInterfaceDescription desc{AtspiDbusInterfaceEditableText};
- AddFunctionToInterface( desc, "CopyText", &BridgeEditableText::CopyText );
- AddFunctionToInterface( desc, "CutText", &BridgeEditableText::CutText );
- AddFunctionToInterface( desc, "PasteText", &BridgeEditableText::PasteText );
- dbusServer.addInterface( "/", desc, true );
+ DBus::DBusInterfaceDescription desc{Accessible::GetInterfaceName(AtspiInterface::EDITABLE_TEXT)};
+ 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);
+ mDbusServer.addInterface("/", desc, true);
}
EditableText* BridgeEditableText::FindSelf() const
{
- auto s = BridgeBase::FindSelf();
- assert( s );
- auto s2 = dynamic_cast< EditableText* >( s );
- if( !s2 )
- throw std::domain_error{"object " + s->GetAddress().ToString() + " doesn't have Text interface"};
- return s2;
+ return FindCurrentObjectWithInterface<Dali::Accessibility::AtspiInterface::EDITABLE_TEXT>();
}
-DBus::ValueOrError< bool > BridgeEditableText::CopyText( int32_t startPos, int32_t endPos )
+DBus::ValueOrError<bool> BridgeEditableText::CopyText(int32_t startPosition, int32_t endPosition)
{
- return FindSelf()->CopyText( startPos, endPos );
+ return FindSelf()->CopyText(startPosition, endPosition);
}
-DBus::ValueOrError< bool > BridgeEditableText::CutText( int32_t startPos, int32_t endPos )
+DBus::ValueOrError<bool> BridgeEditableText::CutText(int32_t startPosition, int32_t endPosition)
{
- return FindSelf()->CutText( startPos, endPos );
+ return FindSelf()->CutText(startPosition, endPosition);
}
-DBus::ValueOrError< bool > BridgeEditableText::PasteText( int32_t pos )
+DBus::ValueOrError<bool> BridgeEditableText::DeleteText(int32_t startPosition, int32_t endPosition)
+{
+ return FindSelf()->DeleteText(startPosition, endPosition);
+}
+
+DBus::ValueOrError<bool> BridgeEditableText::InsertText(int32_t startPosition, std::string text, [[maybe_unused]] int32_t length)
+{
+ return FindSelf()->InsertText(startPosition, std::move(text));
+}
+
+DBus::ValueOrError<bool> BridgeEditableText::PasteText(int32_t position)
{
// auto imfManager = Dali::Internal::Adaptor::ImfManager::Get();
- // imfManager.SetCursorPosition( pos );
- // auto clipboard = Dali::Internal::Adaptor::Clipboard::Get();
+ // imfManager.SetCursorPosition( position );
+ // auto clipboard = Dali::Internal::Adaptor::TextClipboard::Get();
// clipboard.RequestItem();
// return true;
return false;
}
+
+DBus::ValueOrError<bool> BridgeEditableText::SetTextContents(std::string newContents)
+{
+ return FindSelf()->SetTextContents(std::move(newContents));
+}