Add plugin for F11 full-screen toggle
[WebThing.git] / WebThingPlugin.cs
index 91c68ca..6f23e9d 100644 (file)
@@ -1,8 +1,36 @@
+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) {}
     }
 }