summaryrefslogtreecommitdiff
path: root/spec/fltk-screen.ads
blob: 38db9aa51825644d4a2dd78495478c189fc1f95b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147


--  Programmed by Jedidiah Barber
--  Released into the public domain


package FLTK.Screen is


    type Visual_Mode is (RGB, RGB_24bit, Double_Buffer, Double_RGB, Double_RGB_24bit);




    --  Environment  --

    procedure Set_Display_String
           (Value : in String);

    procedure Set_Visual_Mode
           (Value : in Visual_Mode);

    function Set_Visual_Mode
           (Value : in Visual_Mode)
        return Boolean;




    --  Basic Dimensions  --

    function Get_X
        return Integer;

    function Get_Y
        return Integer;

    function Get_W
        return Integer;

    function Get_H
        return Integer;




    --  Pixel Density  --

    function Count
        return Integer;

    --  Screen numbers in the range 1 .. Count
    procedure DPI
           (Horizontal, Vertical :    out Float;
            Screen_Number        : in     Integer := 1);




    --  Position Lookup  --

    function Containing
           (X, Y : in Integer)
        return Integer;

    function Containing
           (X, Y, W, H : in Integer)
        return Integer;




    --  Bounding Boxes  --

    procedure Work_Area
           (X, Y, W, H   :    out Integer;
            Pos_X, Pos_Y : in     Integer);

    procedure Work_Area
           (X, Y, W, H :    out Integer;
            Screen_Num : in     Integer);

    procedure Work_Area
           (X, Y, W, H : out Integer);

    procedure Bounding_Rect
           (X, Y, W, H   :    out Integer;
            Pos_X, Pos_Y : in     Integer);

    procedure Bounding_Rect
           (X, Y, W, H :    out Integer;
            Screen_Num : in     Integer);

    procedure Bounding_Rect
           (X, Y, W, H : out Integer);

    procedure Bounding_Rect
           (X, Y, W, H     :    out Integer;
            PX, PY, PW, PH : in     Integer);




    --  Drawing  --

    function Is_Damaged
        return Boolean;

    procedure Set_Damaged
           (To : in Boolean);

    procedure Flush;

    procedure Redraw;


private


    pragma Import (C, Flush, "fl_screen_flush");
    pragma Import (C, Redraw, "fl_screen_redraw");


    pragma Inline (Set_Display_String);
    pragma Inline (Set_Visual_Mode);

    pragma Inline (Get_X);
    pragma Inline (Get_Y);
    pragma Inline (Get_W);
    pragma Inline (Get_H);

    pragma Inline (Count);
    pragma Inline (DPI);

    pragma Inline (Containing);
    pragma Inline (Work_Area);
    pragma Inline (Bounding_Rect);

    pragma Inline (Is_Damaged);
    pragma Inline (Set_Damaged);
    pragma Inline (Flush);
    pragma Inline (Redraw);


end FLTK.Screen;