- added "HEAD" feature to tarball creation script, for easier testing
[barry.git] / gui / src / DatabaseSelectDlg.h
blob194e90673b930ad6fe4d0e8396992c8044ddaffd
1 ///
2 /// \file DatabaseSelectDlg.h
3 /// Dialog wrapper class for user selection of device databases
4 ///
6 /*
7 Copyright (C) 2007, 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 "ConfigFile.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 // Widgets
49 std::auto_ptr<Gtk::Dialog> m_pDialog;
50 Gtk::Label *m_pTopLabel;
51 Gtk::TreeView *m_pTree;
52 Columns m_Columns;
53 Glib::RefPtr<Gtk::ListStore> m_pListStore;
55 // data
56 ConfigFile::DBListType m_selections;
58 protected:
59 void LoadTree(const Barry::DatabaseDatabase &dbdb);
60 bool IsSelected(const std::string &dbname);
61 void SaveSelections();
63 public:
64 DatabaseSelectDlg(const Barry::DatabaseDatabase &dbdb,
65 const ConfigFile::DBListType &selections,
66 const Glib::ustring &label);
67 ~DatabaseSelectDlg();
69 const ConfigFile::DBListType& GetSelections() const { return m_selections; }
71 int run();
73 // signals
74 void on_select_all();
75 void on_deselect_all();
78 #endif