1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_a11y_TextLeafAccessible_h__
7 #define mozilla_a11y_TextLeafAccessible_h__
9 #include "BaseAccessibles.h"
15 * Generic class used for text nodes.
17 class TextLeafAccessible
: public LinkableAccessible
{
19 TextLeafAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
);
20 virtual ~TextLeafAccessible();
23 virtual mozilla::a11y::role
NativeRole() const override
;
24 virtual void AppendTextTo(nsAString
& aText
, uint32_t aStartOffset
= 0,
25 uint32_t aLength
= UINT32_MAX
) override
;
26 virtual ENameValueFlag
Name(nsString
& aName
) const override
;
29 void SetText(const nsAString
& aText
) { mText
= aText
; }
30 const nsString
& Text() const { return mText
; }
36 ////////////////////////////////////////////////////////////////////////////////
37 // LocalAccessible downcast method
39 inline TextLeafAccessible
* LocalAccessible::AsTextLeaf() {
40 return IsTextLeaf() ? static_cast<TextLeafAccessible
*>(this) : nullptr;
44 } // namespace mozilla