OpenCPN Partial API docs
|
Wrapper for configuration variables which lives in a wxBaseConfig object. More...
#include <observable_confvar.h>
Public Member Functions | |
ConfigVar (const std::string §ion_, const std::string &key_, wxConfigBase *cb) | |
Create a ConfigVar given section, key and a configuration. More... | |
void | Set (const T &arg) |
Set value to given argument and notify listeners. More... | |
const T | Get (const T &default_val) |
Get current value. More... | |
Public Member Functions inherited from Observable | |
Observable (const std::string &_key) | |
Create an instance listening to given key. More... | |
Observable (const KeyProvider &kp) | |
Create an instance listening to key provided by kp.GetKey(). More... | |
virtual const void | Notify () |
Notify all listeners about variable change. More... | |
const void | Notify (std::shared_ptr< const void > p) |
Notify all listeners about variable change with a shared_ptr payload. More... | |
bool | Unlisten (wxEvtHandler *listener, wxEventType ev) |
Remove window listening to ev from list of listeners. More... | |
std::string | GetKey () const |
Retrieve the actual listening key: More... | |
virtual std::string | GetKey () const =0 |
Return key used to listen and notify. More... | |
Additional Inherited Members | |
Public Attributes inherited from Observable | |
const std::string | key |
The key used to create and clone. More... | |
Protected Member Functions inherited from Observable | |
const void | Notify (std::shared_ptr< const void > ptr, const std::string &s, int num, void *client_data) |
Notify all listeners: send them a 'type' ObservedEvt message as defined by listen() with optional data available using GetString(), getInt(), GetSharedPtr() and/or GetClientData(). More... | |
const void | Notify (const std::string &s, void *client_data) |
Notify all listeners: send them a 'type' ObservedEvt message as defined by listen() with optional data available using GetString() and/or GetClientData(). More... | |
Wrapper for configuration variables which lives in a wxBaseConfig object.
Supports int, bool, double, std::string and wxString. Besides basic set()/get() also provides notification events when value changes.
Client usage when reading, setting a value and notifying listeners:
ConfigVar<bool> expert("/PlugIns", "CatalogExpert", &g_pConfig); bool old_value = expert.Get(false); expert.Set(false);
Client usage, listening to value changes.
class Foo: public wxEventHandler { public: Foo(...) { ConfigVar<bool> expert("/PlugIns", "CatalogExpert", &g_pConfig); // expert sends a wxCommandEvent of type EVT_FOO to this on change: wxDEFINE_EVENT(EVT_FOO, wxCommandEvent); expert_listener.Listen(expert, this, EVT_FOO); // Handle EVT_FOO as any event when it arrives, for example: Bind(EVT_FOO, [](wxCommandEvent&) { cout << "value has changed"; }); ... } private: ObservableListener expert_listener; ... }
Definition at line 69 of file observable_confvar.h.
ConfigVar< T >::ConfigVar | ( | const std::string & | section_, |
const std::string & | key_, | ||
wxConfigBase * | cb | ||
) |
Create a ConfigVar given section, key and a configuration.
Definition at line 47 of file observable_confvar.cpp.
const T ConfigVar< T >::Get | ( | const T & | default_val | ) |
Get current value.
Definition at line 55 of file observable_confvar.cpp.
void ConfigVar< T >::Set | ( | const T & | arg | ) |
Set value to given argument and notify listeners.
Definition at line 66 of file observable_confvar.cpp.