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
|
with FLTK.Widgets.Groups.Windows.Double;
with FLTK.Widgets.Boxes;
with FLTK.Widgets.Buttons.Enter;
package body Windows.About is
package WD renames FLTK.Widgets.Groups.Windows.Double;
package BX renames FLTK.Widgets.Boxes;
package EN renames FLTK.Widgets.Buttons.Enter;
function Create
return About_Window
is
My_Width : Integer := 350;
My_Height : Integer := 250;
Logo_Line : Integer := 30;
Logo_Width : Integer := 50;
Logo_Height : Integer := 50;
Button_Width : Integer := 140;
Button_Height : Integer := 40;
Heading_Line : Integer := 90;
Blurb_Line : Integer := 132;
Author_Line : Integer := 157;
Button_Line : Integer := 190;
Heading_Size : Integer := 22;
Text_Size : Integer := 12;
Heading_Text : String := "Adapad 0.8";
Blurb_Text : String := "FLTK based simple text editor written in Ada";
Author_Text : String := "Programmed by Jed Barber";
begin
return This : About_Window :=
(WD.Double_Window'(WD.Create (0, 0, My_Width, My_Height, "About Adapad")) with
Picture => BX.Box'(BX.Create
((My_Width - Logo_Width) / 2,
Logo_Line, Logo_Width, Logo_Height, "")),
Heading => BX.Box'(BX.Create
(0, Heading_Line, My_Width, Heading_Size, Heading_Text)),
Blurb => BX.Box'(BX.Create
(0, Blurb_Line, My_Width, Text_Size, Blurb_Text)),
Author => BX.Box'(BX.Create
(0, Author_Line, My_Width, Text_Size, Author_Text)),
Dismiss => EN.Enter_Button'(EN.Create
((My_Width - Button_Width) / 2,
Button_Line, Button_Width, Button_Height, "Close"))) do
This.Add (This.Picture);
This.Picture.Set_Image (Logo);
This.Add (This.Heading);
This.Heading.Set_Label_Size (FLTK.Widgets.Font_Size (Heading_Size));
This.Add (This.Blurb);
This.Add (This.Author);
This.Add (This.Dismiss);
This.Dismiss.Set_Callback (Hide_CB'Access);
This.Set_Callback (Hide_CB'Access);
This.Set_Icon (Logo);
This.Set_Modal;
end return;
end Create;
function Create
(X, Y, W, H : in Integer;
Label_Text : in String)
return About_Window is
begin
return Create;
end Create;
function Create
(W, H : in Integer)
return About_Window is
begin
return Create;
end Create;
end Windows.About;
|