blob: 37b1fdd8a06cf18eea06b90466e020ca2ab7aaad [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:
commit-queue@webkit.org5a108ce2010-09-21 18:50:16 +000038 static PassRefPtr<ClipboardWx> create(ClipboardAccessPolicy policy, ClipboardType clipboardType)
darin@apple.comd5ceaf82008-06-15 03:41:32 +000039 {
commit-queue@webkit.org5a108ce2010-09-21 18:50:16 +000040 return adoptRef(new ClipboardWx(policy, clipboardType));
darin@apple.comd5ceaf82008-06-15 03:41:32 +000041 }
42
kevino451c0992007-04-14 22:33:17 +000043 void clearData(const String& type);
44 void clearAllData();
dcheng@chromium.org5c1c9722012-02-29 01:31:55 +000045 String getData(const String& type) const;
kevino451c0992007-04-14 22:33:17 +000046 bool setData(const String& type, const String& data);
47
48 // extensions beyond IE's API
kling@webkit.org5bbe9a82012-10-06 19:14:11 +000049 virtual ListHashSet<String> types() const;
eric@webkit.org31c121c2009-06-25 09:24:33 +000050 virtual PassRefPtr<FileList> files() const;
kevino451c0992007-04-14 22:33:17 +000051
52 IntPoint dragLocation() const;
53 CachedImage* dragImage() const;
54 void setDragImage(CachedImage*, const IntPoint&);
55 Node* dragImageElement();
56 void setDragImageElement(Node*, const IntPoint&);
57
58 virtual DragImageRef createDragImage(IntPoint& dragLoc) const;
59 virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
60 virtual void writeURL(const KURL&, const String&, Frame*);
61 virtual void writeRange(Range*, Frame*);
barraclough@apple.comd218c2d2010-08-10 00:38:14 +000062 virtual void writePlainText(const WTF::String&);
kevino@webkit.org7145e8892010-02-04 22:12:02 +000063
kevino451c0992007-04-14 22:33:17 +000064
65 virtual bool hasData();
darin@apple.comd5ceaf82008-06-15 03:41:32 +000066
67 private:
commit-queue@webkit.org5a108ce2010-09-21 18:50:16 +000068 ClipboardWx(ClipboardAccessPolicy, ClipboardType);
kevino451c0992007-04-14 22:33:17 +000069 };
70}
71
72#endif // ClipboardWx_h