Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
config_editor_plugin.h
1 
2 /***************************************************************************
3  * config_editor_plugin.h - Base class for config editor plugins
4  *
5  * Created: Sun Mar 29 11:52:30 2009
6  * Copyright 2009 Daniel Beck
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Library General Public License for more details.
19  *
20  * Read the full text in the LICENSE.GPL file in the doc directory.
21  */
22 
23 #ifndef __TOOLS_CONFIG_EDITOR_CONFIG_EDITOR_PLUGIN_H_
24 #define __TOOLS_CONFIG_EDITOR_CONFIG_EDITOR_PLUGIN_H_
25 
26 #include <string>
27 
28 #include <gtkmm.h>
29 
30 namespace fawkes {
31  class Configuration;
32 }
33 
35 {
36  public:
37  ConfigEditorPlugin(std::string config_path, std::string ui_file );
38  virtual ~ConfigEditorPlugin();
39 
40  void initialize();
41  void run();
42 
43  std::string get_config_path() const;
44  void set_config( fawkes::Configuration* config );
45 
46 
47  protected:
48  virtual void pre_run() =0;
49  virtual void post_run( int response ) =0;
50 
51  virtual Gtk::Dialog* load_dialog() =0;
52 
53  Gtk::Dialog* m_dialog;
54  Glib::RefPtr<Gtk::Builder> m_builder;
55 
56  std::string m_config_path;
58 };
59 
60 #endif /* __TOOLS_CONFIG_EDITOR_CONFIG_EDITOR_PLUGIN_H_ */