-rw-r--r-- | src/napkin.cc | 2 | ||||
-rw-r--r-- | src/widgets.cc | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/napkin.cc b/src/napkin.cc index d9ba0c9..78f44f8 100644 --- a/src/napkin.cc +++ b/src/napkin.cc | |||
@@ -4,97 +4,97 @@ using std::cerr; | |||
4 | using std::endl; | 4 | using std::endl; |
5 | #include <fstream> | 5 | #include <fstream> |
6 | using std::ofstream; | 6 | using std::ofstream; |
7 | #include <cstdlib> | 7 | #include <cstdlib> |
8 | using std::min; | 8 | using std::min; |
9 | #include <stdexcept> | 9 | #include <stdexcept> |
10 | using std::runtime_error; | 10 | using std::runtime_error; |
11 | #include <list> | 11 | #include <list> |
12 | using std::list; | 12 | using std::list; |
13 | #include <vector> | 13 | #include <vector> |
14 | using std::vector; | 14 | using std::vector; |
15 | #include <string> | 15 | #include <string> |
16 | using std::string; | 16 | using std::string; |
17 | #include <gtkmm/main.h> | 17 | #include <gtkmm/main.h> |
18 | #include <gtkmm/window.h> | 18 | #include <gtkmm/window.h> |
19 | #include <gtkmm/box.h> | 19 | #include <gtkmm/box.h> |
20 | #include <gtkmm/statusbar.h> | 20 | #include <gtkmm/statusbar.h> |
21 | #include <gtkmm/uimanager.h> | 21 | #include <gtkmm/uimanager.h> |
22 | #include <gtkmm/stock.h> | 22 | #include <gtkmm/stock.h> |
23 | #include <gtkmm/toolbar.h> | 23 | #include <gtkmm/toolbar.h> |
24 | #include <gtkmm/filechooserdialog.h> | 24 | #include <gtkmm/filechooserdialog.h> |
25 | #include <gtkmm/messagedialog.h> | 25 | #include <gtkmm/messagedialog.h> |
26 | #include <gtkmm/aboutdialog.h> | 26 | #include <gtkmm/aboutdialog.h> |
27 | #include <napkin/exception.h> | 27 | #include <napkin/exception.h> |
28 | #include <napkin/util.h> | 28 | #include <napkin/util.h> |
29 | #include <napkin/st/decode.h> | 29 | #include <napkin/st/decode.h> |
30 | #include <napkin/st/download.h> | 30 | #include <napkin/st/download.h> |
31 | 31 | ||
32 | #include "db.h" | 32 | #include "db.h" |
33 | #include "sleep_timeline.h" | 33 | #include "sleep_timeline.h" |
34 | #include "dialogs.h" | 34 | #include "dialogs.h" |
35 | #include "sleep_history.h" | 35 | #include "sleep_history.h" |
36 | 36 | ||
37 | #include "config.h" | 37 | #include "config.h" |
38 | 38 | ||
39 | class napkin_ui : public Gtk::Window { | 39 | class napkin_ui : public Gtk::Window { |
40 | public: | 40 | public: |
41 | Gtk::VBox w_outer_box; | 41 | Gtk::VBox w_outer_box; |
42 | Gtk::Statusbar w_status_bar; | 42 | Gtk::Statusbar w_status_bar; |
43 | napkin::gtk::sleep_history_t w_history; | 43 | napkin::gtk::sleep_history_t w_history; |
44 | Glib::RefPtr<Gtk::UIManager> uiman; | 44 | Glib::RefPtr<Gtk::UIManager> uiman; |
45 | Glib::RefPtr<Gtk::ActionGroup> agroup; | 45 | Glib::RefPtr<Gtk::ActionGroup> agroup; |
46 | napkin::db_t db; | 46 | napkin::db_t db; |
47 | Glib::RefPtr<Gtk::Action> a_remove; | 47 | Glib::RefPtr<Gtk::Action> a_remove; |
48 | 48 | ||
49 | napkin_ui() | 49 | napkin_ui() |
50 | : w_history(db) | 50 | : w_history(db) |
51 | { | 51 | { |
52 | static char *ui_info = | 52 | static const char *ui_info = |
53 | "<ui>" | 53 | "<ui>" |
54 | "<menubar name='menu_bar'>" | 54 | "<menubar name='menu_bar'>" |
55 | "<menu action='menu_sleep'>" | 55 | "<menu action='menu_sleep'>" |
56 | #ifndef NDEBUG | 56 | #ifndef NDEBUG |
57 | "<menu action='menu_sleep_add'>" | 57 | "<menu action='menu_sleep_add'>" |
58 | #endif | 58 | #endif |
59 | "<menuitem action='sleep_add_from_sleeptracker'/>" | 59 | "<menuitem action='sleep_add_from_sleeptracker'/>" |
60 | #ifndef NDEBUG | 60 | #ifndef NDEBUG |
61 | "<menuitem action='sleep_add_from_datafile'/>" | 61 | "<menuitem action='sleep_add_from_datafile'/>" |
62 | "</menu>" | 62 | "</menu>" |
63 | #endif | 63 | #endif |
64 | "<menuitem action='sleep_remove'/>" | 64 | "<menuitem action='sleep_remove'/>" |
65 | "<menuitem action='exit'/>" | 65 | "<menuitem action='exit'/>" |
66 | "</menu>" | 66 | "</menu>" |
67 | "<menu action='menu_help'>" | 67 | "<menu action='menu_help'>" |
68 | "<menuitem action='help_about'/>" | 68 | "<menuitem action='help_about'/>" |
69 | "</menu>" | 69 | "</menu>" |
70 | "</menubar>" | 70 | "</menubar>" |
71 | "<toolbar action='tool_bar'>" | 71 | "<toolbar action='tool_bar'>" |
72 | "<toolitem action='sleep_add_from_sleeptracker'/>" | 72 | "<toolitem action='sleep_add_from_sleeptracker'/>" |
73 | "<toolitem action='sleep_remove'/>" | 73 | "<toolitem action='sleep_remove'/>" |
74 | "<separator expand='true'/>" | 74 | "<separator expand='true'/>" |
75 | #ifndef NDEBUG | 75 | #ifndef NDEBUG |
76 | "<toolitem action='debug'/>" | 76 | "<toolitem action='debug'/>" |
77 | "<separator/>" | 77 | "<separator/>" |
78 | #endif | 78 | #endif |
79 | "<toolitem action='exit'/>" | 79 | "<toolitem action='exit'/>" |
80 | "</toolbar>" | 80 | "</toolbar>" |
81 | "</ui>"; | 81 | "</ui>"; |
82 | agroup = Gtk::ActionGroup::create(); | 82 | agroup = Gtk::ActionGroup::create(); |
83 | agroup->add(Gtk::Action::create("menu_sleep","Sleep")); | 83 | agroup->add(Gtk::Action::create("menu_sleep","Sleep")); |
84 | agroup->add(Gtk::Action::create("menu_sleep_add","Add")); | 84 | agroup->add(Gtk::Action::create("menu_sleep_add","Add")); |
85 | agroup->add(Gtk::Action::create("sleep_add_from_sleeptracker",Gtk::Stock::CONNECT, | 85 | agroup->add(Gtk::Action::create("sleep_add_from_sleeptracker",Gtk::Stock::CONNECT, |
86 | "from sleeptracker","import sleeptracker data from watch"), | 86 | "from sleeptracker","import sleeptracker data from watch"), |
87 | Gtk::AccelKey("<Ctrl>d"), | 87 | Gtk::AccelKey("<Ctrl>d"), |
88 | sigc::mem_fun(*this,&napkin_ui::on_sleep_add_from_sleeptracker)); | 88 | sigc::mem_fun(*this,&napkin_ui::on_sleep_add_from_sleeptracker)); |
89 | #ifndef NDEBUG | 89 | #ifndef NDEBUG |
90 | agroup->add(Gtk::Action::create("sleep_add_from_datafile",Gtk::Stock::CONVERT, | 90 | agroup->add(Gtk::Action::create("sleep_add_from_datafile",Gtk::Stock::CONVERT, |
91 | "from data file","import sleeptracker data stored in a file"), | 91 | "from data file","import sleeptracker data stored in a file"), |
92 | sigc::mem_fun(*this,&napkin_ui::on_sleep_add_from_datafile)); | 92 | sigc::mem_fun(*this,&napkin_ui::on_sleep_add_from_datafile)); |
93 | #endif | 93 | #endif |
94 | agroup->add(a_remove=Gtk::Action::create("sleep_remove",Gtk::Stock::REMOVE, | 94 | agroup->add(a_remove=Gtk::Action::create("sleep_remove",Gtk::Stock::REMOVE, |
95 | "Remove","remove highlighted sleep event from the database"), | 95 | "Remove","remove highlighted sleep event from the database"), |
96 | Gtk::AccelKey("delete"), | 96 | Gtk::AccelKey("delete"), |
97 | sigc::mem_fun(*this,&napkin_ui::on_remove)); | 97 | sigc::mem_fun(*this,&napkin_ui::on_remove)); |
98 | agroup->add(Gtk::Action::create("exit",Gtk::Stock::QUIT,"Exit","Exit "PACKAGE_NAME), | 98 | agroup->add(Gtk::Action::create("exit",Gtk::Stock::QUIT,"Exit","Exit "PACKAGE_NAME), |
99 | Gtk::AccelKey("<control>w"), | 99 | Gtk::AccelKey("<control>w"), |
100 | sigc::mem_fun(*this,&napkin_ui::on_quit)); | 100 | sigc::mem_fun(*this,&napkin_ui::on_quit)); |
diff --git a/src/widgets.cc b/src/widgets.cc index ea85bc8..61c7da9 100644 --- a/src/widgets.cc +++ b/src/widgets.cc | |||
@@ -1,60 +1,60 @@ | |||
1 | #include <napkin/util.h> | 1 | #include <napkin/util.h> |
2 | #include "widgets.h" | 2 | #include "widgets.h" |
3 | 3 | ||
4 | namespace napkin { | 4 | namespace napkin { |
5 | namespace gtk { | 5 | namespace gtk { |
6 | 6 | ||
7 | hypnoinfo_t::hypnoinfo_t() | 7 | hypnoinfo_t::hypnoinfo_t() |
8 | : w_upper(4,3,false/*homogeneous*/), | 8 | : w_upper(4,3,false/*homogeneous*/), |
9 | lc_tobed("To bed:",0.5,0.5), | 9 | lc_tobed("To bed:",0.5f,0.5f), |
10 | lc_timeline("Sleep timeline:",0.5,0.5), | 10 | lc_timeline("Sleep timeline:",0.5f,0.5f), |
11 | lc_alarm("Alarm:",0.5,0.5), lc_window("Window:",0.5,0.5), | 11 | lc_alarm("Alarm:",0.5f,0.5f), lc_window("Window:",0.5f,0.5f), |
12 | l_data_a("",0.9,0.5) | 12 | l_data_a("",0.9f,0.5f) |
13 | { | 13 | { |
14 | add(l_date); | 14 | add(l_date); |
15 | add(l_hseparator); | 15 | add(l_hseparator); |
16 | w_upper.set_col_spacings(5); | 16 | w_upper.set_col_spacings(5); |
17 | w_upper.attach(lc_tobed,0,1,0,1, Gtk::SHRINK); | 17 | w_upper.attach(lc_tobed,0,1,0,1, Gtk::SHRINK); |
18 | w_upper.attach(lc_timeline,1,2,0,1, Gtk::SHRINK); | 18 | w_upper.attach(lc_timeline,1,2,0,1, Gtk::SHRINK); |
19 | w_upper.attach(lc_alarm,2,3,0,1, Gtk::SHRINK); | 19 | w_upper.attach(lc_alarm,2,3,0,1, Gtk::SHRINK); |
20 | w_upper.attach(lf_tobed,0,1,1,4, Gtk::SHRINK); | 20 | w_upper.attach(lf_tobed,0,1,1,4, Gtk::SHRINK); |
21 | w_upper.attach(st_timeline,1,2,1,4, | 21 | w_upper.attach(st_timeline,1,2,1,4, |
22 | Gtk::FILL|Gtk::EXPAND,Gtk::FILL|Gtk::EXPAND,0,0); | 22 | Gtk::FILL|Gtk::EXPAND,Gtk::FILL|Gtk::EXPAND,0,0); |
23 | w_upper.attach(lf_alarm,2,3,1,2, Gtk::SHRINK); | 23 | w_upper.attach(lf_alarm,2,3,1,2, Gtk::SHRINK); |
24 | w_upper.attach(lc_window,2,3,2,3, Gtk::SHRINK); | 24 | w_upper.attach(lc_window,2,3,2,3, Gtk::SHRINK); |
25 | w_upper.attach(lf_window,2,3,3,4, Gtk::SHRINK); | 25 | w_upper.attach(lf_window,2,3,3,4, Gtk::SHRINK); |
26 | add(w_upper); | 26 | add(w_upper); |
27 | add(lc_almost_awakes); | 27 | add(lc_almost_awakes); |
28 | add(lf_almost_awakes); | 28 | add(lf_almost_awakes); |
29 | add(l_data_a); | 29 | add(l_data_a); |
30 | show_all(); | 30 | show_all(); |
31 | } | 31 | } |
32 | 32 | ||
33 | void hypnoinfo_t::update_data(const hypnodata_ptr_t& hd) { | 33 | void hypnoinfo_t::update_data(const hypnodata_ptr_t& hd) { |
34 | l_date.set_use_markup(true); | 34 | l_date.set_use_markup(true); |
35 | l_date.set_markup("<b>"+hd->str_date()+"</b>"); | 35 | l_date.set_markup("<b>"+hd->str_date()+"</b>"); |
36 | lf_tobed.set_use_markup(true); | 36 | lf_tobed.set_use_markup(true); |
37 | lf_tobed.set_markup("<b>"+hd->str_to_bed()+"</b>"); | 37 | lf_tobed.set_markup("<b>"+hd->str_to_bed()+"</b>"); |
38 | lf_alarm.set_use_markup(true); | 38 | lf_alarm.set_use_markup(true); |
39 | lf_alarm.set_markup("<b>"+hd->str_alarm()+"</b>"); | 39 | lf_alarm.set_markup("<b>"+hd->str_alarm()+"</b>"); |
40 | char tmp[64]; | 40 | char tmp[64]; |
41 | snprintf(tmp,sizeof(tmp),"<b>%d mins</b>",hd->window); | 41 | snprintf(tmp,sizeof(tmp),"<b>%d mins</b>",hd->window); |
42 | lf_window.set_use_markup(true); | 42 | lf_window.set_use_markup(true); |
43 | lf_window.set_markup(tmp); | 43 | lf_window.set_markup(tmp); |
44 | snprintf(tmp,sizeof(tmp),"<b>%d</b> almost awake moments:",(int)hd->almost_awakes.size()); | 44 | snprintf(tmp,sizeof(tmp),"<b>%d</b> almost awake moments:",(int)hd->almost_awakes.size()); |
45 | lc_almost_awakes.set_use_markup(true); | 45 | lc_almost_awakes.set_use_markup(true); |
46 | lc_almost_awakes.set_markup(tmp); | 46 | lc_almost_awakes.set_markup(tmp); |
47 | string awlist; | 47 | string awlist; |
48 | for(vector<time_t>::const_iterator i=hd->almost_awakes.begin();i!=hd->almost_awakes.end();++i) { | 48 | for(vector<time_t>::const_iterator i=hd->almost_awakes.begin();i!=hd->almost_awakes.end();++i) { |
49 | if(!awlist.empty()) | 49 | if(!awlist.empty()) |
50 | awlist += ", "; | 50 | awlist += ", "; |
51 | awlist += strftime("<b>%H:%M:%S</b>",*i); | 51 | awlist += strftime("<b>%H:%M:%S</b>",*i); |
52 | } | 52 | } |
53 | lf_almost_awakes.set_use_markup(true); | 53 | lf_almost_awakes.set_use_markup(true); |
54 | lf_almost_awakes.set_line_wrap(true); | 54 | lf_almost_awakes.set_line_wrap(true); |
55 | lf_almost_awakes.set_line_wrap_mode(Pango::WRAP_WORD); | 55 | lf_almost_awakes.set_line_wrap_mode(Pango::WRAP_WORD); |
56 | lf_almost_awakes.set_markup("<tt>"+awlist+"</tt>"); | 56 | lf_almost_awakes.set_markup("<tt>"+awlist+"</tt>"); |
57 | l_data_a.set_use_markup(true); | 57 | l_data_a.set_use_markup(true); |
58 | l_data_a.set_markup("Data A is <b>"+hd->str_data_a()+"</b>"); | 58 | l_data_a.set_markup("Data A is <b>"+hd->str_data_a()+"</b>"); |
59 | st_timeline.set_data(hd); | 59 | st_timeline.set_data(hd); |
60 | } | 60 | } |