+using System;
+using System.Collections.Generic;
using WebKit;
namespace bytex64.WebThing {
public abstract class WebThingPlugin {
- public abstract void Init(WebThing wt);
+ protected Dictionary<string,string> Options;
+
+ public WebThingPlugin() {
+ string classname = this.GetType().FullName;
+
+ if (Config.PluginOptions.ContainsKey(classname)) {
+ Options = Config.PluginOptions[classname];
+ } else {
+ Options = new Dictionary<string,string>();
+ Config.PluginOptions[classname] = Options;
+ }
+ }
+
+ // Convenience function to easily save plugin configuration
+ protected void SaveConfig() {
+ if (Config.ConfigPathOut == null) return;
+
+ string plugin_name = this.GetType().FullName;
+ Config.SaveFile(plugin_name, String.Format("{0}/{1}.conf", Config.ConfigPathOut, plugin_name));
+ }
+
+ // Plugin life cycle
+ public virtual void Init(WebThing wt) {}
+ public virtual void Deinit(WebThing wt) {}
+
+ // WebView life cycle
public virtual void InitWebView(WebView wv) {}
+ public virtual void DeinitWebView(WebView wv) {}
}
}