LMMS
Loading...
Searching...
No Matches
gui_config.h
Go to the documentation of this file.
1#ifndef CALF_GUI_CONFIG_H
2#define CALF_GUI_CONFIG_H
3
4#include <glib.h>
5#include <string>
6#include <vector>
7
8namespace calf_utils {
9
10struct config_exception: public std::exception
11{
12 std::string content;
13 const char *content_ptr;
14 config_exception(const std::string &text) : content(text) { content_ptr = content.c_str(); }
15 virtual const char *what() const throw() { return content_ptr; }
16 virtual ~config_exception() throw() { }
17};
18
20{
21 virtual void on_config_change() = 0;
23};
24
29
31{
32 virtual bool has_dir(const char *key) = 0;
33 virtual bool get_bool(const char *key, bool def_value) = 0;
34 virtual int get_int(const char *key, int def_value) = 0;
35 virtual std::string get_string(const char *key, const std::string &def_value) = 0;
36 virtual void set_bool(const char *key, bool value) = 0;
37 virtual void set_int(const char *key, int value) = 0;
38 virtual void set_string(const char *key, const std::string &value) = 0;
39 virtual void save() = 0;
41 virtual ~config_db_iface() {}
42};
43
45{
46protected:
56protected:
57 GKeyFile *keyfile;
58 std::string filename;
59 std::string section;
60 std::vector<notifier *> notifiers;
61
62 void handle_error(GError *error);
64 friend class notifier;
65public:
66 gkeyfile_config_db(GKeyFile *kf, const char *filename, const char *section);
67 virtual bool has_dir(const char *key);
68 virtual bool get_bool(const char *key, bool def_value);
69 virtual int get_int(const char *key, int def_value);
70 virtual std::string get_string(const char *key, const std::string &def_value);
71 virtual void set_bool(const char *key, bool value);
72 virtual void set_int(const char *key, int value);
73 virtual void set_string(const char *key, const std::string &value);
74 virtual void save();
76 virtual ~gkeyfile_config_db();
77};
78
80{
86 std::string style;
87
88 gui_config();
90 void load(config_db_iface *db);
91 void save(config_db_iface *db);
92};
93
94};
95
96#endif
friend class gkeyfile_config_db
Definition gui_config.h:54
gkeyfile_config_db * parent
Definition gui_config.h:50
config_listener_iface * listener
Definition gui_config.h:51
notifier(gkeyfile_config_db *_parent, config_listener_iface *_listener)
Definition gui_config.cpp:48
virtual ~notifier()
Definition gui_config.cpp:54
virtual std::string get_string(const char *key, const std::string &def_value)
Definition gui_config.cpp:140
virtual void set_string(const char *key, const std::string &value)
Definition gui_config.cpp:163
GKeyFile * keyfile
Definition gui_config.h:57
virtual void set_bool(const char *key, bool value)
Definition gui_config.cpp:153
friend class notifier
Definition gui_config.h:64
gkeyfile_config_db(GKeyFile *kf, const char *filename, const char *section)
Definition gui_config.cpp:62
void handle_error(GError *error)
Definition gui_config.cpp:69
virtual void save()
Definition gui_config.cpp:168
virtual void set_int(const char *key, int value)
Definition gui_config.cpp:158
virtual config_notifier_iface * add_listener(config_listener_iface *listener)
Definition gui_config.cpp:187
virtual bool has_dir(const char *key)
Definition gui_config.cpp:92
std::string filename
Definition gui_config.h:58
std::vector< notifier * > notifiers
Definition gui_config.h:60
virtual int get_int(const char *key, int def_value)
Definition gui_config.cpp:127
virtual bool get_bool(const char *key, bool def_value)
Definition gui_config.cpp:114
void remove_notifier(notifier *n)
Definition gui_config.cpp:79
virtual ~gkeyfile_config_db()
Definition gui_config.cpp:194
std::string section
Definition gui_config.h:59
static PuglViewHint int value
Definition pugl.h:1708
Definition gui_config.h:8
Definition gui_config.h:31
virtual ~config_db_iface()
Definition gui_config.h:41
virtual bool get_bool(const char *key, bool def_value)=0
virtual void set_int(const char *key, int value)=0
virtual config_notifier_iface * add_listener(config_listener_iface *listener)=0
virtual bool has_dir(const char *key)=0
virtual void set_bool(const char *key, bool value)=0
virtual void set_string(const char *key, const std::string &value)=0
virtual std::string get_string(const char *key, const std::string &def_value)=0
virtual int get_int(const char *key, int def_value)=0
virtual const char * what() const
Definition gui_config.h:15
const char * content_ptr
Definition gui_config.h:13
virtual ~config_exception()
Definition gui_config.h:16
std::string content
Definition gui_config.h:12
config_exception(const std::string &text)
Definition gui_config.h:14
Definition gui_config.h:20
virtual ~config_listener_iface()
Definition gui_config.h:22
Definition gui_config.h:26
virtual ~config_notifier_iface()
Definition gui_config.h:27
int rack_float
Definition gui_config.h:81
void load(config_db_iface *db)
Definition gui_config.cpp:23
std::string style
Definition gui_config.h:86
~gui_config()
Definition gui_config.cpp:19
bool win_start_hidden
Definition gui_config.h:85
bool vu_meters
Definition gui_config.h:83
bool rack_ears
Definition gui_config.h:82
bool win_to_tray
Definition gui_config.h:84
int float_size
Definition gui_config.h:81
void save(config_db_iface *db)
Definition gui_config.cpp:34
gui_config()
Definition gui_config.cpp:8
const char * text
Definition swell-functions.h:167
int n
Definition crypt.c:458
ZCONST char * key
Definition crypt.c:587
int error
Definition extract.c:1038