6f23e9d54a6281da95b4142cb1da72276b8eca5d
[WebThing.git] / WebThingPlugin.cs
1 using System;
2 using System.Collections.Generic;
3 using WebKit;
4
5 namespace bytex64.WebThing {
6     public abstract class WebThingPlugin {
7         protected Dictionary<string,string> Options;
8
9         public WebThingPlugin() {
10             string classname = this.GetType().FullName;
11
12             if (Config.PluginOptions.ContainsKey(classname)) {
13                 Options = Config.PluginOptions[classname];
14             } else {
15                 Options = new Dictionary<string,string>();
16                 Config.PluginOptions[classname] = Options;
17             }
18         }
19
20         // Convenience function to easily save plugin configuration
21         protected void SaveConfig() {
22             if (Config.ConfigPathOut == null) return;
23
24             string plugin_name = this.GetType().FullName;
25             Config.SaveFile(plugin_name, String.Format("{0}/{1}.conf", Config.ConfigPathOut, plugin_name));
26         }
27
28         // Plugin life cycle
29         public virtual void Init(WebThing wt) {}
30         public virtual void Deinit(WebThing wt) {}
31
32         // WebView life cycle
33         public virtual void InitWebView(WebView wv) {}
34         public virtual void DeinitWebView(WebView wv) {}
35     }
36 }