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

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; 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_XULListboxAccessible_h__
       7             : #define mozilla_a11y_XULListboxAccessible_h__
       8             : 
       9             : #include "BaseAccessibles.h"
      10             : #include "TableAccessible.h"
      11             : #include "TableCellAccessible.h"
      12             : #include "xpcAccessibleTable.h"
      13             : #include "xpcAccessibleTableCell.h"
      14             : #include "XULMenuAccessible.h"
      15             : #include "XULSelectControlAccessible.h"
      16             : 
      17             : namespace mozilla {
      18             : namespace a11y {
      19             : 
      20             : /**
      21             :  * XULColumAccessible are accessible for list and tree columns elements
      22             :  * (xul:treecols and xul:listcols).
      23             :  */
      24           0 : class XULColumAccessible : public AccessibleWrap
      25             : {
      26             : public:
      27             :   XULColumAccessible(nsIContent* aContent, DocAccessible* aDoc);
      28             : 
      29             :   // Accessible
      30             :   virtual a11y::role NativeRole() override;
      31             :   virtual uint64_t NativeState() override;
      32             : };
      33             : 
      34             : /**
      35             :  * XULColumnItemAccessible are accessibles for list and tree column elements
      36             :  * (xul:listcol and xul:treecol).
      37             :  */
      38           0 : class XULColumnItemAccessible : public LeafAccessible
      39             : {
      40             : public:
      41             :   XULColumnItemAccessible(nsIContent* aContent, DocAccessible* aDoc);
      42             : 
      43             :   // Accessible
      44             :   virtual a11y::role NativeRole() override;
      45             :   virtual uint64_t NativeState() override;
      46             : 
      47             :   // ActionAccessible
      48             :   virtual uint8_t ActionCount() override;
      49             :   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
      50             :   virtual bool DoAction(uint8_t aIndex) override;
      51             : 
      52             :   enum { eAction_Click = 0 };
      53             : };
      54             : 
      55             : /*
      56             :  * A class the represents the XUL Listbox widget.
      57             :  */
      58             : class XULListboxAccessible : public XULSelectControlAccessible,
      59             :                              public TableAccessible
      60             : {
      61             : public:
      62             :   XULListboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
      63             : 
      64             :   // TableAccessible
      65             :   virtual uint32_t ColCount() override;
      66             :   virtual uint32_t RowCount() override;
      67             :   virtual Accessible* CellAt(uint32_t aRowIndex, uint32_t aColumnIndex) override;
      68             :   virtual bool IsColSelected(uint32_t aColIdx) override;
      69             :   virtual bool IsRowSelected(uint32_t aRowIdx) override;
      70             :   virtual bool IsCellSelected(uint32_t aRowIdx, uint32_t aColIdx) override;
      71             :   virtual uint32_t SelectedCellCount() override;
      72             :   virtual uint32_t SelectedColCount() override;
      73             :   virtual uint32_t SelectedRowCount() override;
      74             :   virtual void SelectedCells(nsTArray<Accessible*>* aCells) override;
      75             :   virtual void SelectedCellIndices(nsTArray<uint32_t>* aCells) override;
      76             :   virtual void SelectedColIndices(nsTArray<uint32_t>* aCols) override;
      77             :   virtual void SelectedRowIndices(nsTArray<uint32_t>* aRows) override;
      78             :   virtual void SelectRow(uint32_t aRowIdx) override;
      79             :   virtual void UnselectRow(uint32_t aRowIdx) override;
      80           0 :   virtual Accessible* AsAccessible() override { return this; }
      81             : 
      82             :   // Accessible
      83             :   virtual void Value(nsString& aValue) override;
      84           0 :   virtual TableAccessible* AsTable() override { return this; }
      85             :   virtual a11y::role NativeRole() override;
      86             :   virtual uint64_t NativeState() override;
      87             : 
      88             :   // Widgets
      89             :   virtual bool IsWidget() const override;
      90             :   virtual bool IsActiveWidget() const override;
      91             :   virtual bool AreItemsOperable() const override;
      92             : 
      93             :   virtual Accessible* ContainerWidget() const override;
      94             : 
      95             : protected:
      96           0 :   virtual ~XULListboxAccessible() {}
      97             : 
      98           0 :   bool IsMulticolumn() { return ColCount() > 1; }
      99             : };
     100             : 
     101             : /**
     102             :   * Listitems -- used in listboxes
     103             :   */
     104             : class XULListitemAccessible : public XULMenuitemAccessible
     105             : {
     106             : public:
     107             :   enum { eAction_Click = 0 };
     108             : 
     109             :   NS_DECL_ISUPPORTS_INHERITED
     110             : 
     111             :   XULListitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
     112             : 
     113             :   // Accessible
     114             :   virtual void Description(nsString& aDesc) override;
     115             :   virtual a11y::role NativeRole() override;
     116             :   virtual uint64_t NativeState() override;
     117             :   virtual uint64_t NativeInteractiveState() const override;
     118             : 
     119             :   // Actions
     120             :   virtual void ActionNameAt(uint8_t index, nsAString& aName) override;
     121             : 
     122             :   // Widgets
     123             :   virtual Accessible* ContainerWidget() const override;
     124             : 
     125             : protected:
     126             :   virtual ~XULListitemAccessible();
     127             : 
     128             :   // Accessible
     129             :   virtual ENameValueFlag NativeName(nsString& aName) override;
     130             : 
     131             :   // XULListitemAccessible
     132             : 
     133             :   /**
     134             :    * Return listbox accessible for the listitem.
     135             :    */
     136             :   Accessible* GetListAccessible() const;
     137             : 
     138             : private:
     139             :   bool mIsCheckbox;
     140             : };
     141             : 
     142             : /**
     143             :  * Class represents xul:listcell.
     144             :  */
     145             : class XULListCellAccessible : public HyperTextAccessibleWrap,
     146             :                               public TableCellAccessible
     147             : {
     148             : public:
     149             :   XULListCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
     150             : 
     151             :   // nsISupports
     152             :   NS_DECL_ISUPPORTS_INHERITED
     153             : 
     154             :   // Accessible
     155           0 :   virtual TableCellAccessible* AsTableCell() override { return this; }
     156             :   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
     157             :   virtual a11y::role NativeRole() override;
     158             : 
     159             :   // TableCellAccessible
     160             :   virtual TableAccessible* Table() const override;
     161             :   virtual uint32_t ColIdx() const override;
     162             :   virtual uint32_t RowIdx() const override;
     163             :   virtual void ColHeaderCells(nsTArray<Accessible*>* aHeaderCells) override;
     164             :   virtual bool Selected() override;
     165             : 
     166             : protected:
     167           0 :   virtual ~XULListCellAccessible() {}
     168             : };
     169             : 
     170             : } // namespace a11y
     171             : } // namespace mozilla
     172             : 
     173             : #endif

Generated by: LCOV version 1.13