]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_settings.h
UI: Add a settings file
[vogl] / src / vogleditor / vogleditor_settings.h
1 #ifndef VOGLEDITOR_SETTINGS_H
2 #define VOGLEDITOR_SETTINGS_H
3
4 #include "vogl_dynamic_string.h"
5
6 struct vogleditor_setting_struct
7 {
8     int window_position_left;
9     int window_position_top;
10     int window_size_width;
11     int window_size_height;
12     unsigned int trim_large_trace_prompt_size;
13 };
14
15 class vogleditor_settings
16 {
17 public:
18     vogleditor_settings();
19     virtual ~vogleditor_settings() {}
20
21     bool load(const char* settingsFile);
22     bool save(const char* settingsFile);
23
24     int window_position_left() { return m_settings.window_position_left; }
25     int window_position_top() { return m_settings.window_position_top; }
26     int window_size_width() { return m_settings.window_size_width; }
27     int window_size_height() { return m_settings.window_size_height; }
28     void set_window_position_left(int window_position_left) { m_settings.window_position_left = window_position_left; }
29     void set_window_position_top(int window_position_top) { m_settings.window_position_top = window_position_top; }
30     void set_window_size_width(int window_size_width) { m_settings.window_size_width = window_size_width; }
31     void set_window_size_height(int window_size_height) { m_settings.window_size_height = window_size_height; }
32
33     unsigned int trim_large_trace_prompt_size() { return m_settings.trim_large_trace_prompt_size; }
34     void set_trim_large_trace_prompt_size(unsigned int trim_large_trace_prompt_size) { m_settings.trim_large_trace_prompt_size = trim_large_trace_prompt_size; }
35
36 private:
37     unsigned int m_file_format_version;
38     vogleditor_setting_struct m_settings;
39     vogleditor_setting_struct m_defaults;
40
41     vogl::dynamic_string get_settings_path(const char* settingsFilename);
42 };
43
44 #endif // VOGLEDITOR_SETTINGS_H