24
25
public class Gazette.App : Granite.Application
27
public static PluginManager plugin_manager;
28
31
program_name = "Gazette";
29
32
application_id = "org.pantheon.gazette";
31
34
const int MARGIN = 50;
32
public PluginManager plugin_manager;
35
// public PluginManager plugin_manager;
33
36
private GazetteWindow window;
35
38
debug("destructor called");
62
65
plugin.service.settings_deserialize(states[plugin.id]);
65
// Process.signal(ProcessSignal.TERM, save_states);
68
Process.signal(ProcessSignal.TERM, save_states);
69
Process.signal(ProcessSignal.INT, save_states);
69
73
public void load_plugin (Plugin plugin) {
70
74
debug ("Loading service");
71
75
Service service = new Service (plugin);
72
service.state_changed.connect(save_states);
73
76
plugin.assign_service (service);
75
78
window.stage.add_child (service);
77
public void save_states () {
78
//debug("Saving states before exiting");
80
public static void save_states () {
81
debug("Saving states before exiting");
79
82
string[] plugin_states = {};
80
var plugins = plugin_manager.get_plugins();
83
var plugins = Gazette.App.plugin_manager.get_plugins();
81
84
foreach (var p in plugins) {
82
85
plugin_states += p.id.to_string () + ":" + p.service.settings_serialize();
84
87
GlobalSettings.get_default ().service_states = plugin_states;
89
93
int main (string [] args)
91
95
GtkClutter.init (ref args);