aboutsummaryrefslogtreecommitdiff
path: root/common/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/system.h')
-rw-r--r--common/system.h84
1 files changed, 81 insertions, 3 deletions
diff --git a/common/system.h b/common/system.h
index 8896554f76..41f217fc0b 100644
--- a/common/system.h
+++ b/common/system.h
@@ -254,6 +254,12 @@ public:
* particular, interpolation, and works in-place.
*/
kFeatureAspectRatioCorrection,
+
+ /**
+ * If supported this flag can be used to switch between unfiltered and
+ * filtered graphics modes.
+ */
+ kFeatureFilteringMode,
/**
* Determine whether a virtual keyboard is too be shown or not.
@@ -314,7 +320,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
};
/**
@@ -600,7 +622,8 @@ public:
kTransactionFullscreenFailed = (1 << 1), /**< Failed switching fullscreen mode */
kTransactionModeSwitchFailed = (1 << 2), /**< Failed switching the GFX graphics mode (setGraphicsMode) */
kTransactionSizeChangeFailed = (1 << 3), /**< Failed switching the screen dimensions (initSize) */
- kTransactionFormatNotSupported = (1 << 4) /**< Failed setting the color format */
+ kTransactionFormatNotSupported = (1 << 4), /**< Failed setting the color format */
+ kTransactionFilteringFailed = (1 << 5) /**< Failed setting the filtering mode */
};
/**
@@ -1086,11 +1109,30 @@ public:
virtual void displayMessageOnOSD(const char *msg) = 0;
/**
+ * Display an icon indicating background activity
+ *
+ * The icon is displayed in an 'on screen display'. It is visible above
+ * the regular screen content or near it.
+ *
+ * The caller keeps ownership of the icon. It is acceptable to free
+ * the surface just after the call.
+ *
+ * There is no preferred pixel format for the icon. The backend should
+ * convert its copy of the icon to an appropriate format.
+ *
+ * The caller must call this method again with a null pointer
+ * as a parameter to indicate the icon should no longer be displayed.
+ *
+ * @param icon the icon to display on screen
+ */
+ virtual void displayActivityIconOnOSD(const Graphics::Surface *icon) = 0;
+
+ /**
* Return the SaveFileManager, used to store and load savestates
* and other modifiable persistent game data. For more information,
* refer to the SaveFileManager documentation.
*/
- Common::SaveFileManager *getSavefileManager();
+ virtual Common::SaveFileManager *getSavefileManager();
#if defined(USE_TASKBAR)
/**
@@ -1200,6 +1242,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