]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/GuiClipboard.h
5e7e455f06bcb5eb53cf614ed2ed42027a9c6e5e
[lyx.git] / src / frontends / qt4 / GuiClipboard.h
1 // -*- C++ -*-
2 /**
3  * \file GuiClipboard.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author unknown
8  * \author John Levon
9  * \author Abdelrazak Younes
10  *
11  * Full author contact details are available in file CREDITS.
12  */
13
14 #ifndef GUICLIPBOARD_H
15 #define GUICLIPBOARD_H
16
17 #include "frontends/Clipboard.h"
18
19 #include <QObject>
20
21 namespace lyx {
22 namespace frontend {
23
24 class QWindowsMimeMetafile;
25
26 /**
27  * The Qt4 version of the Clipboard.
28  */
29 class GuiClipboard: public QObject, public Clipboard
30 {
31         Q_OBJECT
32 public:
33         GuiClipboard();
34         virtual ~GuiClipboard();
35
36         /** Clipboard overloaded methods
37          */
38         //@{
39         std::string const getAsLyX() const;
40         FileName getAsGraphics(Cursor const & cur, GraphicsType type) const;
41         docstring const getAsText() const;
42         void put(std::string const & lyx, docstring const & text);
43         bool hasLyXContents() const;
44         bool hasGraphicsContents(GraphicsType type = AnyGraphicsType) const;
45         bool isInternal() const;
46         bool hasInternal() const;
47         bool empty() const;
48         //@}
49
50         FileName getPastedGraphicsFileName(Cursor const & cur,
51                 Clipboard::GraphicsType & type) const;
52
53 private Q_SLOTS:
54         void on_dataChanged();
55
56 private:
57         /// WMF Mime handler for Windows clipboard.
58         QWindowsMimeMetafile * wmf_mime_;
59         bool text_clipboard_empty_;
60         bool has_lyx_contents_;
61         bool has_graphics_contents_;
62 };
63
64 } // namespace frontend
65 } // namespace lyx
66
67 #endif // GUICLIPBOARD_H