LCOV - code coverage report
Current view: top level - accessible/xul - XULElementAccessibles.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 8 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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_XULElementAccessibles_h__
       7             : #define mozilla_a11y_XULElementAccessibles_h__
       8             : 
       9             : #include "HyperTextAccessibleWrap.h"
      10             : #include "TextLeafAccessibleWrap.h"
      11             : 
      12             : namespace mozilla {
      13             : namespace a11y {
      14             : 
      15             : class XULLabelTextLeafAccessible;
      16             : 
      17             : /**
      18             :  * Used for XUL description and label elements.
      19             :  */
      20           0 : class XULLabelAccessible : public HyperTextAccessibleWrap
      21             : {
      22             : public:
      23             :   XULLabelAccessible(nsIContent* aContent, DocAccessible* aDoc);
      24             : 
      25             :   // Accessible
      26             :   virtual void Shutdown() override;
      27             :   virtual a11y::role NativeRole() override;
      28             :   virtual uint64_t NativeState() override;
      29             :   virtual Relation RelationByType(RelationType aType) override;
      30             : 
      31             :   void UpdateLabelValue(const nsString& aValue);
      32             : 
      33             : protected:
      34             :   // Accessible
      35             :   virtual ENameValueFlag NativeName(nsString& aName) override;
      36             : 
      37             : private:
      38             :   RefPtr<XULLabelTextLeafAccessible> mValueTextLeaf;
      39             : };
      40             : 
      41             : inline XULLabelAccessible*
      42           0 : Accessible::AsXULLabel()
      43             : {
      44           0 :   return IsXULLabel() ? static_cast<XULLabelAccessible*>(this) : nullptr;
      45             : }
      46             : 
      47             : 
      48             : /**
      49             :  * Used to implement text interface on XUL label accessible in case when text
      50             :  * is provided by @value attribute (no underlying text frame).
      51             :  */
      52             : class XULLabelTextLeafAccessible final : public TextLeafAccessibleWrap
      53             : {
      54             : public:
      55           0 :   XULLabelTextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc) :
      56           0 :     TextLeafAccessibleWrap(aContent, aDoc)
      57           0 :   { mStateFlags |= eSharedNode; }
      58             : 
      59           0 :   virtual ~XULLabelTextLeafAccessible() { }
      60             : 
      61             :   // Accessible
      62             :   virtual a11y::role NativeRole() override;
      63             :   virtual uint64_t NativeState() override;
      64             : };
      65             : 
      66             : 
      67             : /**
      68             :  * Used for XUL tooltip element.
      69             :  */
      70           0 : class XULTooltipAccessible : public LeafAccessible
      71             : {
      72             : 
      73             : public:
      74             :   XULTooltipAccessible(nsIContent* aContent, DocAccessible* aDoc);
      75             : 
      76             :   // Accessible
      77             :   virtual a11y::role NativeRole() override;
      78             :   virtual uint64_t NativeState() override;
      79             : };
      80             : 
      81             : class XULLinkAccessible : public XULLabelAccessible
      82             : {
      83             : 
      84             : public:
      85             :   XULLinkAccessible(nsIContent* aContent, DocAccessible* aDoc);
      86             : 
      87             :   // Accessible
      88             :   virtual void Value(nsString& aValue) override;
      89             :   virtual a11y::role NativeRole() override;
      90             :   virtual uint64_t NativeLinkState() const override;
      91             : 
      92             :   // ActionAccessible
      93             :   virtual uint8_t ActionCount() override;
      94             :   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
      95             :   virtual bool DoAction(uint8_t aIndex) override;
      96             : 
      97             :   // HyperLinkAccessible
      98             :   virtual bool IsLink() override;
      99             :   virtual uint32_t StartOffset() override;
     100             :   virtual uint32_t EndOffset() override;
     101             :   virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
     102             : 
     103             : protected:
     104             :   virtual ~XULLinkAccessible();
     105             : 
     106             :   // Accessible
     107             :   virtual ENameValueFlag NativeName(nsString& aName) override;
     108             : 
     109             :   enum { eAction_Jump = 0 };
     110             : 
     111             : };
     112             : 
     113             : } // namespace a11y
     114             : } // namespace mozilla
     115             : 
     116             : #endif

Generated by: LCOV version 1.13