From b4438b2fbe895694be98e6e8426103deefc51448 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Tue, 21 Jan 2025 21:04:54 +1300 Subject: Split public API and private implementation files into different directories --- spec/fltk-devices-surface.ads | 84 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 spec/fltk-devices-surface.ads (limited to 'spec/fltk-devices-surface.ads') diff --git a/spec/fltk-devices-surface.ads b/spec/fltk-devices-surface.ads new file mode 100644 index 0000000..f70d1e8 --- /dev/null +++ b/spec/fltk-devices-surface.ads @@ -0,0 +1,84 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + + +with + + FLTK.Devices.Graphics; + + +package FLTK.Devices.Surface is + + + type Surface_Device is new Device with private; + + type Surface_Device_Reference (Data : not null access Surface_Device'Class) is + limited null record with Implicit_Dereference => Data; + + + + + package Forge is + + function Create + (Graphics : in out FLTK.Devices.Graphics.Graphics_Driver) + return Surface_Device; + + end Forge; + + + + + function Get_Current + return Surface_Device_Reference; + + procedure Set_Current + (This : in out Surface_Device); + + function Get_Original + return Surface_Device_Reference; + + + + + function Has_Driver + (This : in Surface_Device) + return Boolean; + + function Get_Driver + (This : in out Surface_Device) + return FLTK.Devices.Graphics.Graphics_Driver_Reference; + + procedure Set_Driver + (This : in out Surface_Device; + Driver : in out FLTK.Devices.Graphics.Graphics_Driver'Class); + + +private + + + type Surface_Device is new Device with record + My_Driver : access FLTK.Devices.Graphics.Graphics_Driver'Class; + end record; + + overriding procedure Finalize + (This : in out Surface_Device); + + + procedure Set_Current_Bookkeep + (Surface : in out Surface_Device'Class) + with Inline; + + + pragma Inline (Get_Current); + pragma Inline (Get_Original); + + pragma Inline (Has_Driver); + pragma Inline (Get_Driver); + + +end FLTK.Devices.Surface; + + -- cgit