summaryrefslogtreecommitdiff
path: root/src/fltk-screen.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-screen.adb')
-rw-r--r--src/fltk-screen.adb210
1 files changed, 201 insertions, 9 deletions
diff --git a/src/fltk-screen.adb b/src/fltk-screen.adb
index c85be21..284b0bd 100644
--- a/src/fltk-screen.adb
+++ b/src/fltk-screen.adb
@@ -12,28 +12,100 @@ use type
package body FLTK.Screen is
- function fl_screen_x return Interfaces.C.int;
+ function fl_screen_x
+ return Interfaces.C.int;
pragma Import (C, fl_screen_x, "fl_screen_x");
+ pragma Inline (fl_screen_x);
- function fl_screen_y return Interfaces.C.int;
+ function fl_screen_y
+ return Interfaces.C.int;
pragma Import (C, fl_screen_y, "fl_screen_y");
+ pragma Inline (fl_screen_y);
- function fl_screen_w return Interfaces.C.int;
+ function fl_screen_w
+ return Interfaces.C.int;
pragma Import (C, fl_screen_w, "fl_screen_w");
+ pragma Inline (fl_screen_w);
- function fl_screen_h return Interfaces.C.int;
+ function fl_screen_h
+ return Interfaces.C.int;
pragma Import (C, fl_screen_h, "fl_screen_h");
+ pragma Inline (fl_screen_h);
- function fl_screen_count return Interfaces.C.int;
+ function fl_screen_count
+ return Interfaces.C.int;
pragma Import (C, fl_screen_count, "fl_screen_count");
+ pragma Inline (fl_screen_count);
procedure fl_screen_dpi
(H, V : out Interfaces.C.C_float;
N : in Interfaces.C.int);
pragma Import (C, fl_screen_dpi, "fl_screen_dpi");
+ pragma Inline (fl_screen_dpi);
+
+
+
+
+ function fl_screen_num
+ (X, Y : in Interfaces.C.int)
+ return Interfaces.C.int;
+ pragma Import (C, fl_screen_num, "fl_screen_num");
+ pragma Inline (fl_screen_num);
+
+ function fl_screen_num2
+ (X, Y, W, H : in Interfaces.C.int)
+ return Interfaces.C.int;
+ pragma Import (C, fl_screen_num2, "fl_screen_num2");
+ pragma Inline (fl_screen_num2);
+
+
+
+
+ procedure fl_screen_work_area
+ (X, Y, W, H : out Interfaces.C.int;
+ PX, PY : in Interfaces.C.int);
+ pragma Import (C, fl_screen_work_area, "fl_screen_work_area");
+ pragma Inline (fl_screen_work_area);
+
+ procedure fl_screen_work_area2
+ (X, Y, W, H : out Interfaces.C.int;
+ N : in Interfaces.C.int);
+ pragma Import (C, fl_screen_work_area2, "fl_screen_work_area2");
+ pragma Inline (fl_screen_work_area2);
+
+ procedure fl_screen_work_area3
+ (X, Y, W, H : out Interfaces.C.int);
+ pragma Import (C, fl_screen_work_area3, "fl_screen_work_area3");
+ pragma Inline (fl_screen_work_area3);
+
+
+
+
+ procedure fl_screen_xywh
+ (X, Y, W, H : out Interfaces.C.int;
+ PX, PY : in Interfaces.C.int);
+ pragma Import (C, fl_screen_xywh, "fl_screen_xywh");
+ pragma Inline (fl_screen_xywh);
+
+ procedure fl_screen_xywh2
+ (X, Y, W, H : out Interfaces.C.int;
+ N : in Interfaces.C.int);
+ pragma Import (C, fl_screen_xywh2, "fl_screen_xywh2");
+ pragma Inline (fl_screen_xywh2);
+
+ procedure fl_screen_xywh3
+ (X, Y, W, H : out Interfaces.C.int);
+ pragma Import (C, fl_screen_xywh3, "fl_screen_xywh3");
+ pragma Inline (fl_screen_xywh3);
+
+ procedure fl_screen_xywh4
+ (X, Y, W, H : out Interfaces.C.int;
+ PX, PY, PW, PH : in Interfaces.C.int);
+ pragma Import (C, fl_screen_xywh4, "fl_screen_xywh4");
+ pragma Inline (fl_screen_xywh4);
@@ -64,14 +136,14 @@ package body FLTK.Screen is
- function Get_Count return Integer is
+ function Count return Integer is
begin
return Integer (fl_screen_count);
- end Get_Count;
+ end Count;
-- Screen numbers in the range 1 .. Get_Count
- procedure Get_DPI
+ procedure DPI
(Horizontal, Vertical : out Float;
Screen_Number : in Integer := 1)
is
@@ -80,7 +152,127 @@ package body FLTK.Screen is
fl_screen_dpi (H, V, Interfaces.C.int (Screen_Number) - 1);
Horizontal := Float (H);
Vertical := Float (V);
- end Get_DPI;
+ end DPI;
+
+
+
+
+ function Containing
+ (X, Y : in Integer)
+ return Integer is
+ begin
+ return Integer (fl_screen_num
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y)));
+ end Containing;
+
+
+ function Containing
+ (X, Y, W, H : in Integer)
+ return Integer is
+ begin
+ return Integer (fl_screen_num2
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H)));
+ end Containing;
+
+
+
+
+ procedure Work_Area
+ (X, Y, W, H : out Integer;
+ Pos_X, Pos_Y : in Integer) is
+ begin
+ fl_screen_work_area
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (Pos_X),
+ Interfaces.C.int (Pos_Y));
+ end Work_Area;
+
+
+ procedure Work_Area
+ (X, Y, W, H : out Integer;
+ Screen_Num : in Integer) is
+ begin
+ fl_screen_work_area2
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (Screen_Num));
+ end Work_Area;
+
+
+ procedure Work_Area
+ (X, Y, W, H : out Integer) is
+ begin
+ fl_screen_work_area3
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Work_Area;
+
+
+
+
+ procedure Bounding_Rect
+ (X, Y, W, H : out Integer;
+ Pos_X, Pos_Y : in Integer) is
+ begin
+ fl_screen_xywh
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (Pos_X),
+ Interfaces.C.int (Pos_Y));
+ end Bounding_Rect;
+
+
+ procedure Bounding_Rect
+ (X, Y, W, H : out Integer;
+ Screen_Num : in Integer) is
+ begin
+ fl_screen_xywh2
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (Screen_Num));
+ end Bounding_Rect;
+
+
+ procedure Bounding_Rect
+ (X, Y, W, H : out Integer) is
+ begin
+ fl_screen_xywh3
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Bounding_Rect;
+
+
+ procedure Bounding_Rect
+ (X, Y, W, H : out Integer;
+ PX, PY, PW, PH : in Integer) is
+ begin
+ fl_screen_xywh4
+ (Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.int (PX),
+ Interfaces.C.int (PY),
+ Interfaces.C.int (PW),
+ Interfaces.C.int (PH));
+ end Bounding_Rect;
end FLTK.Screen;