accessible/xpcom/xpcAccessibleSelectable.h
author Masayuki Nakano <masayuki@d-toybox.com>
Mon, 26 Mar 2018 23:56:53 +0900
changeset 463914 222afb91d7d3e0338965dea63536dd28f5348811
parent 456795 d864fe04c3eae42674b4265d8e3aa6eaef4c3172
child 505383 6f3709b3878117466168c40affa7bca0b60cf75b
permissions -rw-r--r--
Bug 1448876 - Get rid of nsIClipboardDragDropHooks and nsIClipboardDragDropHookList interfaces r=bz nsIClipboardDragDropHooks and nsIClipboardDragDropHookList allow XUL apps to customize drag and drop operation and paste operation. However, this feature was used only by ChatZilla and it doesn't work on Gecko anymore. So, we can get rid of them from our tree. MozReview-Commit-ID: Ibs3V1gI8Ry

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_a11y_xpcAccessibleSelectable_h_
#define mozilla_a11y_xpcAccessibleSelectable_h_

#include "nsIAccessibleSelectable.h"

class nsIAccessible;
class nsIArray;

namespace mozilla {
namespace a11y {

class Accessible;

/**
 * XPCOM nsIAccessibleSelectable inteface implementation, used by
 * xpcAccessibleGeneric class.
 */
class xpcAccessibleSelectable : public nsIAccessibleSelectable
{
public:
  // nsIAccessibleSelectable
  NS_IMETHOD GetSelectedItems(nsIArray** aSelectedItems) final;
  NS_IMETHOD GetSelectedItemCount(uint32_t* aSelectedItemCount)
    final;
  NS_IMETHOD GetSelectedItemAt(uint32_t aIndex, nsIAccessible** aItem)
    final;
  NS_IMETHOD IsItemSelected(uint32_t aIndex, bool* aIsSelected)
    final;
  NS_IMETHOD AddItemToSelection(uint32_t aIndex) final;
  NS_IMETHOD RemoveItemFromSelection(uint32_t aIndex) final;
  NS_IMETHOD SelectAll(bool* aIsMultiSelect) final;
  NS_IMETHOD UnselectAll() final;

protected:
  xpcAccessibleSelectable() { }
  virtual ~xpcAccessibleSelectable() {}

private:
  xpcAccessibleSelectable(const xpcAccessibleSelectable&) = delete;
  xpcAccessibleSelectable& operator =(const xpcAccessibleSelectable&) = delete;

  Accessible* Intl();
};

} // namespace a11y
} // namespace mozilla

#endif