Bumped copyright dates for 2013
[barry.git] / gui / src / DatabaseSelectDlg.h
blob49d390b47abe6d90378c775d1e9e66d3fd6ef8e2
1 ///
2 /// \file DatabaseSelectDlg.h
3 /// Dialog wrapper class for user selection of device databases
4 ///
6 /*
7 Copyright (C) 2007-2013, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #ifndef __BARRYBACKUP_DATABASESELECTDLG_H__
23 #define __BARRYBACKUP_DATABASESELECTDLG_H__
25 #include <gtkmm.h>
26 #include <memory>
27 #include <barry/barry.h>
29 namespace Barry {
30 class DatabaseDatabase;
33 class DatabaseSelectDlg
35 class Columns : public Gtk::TreeModelColumnRecord
37 public:
38 Gtk::TreeModelColumn<bool> m_selected;
39 Gtk::TreeModelColumn<Glib::ustring> m_name;
41 Columns()
43 add(m_selected);
44 add(m_name);
48 // meta class flags
49 bool m_backupMode; // if true, the checkbox is visible
51 // Widgets
52 std::auto_ptr<Gtk::Dialog> m_pDialog;
53 Gtk::Label *m_pTopLabel;
54 Gtk::CheckButton *m_pAutoSelectAllCheck;
55 Gtk::TreeView *m_pTree;
56 Columns m_Columns;
57 Glib::RefPtr<Gtk::ListStore> m_pListStore;
59 // data
60 Barry::ConfigFile::DBListType m_selections;
61 bool m_auto_select_all; // holds checkbox setting
63 protected:
64 void LoadTree(const Barry::DatabaseDatabase &dbdb);
65 bool IsSelected(const std::string &dbname);
66 void SaveSelections();
68 public:
69 DatabaseSelectDlg(const Barry::DatabaseDatabase &dbdb,
70 const Barry::ConfigFile::DBListType &selections,
71 bool auto_select_all,
72 const Glib::ustring &label, bool backup_mode);
73 ~DatabaseSelectDlg();
75 const Barry::ConfigFile::DBListType& GetSelections() const { return m_selections; }
76 bool AutoSelectAll() const { return m_auto_select_all; }
78 int run();
80 // signals
81 void on_select_all();
82 void on_deselect_all();
85 #endif