diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2024-12-23 17:02:34 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2024-12-23 17:02:34 +1300 |
commit | b3f9e96403aa5cb9d7db2330aa579356d1d58b6f (patch) | |
tree | a2f6b68e3582b128e3a7e475757696f156084962 /src/fltk-devices-surface-paged.ads | |
parent | db014c7a249b319e40052f2cff6305b0d09d7ca5 (diff) |
Tweaked the names of Surface_Device subhierarchy
Diffstat (limited to 'src/fltk-devices-surface-paged.ads')
-rw-r--r-- | src/fltk-devices-surface-paged.ads | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/src/fltk-devices-surface-paged.ads b/src/fltk-devices-surface-paged.ads new file mode 100644 index 0000000..1a3c13c --- /dev/null +++ b/src/fltk-devices-surface-paged.ads @@ -0,0 +1,153 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + + +with + + FLTK.Widgets.Groups.Windows; + + +package FLTK.Devices.Surface.Paged is + + + type Paged_Device is new Surface_Device with private; + + type Paged_Device_Reference (Data : not null access Paged_Device'Class) is + limited null record with Implicit_Dereference => Data; + + type Page_Format is + (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, + B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, + C5E, DLE, Executive, Folio, Ledger, + Legal, Letter, Tabloid, Envelope); + + type Page_Layout is + (Potrait, Landscape, Reversed, Orientation); + + + + + Page_Error : exception; + + + + + package Forge is + + function Create + return Paged_Device; + + end Forge; + + + + + procedure Start_Job + (This : in out Paged_Device; + Count : in Natural); + + procedure Start_Job + (This : in out Paged_Device; + Count : in Natural; + From, To : in Positive); + + procedure End_Job + (This : in out Paged_Device); + + procedure Start_Page + (This : in out Paged_Device); + + procedure End_Page + (This : in out Paged_Device); + + + + + procedure Get_Margins + (This : in Paged_Device; + Left, Top, Right, Bottom : out Integer); + + procedure Get_Printable_Rect + (This : in Paged_Device; + W, H : out Integer); + + procedure Get_Origin + (This : in Paged_Device; + X, Y : out Integer); + + procedure Set_Origin + (This : in out Paged_Device; + X, Y : in Integer); + + procedure Rotate + (This : in out Paged_Device; + Degrees : in Float); + + procedure Scale + (This : in out Paged_Device; + Factor : in Float); + + procedure Scale + (This : in out Paged_Device; + Factor_X, Factor_Y : in Float); + + procedure Translate + (This : in out Paged_Device; + Delta_X, Delta_Y : in Integer); + + procedure Untranslate + (This : in out Paged_Device); + + + + + procedure Print_Widget + (This : in out Paged_Device; + Item : in FLTK.Widgets.Widget'Class; + Offset_X, Offset_Y : in Integer := 0); + + procedure Print_Window + (This : in out Paged_Device; + Item : in FLTK.Widgets.Groups.Windows.Window'Class; + Offset_X, Offset_Y : in Integer := 0); + + procedure Print_Window_Part + (This : in out Paged_Device; + Item : in FLTK.Widgets.Groups.Windows.Window'Class; + X, Y, W, H : in Integer; + Offset_X, Offset_Y : in Integer := 0); + + +private + + + type Paged_Device is new Surface_Device with null record; + + overriding procedure Finalize + (This : in out Paged_Device); + + + 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); + pragma Inline (Print_Window_Part); + + +end FLTK.Devices.Surface.Paged; + + |