tor-browser

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

XULMenuAccessible.h (3387B)


      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_XULMenuAccessible_h__
      7 #define mozilla_a11y_XULMenuAccessible_h__
      8 
      9 #include "AccessibleWrap.h"
     10 #include "XULSelectControlAccessible.h"
     11 
     12 namespace mozilla {
     13 namespace a11y {
     14 
     15 /**
     16 * Used for XUL menu, menuitem elements.
     17 */
     18 class XULMenuitemAccessible : public AccessibleWrap {
     19 public:
     20  enum { eAction_Click = 0 };
     21 
     22  XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
     23 
     24  // LocalAccessible
     25  virtual ENameValueFlag DirectName(nsString& aName) const override;
     26  virtual EDescriptionValueFlag Description(
     27      nsString& aDescription) const override;
     28  virtual a11y::role NativeRole() const override;
     29  virtual uint64_t NativeState() const override;
     30  virtual uint64_t NativeInteractiveState() const override;
     31  virtual int32_t GetLevel(bool aFast) const override;
     32 
     33  // ActionAccessible
     34  virtual bool HasPrimaryAction() const override;
     35  virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
     36  virtual KeyBinding AccessKey() const override;
     37  virtual KeyBinding KeyboardShortcut() const override;
     38 
     39  // Widgets
     40  virtual bool IsActiveWidget() const override;
     41  virtual bool AreItemsOperable() const override;
     42  virtual LocalAccessible* ContainerWidget() const override;
     43 
     44 protected:
     45  // LocalAccessible
     46  virtual ENameValueFlag NativeName(nsString& aName) const override;
     47 };
     48 
     49 /**
     50 * Used for XUL menuseparator element.
     51 */
     52 class XULMenuSeparatorAccessible : public XULMenuitemAccessible {
     53 public:
     54  XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc);
     55 
     56  // LocalAccessible
     57  virtual a11y::role NativeRole() const override;
     58  virtual uint64_t NativeState() const override;
     59 
     60  // ActionAccessible
     61  virtual bool HasPrimaryAction() const override;
     62 
     63 protected:
     64  // LocalAccessible
     65  virtual ENameValueFlag NativeName(nsString& aName) const override;
     66 };
     67 
     68 /**
     69 * Used for XUL menupopup and panel.
     70 */
     71 class XULMenupopupAccessible : public XULSelectControlAccessible {
     72 public:
     73  XULMenupopupAccessible(nsIContent* aContent, DocAccessible* aDoc);
     74 
     75  // LocalAccessible
     76  virtual a11y::role NativeRole() const override;
     77  virtual uint64_t NativeState() const override;
     78 
     79  // Widgets
     80  virtual bool IsWidget() const override;
     81  virtual bool IsActiveWidget() const override;
     82  virtual bool AreItemsOperable() const override;
     83 
     84  virtual LocalAccessible* ContainerWidget() const override;
     85 
     86 protected:
     87  // LocalAccessible
     88  virtual ENameValueFlag NativeName(nsString& aName) const override;
     89 };
     90 
     91 /**
     92 * Used for XUL menubar element.
     93 */
     94 class XULMenubarAccessible : public AccessibleWrap {
     95 public:
     96  XULMenubarAccessible(nsIContent* aContent, DocAccessible* aDoc);
     97 
     98  // LocalAccessible
     99  virtual a11y::role NativeRole() const override;
    100 
    101  // Widget
    102  virtual bool IsActiveWidget() const override;
    103  virtual bool AreItemsOperable() const override;
    104  virtual LocalAccessible* CurrentItem() const override;
    105  virtual void SetCurrentItem(const LocalAccessible* aItem) override;
    106 
    107 protected:
    108  // LocalAccessible
    109  virtual ENameValueFlag NativeName(nsString& aName) const override;
    110 };
    111 
    112 }  // namespace a11y
    113 }  // namespace mozilla
    114 
    115 #endif