X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FClipboard.h;h=92e7167708ae9a50adc8093726bb1af1f024f5a6;hb=0425500be524ed87baebea34a5e8b6e58d718bbc;hp=0db784c9268c8e9e19fe7bd87bf0b75ef085dfa0;hpb=0ee7c6e283bb6a592f6f86a2c45d34c60ba4026e;p=lyx.git diff --git a/src/frontends/Clipboard.h b/src/frontends/Clipboard.h index 0db784c926..92e7167708 100644 --- a/src/frontends/Clipboard.h +++ b/src/frontends/Clipboard.h @@ -14,8 +14,13 @@ #ifndef BASE_CLIPBOARD_H #define BASE_CLIPBOARD_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; };