blob: 90b7894b3c4fc3ea1012ca9d9c58010efe118bc7 [file] [log] [blame]
kevino451c0992007-04-14 22:33:17 +00001/*
2 * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef ClipboardWx_h
27#define ClipboardWx_h
28
29#include "Clipboard.h"
30
31namespace WebCore {
32
33 class CachedImage;
34
35 // State available during IE's events for drag and drop and copy/paste
36 class ClipboardWx : public Clipboard {
37 public:
38 ClipboardWx(ClipboardAccessPolicy policy, bool forDragging);
39 ~ClipboardWx() { }
40
41 void clearData(const String& type);
42 void clearAllData();
43 String getData(const String& type, bool& success) const;
44 bool setData(const String& type, const String& data);
45
46 // extensions beyond IE's API
47 HashSet<String> types() const;
48
49 IntPoint dragLocation() const;
50 CachedImage* dragImage() const;
51 void setDragImage(CachedImage*, const IntPoint&);
52 Node* dragImageElement();
53 void setDragImageElement(Node*, const IntPoint&);
54
55 virtual DragImageRef createDragImage(IntPoint& dragLoc) const;
56 virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
57 virtual void writeURL(const KURL&, const String&, Frame*);
58 virtual void writeRange(Range*, Frame*);
59
60 virtual bool hasData();
61 };
62}
63
64#endif // ClipboardWx_h