summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/options.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/util/options.h')
-rw-r--r--src/lib/util/options.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/util/options.h b/src/lib/util/options.h
index 1df89bed6c7..5edf64a9fcd 100644
--- a/src/lib/util/options.h
+++ b/src/lib/util/options.h
@@ -89,12 +89,14 @@ public:
bool is_internal() const { return m_flags & OPTION_FLAG_INTERNAL; }
bool has_range() const { return (!m_minimum.empty() && !m_maximum.empty()); }
int priority() const { return m_priority; }
+ bool is_changed() const { return m_changed; }
// setters
void set_value(const char *newvalue, int priority);
void set_default_value(const char *defvalue);
void set_description(const char *description);
void set_flag(UINT32 mask, UINT32 flag);
+ void mark_changed() { m_changed = true; }
void revert(int priority);
private:
@@ -110,6 +112,7 @@ public:
std::string m_defdata; // default data for this item
std::string m_minimum; // minimum value
std::string m_maximum; // maximum value
+ bool m_changed; // changed flag
};
// construction/destruction
@@ -157,6 +160,7 @@ public:
float float_value(const char *name) const { return atof(value(name)); }
UINT32 seqid(const char *name) const;
bool exists(const char *name) const;
+ bool is_changed(const char *name) const;
// setting
void set_command(const char *command);
@@ -164,6 +168,7 @@ public:
bool set_value(const char *name, int value, int priority, std::string &error_string);
bool set_value(const char *name, float value, int priority, std::string &error_string);
void set_flag(const char *name, UINT32 mask, UINT32 flags);
+ void mark_changed(const char *name);
// misc
static const char *unadorned(int x = 0) { return s_option_unadorned[MIN(x, MAX_UNADORNED_OPTIONS)]; }