diff options
Diffstat (limited to 'src/fltk-devices-surface-paged.adb')
-rw-r--r-- | src/fltk-devices-surface-paged.adb | 538 |
1 files changed, 0 insertions, 538 deletions
diff --git a/src/fltk-devices-surface-paged.adb b/src/fltk-devices-surface-paged.adb deleted file mode 100644 index 829974a..0000000 --- a/src/fltk-devices-surface-paged.adb +++ /dev/null @@ -1,538 +0,0 @@ - - --- Programmed by Jedidiah Barber --- Released into the public domain - - -with - - Ada.Assertions, - Ada.Strings.Unbounded, - Interfaces.C.Strings; - -use type - - Interfaces.C.int, - Interfaces.C.Strings.chars_ptr; - - -package body FLTK.Devices.Surface.Paged is - - - package Chk renames Ada.Assertions; - package SU renames Ada.Strings.Unbounded; - - - - - ------------------------ - -- Constants From C -- - ------------------------ - - fl_page_format_media : constant Interfaces.C.int; - pragma Import (C, fl_page_format_media); - - fl_page_layout_portrait : constant Interfaces.C.int; - pragma Import (C, fl_page_layout_portrait); - - fl_page_layout_landscape : constant Interfaces.C.int; - pragma Import (C, fl_page_layout_landscape); - - fl_page_layout_reversed : constant Interfaces.C.int; - pragma Import (C, fl_page_layout_reversed); - - fl_page_layout_orientation : constant Interfaces.C.int; - pragma Import (C, fl_page_layout_orientation); - - fl_no_page_formats : constant Interfaces.C.int; - pragma Import (C, fl_no_page_formats); - - - - - ------------------------ - -- Functions From C -- - ------------------------ - - procedure fl_paged_device_get_page_format - (Index : in Interfaces.C.int; - Name : out Interfaces.C.Strings.chars_ptr; - Width : out Interfaces.C.int; - Height : out Interfaces.C.int); - pragma Import (C, fl_paged_device_get_page_format, "fl_paged_device_get_page_format"); - pragma Inline (fl_paged_device_get_page_format); - - - - - function new_fl_paged_device - return Storage.Integer_Address; - pragma Import (C, new_fl_paged_device, "new_fl_paged_device"); - pragma Inline (new_fl_paged_device); - - procedure free_fl_paged_device - (D : in Storage.Integer_Address); - pragma Import (C, free_fl_paged_device, "free_fl_paged_device"); - pragma Inline (free_fl_paged_device); - - - - - function fl_paged_device_start_job - (D : in Storage.Integer_Address; - C : in Interfaces.C.int) - return Interfaces.C.int; - pragma Import (C, fl_paged_device_start_job, "fl_paged_device_start_job"); - pragma Inline (fl_paged_device_start_job); - - function fl_paged_device_start_job2 - (D : in Storage.Integer_Address; - C : in Interfaces.C.int; - F, T : out Interfaces.C.int) - return Interfaces.C.int; - pragma Import (C, fl_paged_device_start_job2, "fl_paged_device_start_job2"); - pragma Inline (fl_paged_device_start_job2); - - procedure fl_paged_device_end_job - (D : in Storage.Integer_Address); - pragma Import (C, fl_paged_device_end_job, "fl_paged_device_end_job"); - pragma Inline (fl_paged_device_end_job); - - function fl_paged_device_start_page - (D : in Storage.Integer_Address) - return Interfaces.C.int; - pragma Import (C, fl_paged_device_start_page, "fl_paged_device_start_page"); - pragma Inline (fl_paged_device_start_page); - - function fl_paged_device_end_page - (D : in Storage.Integer_Address) - return Interfaces.C.int; - pragma Import (C, fl_paged_device_end_page, "fl_paged_device_end_page"); - pragma Inline (fl_paged_device_end_page); - - - - - procedure fl_paged_device_margins - (D : in Storage.Integer_Address; - L, T, R, B : out Interfaces.C.int); - pragma Import (C, fl_paged_device_margins, "fl_paged_device_margins"); - pragma Inline (fl_paged_device_margins); - - function fl_paged_device_printable_rect - (D : in Storage.Integer_Address; - W, H : out Interfaces.C.int) - return Interfaces.C.int; - pragma Import (C, fl_paged_device_printable_rect, "fl_paged_device_printable_rect"); - pragma Inline (fl_paged_device_printable_rect); - - procedure fl_paged_device_get_origin - (D : in Storage.Integer_Address; - X, Y : out Interfaces.C.int); - pragma Import (C, fl_paged_device_get_origin, "fl_paged_device_get_origin"); - pragma Inline (fl_paged_device_get_origin); - - procedure fl_paged_device_set_origin - (D : in Storage.Integer_Address; - X, Y : in Interfaces.C.int); - pragma Import (C, fl_paged_device_set_origin, "fl_paged_device_set_origin"); - pragma Inline (fl_paged_device_set_origin); - - procedure fl_paged_device_rotate - (D : in Storage.Integer_Address; - R : in Interfaces.C.C_float); - pragma Import (C, fl_paged_device_rotate, "fl_paged_device_rotate"); - pragma Inline (fl_paged_device_rotate); - - procedure fl_paged_device_scale - (D : in Storage.Integer_Address; - X, Y : in Interfaces.C.C_float); - pragma Import (C, fl_paged_device_scale, "fl_paged_device_scale"); - pragma Inline (fl_paged_device_scale); - - procedure fl_paged_device_translate - (D : in Storage.Integer_Address; - X, Y : in Interfaces.C.int); - pragma Import (C, fl_paged_device_translate, "fl_paged_device_translate"); - pragma Inline (fl_paged_device_translate); - - procedure fl_paged_device_untranslate - (D : in Storage.Integer_Address); - pragma Import (C, fl_paged_device_untranslate, "fl_paged_device_untranslate"); - pragma Inline (fl_paged_device_untranslate); - - - - - procedure fl_paged_device_print_widget - (D, I : in Storage.Integer_Address; - DX, DY : in Interfaces.C.int); - pragma Import (C, fl_paged_device_print_widget, "fl_paged_device_print_widget"); - pragma Inline (fl_paged_device_print_widget); - - procedure fl_paged_device_print_window - (D, I : in Storage.Integer_Address; - DX, DY : in Interfaces.C.int); - pragma Import (C, fl_paged_device_print_window, "fl_paged_device_print_window"); - pragma Inline (fl_paged_device_print_window); - - procedure fl_paged_device_print_window_part - (D, I : in Storage.Integer_Address; - X, Y, W, H, DX, DY : in Interfaces.C.int); - pragma Import (C, fl_paged_device_print_window_part, "fl_paged_device_print_window_part"); - pragma Inline (fl_paged_device_print_window_part); - - - - - ------------------------ - -- Internal Utility -- - ------------------------ - - function To_Cint - (Value : in Page_Format) - return Interfaces.C.int is - begin - case Value is - when A0 .. Envelope => return Page_Format'Pos (Value); - when Media => return fl_page_format_media; - end case; - end To_Cint; - - - function To_Page_Format - (Value : in Interfaces.C.int) - return Page_Format is - begin - if Value in Page_Format'Pos (A0) .. Page_Format'Pos (Envelope) then - return Page_Format'Val (Value); - else - pragma Assert (Value = fl_page_format_media); - return Media; - end if; - exception - when Chk.Assertion_Error => raise Internal_FLTK_Error; - end To_Page_Format; - - - function To_Cint - (Value : in Page_Layout) - return Interfaces.C.int is - begin - case Value is - when Portrait => return fl_page_layout_portrait; - when Landscape => return fl_page_layout_landscape; - when Reversed => return fl_page_layout_reversed; - when Orientation => return fl_page_layout_orientation; - end case; - end To_Cint; - - - function To_Page_Layout - (Value : in Interfaces.C.int) - return Page_Layout is - begin - if Value = fl_page_layout_portrait then - return Portrait; - elsif Value = fl_page_layout_landscape then - return Landscape; - elsif Value = fl_page_layout_reversed then - return Reversed; - else - pragma Assert (Value = fl_page_layout_orientation); - return Orientation; - end if; - exception - when Chk.Assertion_Error => raise Internal_FLTK_Error; - end To_Page_Layout; - - - function Get_Page_Formats - return Page_Format_Info_Array - is - C_Name : Interfaces.C.Strings.chars_ptr; - C_Width : Interfaces.C.int; - C_Height : Interfaces.C.int; - begin - return Data : Page_Format_Info_Array (A0 .. To_Page_Format (fl_no_page_formats - 1)) do - for Index in Data'Range loop - fl_paged_device_get_page_format (To_Cint (Index), C_Name, C_Width, C_Height); - if C_Name = Interfaces.C.Strings.Null_Ptr then - Data (Index).My_Name := SU.To_Unbounded_String (""); - else - Data (Index).My_Name := SU.To_Unbounded_String - (Interfaces.C.Strings.Value (C_Name)); - end if; - Data (Index).My_Width := Natural (C_Width); - Data (Index).My_Height := Natural (C_Height); - end loop; - end return; - end Get_Page_Formats; - - - - - ---------------------------- - -- Datatype Subprograms -- - ---------------------------- - - function Name - (This : in Page_Format_Info) - return String is - begin - return SU.To_String (This.My_Name); - end Name; - - - function Width - (This : in Page_Format_Info) - return Natural is - begin - return This.My_Width; - end Width; - - - function Height - (This : in Page_Format_Info) - return Natural is - begin - return This.My_Height; - end Height; - - - - - ------------------- - -- Destructors -- - ------------------- - - procedure Finalize - (This : in out Paged_Device) is - begin - if This.Void_Ptr /= Null_Pointer and This.Needs_Dealloc then - free_fl_paged_device (This.Void_Ptr); - This.Void_Ptr := Null_Pointer; - end if; - end Finalize; - - - - - -------------------- - -- Constructors -- - -------------------- - - package body Forge is - - function Create - return Paged_Device is - begin - return This : Paged_Device do - This.Void_Ptr := new_fl_paged_device; - end return; - end Create; - - pragma Inline (Create); - - end Forge; - - - - - ----------------------- - -- API Subprograms -- - ----------------------- - - procedure Start_Job - (This : in out Paged_Device; - Count : in Natural := 0) is - begin - if fl_paged_device_start_job - (This.Void_Ptr, Interfaces.C.int (Count)) /= 0 - then - raise Page_Error; - end if; - end Start_Job; - - - procedure Start_Job - (This : in out Paged_Device; - Count : in Natural := 0; - From, To : out Positive) is - begin - if fl_paged_device_start_job2 - (This.Void_Ptr, - Interfaces.C.int (Count), - Interfaces.C.int (From), - Interfaces.C.int (To)) /= 0 - then - raise Page_Error; - end if; - end Start_Job; - - - procedure End_Job - (This : in out Paged_Device) is - begin - fl_paged_device_end_job (This.Void_Ptr); - end End_Job; - - - procedure Start_Page - (This : in out Paged_Device) is - begin - if fl_paged_device_start_page (This.Void_Ptr) /= 0 then - raise Page_Error; - end if; - end Start_Page; - - - procedure End_Page - (This : in out Paged_Device) is - begin - if fl_paged_device_end_page (This.Void_Ptr) /= 0 then - raise Page_Error; - end if; - end End_Page; - - - - - procedure Get_Margins - (This : in Paged_Device; - Left, Top, Right, Bottom : out Integer) is - begin - fl_paged_device_margins - (This.Void_Ptr, - Interfaces.C.int (Left), - Interfaces.C.int (Top), - Interfaces.C.int (Right), - Interfaces.C.int (Bottom)); - end Get_Margins; - - - procedure Get_Printable_Rect - (This : in Paged_Device; - W, H : out Integer) is - begin - if fl_paged_device_printable_rect - (This.Void_Ptr, Interfaces.C.int (W), Interfaces.C.int (H)) /= 0 - then - raise Page_Error; - end if; - end Get_Printable_Rect; - - - procedure Get_Origin - (This : in Paged_Device; - X, Y : out Integer) is - begin - fl_paged_device_get_origin (This.Void_Ptr, Interfaces.C.int (X), Interfaces.C.int (Y)); - end Get_Origin; - - - procedure Set_Origin - (This : in out Paged_Device; - X, Y : in Integer) is - begin - fl_paged_device_set_origin - (This.Void_Ptr, - Interfaces.C.int (X), - Interfaces.C.int (Y)); - end Set_Origin; - - - procedure Rotate - (This : in out Paged_Device; - Degrees : in Float) is - begin - fl_paged_device_rotate (This.Void_Ptr, Interfaces.C.C_float (Degrees)); - end Rotate; - - - procedure Scale - (This : in out Paged_Device; - Factor : in Float) is - begin - fl_paged_device_scale (This.Void_Ptr, Interfaces.C.C_float (Factor), 0.0); - end Scale; - - - procedure Scale - (This : in out Paged_Device; - Factor_X, Factor_Y : in Float) is - begin - fl_paged_device_scale - (This.Void_Ptr, - Interfaces.C.C_float (Factor_X), - Interfaces.C.C_float (Factor_Y)); - end Scale; - - - procedure Translate - (This : in out Paged_Device; - Delta_X, Delta_Y : in Integer) is - begin - fl_paged_device_translate - (This.Void_Ptr, - Interfaces.C.int (Delta_X), - Interfaces.C.int (Delta_Y)); - end Translate; - - - procedure Untranslate - (This : in out Paged_Device) is - begin - fl_paged_device_untranslate (This.Void_Ptr); - end Untranslate; - - - - - procedure Print_Widget - (This : in out Paged_Device; - Item : in FLTK.Widgets.Widget'Class; - Offset_X, Offset_Y : in Integer := 0) is - begin - fl_paged_device_print_widget - (This.Void_Ptr, - Wrapper (Item).Void_Ptr, - Interfaces.C.int (Offset_X), - Interfaces.C.int (Offset_Y)); - end Print_Widget; - - - procedure Print_Window - (This : in out Paged_Device; - Item : in FLTK.Widgets.Groups.Windows.Window'Class; - Offset_X, Offset_Y : in Integer := 0) is - begin - fl_paged_device_print_window - (This.Void_Ptr, - Wrapper (Item).Void_Ptr, - Interfaces.C.int (Offset_X), - Interfaces.C.int (Offset_Y)); - end Print_Window; - - - 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) is - begin - fl_paged_device_print_window_part - (This.Void_Ptr, - Wrapper (Item).Void_Ptr, - Interfaces.C.int (X), - Interfaces.C.int (Y), - Interfaces.C.int (W), - Interfaces.C.int (H), - Interfaces.C.int (Offset_X), - Interfaces.C.int (Offset_Y)); - end Print_Window_Part; - - -end FLTK.Devices.Surface.Paged; - - |