diff options
Diffstat (limited to 'engines/metaengine.h')
-rw-r--r-- | engines/metaengine.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/metaengine.h b/engines/metaengine.h index d9c1360042..632c204978 100644 --- a/engines/metaengine.h +++ b/engines/metaengine.h @@ -24,6 +24,7 @@ #include "common/scummsys.h" #include "common/error.h" +#include "common/array.h" #include "engines/game.h" #include "engines/savestate.h" @@ -39,6 +40,19 @@ class String; } /** + * Per-game extra GUI options structure. + * Currently, this can only be used for options with checkboxes. + */ +struct ExtraGuiOption { + const char *label; // option label, e.g. "Fullscreen mode" + const char *tooltip; // option tooltip (when the mouse hovers above it) + const char *configOption; // confMan key, e.g. "fullscreen" + bool defaultState; // the detault state of the checkbox (checked or not) +}; + +typedef Common::Array<ExtraGuiOption> ExtraGuiOptions; + +/** * A meta engine is essentially a factory for Engine instances with the * added ability of listing and detecting supported games. * Every engine "plugin" provides a hook to get an instance of a MetaEngine @@ -98,6 +112,16 @@ public: } /** + * Return a list of extra GUI options. + * Currently, this only supports options with checkboxes. + * + * The default implementation returns an empty list. + */ + virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const { + return ExtraGuiOptions(); + } + + /** * Return the maximum save slot that the engine supports. * * @note MetaEngines must indicate that this function has been implemented |