summaryrefslogtreecommitdiff
path: root/src/fltk-images.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-images.adb')
-rw-r--r--src/fltk-images.adb82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/fltk-images.adb b/src/fltk-images.adb
index f99c760..cadf47b 100644
--- a/src/fltk-images.adb
+++ b/src/fltk-images.adb
@@ -7,6 +7,7 @@ with
use type
+ Interfaces.C.int,
System.Address;
@@ -53,6 +54,11 @@ package body FLTK.Images is
(I : in System.Address);
pragma Import (C, fl_image_inactive, "fl_image_inactive");
+ function fl_image_fail
+ (I : in System.Address)
+ return Interfaces.C.int;
+ pragma Import (C, fl_image_fail, "fl_image_fail");
+
@@ -74,6 +80,24 @@ package body FLTK.Images is
+ procedure fl_image_draw
+ (I : in System.Address;
+ X, Y : in Interfaces.C.int);
+ pragma Import (C, fl_image_draw, "fl_image_draw");
+
+ procedure fl_image_draw2
+ (I : in System.Address;
+ X, Y, W, H, CX, CY : in Interfaces.C.int);
+ pragma Import (C, fl_image_draw2, "fl_image_draw2");
+
+ procedure fl_image_draw_empty
+ (I : in System.Address;
+ X, Y : in Interfaces.C.int);
+ pragma Import (C, fl_image_draw_empty, "fl_image_draw_empty");
+
+
+
+
overriding procedure Finalize
(This : in out Image) is
begin
@@ -97,6 +121,16 @@ package body FLTK.Images is
(Interfaces.C.int (Width),
Interfaces.C.int (Height),
Interfaces.C.int (Depth));
+ case fl_image_fail (This.Void_Ptr) is
+ when 1 =>
+ raise No_Image_Error;
+ when 2 =>
+ raise File_Access_Error;
+ when 3 =>
+ raise Format_Error;
+ when others =>
+ null;
+ end case;
end return;
end Create;
@@ -155,6 +189,14 @@ package body FLTK.Images is
end Inactive;
+ function Is_Empty
+ (This : in Image)
+ return Boolean is
+ begin
+ return fl_image_fail (This.Void_Ptr) /= 0;
+ end Is_Empty;
+
+
function Get_W
@@ -181,5 +223,45 @@ package body FLTK.Images is
end Get_D;
+
+
+ procedure Draw
+ (This : in Image;
+ X, Y : in Integer) is
+ begin
+ fl_image_draw
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y));
+ end Draw;
+
+
+ procedure Draw
+ (This : in Image;
+ X, Y, W, H : in Integer;
+ CX, CY : in Integer := 0) is
+ begin
+ fl_image_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (CX),
+ Interfaces.C.int (CY));
+ end Draw;
+
+
+ procedure Draw_Empty
+ (This : in Image;
+ X, Y : in Integer) is
+ begin
+ fl_image_draw_empty
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y));
+ end Draw_Empty;
+
+
end FLTK.Images;