Bug 1890277: part 4) Add CSPParser support for the `trusted-types` directive, guarded...
[gecko.git] / accessible / xul / XULMenuAccessible.h
blob43d165d79814bcf15e7e97b67869e5c86a7136e0
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_XULMenuAccessible_h__
7 #define mozilla_a11y_XULMenuAccessible_h__
9 #include "AccessibleWrap.h"
10 #include "XULSelectControlAccessible.h"
12 namespace mozilla {
13 namespace a11y {
15 /**
16 * Used for XUL menu, menuitem elements.
18 class XULMenuitemAccessible : public AccessibleWrap {
19 public:
20 enum { eAction_Click = 0 };
22 XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
24 // LocalAccessible
25 virtual void Description(nsString& aDescription) const override;
26 virtual a11y::role NativeRole() const override;
27 virtual uint64_t NativeState() const override;
28 virtual uint64_t NativeInteractiveState() const override;
30 // ActionAccessible
31 virtual bool HasPrimaryAction() const override;
32 virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
33 virtual KeyBinding AccessKey() const override;
34 virtual KeyBinding KeyboardShortcut() const override;
36 // Widgets
37 virtual bool IsActiveWidget() const override;
38 virtual bool AreItemsOperable() const override;
39 virtual LocalAccessible* ContainerWidget() const override;
41 protected:
42 // LocalAccessible
43 virtual ENameValueFlag NativeName(nsString& aName) const override;
44 virtual int32_t GetLevel(bool aFast) const override;
47 /**
48 * Used for XUL menuseparator element.
50 class XULMenuSeparatorAccessible : public XULMenuitemAccessible {
51 public:
52 XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc);
54 // LocalAccessible
55 virtual a11y::role NativeRole() const override;
56 virtual uint64_t NativeState() const override;
58 // ActionAccessible
59 virtual bool HasPrimaryAction() const override;
61 protected:
62 // LocalAccessible
63 virtual ENameValueFlag NativeName(nsString& aName) const override;
66 /**
67 * Used for XUL menupopup and panel.
69 class XULMenupopupAccessible : public XULSelectControlAccessible {
70 public:
71 XULMenupopupAccessible(nsIContent* aContent, DocAccessible* aDoc);
73 // LocalAccessible
74 virtual a11y::role NativeRole() const override;
75 virtual uint64_t NativeState() const override;
77 // Widgets
78 virtual bool IsWidget() const override;
79 virtual bool IsActiveWidget() const override;
80 virtual bool AreItemsOperable() const override;
82 virtual LocalAccessible* ContainerWidget() const override;
84 protected:
85 // LocalAccessible
86 virtual ENameValueFlag NativeName(nsString& aName) const override;
89 /**
90 * Used for XUL menubar element.
92 class XULMenubarAccessible : public AccessibleWrap {
93 public:
94 XULMenubarAccessible(nsIContent* aContent, DocAccessible* aDoc);
96 // LocalAccessible
97 virtual a11y::role NativeRole() const override;
99 // Widget
100 virtual bool IsActiveWidget() const override;
101 virtual bool AreItemsOperable() const override;
102 virtual LocalAccessible* CurrentItem() const override;
103 virtual void SetCurrentItem(const LocalAccessible* aItem) override;
105 protected:
106 // LocalAccessible
107 virtual ENameValueFlag NativeName(nsString& aName) const override;
110 } // namespace a11y
111 } // namespace mozilla
113 #endif