Mcalc  0.1
a machinist's calculator
settings.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 #ifndef MCALC_SETTINGS_HPP
13 #define MCALC_SETTINGS_HPP
14 
15 #include "interface.hpp"
16 #include <gtkmm.h>
17 
18 namespace mc {
19 
20  class Broadcaster;
21  class DataStore;
22 
27  class Settings : public Subscriber {
28  private:
29  Glib::RefPtr<Gtk::Builder> builder;
30  Gtk::Button* submit;
31  DataStore* data;
32  Broadcaster* broadcaster;
33 
34  std::string profile_name;
35  std::map<std::string,std::string> profile_data;
36  std::map<Interface*,std::string> settings;
37 
38  Settings();
39 
40  public:
41  static Settings* get_instance();
42  ~Settings();
44  void init_components();
45 
51  void set_builder( Glib::RefPtr<Gtk::Builder> b );
52 
58  void set_submit( std::string s );
59 
65  void bind( std::string s, Interface* i );
66 
71  void load( std::string p );
72 
77  void save();
78 
84  void notify(Event* e);
85  };
86 
87 }
88 
89 #endif
Definition: broadcaster.cpp:4
void notify(Event *e)
Definition: settings.cpp:84
void load(std::string p)
Definition: settings.cpp:64
void bind(std::string s, Interface *i)
Definition: settings.cpp:58
~Settings()
Definition: settings.cpp:21
Definition: broadcaster.hpp:45
Definition: settings.hpp:27
Definition: broadcaster.hpp:29
void save()
Definition: settings.cpp:79
void set_builder(Glib::RefPtr< Gtk::Builder > b)
Definition: settings.cpp:42
Definition: datastore.hpp:44
Definition: interface.hpp:54
void set_submit(std::string s)
Definition: settings.cpp:47
The class definition file for the interface abstract base class.
static Settings * get_instance()
Definition: settings.cpp:37
Definition: interface.hpp:32