Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_a11y_XULSelectControlAccessible_h__
8 : #define mozilla_a11y_XULSelectControlAccessible_h__
9 :
10 : #include "AccessibleWrap.h"
11 : #include "nsIDOMXULSelectCntrlEl.h"
12 :
13 : namespace mozilla {
14 : namespace a11y {
15 :
16 : /**
17 : * The basic implementation of accessible selection for XUL select controls.
18 : */
19 : class XULSelectControlAccessible : public AccessibleWrap
20 : {
21 : public:
22 : XULSelectControlAccessible(nsIContent* aContent, DocAccessible* aDoc);
23 0 : virtual ~XULSelectControlAccessible() {}
24 :
25 : // Accessible
26 : virtual void Shutdown() override;
27 :
28 : // SelectAccessible
29 : virtual void SelectedItems(nsTArray<Accessible*>* aItems) override;
30 : virtual uint32_t SelectedItemCount() override;
31 : virtual Accessible* GetSelectedItem(uint32_t aIndex) override;
32 : virtual bool IsItemSelected(uint32_t aIndex) override;
33 : virtual bool AddItemToSelection(uint32_t aIndex) override;
34 : virtual bool RemoveItemFromSelection(uint32_t aIndex) override;
35 : virtual bool SelectAll() override;
36 : virtual bool UnselectAll() override;
37 :
38 : // Widgets
39 : virtual Accessible* CurrentItem() override;
40 : virtual void SetCurrentItem(Accessible* aItem) override;
41 :
42 : protected:
43 : // nsIDOMXULMultiSelectControlElement inherits from this, so we'll always have
44 : // one of these if the widget is valid and not defunct
45 : nsCOMPtr<nsIDOMXULSelectControlElement> mSelectControl;
46 : };
47 :
48 : } // namespace a11y
49 : } // namespace mozilla
50 :
51 : #endif
52 :
|