18 #ifndef INCLUDED_CGUISETTINGS 19 #define INCLUDED_CGUISETTINGS 41 bool FromString(
const CStrW& value,
const bool sendMessage);
70 virtual CStr
GetName()
const = 0;
87 template<
typename... Args>
89 :
IGUISetting(Name, pObject), m_Name(Name), m_Setting(args...)
94 operator const T&()
const {
return m_Setting; }
106 void Set(
T value,
bool sendMessage)
108 m_Setting = std::move(value);
126 #endif // INCLUDED_CGUISETTINGS T & GetMutable()
'Uglified' getter when you want direct access without triggering messages.
Definition: CGUISetting.h:101
T m_Setting
Definition: CGUISetting.h:123
virtual ~IGUISetting()=default
virtual void ToJSVal(const ScriptRequest &rq, JS::MutableHandleValue value)=0
Converts the setting data to a JS::Value using Script::ToJSVal.
#define MOVABLE(className)
Indicates that move semantics can be used, so that a NONCOPYABLE class can still be assigned by takin...
Definition: code_annotation.h:235
const T * operator->() const
Definition: CGUISetting.h:96
virtual CStr GetName() const =0
Return the name of the setting, from JS.
bool FromJSVal(const ScriptRequest &rq, JS::HandleValue value, const bool sendMessage)
Parses the given JS::Value using Script::FromJSVal and assigns it to the setting data.
Definition: CGUISetting.cpp:49
virtual void OnSettingChange(const CStr &setting, bool sendMessage)
Triggers the IGUIObject logic when a setting changes.
Definition: CGUISetting.cpp:58
GUI object such as a button or an input-box.
Definition: IGUIObject.h:59
void Set(T value, bool sendMessage)
'Uglified' operator=, so that SendMessage is explicit.
Definition: CGUISetting.h:106
Wraps a T.
Definition: CGUISetting.h:84
virtual bool DoFromJSVal(const ScriptRequest &rq, JS::HandleValue value)=0
virtual bool DoFromString(const CStrW &value)=0
#define T(string_literal)
Definition: secure_crt.cpp:77
This setting interface allows GUI objects to call setting function functions without having to know t...
Definition: CGUISetting.h:32
IGUISetting(const CStr &name, IGUIObject *owner)
Definition: CGUISetting.cpp:27
CStr GetName() const override
Return the name of the setting, from JS.
Definition: CGUISetting.h:113
const CStr m_Name
Definition: CGUISetting.h:122
IGUIObject & m_pObject
The object that stores this setting.
Definition: CGUISetting.h:75
Spidermonkey maintains some 'local' state via the JSContext* object.
Definition: ScriptRequest.h:59
const T & operator*() const
Definition: CGUISetting.h:95
bool FromString(const CStrW &value, const bool sendMessage)
Parses the given string and assigns to the setting value.
Definition: CGUISetting.cpp:37
CGUISimpleSetting(IGUIObject *pObject, const CStr &Name, Args &&... args)
Definition: CGUISetting.h:88