summaryrefslogtreecommitdiff
path: root/src/fltk-devices-surface-copy.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-devices-surface-copy.ads')
-rw-r--r--src/fltk-devices-surface-copy.ads82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/fltk-devices-surface-copy.ads b/src/fltk-devices-surface-copy.ads
new file mode 100644
index 0000000..f5069c5
--- /dev/null
+++ b/src/fltk-devices-surface-copy.ads
@@ -0,0 +1,82 @@
+
+
+-- Programmed by Jedidiah Barber
+-- Released into the public domain
+
+
+with
+
+ FLTK.Widgets.Groups.Windows;
+
+
+package FLTK.Devices.Surface.Copy is
+
+
+ type Copy_Surface is new Surface_Device with private;
+
+ type Copy_Surface_Reference (Data : not null access Copy_Surface'Class) is
+ limited null record with Implicit_Dereference => Data;
+
+
+
+
+ package Forge is
+
+ function Create
+ (W, H : in Natural)
+ return Copy_Surface;
+
+ end Forge;
+
+
+
+
+ function Get_W
+ (This : in Copy_Surface)
+ return Integer;
+
+ function Get_H
+ (This : in Copy_Surface)
+ return Integer;
+
+
+
+
+ procedure Draw_Widget
+ (This : in out Copy_Surface;
+ Item : in FLTK.Widgets.Widget'Class;
+ Offset_X, Offset_Y : in Integer := 0);
+
+ procedure Draw_Decorated_Window
+ (This : in out Copy_Surface;
+ Item : in FLTK.Widgets.Groups.Windows.Window'Class;
+ Offset_X, Offset_Y : in Integer := 0);
+
+
+
+
+ procedure Set_Current
+ (This : in out Copy_Surface);
+
+
+private
+
+
+ type Copy_Surface is new Surface_Device with null record;
+
+ overriding procedure Finalize
+ (This : in out Copy_Surface);
+
+
+ pragma Inline (Get_W);
+ pragma Inline (Get_H);
+
+ pragma Inline (Draw_Widget);
+ pragma Inline (Draw_Decorated_Window);
+
+ pragma Inline (Set_Current);
+
+
+end FLTK.Devices.Surface.Copy;
+
+