tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TextLeafAccessible.h (1416B)


      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/. */
      5 
      6 #ifndef mozilla_a11y_TextLeafAccessible_h__
      7 #define mozilla_a11y_TextLeafAccessible_h__
      8 
      9 #include "BaseAccessibles.h"
     10 
     11 namespace mozilla {
     12 namespace a11y {
     13 
     14 /**
     15 * Generic class used for text nodes.
     16 */
     17 class TextLeafAccessible : public LinkableAccessible {
     18 public:
     19  TextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc);
     20  virtual ~TextLeafAccessible();
     21 
     22  // LocalAccessible
     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 DirectName(nsString& aName) const override;
     27 
     28  // TextLeafAccessible
     29  void SetText(const nsAString& aText) { mText = aText; }
     30  const nsString& Text() const { return mText; }
     31 
     32 protected:
     33  nsString mText;
     34 };
     35 
     36 ////////////////////////////////////////////////////////////////////////////////
     37 // LocalAccessible downcast method
     38 
     39 inline TextLeafAccessible* LocalAccessible::AsTextLeaf() {
     40  return IsTextLeaf() ? static_cast<TextLeafAccessible*>(this) : nullptr;
     41 }
     42 
     43 }  // namespace a11y
     44 }  // namespace mozilla
     45 
     46 #endif