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-paged-printers.ads | 321 +++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 spec/fltk-devices-surface-paged-printers.ads (limited to 'spec/fltk-devices-surface-paged-printers.ads') diff --git a/spec/fltk-devices-surface-paged-printers.ads b/spec/fltk-devices-surface-paged-printers.ads new file mode 100644 index 0000000..c0bc34e --- /dev/null +++ b/spec/fltk-devices-surface-paged-printers.ads @@ -0,0 +1,321 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + + +with + + FLTK.Widgets.Groups.Windows; + +private with + + Ada.Finalization, + Interfaces.C.Strings; + + +package FLTK.Devices.Surface.Paged.Printers is + + + type Printer is new Paged_Device with private; + + type Printer_Reference (Data : not null access Printer'Class) is limited null record + with Implicit_Dereference => Data; + + + + + -- The initial Graphics_Driver this is supposed to have upon construction + -- is not currently implemented properly. Please wait warmly until the + -- binding for the Graphics sub-hierarchy is done. + + + + + package Forge is + + function Create + return Printer; + + end Forge; + + + + + function Get_Dialog_Title + return String; + + procedure Set_Dialog_Title + (Value : in String); + + function Get_Dialog_Printer + return String; + + procedure Set_Dialog_Printer + (Value : in String); + + function Get_Dialog_Range + return String; + + procedure Set_Dialog_Range + (Value : in String); + + function Get_Dialog_Copies + return String; + + procedure Set_Dialog_Copies + (Value : in String); + + function Get_Dialog_All + return String; + + procedure Set_Dialog_All + (Value : in String); + + function Get_Dialog_Pages + return String; + + procedure Set_Dialog_Pages + (Value : in String); + + function Get_Dialog_From + return String; + + procedure Set_Dialog_From + (Value : in String); + + function Get_Dialog_To + return String; + + procedure Set_Dialog_To + (Value : in String); + + function Get_Dialog_Properties + return String; + + procedure Set_Dialog_Properties + (Value : in String); + + function Get_Dialog_Number_Copies + return String; + + procedure Set_Dialog_Number_Copies + (Value : in String); + + function Get_Dialog_Print_Button + return String; + + procedure Set_Dialog_Print_Button + (Value : in String); + + function Get_Dialog_Cancel_Button + return String; + + procedure Set_Dialog_Cancel_Button + (Value : in String); + + function Get_Dialog_Print_To_File + return String; + + procedure Set_Dialog_Print_To_File + (Value : in String); + + function Get_Property_Title + return String; + + procedure Set_Property_Title + (Value : in String); + + function Get_Property_Page_Size + return String; + + procedure Set_Property_Page_Size + (Value : in String); + + function Get_Property_Mode + return String; + + procedure Set_Property_Mode + (Value : in String); + + function Get_Property_Use + return String; + + procedure Set_Property_Use + (Value : in String); + + function Get_Property_Save + return String; + + procedure Set_Property_Save + (Value : in String); + + function Get_Property_Cancel + return String; + + procedure Set_Property_Cancel + (Value : in String); + + + + + -- Not currently implemented + function Get_Original_Driver + (This : in out Printer) + return FLTK.Devices.Graphics.Graphics_Driver_Reference; + + + + + procedure Start_Job + (This : in out Printer; + Count : in Natural := 0); + + procedure Start_Job + (This : in out Printer; + Count : in Natural := 0; + From, To : out Positive); + + procedure End_Job + (This : in out Printer); + + procedure Start_Page + (This : in out Printer); + + procedure End_Page + (This : in out Printer); + + + + + procedure Get_Margins + (This : in Printer; + Left, Top, Right, Bottom : out Integer); + + procedure Get_Printable_Rect + (This : in Printer; + W, H : out Integer); + + procedure Get_Origin + (This : in Printer; + X, Y : out Integer); + + procedure Set_Origin + (This : in out Printer; + X, Y : in Integer); + + procedure Rotate + (This : in out Printer; + Degrees : in Float); + + procedure Scale + (This : in out Printer; + Factor : in Float); + + procedure Scale + (This : in out Printer; + Factor_X, Factor_Y : in Float); + + procedure Translate + (This : in out Printer; + Delta_X, Delta_Y : in Integer); + + procedure Untranslate + (This : in out Printer); + + + + + procedure Print_Widget + (This : in out Printer; + Item : in FLTK.Widgets.Widget'Class; + Offset_X, Offset_Y : in Integer := 0); + + procedure Print_Window_Part + (This : in out Printer; + Item : in FLTK.Widgets.Groups.Windows.Window'Class; + X, Y, W, H : in Integer; + Offset_X, Offset_Y : in Integer := 0); + + + + + procedure Set_Current + (This : in out Printer); + + +private + + + type Printer is new Paged_Device with null record; + + overriding procedure Finalize + (This : in out Printer); + + + Dialog_Title, Dialog_Printer, + Dialog_Range, Dialog_Copies, + Dialog_All, Dialog_Pages, + Dialog_From, Dialog_To, + Dialog_Properties, Dialog_Copyno, + Dialog_Print_Button, Dialog_Cancel_Button, + Dialog_Print_To_File, + Property_Title, Property_Pagesize, + Property_Mode, Property_Use, + Property_Save, Property_Cancel : Interfaces.C.Strings.chars_ptr; + + + pragma Inline (Get_Dialog_Title); + pragma Inline (Get_Dialog_Printer); + pragma Inline (Get_Dialog_Range); + pragma Inline (Get_Dialog_Copies); + pragma Inline (Get_Dialog_All); + pragma Inline (Get_Dialog_Pages); + pragma Inline (Get_Dialog_From); + pragma Inline (Get_Dialog_To); + pragma Inline (Get_Dialog_Properties); + pragma Inline (Get_Dialog_Number_Copies); + pragma Inline (Get_Dialog_Print_Button); + pragma Inline (Get_Dialog_Cancel_Button); + pragma Inline (Get_Dialog_Print_To_File); + pragma Inline (Get_Property_Title); + pragma Inline (Get_Property_Page_Size); + pragma Inline (Get_Property_Mode); + pragma Inline (Get_Property_Use); + pragma Inline (Get_Property_Save); + pragma Inline (Get_Property_Cancel); + + pragma Inline (Get_Original_Driver); + + pragma Inline (Start_Job); + pragma Inline (End_Job); + pragma Inline (Start_Page); + pragma Inline (End_Page); + + pragma Inline (Get_Margins); + pragma Inline (Get_Printable_Rect); + pragma Inline (Get_Origin); + pragma Inline (Set_Origin); + pragma Inline (Rotate); + pragma Inline (Scale); + pragma Inline (Translate); + pragma Inline (Untranslate); + + pragma Inline (Print_Widget); + pragma Inline (Print_Window_Part); + + pragma Inline (Set_Current); + + + -- Needed to ensure chars_ptr storage is properly cleaned up + type Printer_Final_Controller is new Ada.Finalization.Limited_Controlled with null record; + + overriding procedure Finalize + (This : in out Printer_Final_Controller); + + Cleanup : Printer_Final_Controller; + + +end FLTK.Devices.Surface.Paged.Printers; + + -- cgit