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 "nsIDOMXULSelectCntrlEl.h"
11 #include "XULSelectControlAccessible.h"
17 * Used for XUL menu, menuitem elements.
19 class XULMenuitemAccessible
: public AccessibleWrap
22 enum { eAction_Click
= 0 };
24 XULMenuitemAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
);
27 virtual void Description(nsString
& aDescription
) MOZ_OVERRIDE
;
28 virtual a11y::role
NativeRole() MOZ_OVERRIDE
;
29 virtual uint64_t NativeState() MOZ_OVERRIDE
;
30 virtual uint64_t NativeInteractiveState() const MOZ_OVERRIDE
;
31 virtual int32_t GetLevelInternal() MOZ_OVERRIDE
;
33 virtual bool CanHaveAnonChildren() MOZ_OVERRIDE
;
36 virtual uint8_t ActionCount() MOZ_OVERRIDE
;
37 virtual void ActionNameAt(uint8_t aIndex
, nsAString
& aName
) MOZ_OVERRIDE
;
38 virtual bool DoAction(uint8_t aIndex
) MOZ_OVERRIDE
;
39 virtual KeyBinding
AccessKey() const MOZ_OVERRIDE
;
40 virtual KeyBinding
KeyboardShortcut() const MOZ_OVERRIDE
;
43 virtual bool IsActiveWidget() const MOZ_OVERRIDE
;
44 virtual bool AreItemsOperable() const MOZ_OVERRIDE
;
45 virtual Accessible
* ContainerWidget() const MOZ_OVERRIDE
;
49 virtual ENameValueFlag
NativeName(nsString
& aName
) MOZ_OVERRIDE
;
53 * Used for XUL menuseparator element.
55 class XULMenuSeparatorAccessible
: public XULMenuitemAccessible
58 XULMenuSeparatorAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
);
61 virtual a11y::role
NativeRole() MOZ_OVERRIDE
;
62 virtual uint64_t NativeState() MOZ_OVERRIDE
;
65 virtual uint8_t ActionCount() MOZ_OVERRIDE
;
66 virtual void ActionNameAt(uint8_t aIndex
, nsAString
& aName
) MOZ_OVERRIDE
;
67 virtual bool DoAction(uint8_t aIndex
) MOZ_OVERRIDE
;
71 virtual ENameValueFlag
NativeName(nsString
& aName
) MOZ_OVERRIDE
;
76 * Used for XUL menupopup and panel.
78 class XULMenupopupAccessible
: public XULSelectControlAccessible
81 XULMenupopupAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
);
84 virtual a11y::role
NativeRole() MOZ_OVERRIDE
;
85 virtual uint64_t NativeState() MOZ_OVERRIDE
;
88 virtual bool IsWidget() const MOZ_OVERRIDE
;
89 virtual bool IsActiveWidget() const MOZ_OVERRIDE
;
90 virtual bool AreItemsOperable() const MOZ_OVERRIDE
;
92 virtual Accessible
* ContainerWidget() const MOZ_OVERRIDE
;
96 virtual ENameValueFlag
NativeName(nsString
& aName
) MOZ_OVERRIDE
;
100 * Used for XUL menubar element.
102 class XULMenubarAccessible
: public AccessibleWrap
105 XULMenubarAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
);
108 virtual a11y::role
NativeRole() MOZ_OVERRIDE
;
111 virtual bool IsActiveWidget() const MOZ_OVERRIDE
;
112 virtual bool AreItemsOperable() const MOZ_OVERRIDE
;
113 virtual Accessible
* CurrentItem() MOZ_OVERRIDE
;
114 virtual void SetCurrentItem(Accessible
* aItem
) MOZ_OVERRIDE
;
118 virtual ENameValueFlag
NativeName(nsString
& aName
) MOZ_OVERRIDE
;
122 } // namespace mozilla