]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Clipboard.h
Set window title correctly at start up
[lyx.git] / src / frontends / Clipboard.h
index 3381475cbce95123d80cfcd6c2a3c0f02966135a..92e7167708ae9a50adc8093726bb1af1f024f5a6 100644 (file)
 #ifndef BASE_CLIPBOARD_H
 #define BASE_CLIPBOARD_H
 
-#include "support/docstring.h"
+#include "Cursor.h"
+
+#include "support/FileName.h"
+#include "support/strfwd.h"
+
+using lyx::support::FileName;
 
 namespace lyx {
 namespace frontend {
@@ -27,6 +32,16 @@ class Clipboard
 public:
        virtual ~Clipboard() {}
 
+       enum GraphicsType {
+               PdfGraphicsType,
+               PngGraphicsType,
+               JpegGraphicsType,
+               LinkBackGraphicsType,
+               EmfGraphicsType,
+               WmfGraphicsType,
+               AnyGraphicsType
+       };
+
        /**
         * Get the system clipboard contents. The format is as written in
         * .lyx files (may even be an older version than ours if it comes
@@ -38,6 +53,9 @@ public:
        virtual std::string const getAsLyX() const = 0;
        /// Get the contents of the window system clipboard in plain text format.
        virtual docstring const getAsText() const = 0;
+       /// Get the contents of the window system clipboard as graphics file.
+       virtual FileName getAsGraphics(Cursor const & cur, GraphicsType type) const = 0;
+       
        /**
         * Fill the system clipboard. The format of \p lyx is as written in
         * .lyx files, the format of \p text is plain text.
@@ -51,13 +69,20 @@ public:
 
        /// Does the clipboard contain LyX contents?
        virtual bool hasLyXContents() const = 0;
+       /// Does the clipboard contain text contents?
+       virtual bool hasTextContents() const = 0;
+       /// Does the clipboard contain graphics contents of a certain type?
+       virtual bool hasGraphicsContents(GraphicsType type = AnyGraphicsType) const = 0;
        /// state of clipboard.
        /// \returns true if the system clipboard has been set within LyX
        /// (document contents, dialogs count as external here).
        virtual bool isInternal() const = 0;
+       /// \returns true if the OS has the concept of clipboard ownership,
+       /// which is crucial for our concept of internal clipboard.
+       virtual bool hasInternal() const = 0;
        /// Is the clipboard empty?
        /// \returns true if both the LyX and the plaintext versions of the
-       /// clipboard are empty.
+       /// clipboard are empty, and no supported graphics format is available.
        virtual bool empty() const = 0;
 };