summaryrefslogtreecommitdiff
path: root/src/windows.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows.adb')
-rw-r--r--src/windows.adb44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/windows.adb b/src/windows.adb
new file mode 100644
index 0000000..646ffb4
--- /dev/null
+++ b/src/windows.adb
@@ -0,0 +1,44 @@
+
+
+with FLTK.Widgets;
+with FLTK.Widgets.Groups;
+with FLTK.Widgets.Groups.Windows;
+
+
+package body Windows is
+
+
+ package W renames FLTK.Widgets;
+ package G renames FLTK.Widgets.Groups;
+ package WN renames FLTK.Widgets.Groups.Windows;
+
+
+
+
+ -- used to hide about/find/replace/etc windows instead
+ -- of constantly creating and destroying them
+
+ overriding procedure Call
+ (This : in Hide_Callback;
+ Item : in out W.Widget'Class)
+ is
+ P : access G.Group'Class;
+ begin
+ if Item in WN.Window'Class then
+ WN.Window (Item).Hide;
+ else
+ P := Item.Parent;
+ loop
+ if P = null then
+ return;
+ end if;
+ exit when P.all in WN.Window'Class;
+ P := P.Parent;
+ end loop;
+ WN.Window (P.all).Hide;
+ end if;
+ end Call;
+
+
+end Windows;
+