Add plugin for F11 full-screen toggle
[WebThing.git] / plugins / Fullscreen.cs
diff --git a/plugins/Fullscreen.cs b/plugins/Fullscreen.cs
new file mode 100644 (file)
index 0000000..fcb617b
--- /dev/null
@@ -0,0 +1,33 @@
+using System;
+using Gtk;
+using Gdk;
+using bytex64.WebThing;
+
+public class Fullscreen : WebThingPlugin {
+    private bool IsFullscreen = false;
+    private Gtk.Window Win;
+
+    public override void Init(WebThing wt) {
+        Win = wt.Window;
+        Win.KeyPressEvent += Win_KeyPress;
+        Win.WindowStateEvent += Win_WindowState;
+    }
+
+    private void Win_KeyPress(object o, KeyPressEventArgs e) {
+        if (e.Event.State == Gdk.ModifierType.None) {
+            switch(e.Event.Key) {
+            case Gdk.Key.F11:
+                if (IsFullscreen) {
+                    Win.Unfullscreen();
+                } else {
+                    Win.Fullscreen();
+                }
+                break;
+            }
+        }
+    }
+
+    private void Win_WindowState(object o, WindowStateEventArgs e) {
+        IsFullscreen = (e.Event.NewWindowState & WindowState.Fullscreen) != 0;
+    }
+}