NS_IMETHODIMP xpcAccessibleHyperText::AddSelection(int32_t aStartOffset, int32_t aEndOffset) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->AddToSelection(aStartOffset, aEndOffset); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::ScriptablePasteText(int32_t aOffset) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->PasteText(aOffset); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::SetTextContents(const nsAString& aText) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->ReplaceText(aText); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::RemoveSelection(int32_t aSelectionNum) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->RemoveFromSelection(aSelectionNum); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::ScriptableInsertText(const nsAString& aText, int32_t aOffset) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->InsertText(aText, aOffset); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::ScriptableCutText(int32_t aStartOffset, int32_t aEndOffset) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->CutText(aStartOffset, aEndOffset); return NS_OK; }
static gint getCharacterCountCB(AtkText *aText) { AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); if (!accWrap) return 0; HyperTextAccessible* textAcc = accWrap->AsHyperText(); return textAcc->IsDefunct() ? 0 : static_cast<gint>(textAcc->CharacterCount()); }
NS_IMETHODIMP xpcAccessibleHyperText::ScriptableScrollSubstringTo(int32_t aStartOffset, int32_t aEndOffset, uint32_t aScrollType) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->ScrollSubstringTo(aStartOffset, aEndOffset, aScrollType); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetScriptableCaretOffset(int32_t* aCaretOffset) { NS_ENSURE_ARG_POINTER(aCaretOffset); *aCaretOffset = -1; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; *aCaretOffset = text->CaretOffset(); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetLinkCount(int32_t* aLinkCount) { NS_ENSURE_ARG_POINTER(aLinkCount); *aLinkCount = 0; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; *aLinkCount = text->LinkCount(); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetText(int32_t aStartOffset, int32_t aEndOffset, nsAString& aText) { aText.Truncate(); HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->TextSubstring(aStartOffset, aEndOffset, aText); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetOffsetAtPoint(int32_t aX, int32_t aY, uint32_t aCoordType, int32_t* aOffset) { NS_ENSURE_ARG_POINTER(aOffset); *aOffset = -1; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; *aOffset = text->OffsetAtPoint(aX, aY, aCoordType); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetDefaultTextAttributes(nsIPersistentProperties** aAttributes) { NS_ENSURE_ARG_POINTER(aAttributes); *aAttributes = nullptr; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIPersistentProperties> attrs = text->DefaultTextAttributes(); attrs.swap(*aAttributes); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetCharacterAtOffset(int32_t aOffset, char16_t* aCharacter) { NS_ENSURE_ARG_POINTER(aCharacter); *aCharacter = L'\0'; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; *aCharacter = text->CharAt(aOffset); return NS_OK; }
STDMETHODIMP ia2AccessibleText::addSelection(long aStartOffset, long aEndOffset) { A11Y_TRYBLOCK_BEGIN HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; return textAcc->AddToSelection(aStartOffset, aEndOffset) ? S_OK : E_INVALIDARG; A11Y_TRYBLOCK_END }
STDMETHODIMP ia2AccessibleText::addSelection(long aStartOffset, long aEndOffset) { A11Y_TRYBLOCK_BEGIN HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->AddSelection(aStartOffset, aEndOffset); return GetHRESULT(rv); A11Y_TRYBLOCK_END }
NS_IMETHODIMP xpcAccessibleHyperText::GetLinkIndexAtOffset(int32_t aOffset, int32_t* aLinkIndex) { NS_ENSURE_ARG_POINTER(aLinkIndex); *aLinkIndex = -1; // API says this magic value means 'not found' HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; *aLinkIndex = text->LinkIndexAtOffset(aOffset); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetLinkAt(int32_t aIndex, nsIAccessibleHyperLink** aLink) { NS_ENSURE_ARG_POINTER(aLink); *aLink = nullptr; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIAccessibleHyperLink> link = text->LinkAt(aIndex); link.forget(aLink); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::SetSelectionBounds(int32_t aSelectionNum, int32_t aStartOffset, int32_t aEndOffset) { HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; if (aSelectionNum < 0 || !text->SetSelectionBoundsAt(aSelectionNum, aStartOffset, aEndOffset)) return NS_ERROR_INVALID_ARG; return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetLinkIndex(nsIAccessibleHyperLink* aLink, int32_t* aIndex) { NS_ENSURE_ARG_POINTER(aLink); NS_ENSURE_ARG_POINTER(aIndex); *aIndex = -1; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; nsRefPtr<Accessible> link(do_QueryObject(aLink)); *aIndex = text->LinkIndexOf(link); return NS_OK; }
static gint getCharacterCountCB(AtkText *aText) { AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); if (accWrap) { HyperTextAccessible* textAcc = accWrap->AsHyperText(); return textAcc->IsDefunct() ? 0 : static_cast<gint>(textAcc->CharacterCount()); } if (ProxyAccessible* proxy = GetProxy(ATK_OBJECT(aText))) { return proxy->CharacterCount(); } return 0; }
NS_IMETHODIMP xpcAccessibleHyperText::GetTextAtOffset(int32_t aOffset, AccessibleTextBoundary aBoundaryType, int32_t* aStartOffset, int32_t* aEndOffset, nsAString& aText) { NS_ENSURE_ARG_POINTER(aStartOffset); NS_ENSURE_ARG_POINTER(aEndOffset); *aStartOffset = *aEndOffset = 0; aText.Truncate(); HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; text->TextAtOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, aText); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetSelectionBounds(int32_t aSelectionNum, int32_t* aStartOffset, int32_t* aEndOffset) { NS_ENSURE_ARG_POINTER(aStartOffset); NS_ENSURE_ARG_POINTER(aEndOffset); *aStartOffset = *aEndOffset = 0; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; if (aSelectionNum < 0 || aSelectionNum >= text->SelectionCount()) return NS_ERROR_INVALID_ARG; text->SelectionBoundsAt(aSelectionNum, aStartOffset, aEndOffset); return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetRangeExtents(int32_t aStartOffset, int32_t aEndOffset, int32_t* aX, int32_t* aY, int32_t* aWidth, int32_t* aHeight, uint32_t aCoordType) { NS_ENSURE_ARG_POINTER(aX); NS_ENSURE_ARG_POINTER(aY); NS_ENSURE_ARG_POINTER(aWidth); NS_ENSURE_ARG_POINTER(aHeight); *aX = *aY = *aWidth = *aHeight = 0; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; nsIntRect rect = text->TextBounds(aStartOffset, aEndOffset, aCoordType); *aX = rect.x; *aY = rect.y; *aWidth = rect.width; *aHeight = rect.height; return NS_OK; }
NS_IMETHODIMP xpcAccessibleHyperText::GetTextAttributes(bool aIncludeDefAttrs, int32_t aOffset, int32_t* aStartOffset, int32_t* aEndOffset, nsIPersistentProperties** aAttributes) { NS_ENSURE_ARG_POINTER(aStartOffset); NS_ENSURE_ARG_POINTER(aEndOffset); NS_ENSURE_ARG_POINTER(aAttributes); *aStartOffset = *aEndOffset = 0; *aAttributes = nullptr; HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this); if (text->IsDefunct()) return NS_ERROR_FAILURE; nsCOMPtr<nsIPersistentProperties> attrs = text->TextAttributes(aIncludeDefAttrs, aOffset, aStartOffset, aEndOffset); attrs.swap(*aAttributes); return NS_OK; }