commit:fc831a2ef0ae342cc73dee301e051bcfbbbeb82c
author:Chip Black
committer:Chip Black
date:Wed Jun 10 03:41:22 2009 -0500
parents:02acfc22dbfa3d145d265157fdf616a950fa30c6
Add plugin for F11 full-screen toggle
diff --git a/plugins/Fullscreen.cs b/plugins/Fullscreen.cs
line changes: +33/-0
index 0000000..fcb617b
--- /dev/null
+++ b/plugins/Fullscreen.cs
@@ -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;
+    }
+}

diff --git a/plugins/Makefile b/plugins/Makefile
line changes: +1/-1
index 105e807..2f78065
--- a/plugins/Makefile
+++ b/plugins/Makefile
@@ -1,7 +1,7 @@
 CSFLAGS = -debug
 references = -r:../webkit-sharp.dll -pkg:gtk-sharp-2.0
 
-all: Vimish.dll FFNav.dll DefaultPage.dll LoadProgress.dll MiddleClickOpen.dll QuickSearch.dll Session.dll
+all: Vimish.dll FFNav.dll DefaultPage.dll LoadProgress.dll MiddleClickOpen.dll QuickSearch.dll Session.dll Fullscreen.dll
 
 clean:
 	rm -f *.dll *.mdb *.so