aboutsummaryrefslogtreecommitdiff
path: root/src/windows-about.adb
blob: b9fec99e0015698ca30d1e8900e169c04c685d5d (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


package body Windows.About is


    package W renames FLTK.Widgets.Groups.Windows;
    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      : constant Integer := 350;
        My_Height     : constant Integer := 250;

        Logo_Line     : constant Integer := 30;
        Logo_Width    : constant Integer := 50;
        Logo_Height   : constant Integer := 50;

        Button_Width  : constant Integer := 140;
        Button_Height : constant Integer := 40;

        Heading_Line  : constant Integer := 90;
        Blurb_Line    : constant Integer := 132;
        Author_Line   : constant Integer := 157;
        Button_Line   : constant Integer := 190;

        Heading_Size  : constant Integer := 22;
        Text_Size     : constant Integer := 12;

        Heading_Text  : constant String := "Adapad 0.8";
        Blurb_Text    : constant String := "FLTK based simple text editor written in Ada";
        Author_Text   : constant String := "Programmed by Jed Barber";
    begin
        return This : About_Window :=
           (WD.Forge.Create (0, 0, My_Width, My_Height, "About Adapad")
        with
            Picture => BX.Forge.Create
               ((My_Width - Logo_Width) / 2,
                Logo_Line, Logo_Width, Logo_Height, ""),
            Heading => BX.Forge.Create
               (0, Heading_Line, My_Width, Heading_Size, Heading_Text),
            Blurb   => BX.Forge.Create
               (0, Blurb_Line, My_Width, Text_Size, Blurb_Text),
            Author  => BX.Forge.Create
               (0, Author_Line, My_Width, Text_Size, Author_Text),
            Dismiss => EN.Forge.Create
               ((My_Width - Button_Width) / 2,
                Button_Line, Button_Width, Button_Height, "Close"))
        do
            This.Add (This.Picture);
            This.Add (This.Heading);
            This.Heading.Set_Label_Size (FLTK.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_Icon (Logo);
            This.Picture.Set_Image (Logo);

            This.Set_Callback (Hide_CB'Access);
            This.Set_Modal_State (W.Modal);
        end return;
    end Create;


end Windows.About;