summaryrefslogtreecommitdiff
path: root/src/displays.ads
blob: e8b04d8b416515365eae3752456a3c7864629e3d (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


with

    FLTK.Widgets.Groups.Windows.Double,
    Grids;

private with

    FLTK.Widgets.Boxes;


package Displays is


    type Display is new FLTK.Widgets.Groups.Windows.Double.Double_Window with private;


    type Keyboard_Callback is access function
           (Key : in FLTK.Shortcut_Key)
        return FLTK.Event_Outcome;


    function Create
           (X, Y, W, H : in Integer;
            Text       : in String)
        return Display;


    function Create
           (W, H : in Integer)
        return Display;


    function Create
        return Display;


    procedure Set_Grid
           (This : in out Display;
            To   : in out Grids.Grid);


    procedure Adjust_Grid
           (This       : in out Display;
            Cols, Rows : in     Natural);


    procedure Ensure_Correct_Size
           (This : in out Display);


    procedure Centre_On_Screen
           (This : in out Display);


    procedure Set_Message
           (This : in out Display;
            Msg  : in     String);


    procedure Set_Keyboard_Callback
           (This : in out Display;
            Func : in     Keyboard_Callback);


    function Handle
           (This  : in out Display;
            Event : in     FLTK.Event_Kind)
        return FLTK.Event_Outcome;


private


    type Display is new FLTK.Widgets.Groups.Windows.Double.Double_Window with record
        Message_Box  : FLTK.Widgets.Boxes.Box;
        Current_Grid : access Grids.Grid;
        Key_Func     : Keyboard_Callback;
    end record;


    Text_Size : constant FLTK.Font_Size := 12;
    Message_Box_Width  : constant Integer := 500;
    Message_Box_Height : constant Integer := 100;


end Displays;