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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
with FLTK.Enums; use FLTK.Enums;
with FLTK.Images;
limited with FLTK.Widgets.Groups;
private with System;
private with System.Address_To_Access_Conversions;
private with Ada.Unchecked_Conversion;
package FLTK.Widgets is
type Widget is abstract new Wrapper with private;
type Widget_Callback is access procedure
(Item : in out Widget'Class);
type Font_Size is new Natural;
Normal_Size : constant Font_Size := 14;
type Color is new Natural;
function Create
(X, Y, W, H : in Integer;
Text : in String)
return Widget is abstract;
function Parent
(This : in Widget)
return access FLTK.Widgets.Groups.Group'Class;
function Get_Box
(This : in Widget)
return Box_Kind;
procedure Set_Box
(This : in out Widget;
Box : in Box_Kind);
function Get_Label
(This : in out Widget)
return String;
procedure Set_Label
(This : in out Widget;
Text : in String);
function Get_Label_Font
(This : in Widget)
return Font_Kind;
procedure Set_Label_Font
(This : in out Widget;
Font : in Font_Kind);
function Get_Label_Size
(This : in Widget)
return Font_Size;
procedure Set_Label_Size
(This : in out Widget;
Size : in Font_Size);
function Get_Label_Type
(This : in Widget)
return Label_Kind;
procedure Set_Label_Type
(This : in out Widget;
Label : in Label_Kind);
procedure Set_Callback
(This : in out Widget;
Func : in Widget_Callback);
function Get_X
(This : in Widget)
return Integer;
function Get_Y
(This : in Widget)
return Integer;
function Get_W
(This : in Widget)
return Integer;
function Get_H
(This : in Widget)
return Integer;
procedure Resize
(This : in out Widget;
W, H : in Integer);
procedure Reposition
(This : in out Widget;
X, Y : in Integer);
function Get_Image
(This : in Widget)
return access FLTK.Images.Image'Class;
procedure Set_Image
(This : in out Widget;
Pic : in out FLTK.Images.Image'Class);
private
type Widget is abstract new Wrapper with
record
Callback : Widget_Callback;
Current_Image : access FLTK.Images.Image'Class;
end record;
package Widget_Convert is new System.Address_To_Access_Conversions (Widget'Class);
-- package Callback_Convert is new System.Address_To_Access_Conversions (Widget_Callback);
package Callback_Convert is
function To_Pointer is new Ada.Unchecked_Conversion (System.Address, Widget_Callback);
function To_Address is new Ada.Unchecked_Conversion (Widget_Callback, System.Address);
end Callback_Convert;
function fl_widget_get_user_data
(W : in System.Address)
return System.Address;
pragma Import (C, fl_widget_get_user_data, "fl_widget_get_user_data");
procedure fl_widget_set_user_data
(W, D : in System.Address);
pragma Import (C, fl_widget_set_user_data, "fl_widget_set_user_data");
end FLTK.Widgets;
|