summaryrefslogtreecommitdiff
path: root/src/adapad.ads
blob: 0a739de0cfac8218a2a26de19ea7c43ff5abc964 (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


private with FLTK.Widgets;
private with FLTK.Widgets.Groups.Windows;
private with FLTK.Text_Buffers;
private with Windows.Find;
private with Windows.Replace;


package Adapad is


    procedure Show;
    procedure Hide;


private


    --  helper functions

    procedure Set_Title;
    function Safe_To_Discard return Boolean;
    procedure Do_Save;
    procedure Do_Save_As;
    procedure Load_File (Name : in String);
    procedure Save_File (Name : in String);
    procedure Centre (Win : in out FLTK.Widgets.Groups.Windows.Window'Class);


    --  callbacks

    type New_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     New_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    New_CB : aliased New_Callback;


    type Open_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Open_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Open_CB : aliased Open_Callback;


    type Save_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Save_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Save_CB : aliased Save_Callback;


    type Save_As_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Save_As_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Save_As_CB : aliased Save_As_Callback;


    type Quit_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Quit_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Quit_CB : aliased Quit_Callback;


    type Undo_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Undo_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Undo_CB : aliased Undo_Callback;


    type Cut_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Cut_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Cut_CB : aliased Cut_Callback;


    type Copy_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Copy_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Copy_CB : aliased Copy_Callback;


    type Paste_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Paste_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Paste_CB : aliased Paste_Callback;


    type Delete_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Delete_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Delete_CB : aliased Delete_Callback;


    type Select_All_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Select_All_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Select_All_CB : aliased Select_All_Callback;


    type Find_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Find_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Find_CB : aliased Find_Callback;


    type Replace_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     Replace_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    Replace_CB : aliased Replace_Callback;


    type About_Callback is new FLTK.Widgets.Widget_Callback with null record;
    overriding procedure Call
           (This : in     About_Callback;
            Item : in out FLTK.Widgets.Widget'Class);
    About_CB : aliased About_Callback;


    type Mod_Callback is new FLTK.Text_Buffers.Modify_Callback with null record;
    overriding procedure Call
           (This         : in Mod_Callback;
            Action       : in FLTK.Text_Buffers.Modification;
            Place        : in FLTK.Text_Buffers.Position;
            Length       : in Natural;
            Deleted_Text : in String);
    Mod_CB : aliased Mod_Callback;


end Adapad;