accessible/src/xul/XULTabAccessible.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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_XULTabAccessible_h__
     7 #define mozilla_a11y_XULTabAccessible_h__
     9 // NOTE: alphabetically ordered
    10 #include "XULMenuAccessible.h"
    11 #include "XULSelectControlAccessible.h"
    13 namespace mozilla {
    14 namespace a11y {
    16 /**
    17  * An individual tab, xul:tab element.
    18  */
    19 class XULTabAccessible : public AccessibleWrap
    20 {
    21 public:
    22   enum { eAction_Switch = 0 };
    24   XULTabAccessible(nsIContent* aContent, DocAccessible* aDoc);
    26   // nsIAccessible
    27   NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
    28   NS_IMETHOD DoAction(uint8_t index);
    30   // Accessible
    31   virtual a11y::role NativeRole();
    32   virtual uint64_t NativeState();
    33   virtual uint64_t NativeInteractiveState() const;
    34   virtual Relation RelationByType(RelationType aType) MOZ_OVERRIDE;
    36   // ActionAccessible
    37   virtual uint8_t ActionCount();
    38 };
    41 /**
    42  * A container of tab objects, xul:tabs element.
    43  */
    44 class XULTabsAccessible : public XULSelectControlAccessible
    45 {
    46 public:
    47   XULTabsAccessible(nsIContent* aContent, DocAccessible* aDoc);
    49   // Accessible
    50   virtual void Value(nsString& aValue);
    51   virtual a11y::role NativeRole();
    53   // ActionAccessible
    54   virtual uint8_t ActionCount();
    56 protected:
    57   // Accessible
    58   virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
    59 };
    62 /**
    63  * A container of tab panels, xul:tabpanels element.
    64  */
    65 class XULTabpanelsAccessible : public AccessibleWrap
    66 {
    67 public:
    68   XULTabpanelsAccessible(nsIContent* aContent, DocAccessible* aDoc) :
    69     AccessibleWrap(aContent, aDoc)
    70     { mType = eXULTabpanelsType; }
    72   // Accessible
    73   virtual a11y::role NativeRole();
    74 };
    77 /**
    78  * A tabpanel object, child elements of xul:tabpanels element.
    79  *
    80  * XXX: we need to move the class logic into generic class since
    81  * for example we do not create instance of this class for XUL textbox used as
    82  * a tabpanel.
    83  */
    84 class XULTabpanelAccessible : public AccessibleWrap
    85 {
    86 public:
    87   XULTabpanelAccessible(nsIContent* aContent, DocAccessible* aDoc);
    89   // Accessible
    90   virtual a11y::role NativeRole();
    91   virtual Relation RelationByType(RelationType aType) MOZ_OVERRIDE;
    92 };
    94 } // namespace a11y
    95 } // namespace mozilla
    97 #endif

mercurial