Extend at-spi implementation for EditableText widgets.
Change-Id: I9669eb4f9fb4c34c3d0a1cd8ed5e751066ce98d7
DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
+ DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
+
Dali::Accessibility::TestEnableSC( false );
END_TEST;
DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
+ DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
+ DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
+
Dali::Accessibility::TestEnableSC( false );
END_TEST;
Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
slf.SetProperty(Toolkit::TextEditor::Property::TEXT,
- txt.substr(0, startPosition) + txt.substr(endPosition - startPosition, txt.size()));
+ txt.substr(0, startPosition) + txt.substr(endPosition));
+
+ return true;
+}
+
+bool TextEditor::AccessibleImpl::DeleteText(size_t startPosition,
+ size_t endPosition)
+{
+ if(endPosition <= startPosition)
+ return false;
+
+ auto slf = Toolkit::TextEditor::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+
+ slf.SetProperty(Toolkit::TextEditor::Property::TEXT,
+ txt.substr(0, startPosition) + txt.substr(endPosition));
return true;
}
return states;
}
+bool TextEditor::AccessibleImpl::InsertText(size_t startPosition,
+ std::string text)
+{
+ auto slf = Toolkit::TextEditor::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+
+ txt.insert(startPosition, text);
+
+ slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(txt));
+
+ return true;
+}
+
+bool TextEditor::AccessibleImpl::SetTextContents(std::string newContents)
+{
+ auto slf = Toolkit::TextEditor::DownCast(Self());
+ slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(newContents));
+ return true;
+}
+
} // namespace Internal
} // namespace Toolkit
bool CopyText(size_t startPosition, size_t endPosition) override;
bool CutText(size_t startPosition, size_t endPosition) override;
Accessibility::States CalculateStates() override;
+ bool InsertText(size_t startPosition, std::string text) override;
+ bool SetTextContents(std::string newContents) override;
+ bool DeleteText(size_t startPosition, size_t endPosition) override;
};
};
Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
slf.SetProperty(Toolkit::TextField::Property::TEXT,
- txt.substr(0, startPosition) + txt.substr(endPosition - startPosition, txt.size()));
+ txt.substr(0, startPosition) + txt.substr(endPosition));
+
+ return true;
+}
+
+bool TextField::AccessibleImpl::DeleteText(size_t startPosition,
+ size_t endPosition)
+{
+ if(endPosition <= startPosition)
+ return false;
+
+ auto slf = Toolkit::TextField::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+
+ slf.SetProperty(Toolkit::TextField::Property::TEXT,
+ txt.substr(0, startPosition) + txt.substr(endPosition));
return true;
}
return states;
}
+bool TextField::AccessibleImpl::InsertText(size_t startPosition,
+ std::string text)
+{
+ auto slf = Toolkit::TextField::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+
+ txt.insert(startPosition, text);
+
+ slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(txt));
+
+ return true;
+}
+
+bool TextField::AccessibleImpl::SetTextContents(std::string newContents)
+{
+ auto slf = Toolkit::TextField::DownCast(Self());
+ slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(newContents));
+ return true;
+}
+
} // namespace Internal
} // namespace Toolkit
bool CopyText(size_t startPosition, size_t endPosition) override;
bool CutText(size_t startPosition, size_t endPosition) override;
Accessibility::States CalculateStates() override;
+ bool InsertText(size_t startPosition, std::string text) override;
+ bool SetTextContents(std::string newContents) override;
+ bool DeleteText(size_t startPosition, size_t endPosition) override;
};
};