Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=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 : #include "nsDocShellTransferableHooks.h"
8 : #include "nsIClipboardDragDropHooks.h"
9 : #include "nsIClipboardDragDropHookList.h"
10 : #include "nsArrayEnumerator.h"
11 :
12 0 : nsTransferableHookData::nsTransferableHookData()
13 : {
14 0 : }
15 :
16 0 : nsTransferableHookData::~nsTransferableHookData()
17 : {
18 0 : }
19 :
20 0 : NS_IMPL_ISUPPORTS(nsTransferableHookData, nsIClipboardDragDropHookList)
21 :
22 : NS_IMETHODIMP
23 0 : nsTransferableHookData::AddClipboardDragDropHooks(
24 : nsIClipboardDragDropHooks* aOverrides)
25 : {
26 0 : NS_ENSURE_ARG(aOverrides);
27 :
28 : // don't let a hook be added more than once
29 0 : if (mHookList.IndexOfObject(aOverrides) == -1) {
30 0 : if (!mHookList.AppendObject(aOverrides)) {
31 0 : return NS_ERROR_FAILURE;
32 : }
33 : }
34 :
35 0 : return NS_OK;
36 : }
37 :
38 : NS_IMETHODIMP
39 0 : nsTransferableHookData::RemoveClipboardDragDropHooks(
40 : nsIClipboardDragDropHooks* aOverrides)
41 : {
42 0 : NS_ENSURE_ARG(aOverrides);
43 0 : if (!mHookList.RemoveObject(aOverrides)) {
44 0 : return NS_ERROR_FAILURE;
45 : }
46 :
47 0 : return NS_OK;
48 : }
49 :
50 : NS_IMETHODIMP
51 0 : nsTransferableHookData::GetHookEnumerator(nsISimpleEnumerator** aResult)
52 : {
53 0 : return NS_NewArrayEnumerator(aResult, mHookList);
54 : }
|