accessible/src/xul/XULMenuAccessible.h

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:72cf6c3216a5
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 "nsIDOMXULSelectCntrlEl.h"
11 #include "XULSelectControlAccessible.h"
12
13 namespace mozilla {
14 namespace a11y {
15
16 /**
17 * Used for XUL menu, menuitem elements.
18 */
19 class XULMenuitemAccessible : public AccessibleWrap
20 {
21 public:
22 enum { eAction_Click = 0 };
23
24 XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
25
26 // nsIAccessible
27 NS_IMETHOD DoAction(uint8_t index);
28 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
29
30 // Accessible
31 virtual void Description(nsString& aDescription);
32 virtual a11y::role NativeRole();
33 virtual uint64_t NativeState();
34 virtual uint64_t NativeInteractiveState() const;
35 virtual int32_t GetLevelInternal();
36
37 virtual bool CanHaveAnonChildren();
38
39 // ActionAccessible
40 virtual uint8_t ActionCount();
41 virtual KeyBinding AccessKey() const;
42 virtual KeyBinding KeyboardShortcut() const;
43
44 // Widgets
45 virtual bool IsActiveWidget() const;
46 virtual bool AreItemsOperable() const;
47 virtual Accessible* ContainerWidget() const;
48
49 protected:
50 // Accessible
51 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
52 };
53
54 /**
55 * Used for XUL menuseparator element.
56 */
57 class XULMenuSeparatorAccessible : public XULMenuitemAccessible
58 {
59 public:
60 XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc);
61
62 // nsIAccessible
63 NS_IMETHOD DoAction(uint8_t index);
64 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
65
66 // Accessible
67 virtual a11y::role NativeRole();
68 virtual uint64_t NativeState();
69
70 // ActionAccessible
71 virtual uint8_t ActionCount();
72
73 protected:
74 // Accessible
75 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
76 };
77
78
79 /**
80 * Used for XUL menupopup and panel.
81 */
82 class XULMenupopupAccessible : public XULSelectControlAccessible
83 {
84 public:
85 XULMenupopupAccessible(nsIContent* aContent, DocAccessible* aDoc);
86
87 // Accessible
88 virtual a11y::role NativeRole();
89 virtual uint64_t NativeState();
90
91 // Widgets
92 virtual bool IsWidget() const;
93 virtual bool IsActiveWidget() const;
94 virtual bool AreItemsOperable() const;
95
96 virtual Accessible* ContainerWidget() const;
97
98 protected:
99 // Accessible
100 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
101 };
102
103 /**
104 * Used for XUL menubar element.
105 */
106 class XULMenubarAccessible : public AccessibleWrap
107 {
108 public:
109 XULMenubarAccessible(nsIContent* aContent, DocAccessible* aDoc);
110
111 // Accessible
112 virtual a11y::role NativeRole();
113
114 // Widget
115 virtual bool IsActiveWidget() const;
116 virtual bool AreItemsOperable() const;
117 virtual Accessible* CurrentItem();
118 virtual void SetCurrentItem(Accessible* aItem);
119
120 protected:
121 // Accessible
122 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
123 };
124
125 } // namespace a11y
126 } // namespace mozilla
127
128 #endif

mercurial