1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 // David Freese, W1HKJ
4 //
5 // This file is part of flmsg
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20
21 #include "gettext.h"
22 #include "status.h"
23 #include "util.h"
24
25 #include "flmsg_dialog.h"
26 #include "flmsg.h"
27
28 Fl_Group *tab_ics214 = (Fl_Group *)0;
29 Fl_Tabs *tab_ics214_type = (Fl_Tabs *)0;
30 Fl_Group *tab_214_1 = (Fl_Group *)0;
31 Fl_Input2 *txt_214_incident = (Fl_Input2 *)0;
32 Fl_Input2 *txt_214_date = (Fl_Input2 *)0;
33 Fl_Input2 *txt_214_unit_name = (Fl_Input2 *)0;
34 Fl_Input2 *txt_214_unit_leader = (Fl_Input2 *)0;
35 Fl_Button *btn_214_date = (Fl_Button *)0;
36 Fl_Input2 *txt_214_time = (Fl_Input2 *)0;
37 Fl_Button *btn_214_time = (Fl_Button *)0;
38
39 Fl_Input2 *txt_214_op_period = (Fl_Input2 *)0;
40 Fl_Input2 *txt_214_prepared_by = (Fl_Input2 *)0;
41 Fl_Group *tab_214_2 = (Fl_Group *)0;
42 Fl_Input2 *txt_214_roster_name[16]={(Fl_Input2 *)0};
43 Fl_Input2 *txt_214_roster_position[16]={(Fl_Input2 *)0};
44 Fl_Input2 *txt_214_roster_home_base[16]={(Fl_Input2 *)0};
45 Fl_Group *tab_214_3 = (Fl_Group *)0;
46 Fl_Input2 *txt_214_activity_time[16]={(Fl_Input2 *)0};
47 Fl_Input2 *txt_214_activity_event[16]={(Fl_Input2 *)0};
48
cb_btn_214_date(Fl_Button *,void *)49 static void cb_btn_214_date(Fl_Button*, void*) {
50 cb_214_set_date();
51 }
52
cb_btn_214_time(Fl_Button *,void *)53 static void cb_btn_214_time(Fl_Button*, void*) {
54 cb_214_set_time();
55 }
56
57
create_ics214_tab()58 void create_ics214_tab()
59 {
60 int Y = tab_top;
61 tab_ics214 = new Fl_Group(0, Y, 570, 390);
62 tab_ics214->align(FL_ALIGN_TOP);
63
64 tab_ics214_type = new Fl_Tabs(0, Y, 570, 387);
65 tab_ics214_type->selection_color((Fl_Color)246);
66
67 tab_214_1 = new Fl_Group(0, Y+25, 570, 360, _("Incident"));
68 {
69 Fl_Group* o = new Fl_Group(2, Y+32, 566, 170);
70 o->box(FL_ENGRAVED_FRAME);
71 o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
72
73 txt_214_incident = new Fl_Input2(135, Y+38, 425, 24, _("Incident Name"));
74 txt_214_incident->tooltip(_("Incident name"));
75 txt_214_incident->box(FL_DOWN_BOX);
76 txt_214_incident->color((Fl_Color)FL_BACKGROUND2_COLOR);
77 txt_214_incident->selection_color((Fl_Color)FL_SELECTION_COLOR);
78 txt_214_incident->labeltype(FL_NORMAL_LABEL);
79 txt_214_incident->labelfont(0);
80 txt_214_incident->labelsize(14);
81 txt_214_incident->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
82 txt_214_incident->align(FL_ALIGN_LEFT);
83 txt_214_incident->callback(ics_changed);
84 txt_214_incident->when(FL_WHEN_CHANGED);
85
86 txt_214_date = new Fl_Input2(135, Y+65, 155, 24, _("Date Prepared"));
87 txt_214_date->tooltip(_("Date prepared"));
88 txt_214_date->box(FL_DOWN_BOX);
89 txt_214_date->color((Fl_Color)FL_BACKGROUND2_COLOR);
90 txt_214_date->selection_color((Fl_Color)FL_SELECTION_COLOR);
91 txt_214_date->labeltype(FL_NORMAL_LABEL);
92 txt_214_date->labelfont(0);
93 txt_214_date->labelsize(14);
94 txt_214_date->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
95 txt_214_date->align(FL_ALIGN_LEFT);
96 txt_214_date->callback(ics_changed);
97 txt_214_date->when(FL_WHEN_CHANGED);
98
99 btn_214_date = new Fl_Button(294, Y+67, 20, 20, _("..."));
100 btn_214_date->tooltip(_("Set today"));
101 btn_214_date->callback((Fl_Callback*)cb_btn_214_date);
102
103 txt_214_time = new Fl_Input2(135, Y+90, 103, 24, _("Time Prepared"));
104 txt_214_time->tooltip(_("Time prepared"));
105 txt_214_time->box(FL_DOWN_BOX);
106 txt_214_time->color((Fl_Color)FL_BACKGROUND2_COLOR);
107 txt_214_time->selection_color((Fl_Color)FL_SELECTION_COLOR);
108 txt_214_time->labeltype(FL_NORMAL_LABEL);
109 txt_214_time->labelfont(0);
110 txt_214_time->labelsize(14);
111 txt_214_time->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
112 txt_214_time->align(FL_ALIGN_LEFT);
113 txt_214_time->callback(ics_changed);
114 txt_214_time->when(FL_WHEN_CHANGED);
115
116 btn_214_time = new Fl_Button(247, Y+92, 20, 20, _("..."));
117 btn_214_time->tooltip(_("Set time now"));
118 btn_214_time->callback((Fl_Callback*)cb_btn_214_time);
119
120 txt_214_unit_name = new Fl_Input2(135, Y+115, 425, 24, _("Unit Name"));
121 txt_214_unit_name->tooltip(_("Name / Designation"));
122 txt_214_unit_name->box(FL_DOWN_BOX);
123 txt_214_unit_name->color((Fl_Color)FL_BACKGROUND2_COLOR);
124 txt_214_unit_name->selection_color((Fl_Color)FL_SELECTION_COLOR);
125 txt_214_unit_name->labeltype(FL_NORMAL_LABEL);
126 txt_214_unit_name->labelfont(0);
127 txt_214_unit_name->labelsize(14);
128 txt_214_unit_name->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
129 txt_214_unit_name->align(FL_ALIGN_LEFT);
130 txt_214_unit_name->callback(ics_changed);
131 txt_214_unit_name->when(FL_WHEN_CHANGED);
132
133 txt_214_unit_leader = new Fl_Input2(135, Y+140, 425, 24, _("Unit leader"));
134 txt_214_unit_leader->tooltip(_("Name and Position"));
135 txt_214_unit_leader->box(FL_DOWN_BOX);
136 txt_214_unit_leader->color((Fl_Color)FL_BACKGROUND2_COLOR);
137 txt_214_unit_leader->selection_color((Fl_Color)FL_SELECTION_COLOR);
138 txt_214_unit_leader->labeltype(FL_NORMAL_LABEL);
139 txt_214_unit_leader->labelfont(0);
140 txt_214_unit_leader->labelsize(14);
141 txt_214_unit_leader->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
142 txt_214_unit_leader->align(FL_ALIGN_LEFT);
143 txt_214_unit_leader->callback(ics_changed);
144 txt_214_unit_leader->when(FL_WHEN_CHANGED);
145
146 txt_214_op_period = new Fl_Input2(135, Y+165, 425, 24, _("Oper\' Period"));
147 txt_214_op_period->tooltip(_("Date / Time"));
148 txt_214_op_period->box(FL_DOWN_BOX);
149 txt_214_op_period->color((Fl_Color)FL_BACKGROUND2_COLOR);
150 txt_214_op_period->selection_color((Fl_Color)FL_SELECTION_COLOR);
151 txt_214_op_period->labeltype(FL_NORMAL_LABEL);
152 txt_214_op_period->labelfont(0);
153 txt_214_op_period->labelsize(14);
154 txt_214_op_period->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
155 txt_214_op_period->align(FL_ALIGN_LEFT);
156 txt_214_op_period->callback(ics_changed);
157 txt_214_op_period->when(FL_WHEN_CHANGED);
158
159 o->end();
160 }
161
162 {
163 Fl_Group* o = new Fl_Group(2, Y+203, 566, 35);
164 o->box(FL_ENGRAVED_FRAME);
165
166 txt_214_prepared_by = new Fl_Input2(135, Y+208, 425, 24, _("Prepared By"));
167 txt_214_prepared_by->tooltip(_("Name and Position"));
168 txt_214_prepared_by->box(FL_DOWN_BOX);
169 txt_214_prepared_by->color((Fl_Color)FL_BACKGROUND2_COLOR);
170 txt_214_prepared_by->selection_color((Fl_Color)FL_SELECTION_COLOR);
171 txt_214_prepared_by->labeltype(FL_NORMAL_LABEL);
172 txt_214_prepared_by->labelfont(0);
173 txt_214_prepared_by->labelsize(14);
174 txt_214_prepared_by->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
175 txt_214_prepared_by->align(FL_ALIGN_LEFT);
176 txt_214_prepared_by->callback(ics_changed);
177 txt_214_prepared_by->when(FL_WHEN_CHANGED);
178 o->end();
179 }
180
181 tab_214_1->end();
182
183
184 tab_214_2 = new Fl_Group(0, Y+25, 570, 360, _("Roster"));
185 tab_214_2->hide();
186
187 Fl_Group *g1a = new Fl_Group(0, Y+32, 568, 353);
188 g1a->box(FL_FLAT_BOX);
189
190 Fl_Box* bx1a = new Fl_Box(
191 5, Y+32,
192 180, 20, _("Name"));
193 bx1a->box(FL_THIN_DOWN_BOX);
194 bx1a->color((Fl_Color)215);
195
196 Fl_Box* bx2a = new Fl_Box(
197 bx1a->x() + bx1a->w(), Y+32,
198 180, 20, _("ICS Position"));
199 bx2a->box(FL_THIN_DOWN_BOX);
200 bx2a->color((Fl_Color)215);
201
202 Fl_Box* bx3a = new Fl_Box(
203 bx2a->x() + bx2a->w(), Y+32,
204 180, 20, _("Home Base"));
205 bx3a->box(FL_THIN_DOWN_BOX);
206 bx3a->color((Fl_Color)215);
207
208 Fl_Scroll* sc1 = new Fl_Scroll(5, Y+54, 560, 320);
209 sc1->type(Fl_Scroll::VERTICAL_ALWAYS);
210 sc1->box(FL_THIN_DOWN_BOX);
211 for (int i = 0; i < 16; i++) {
212 txt_214_roster_name[i] = new Fl_Input2(5, Y+54 + i*24, 180, 24);
213 txt_214_roster_name[i]->tooltip(_(""));
214 txt_214_roster_name[i]->callback(ics_changed);
215 txt_214_roster_name[i]->when(FL_WHEN_CHANGED);
216
217 txt_214_roster_position[i] = new Fl_Input2(186, Y+54 + i*24, 180, 24);
218 txt_214_roster_position[i]->tooltip(_(""));
219 txt_214_roster_position[i]->callback(ics_changed);
220 txt_214_roster_position[i]->when(FL_WHEN_CHANGED);
221
222 txt_214_roster_home_base[i] = new Fl_Input2(367, Y+54 + i*24, 180, 24);
223 txt_214_roster_home_base[i]->tooltip(_(""));
224 txt_214_roster_home_base[i]->callback(ics_changed);
225 txt_214_roster_home_base[i]->when(FL_WHEN_CHANGED);
226 }
227 sc1->end();
228 g1a->end();
229
230 Fl_Group *g2a = new Fl_Group(568, Y+32, 1, 353);
231 g2a->box(FL_FLAT_BOX);
232 g2a->end();
233
234 tab_214_2->end();
235 tab_214_2->resizable(g2a);
236
237 tab_214_3 = new Fl_Group(0, Y+25, 570, 360, _("Activity Log"));
238 tab_214_3->hide();
239
240 Fl_Group *g1b = new Fl_Group(5, Y+32, 564, 353);
241 g1b->box(FL_FLAT_BOX);
242
243 Fl_Box* bx1b = new Fl_Box(5, Y+32, 100, 20, _("Time"));
244 bx1b->box(FL_THIN_DOWN_BOX);
245 bx1b->color((Fl_Color)215);
246
247 Fl_Box* bx2b = new Fl_Box(bx1b->x() + bx1b->w(), Y+32, 440, 20, _("Major Events"));
248 bx2b->box(FL_THIN_DOWN_BOX);
249 bx2b->color((Fl_Color)215);
250
251 Fl_Scroll* sc2 = new Fl_Scroll(4, Y+54, 560, 320);
252 sc2->type(Fl_Scroll::VERTICAL_ALWAYS);
253 sc2->box(FL_THIN_DOWN_BOX);
254 for (int i = 0; i < 16; i++) {
255 txt_214_activity_time[i] = new Fl_Input2(5, Y+54 + i*24, 100, 24);
256 txt_214_activity_time[i]->tooltip(_(""));
257 txt_214_activity_time[i]->callback(ics_changed);
258 txt_214_activity_time[i]->when(FL_WHEN_CHANGED);
259
260 txt_214_activity_event[i] = new Fl_Input2(106, Y+54 + i*24, 442, 24);
261 txt_214_activity_event[i]->tooltip(_(""));
262 txt_214_activity_event[i]->callback(ics_changed);
263 txt_214_activity_event[i]->when(FL_WHEN_CHANGED);
264 }
265 sc2->end();
266 g1b->end();
267
268 Fl_Group *g2b = new Fl_Group(569, Y+32, 1, 353);
269 g2b->box(FL_FLAT_BOX);
270 g2b->end();
271
272 tab_214_3->end();
273 tab_214_3->resizable(g2b);
274
275 tab_ics214_type->end();
276 Fl_Group::current()->resizable(tab_ics214_type);
277 tab_ics214->end();
278
279 tab_ics214->hide();
280 }
281