aboutsummaryrefslogtreecommitdiff
path: root/common/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/system.h')
-rw-r--r--common/system.h93
1 files changed, 92 insertions, 1 deletions
diff --git a/common/system.h b/common/system.h
index 6d185d3075..eb9a39bbdf 100644
--- a/common/system.h
+++ b/common/system.h
@@ -314,7 +314,23 @@ public:
*
* This feature has no associated state.
*/
- kFeatureDisplayLogFile
+ kFeatureDisplayLogFile,
+
+ /**
+ * The presence of this feature indicates whether the hasTextInClipboard()
+ * and getTextFromClipboard() calls are supported.
+ *
+ * This feature has no associated state.
+ */
+ kFeatureClipboardSupport,
+
+ /**
+ * The presence of this feature indicates whether the openUrl()
+ * call is supported.
+ *
+ * This feature has no associated state.
+ */
+ kFeatureOpenUrl
};
/**
@@ -1086,6 +1102,45 @@ public:
virtual void displayMessageOnOSD(const char *msg) = 0;
/**
+ * Blit a bitmap to the 'on screen display'.
+ *
+ * If the current pixel format has one byte per pixel, the graphics data
+ * uses 8 bits per pixel, using the palette specified via setPalette.
+ * If more than one byte per pixel is in use, the graphics data uses the
+ * pixel format returned by getScreenFormat.
+ *
+ * @param buf the buffer containing the graphics data source
+ * @param pitch the pitch of the buffer (number of bytes in a scanline)
+ * @param x the x coordinate of the destination rectangle
+ * @param y the y coordinate of the destination rectangle
+ * @param w the width of the destination rectangle
+ * @param h the height of the destination rectangle
+ *
+ * @note The specified destination rectangle must be completly contained
+ * in the visible screen space, and must be non-empty. If not, a
+ * backend may or may not perform clipping, trigger an assert or
+ * silently corrupt memory.
+ *
+ * @see updateScreen
+ * @see getScreenFormat
+ * @see copyRectToScreen
+ */
+
+ virtual void copyRectToOSD(const void *buf, int pitch, int x, int y, int w, int h) = 0;
+
+ /**
+ * Clears 'on screen display' from everything drawn on it.
+ */
+
+ virtual void clearOSD() = 0;
+
+ /**
+ * Returns 'on screen display' pixel format.
+ */
+
+ virtual Graphics::PixelFormat getOSDFormat() = 0;
+
+ /**
* Return the SaveFileManager, used to store and load savestates
* and other modifiable persistent game data. For more information,
* refer to the SaveFileManager documentation.
@@ -1200,6 +1255,42 @@ public:
virtual bool displayLogFile() { return false; }
/**
+ * Returns whether there is text available in the clipboard.
+ *
+ * The kFeatureClipboardSupport feature flag can be used to
+ * test whether this call has been implemented by the active
+ * backend.
+ *
+ * @return true if there is text in the clipboard, false otherwise
+ */
+ virtual bool hasTextInClipboard() { return false; }
+
+ /**
+ * Returns clipboard contents as a String.
+ *
+ * The kFeatureClipboardSupport feature flag can be used to
+ * test whether this call has been implemented by the active
+ * backend.
+ *
+ * @return clipboard contents ("" if hasTextInClipboard() == false)
+ */
+ virtual Common::String getTextFromClipboard() { return ""; }
+
+ /**
+ * Open the given Url in the default browser (if available on the target
+ * system).
+ *
+ * @return true on success, false otherwise.
+ *
+ * @note It is up to the backend to ensure that the system is in a state
+ * that allows the user to actually see the web page. This might for
+ * example require leaving fullscreen mode.
+ *
+ * @parem url the URL to open
+ */
+ virtual bool openUrl(const Common::String &url) {return false; }
+
+ /**
* Returns the locale of the system.
*
* This returns the currently set up locale of the system, on which