OpenCPN Partial API docs
Loading...
Searching...
No Matches
GribUIDialogBase.cpp
Go to the documentation of this file.
1
2// C++ code generated with wxFormBuilder (version Jun 5 2014)
3// http://www.wxformbuilder.org/
4//
5// PLEASE DO "NOT" EDIT THIS FILE!
7
11#include "GribUIDialogBase.h"
12#include "XyGribPanel.h"
13#include "manual.h"
14
16
17GRIBUICtrlBarBase::GRIBUICtrlBarBase(wxWindow* parent, wxWindowID id,
18 const wxString& title, const wxPoint& pos,
19 const wxSize& size, long style)
20 : wxDialog(parent, id, title, pos, size, style) {
21 m_ProjectBoatPanel = nullptr;
22
23#ifdef __OCPN__ANDROID__
24 const bool m_bcompact = true;
25#else
26 const bool m_bcompact = false;
27#endif
28 if (m_bcompact) {
29 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
30
31 m_fgCtrlBarSizer = new wxFlexGridSizer(0, 1, 0, 0);
32 m_fgCtrlBarSizer->AddGrowableCol(0);
33 m_fgCtrlBarSizer->SetFlexibleDirection(wxHORIZONTAL);
34 m_fgCtrlBarSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
35
36 wxBoxSizer* mainBox = new wxBoxSizer(wxVERTICAL);
37 m_fgCtrlBarSizer->Add(mainBox, 1, wxEXPAND, 0);
38
39 wxBoxSizer* fgSizer50 = new wxBoxSizer(wxHORIZONTAL);
40 mainBox->Add(fgSizer50, 0, wxEXPAND, 5);
41
42 m_bpPrev =
43 new wxBitmapButton(this, ID_BTNPREV, wxNullBitmap, wxDefaultPosition,
44 wxDefaultSize, wxBU_AUTODRAW);
45 m_bpPrev->SetToolTip(_("Previous"));
46
47 fgSizer50->Add(m_bpPrev, 0, wxALL, 1);
48
49 wxArrayString m_cRecordForecastChoices;
50 m_cRecordForecastChoices.Add(_T("Item0"));
51 m_cRecordForecast =
52 new wxChoice(this, ID_CTRLTIME, wxDefaultPosition, wxDefaultSize,
53 m_cRecordForecastChoices, 0);
54 m_cRecordForecast->SetSelection(0);
55 fgSizer50->Add(m_cRecordForecast, 0, wxALIGN_CENTER_VERTICAL | wxALL, 1);
56
57 m_bpNext =
58 new wxBitmapButton(this, ID_BTNNEXT, wxNullBitmap, wxDefaultPosition,
59 wxDefaultSize, wxBU_AUTODRAW);
60 m_bpNext->SetToolTip(_("Next"));
61
62 fgSizer50->Add(m_bpNext, 0, wxALL, 1);
63
64 wxBoxSizer* fgSizer51 = new wxBoxSizer(wxHORIZONTAL);
65 mainBox->Add(fgSizer51, 0, wxEXPAND, 5);
66
67 m_bpAltitude =
68 new wxBitmapButton(this, ID_CTRLALTITUDE, wxNullBitmap,
69 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
70 m_bpAltitude->SetToolTip(_("Select geoptential altitude"));
71
72 fgSizer51->Add(m_bpAltitude, 0, wxALL, 1);
73
74 m_bpNow =
75 new wxBitmapButton(this, ID_BTNNOW, wxNullBitmap, wxDefaultPosition,
76 wxDefaultSize, wxBU_AUTODRAW);
77 m_bpNow->SetToolTip(_("Now"));
78
79 fgSizer51->Add(m_bpNow, 0, wxALL, 1);
80
81 m_bpZoomToCenter =
82 new wxBitmapButton(this, ID_BTNZOOMTC, wxNullBitmap, wxDefaultPosition,
83 wxDefaultSize, wxBU_AUTODRAW);
84 m_bpZoomToCenter->SetToolTip(_("Zoom To Center"));
85
86 fgSizer51->Add(m_bpZoomToCenter, 0, wxALL, 1);
87
88 m_bpShowCursorData =
89 new wxBitmapButton(this, ID_BTNSHOWCDATA, wxNullBitmap,
90 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
91 fgSizer51->Add(m_bpShowCursorData, 0, wxALL, 1);
92
93 fgSizer51->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
94 m_bpPlay =
95 new wxBitmapButton(this, ID_BTNPLAY, wxNullBitmap, wxDefaultPosition,
96 wxDefaultSize, wxBU_AUTODRAW);
97 fgSizer51->Add(m_bpPlay, 0, wxBOTTOM | wxLEFT | wxTOP, 1);
98
99 m_sTimeline = new wxSlider(this, ID_TIMELINE, 1, 0, 10, wxDefaultPosition,
100 wxSize(90, -1), wxSL_HORIZONTAL);
101 fgSizer51->Add(m_sTimeline, 0, wxEXPAND, 1);
102
103 fgSizer51->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
104
105 m_bpOpenFile = nullptr;
106 // m_bpOpenFile = new wxBitmapButton( this, ID_BTNOPENFILE,
107 // wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW );
108 // m_bpOpenFile->SetToolTip( _("Open a new file") );
109 // fgSizer51->Add( m_bpOpenFile, 0, wxALL, 1 );
110
111 m_bpSettings =
112 new wxBitmapButton(this, ID_BTNSETTING, wxNullBitmap, wxDefaultPosition,
113 wxDefaultSize, wxBU_AUTODRAW);
114 m_bpSettings->SetToolTip(_("Settings"));
115
116 fgSizer51->Add(m_bpSettings, 0, wxALL, 1);
117
118 m_bpRequest = nullptr;
119
120 // m_bpRequest = new wxBitmapButton( this, ID_BTNREQUEST,
121 // wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW );
122 // fgSizer51->Add( m_bpRequest, 0, wxALL, 1 );
123
124 // wxFlexGridSizer* fgSizer49;
125 // fgSizer49 = new wxFlexGridSizer( 0, 1, 0, 0 );
126 // fgSizer49->AddGrowableCol( 0 );
127 // fgSizer49->SetFlexibleDirection( wxVERTICAL );
128 // fgSizer49->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
129
130 m_fgCDataSizer = new wxFlexGridSizer(0, 2, 0, 0);
131 m_fgCDataSizer->SetFlexibleDirection(wxVERTICAL);
132 m_fgCDataSizer->AddGrowableCol(0);
133 m_fgCDataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
134
135 mainBox->Add(m_fgCDataSizer, 1, wxEXPAND, 5);
136
137 m_fgCtrlGrabberSize = new wxFlexGridSizer(0, 1, 0, 0);
138 m_fgCtrlGrabberSize->SetFlexibleDirection(wxBOTH);
139 m_fgCtrlGrabberSize->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
140
141 this->SetSizer(m_fgCtrlBarSizer);
142 this->Layout();
143 m_fgCtrlBarSizer->Fit(this);
144 } else {
145 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
146
147 m_fgCtrlBarSizer = new wxFlexGridSizer(1, 2, 0, 0);
148 m_fgCtrlBarSizer->AddGrowableCol(0);
149 m_fgCtrlBarSizer->SetFlexibleDirection(wxHORIZONTAL);
150 m_fgCtrlBarSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
151
152 wxFlexGridSizer* fgSizer49;
153 fgSizer49 = new wxFlexGridSizer(0, 1, 0, 0);
154 fgSizer49->AddGrowableCol(0);
155 fgSizer49->SetFlexibleDirection(wxVERTICAL);
156 fgSizer49->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
157
158 wxFlexGridSizer* fgSizer50;
159 fgSizer50 = new wxFlexGridSizer(0, 15, 0, 0);
160 fgSizer50->AddGrowableCol(3);
161 fgSizer50->AddGrowableCol(7);
162 fgSizer50->AddGrowableCol(10);
163 fgSizer50->SetFlexibleDirection(wxHORIZONTAL);
164 fgSizer50->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
165
166 m_bpPrev =
167 new wxBitmapButton(this, ID_BTNPREV, wxNullBitmap, wxDefaultPosition,
168 wxDefaultSize, wxBU_AUTODRAW);
169 m_bpPrev->SetToolTip(_("Previous"));
170
171 fgSizer50->Add(m_bpPrev, 0, wxALL, 1);
172
173 wxArrayString m_cRecordForecastChoices;
174 m_cRecordForecastChoices.Add(_T("Item0"));
175 m_cRecordForecast =
176 new wxChoice(this, ID_CTRLTIME, wxDefaultPosition, wxDefaultSize,
177 m_cRecordForecastChoices, 0);
178 m_cRecordForecast->SetSelection(0);
179 fgSizer50->Add(m_cRecordForecast, 0, wxALIGN_CENTER_VERTICAL | wxALL, 1);
180
181 m_bpNext =
182 new wxBitmapButton(this, ID_BTNNEXT, wxNullBitmap, wxDefaultPosition,
183 wxDefaultSize, wxBU_AUTODRAW);
184 m_bpNext->SetToolTip(_("Next"));
185
186 fgSizer50->Add(m_bpNext, 0, wxALL, 1);
187
188 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
189
190 m_bpAltitude =
191 new wxBitmapButton(this, ID_CTRLALTITUDE, wxNullBitmap,
192 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
193 m_bpAltitude->SetToolTip(_("Select geoptential altitude"));
194
195 fgSizer50->Add(m_bpAltitude, 0, wxALL, 1);
196
197 m_bpNow =
198 new wxBitmapButton(this, ID_BTNNOW, wxNullBitmap, wxDefaultPosition,
199 wxDefaultSize, wxBU_AUTODRAW);
200 m_bpNow->SetToolTip(_("Now"));
201
202 fgSizer50->Add(m_bpNow, 0, wxALL, 1);
203
204 m_bpZoomToCenter =
205 new wxBitmapButton(this, ID_BTNZOOMTC, wxNullBitmap, wxDefaultPosition,
206 wxDefaultSize, wxBU_AUTODRAW);
207 m_bpZoomToCenter->SetToolTip(_("Zoom To Center"));
208
209 fgSizer50->Add(m_bpZoomToCenter, 0, wxALL, 1);
210
211 m_bpShowCursorData =
212 new wxBitmapButton(this, ID_BTNSHOWCDATA, wxNullBitmap,
213 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
214 fgSizer50->Add(m_bpShowCursorData, 0, wxALL, 1);
215
216 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
217
218 m_bpPlay =
219 new wxBitmapButton(this, ID_BTNPLAY, wxNullBitmap, wxDefaultPosition,
220 wxDefaultSize, wxBU_AUTODRAW);
221 fgSizer50->Add(m_bpPlay, 0, wxBOTTOM | wxLEFT | wxTOP, 1);
222
223 m_sTimeline = new wxSlider(this, ID_TIMELINE, 1, 0, 10, wxDefaultPosition,
224 wxSize(90, -1), wxSL_HORIZONTAL);
225 fgSizer50->Add(m_sTimeline, 0, wxEXPAND, 1);
226
227 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
228
229 m_bpOpenFile =
230 new wxBitmapButton(this, ID_BTNOPENFILE, wxNullBitmap,
231 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
232 m_bpOpenFile->SetToolTip(_("Open a new file"));
233
234 fgSizer50->Add(m_bpOpenFile, 0, wxALL, 1);
235
236 m_bpSettings =
237 new wxBitmapButton(this, ID_BTNSETTING, wxNullBitmap, wxDefaultPosition,
238 wxDefaultSize, wxBU_AUTODRAW);
239 m_bpSettings->SetToolTip(_("Settings"));
240
241 fgSizer50->Add(m_bpSettings, 0, wxALL, 1);
242
243 m_bpRequest =
244 new wxBitmapButton(this, ID_BTNREQUEST, wxNullBitmap, wxDefaultPosition,
245 wxDefaultSize, wxBU_AUTODRAW);
246 fgSizer50->Add(m_bpRequest, 0, wxALL, 1);
247
248 fgSizer49->Add(fgSizer50, 1, wxEXPAND, 5);
249 m_ProjectBoatPanel = new ProjectBoatPanel(this);
250 fgSizer49->Add(m_ProjectBoatPanel, 0, wxEXPAND | wxALL, 1);
251
252 m_fgCDataSizer = new wxFlexGridSizer(0, 2, 0, 0);
253 m_fgCDataSizer->SetFlexibleDirection(wxBOTH);
254 m_fgCDataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
255
256 fgSizer49->Add(m_fgCDataSizer, 1, wxEXPAND, 5);
257
258 m_fgCtrlBarSizer->Add(fgSizer49, 1, wxEXPAND, 0);
259
260 m_fgCtrlGrabberSize = new wxFlexGridSizer(0, 1, 0, 0);
261 m_fgCtrlGrabberSize->SetFlexibleDirection(wxBOTH);
262 m_fgCtrlGrabberSize->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
263
264 m_fgCtrlBarSizer->Add(m_fgCtrlGrabberSize, 1, wxEXPAND, 0);
265
266 this->SetSizer(m_fgCtrlBarSizer);
267 this->Layout();
268 m_fgCtrlBarSizer->Fit(this);
269 }
270
271 this->Centre(wxBOTH);
272
273 // Connect Events
274 this->Connect(wxEVT_CLOSE_WINDOW,
275 wxCloseEventHandler(GRIBUICtrlBarBase::OnClose));
276 this->Connect(wxEVT_LEFT_DOWN,
277 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
278 this->Connect(wxEVT_LEFT_UP,
279 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
280 this->Connect(wxEVT_MIDDLE_DOWN,
281 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
282 this->Connect(wxEVT_MIDDLE_UP,
283 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
284 this->Connect(wxEVT_RIGHT_DOWN,
285 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
286 this->Connect(wxEVT_RIGHT_UP,
287 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
288 this->Connect(wxEVT_MOTION,
289 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
290 this->Connect(wxEVT_LEFT_DCLICK,
291 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
292 this->Connect(wxEVT_MIDDLE_DCLICK,
293 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
294 this->Connect(wxEVT_RIGHT_DCLICK,
295 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
296 this->Connect(wxEVT_LEAVE_WINDOW,
297 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
298 this->Connect(wxEVT_ENTER_WINDOW,
299 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
300 this->Connect(wxEVT_MOUSEWHEEL,
301 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
302 this->Connect(wxEVT_SIZE, wxSizeEventHandler(GRIBUICtrlBarBase::OnSize));
303
304#ifndef __WXQT__
305 this->Connect(wxEVT_PAINT, wxPaintEventHandler(GRIBUICtrlBarBase::OnPaint));
306#endif
307 m_bpPrev->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
308 wxCommandEventHandler(GRIBUICtrlBarBase::OnPrev), nullptr,
309 this);
310 m_bpPrev->Connect(wxEVT_RIGHT_DOWN,
311 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
312 nullptr, this);
313 m_cRecordForecast->Connect(
314 wxEVT_COMMAND_CHOICE_SELECTED,
315 wxCommandEventHandler(GRIBUICtrlBarBase::OnRecordForecast), nullptr,
316 this);
317 m_cRecordForecast->Connect(
318 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
319 nullptr, this);
320 m_bpNext->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
321 wxCommandEventHandler(GRIBUICtrlBarBase::OnNext), nullptr,
322 this);
323 m_bpNext->Connect(wxEVT_RIGHT_DOWN,
324 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
325 nullptr, this);
326 m_bpAltitude->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
327 wxCommandEventHandler(GRIBUICtrlBarBase::OnAltitude),
328 nullptr, this);
329 m_bpAltitude->Connect(wxEVT_RIGHT_DOWN,
330 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
331 nullptr, this);
332 m_bpNow->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
333 wxCommandEventHandler(GRIBUICtrlBarBase::OnNow), nullptr,
334 this);
335 m_bpNow->Connect(wxEVT_RIGHT_DOWN,
336 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
337 nullptr, this);
338 m_bpZoomToCenter->Connect(
339 wxEVT_COMMAND_BUTTON_CLICKED,
340 wxCommandEventHandler(GRIBUICtrlBarBase::OnZoomToCenterClick), nullptr,
341 this);
342 m_bpZoomToCenter->Connect(
343 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
344 nullptr, this);
345 m_bpShowCursorData->Connect(
346 wxEVT_COMMAND_BUTTON_CLICKED,
347 wxCommandEventHandler(GRIBUICtrlBarBase::OnShowCursorData), nullptr,
348 this);
349 m_bpShowCursorData->Connect(
350 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
351 nullptr, this);
352 m_bpPlay->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
353 wxCommandEventHandler(GRIBUICtrlBarBase::OnPlayStop),
354 nullptr, this);
355 m_bpPlay->Connect(wxEVT_RIGHT_DOWN,
356 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
357 nullptr, this);
358 m_sTimeline->Connect(wxEVT_RIGHT_DOWN,
359 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
360 nullptr, this);
361 m_sTimeline->Connect(wxEVT_SCROLL_TOP,
362 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
363 nullptr, this);
364 m_sTimeline->Connect(wxEVT_SCROLL_BOTTOM,
365 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
366 nullptr, this);
367 m_sTimeline->Connect(wxEVT_SCROLL_LINEUP,
368 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
369 nullptr, this);
370 m_sTimeline->Connect(wxEVT_SCROLL_LINEDOWN,
371 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
372 nullptr, this);
373 m_sTimeline->Connect(wxEVT_SCROLL_PAGEUP,
374 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
375 nullptr, this);
376 m_sTimeline->Connect(wxEVT_SCROLL_PAGEDOWN,
377 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
378 nullptr, this);
379 m_sTimeline->Connect(wxEVT_SCROLL_THUMBTRACK,
380 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
381 nullptr, this);
382 m_sTimeline->Connect(wxEVT_SCROLL_THUMBRELEASE,
383 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
384 nullptr, this);
385 m_sTimeline->Connect(wxEVT_SCROLL_CHANGED,
386 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
387 nullptr, this);
388
389 if (m_bpOpenFile) {
390 m_bpOpenFile->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
391 wxCommandEventHandler(GRIBUICtrlBarBase::OnOpenFile),
392 nullptr, this);
393 m_bpOpenFile->Connect(wxEVT_RIGHT_DOWN,
394 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
395 nullptr, this);
396 }
397
398#ifdef __OCPN__ANDROID__
399 m_bpSettings->Connect(
400 wxEVT_COMMAND_BUTTON_CLICKED,
401 wxCommandEventHandler(GRIBUICtrlBarBase::OnCompositeDialog), nullptr,
402 this);
403#else
404 m_bpSettings->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
405 wxCommandEventHandler(GRIBUICtrlBarBase::OnSettings),
406 nullptr, this);
407 m_bpSettings->Connect(wxEVT_RIGHT_DOWN,
408 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
409 nullptr, this);
410#endif
411
412 if (m_bpRequest) {
413 m_bpRequest->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
414 wxCommandEventHandler(GRIBUICtrlBarBase::OnRequest),
415 nullptr, this);
416 m_bpRequest->Connect(wxEVT_RIGHT_DOWN,
417 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
418 nullptr, this);
419 }
420}
421
422GRIBUICtrlBarBase::~GRIBUICtrlBarBase() {
423 // Disconnect Events
424 this->Disconnect(wxEVT_CLOSE_WINDOW,
425 wxCloseEventHandler(GRIBUICtrlBarBase::OnClose));
426 this->Disconnect(wxEVT_LEFT_DOWN,
427 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
428 this->Disconnect(wxEVT_LEFT_UP,
429 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
430 this->Disconnect(wxEVT_MIDDLE_DOWN,
431 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
432 this->Disconnect(wxEVT_MIDDLE_UP,
433 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
434 this->Disconnect(wxEVT_RIGHT_DOWN,
435 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
436 this->Disconnect(wxEVT_RIGHT_UP,
437 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
438 this->Disconnect(wxEVT_MOTION,
439 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
440 this->Disconnect(wxEVT_LEFT_DCLICK,
441 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
442 this->Disconnect(wxEVT_MIDDLE_DCLICK,
443 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
444 this->Disconnect(wxEVT_RIGHT_DCLICK,
445 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
446 this->Disconnect(wxEVT_LEAVE_WINDOW,
447 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
448 this->Disconnect(wxEVT_ENTER_WINDOW,
449 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
450 this->Disconnect(wxEVT_MOUSEWHEEL,
451 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent));
452 this->Disconnect(wxEVT_PAINT,
453 wxPaintEventHandler(GRIBUICtrlBarBase::OnPaint));
454 this->Disconnect(wxEVT_SIZE, wxSizeEventHandler(GRIBUICtrlBarBase::OnSize));
455 m_bpPrev->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
456 wxCommandEventHandler(GRIBUICtrlBarBase::OnPrev),
457 nullptr, this);
458 m_bpPrev->Disconnect(wxEVT_RIGHT_DOWN,
459 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
460 nullptr, this);
461 m_cRecordForecast->Disconnect(
462 wxEVT_COMMAND_CHOICE_SELECTED,
463 wxCommandEventHandler(GRIBUICtrlBarBase::OnRecordForecast), nullptr,
464 this);
465 m_cRecordForecast->Disconnect(
466 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
467 nullptr, this);
468 m_bpNext->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
469 wxCommandEventHandler(GRIBUICtrlBarBase::OnNext),
470 nullptr, this);
471 m_bpNext->Disconnect(wxEVT_RIGHT_DOWN,
472 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
473 nullptr, this);
474 m_bpAltitude->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
475 wxCommandEventHandler(GRIBUICtrlBarBase::OnAltitude),
476 nullptr, this);
477 m_bpAltitude->Disconnect(wxEVT_RIGHT_DOWN,
478 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
479 nullptr, this);
480 m_bpNow->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
481 wxCommandEventHandler(GRIBUICtrlBarBase::OnNow), nullptr,
482 this);
483 m_bpNow->Disconnect(wxEVT_RIGHT_DOWN,
484 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
485 nullptr, this);
486 m_bpZoomToCenter->Disconnect(
487 wxEVT_COMMAND_BUTTON_CLICKED,
488 wxCommandEventHandler(GRIBUICtrlBarBase::OnZoomToCenterClick), nullptr,
489 this);
490 m_bpZoomToCenter->Disconnect(
491 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
492 nullptr, this);
493 m_bpShowCursorData->Disconnect(
494 wxEVT_COMMAND_BUTTON_CLICKED,
495 wxCommandEventHandler(GRIBUICtrlBarBase::OnShowCursorData), nullptr,
496 this);
497 m_bpShowCursorData->Disconnect(
498 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
499 nullptr, this);
500 m_bpPlay->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
501 wxCommandEventHandler(GRIBUICtrlBarBase::OnPlayStop),
502 nullptr, this);
503 m_bpPlay->Disconnect(wxEVT_RIGHT_DOWN,
504 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
505 nullptr, this);
506 m_sTimeline->Disconnect(wxEVT_RIGHT_DOWN,
507 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
508 nullptr, this);
509 m_sTimeline->Disconnect(wxEVT_SCROLL_TOP,
510 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
511 nullptr, this);
512 m_sTimeline->Disconnect(wxEVT_SCROLL_BOTTOM,
513 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
514 nullptr, this);
515 m_sTimeline->Disconnect(wxEVT_SCROLL_LINEUP,
516 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
517 nullptr, this);
518 m_sTimeline->Disconnect(wxEVT_SCROLL_LINEDOWN,
519 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
520 nullptr, this);
521 m_sTimeline->Disconnect(wxEVT_SCROLL_PAGEUP,
522 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
523 nullptr, this);
524 m_sTimeline->Disconnect(wxEVT_SCROLL_PAGEDOWN,
525 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
526 nullptr, this);
527 m_sTimeline->Disconnect(wxEVT_SCROLL_THUMBTRACK,
528 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
529 nullptr, this);
530 m_sTimeline->Disconnect(wxEVT_SCROLL_THUMBRELEASE,
531 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
532 nullptr, this);
533 m_sTimeline->Disconnect(wxEVT_SCROLL_CHANGED,
534 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
535 nullptr, this);
536
537 if (m_bpOpenFile) {
538 m_bpOpenFile->Disconnect(
539 wxEVT_COMMAND_BUTTON_CLICKED,
540 wxCommandEventHandler(GRIBUICtrlBarBase::OnOpenFile), nullptr, this);
541 m_bpOpenFile->Disconnect(
542 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
543 nullptr, this);
544 }
545
546 m_bpSettings->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
547 wxCommandEventHandler(GRIBUICtrlBarBase::OnSettings),
548 nullptr, this);
549 m_bpSettings->Disconnect(wxEVT_RIGHT_DOWN,
550 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
551 nullptr, this);
552
553 if (m_bpRequest) {
554 m_bpRequest->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
555 wxCommandEventHandler(GRIBUICtrlBarBase::OnRequest),
556 nullptr, this);
557 m_bpRequest->Disconnect(
558 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
559 nullptr, this);
560 }
561}
562
563GRIBUICDataBase::GRIBUICDataBase(wxWindow* parent, wxWindowID id,
564 const wxString& title, const wxPoint& pos,
565 const wxSize& size, long style)
566 : wxDialog(parent, id, title, pos, size, style) {
567 this->SetSizeHints(wxSize(-1, -1), wxDefaultSize);
568 this->SetFont(wxFont(9, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
569 wxFONTWEIGHT_NORMAL, false, wxEmptyString));
570
571 wxFlexGridSizer* fgSizer57;
572 fgSizer57 = new wxFlexGridSizer(0, 2, 0, 0);
573 fgSizer57->SetFlexibleDirection(wxBOTH);
574 fgSizer57->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
575
576 m_fgCdataSizer = new wxFlexGridSizer(0, 1, 0, 0);
577 m_fgCdataSizer->SetFlexibleDirection(wxBOTH);
578 m_fgCdataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
579
580 fgSizer57->Add(m_fgCdataSizer, 1, wxEXPAND, 5);
581
582 this->SetSizer(fgSizer57);
583 this->Layout();
584 fgSizer57->Fit(this);
585
586 this->Centre(wxBOTH);
587}
588
589GRIBUICDataBase::~GRIBUICDataBase() {}
590
591CursorDataBase::CursorDataBase(wxWindow* parent, wxWindowID id,
592 const wxPoint& pos, const wxSize& size,
593 long style)
594 : wxPanel(parent, id, pos, size, style) {
595 fgSizer30 = new wxFlexGridSizer(0, 1, 0, 0);
596 fgSizer30->AddGrowableRow(1);
597 fgSizer30->SetFlexibleDirection(wxBOTH);
598 fgSizer30->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_ALL);
599
600 m_stTrackingText = new wxStaticText(this, wxID_ANY, _("MyLabel"),
601 wxDefaultPosition, wxDefaultSize, 0);
602 m_stTrackingText->Wrap(-1);
603 fgSizer30->Add(m_stTrackingText, 0, wxEXPAND | wxLEFT, 5);
604
605 wxFlexGridSizer* fgSizer43;
606 fgSizer43 = new wxFlexGridSizer(0, 1, 0, 0);
607 fgSizer43->SetFlexibleDirection(wxBOTH);
608 fgSizer43->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
609
610 m_fgTrackingControls = new wxFlexGridSizer(0, 8, 0, 0);
611 m_fgTrackingControls->SetFlexibleDirection(wxBOTH);
612 m_fgTrackingControls->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
613
614 m_cbWind = new wxCheckBox(this, ID_CB_WIND, _("Wind"), wxDefaultPosition,
615 wxDefaultSize, 0);
616 m_fgTrackingControls->Add(m_cbWind, 0, wxEXPAND | wxLEFT | wxTOP, 2);
617
618 m_tcWindSpeed =
619 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
620 wxSize(70, -1), wxTE_READONLY);
621 m_fgTrackingControls->Add(m_tcWindSpeed, 0, 0, 1);
622
623 m_tcWindSpeedBf =
624 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxPoint(-1, -1),
625 wxSize(45, -1), wxTE_READONLY);
626 m_fgTrackingControls->Add(m_tcWindSpeedBf, 0, wxALIGN_CENTER_VERTICAL, 1);
627
628 m_tcWindDirection =
629 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
630 wxSize(45, -1), wxTE_READONLY);
631 m_fgTrackingControls->Add(m_tcWindDirection, 0, 0, 1);
632
633 m_cbWindGust = new wxCheckBox(this, ID_CB_WIND_GUSTS, _("Wind Gust"),
634 wxDefaultPosition, wxDefaultSize, 0);
635 m_fgTrackingControls->Add(m_cbWindGust, 0, wxALL | wxEXPAND, 5);
636
637 m_tcWindGust =
638 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
639 wxSize(70, -1), wxTE_READONLY);
640 m_fgTrackingControls->Add(m_tcWindGust, 0, 0, 1);
641
642 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
643
644 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
645
646 m_cbPressure = new wxCheckBox(this, ID_CB_PRESSURE, _("Pressure"),
647 wxDefaultPosition, wxDefaultSize, 0);
648 m_fgTrackingControls->Add(m_cbPressure, 0, wxALL | wxEXPAND, 5);
649
650 m_tcPressure =
651 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
652 wxSize(70, -1), wxTE_READONLY);
653 m_tcPressure->SetToolTip(_("Mean Sea Level Pressure (MSLP)"));
654
655 m_fgTrackingControls->Add(m_tcPressure, 0, 0, 1);
656
657 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
658
659 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
660
661 m_cbWave = new wxCheckBox(this, ID_CB_WAVES, _("Waves"), wxDefaultPosition,
662 wxDefaultSize, 0);
663 m_fgTrackingControls->Add(m_cbWave, 0, wxALL | wxEXPAND, 5);
664
665 m_tcWaveHeight =
666 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
667 wxSize(70, -1), wxTE_READONLY);
668 m_tcWaveHeight->SetToolTip(_("Significant Wave Height"));
669
670 m_fgTrackingControls->Add(m_tcWaveHeight, 0, 0, 1);
671
672 m_tcWavePeriode =
673 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
674 wxSize(45, -1), wxTE_READONLY);
675 m_tcWavePeriode->SetToolTip(_("Waves period"));
676
677 m_fgTrackingControls->Add(m_tcWavePeriode, 0, 0, 1);
678
679 m_tcWaveDirection =
680 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
681 wxSize(45, -1), wxTE_READONLY);
682 m_tcWaveDirection->SetToolTip(_("Waves Direction"));
683
684 m_fgTrackingControls->Add(m_tcWaveDirection, 0, 0, 1);
685
686 m_cbCurrent = new wxCheckBox(this, ID_CB_CURRENT, _("Current"),
687 wxDefaultPosition, wxDefaultSize, 0);
688 m_fgTrackingControls->Add(m_cbCurrent, 0, wxALL | wxEXPAND, 5);
689
690 m_tcCurrentVelocity =
691 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
692 wxSize(70, -1), wxTE_READONLY);
693 m_tcCurrentVelocity->SetToolTip(_("Surface Current Speed"));
694
695 m_fgTrackingControls->Add(m_tcCurrentVelocity, 0, 0, 1);
696
697 m_tcCurrentDirection =
698 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
699 wxSize(45, -1), wxTE_READONLY);
700 m_tcCurrentDirection->SetToolTip(_("Surface Current Direction"));
701
702 m_fgTrackingControls->Add(m_tcCurrentDirection, 0, 0, 1);
703
704 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
705
706 m_cbPrecipitation = new wxCheckBox(this, ID_CB_RAINFALL, _("Rainfall"),
707 wxDefaultPosition, wxDefaultSize, 0);
708 m_fgTrackingControls->Add(m_cbPrecipitation, 0, wxALL | wxEXPAND, 5);
709
710 m_tcPrecipitation =
711 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
712 wxSize(70, -1), wxTE_READONLY);
713 m_tcPrecipitation->SetToolTip(_("Cumulative Rainfall per Hour"));
714
715 m_fgTrackingControls->Add(m_tcPrecipitation, 0, 0, 1);
716
717 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
718
719 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
720
721 m_cbCloud = new wxCheckBox(this, ID_CB_CLOUD_COVER, _("Cloud Cover"),
722 wxDefaultPosition, wxDefaultSize, 0);
723 m_fgTrackingControls->Add(m_cbCloud, 0, wxALL | wxEXPAND, 5);
724
725 m_tcCloud = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
726 wxSize(70, -1), wxTE_READONLY);
727 m_tcCloud->SetToolTip(_("Cloud Cover"));
728
729 m_fgTrackingControls->Add(m_tcCloud, 0, 0, 1);
730
731 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
732
733 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
734
735 m_cbAirTemperature = new wxCheckBox(this, ID_CB_AIR_TEMP, _("Air Temp"),
736 wxDefaultPosition, wxDefaultSize, 0);
737 m_fgTrackingControls->Add(m_cbAirTemperature, 0, wxALL | wxEXPAND, 5);
738
739 m_tcAirTemperature =
740 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
741 wxSize(70, -1), wxTE_READONLY);
742 m_fgTrackingControls->Add(m_tcAirTemperature, 0, 0, 1);
743
744 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
745
746 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
747
748 m_cbSeaTemperature = new wxCheckBox(this, ID_CB_SEA_TEMP, _("Sea Temp"),
749 wxDefaultPosition, wxDefaultSize, 0);
750 m_fgTrackingControls->Add(m_cbSeaTemperature, 0, wxALL | wxEXPAND, 5);
751
752 m_tcSeaTemperature =
753 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
754 wxSize(70, -1), wxTE_READONLY);
755 m_tcSeaTemperature->SetToolTip(_("Sea or Air Temperature at Surface Level"));
756
757 m_fgTrackingControls->Add(m_tcSeaTemperature, 0, 0, 1);
758
759 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
760
761 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
762
763 m_cbCAPE = new wxCheckBox(this, ID_CB_CAPE, _("CAPE"), wxDefaultPosition,
764 wxDefaultSize, 0);
765 m_fgTrackingControls->Add(m_cbCAPE, 0, wxALL | wxEXPAND, 5);
766
767 m_tcCAPE = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxPoint(-1, -1),
768 wxSize(70, -1), wxTE_READONLY);
769 m_tcCAPE->SetToolTip(_("Convective Available Potential Energy"));
770
771 m_fgTrackingControls->Add(m_tcCAPE, 0, 0, 1);
772
773 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
774
775 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
776
777 m_cbReflC = new wxCheckBox(this, ID_CB_COMP_REFL, _("Comp. Refl."),
778 wxDefaultPosition, wxDefaultSize, 0);
779 m_fgTrackingControls->Add(m_cbReflC, 0, wxALL | wxEXPAND, 5);
780
781 m_tcReflC = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxPoint(-1, -1),
782 wxSize(70, -1), wxTE_READONLY);
783 m_tcReflC->SetToolTip(_("Composite Reflectivity"));
784
785 m_fgTrackingControls->Add(m_tcReflC, 0, 0, 1);
786
787 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
788
789 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
790
791 m_cbAltitude = new wxCheckBox(this, wxID_ANY, _("Altitude"),
792 wxDefaultPosition, wxDefaultSize, 0);
793 m_cbAltitude->SetValue(true);
794 m_cbAltitude->Enable(false);
795
796 m_fgTrackingControls->Add(m_cbAltitude, 0, wxALL | wxEXPAND, 5);
797
798 m_tcAltitude =
799 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
800 wxSize(-1, -1), wxTE_READONLY);
801 m_tcAltitude->SetMinSize(wxSize(70, -1));
802
803 m_fgTrackingControls->Add(m_tcAltitude, 0, 0, 5);
804
805 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
806
807 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
808
809 m_cbTemp = new wxCheckBox(this, wxID_ANY, _("Temp."), wxDefaultPosition,
810 wxDefaultSize, 0);
811 m_cbTemp->SetValue(true);
812 m_cbTemp->Enable(false);
813
814 m_fgTrackingControls->Add(m_cbTemp, 0, wxALL | wxEXPAND, 5);
815
816 m_tcTemp = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
817 wxDefaultSize, wxTE_READONLY);
818 m_tcTemp->SetMinSize(wxSize(70, -1));
819
820 m_fgTrackingControls->Add(m_tcTemp, 0, 0, 5);
821
822 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
823
824 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
825
826 m_cbRelHumid = new wxCheckBox(this, wxID_ANY, _("Relat. Hum."),
827 wxDefaultPosition, wxDefaultSize, 0);
828 m_cbRelHumid->SetValue(true);
829 m_cbRelHumid->Enable(false);
830
831 m_fgTrackingControls->Add(m_cbRelHumid, 0, wxALL | wxEXPAND, 5);
832
833 m_tcRelHumid =
834 new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
835 wxDefaultSize, wxTE_READONLY);
836 m_tcRelHumid->SetMinSize(wxSize(70, -1));
837
838 m_fgTrackingControls->Add(m_tcRelHumid, 0, 0, 5);
839
840 fgSizer43->Add(m_fgTrackingControls, 1, wxEXPAND, 1);
841
842 fgSizer30->Add(fgSizer43, 1, wxEXPAND, 5);
843
844 this->SetSizer(fgSizer30);
845 this->Layout();
846 fgSizer30->Fit(this);
847
848 // Connect Events
849 this->Connect(wxEVT_LEFT_DOWN,
850 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
851 this->Connect(wxEVT_LEFT_UP,
852 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
853 this->Connect(wxEVT_MIDDLE_DOWN,
854 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
855 this->Connect(wxEVT_MIDDLE_UP,
856 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
857 this->Connect(wxEVT_RIGHT_DOWN,
858 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
859 this->Connect(wxEVT_RIGHT_UP,
860 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
861 this->Connect(wxEVT_MOTION,
862 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
863 this->Connect(wxEVT_LEFT_DCLICK,
864 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
865 this->Connect(wxEVT_MIDDLE_DCLICK,
866 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
867 this->Connect(wxEVT_RIGHT_DCLICK,
868 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
869 this->Connect(wxEVT_LEAVE_WINDOW,
870 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
871 this->Connect(wxEVT_ENTER_WINDOW,
872 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
873 this->Connect(wxEVT_MOUSEWHEEL,
874 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
875 m_stTrackingText->Connect(wxEVT_LEFT_DOWN,
876 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
877 nullptr, this);
878 m_stTrackingText->Connect(wxEVT_LEFT_UP,
879 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
880 nullptr, this);
881 m_stTrackingText->Connect(wxEVT_MIDDLE_DOWN,
882 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
883 nullptr, this);
884 m_stTrackingText->Connect(wxEVT_MIDDLE_UP,
885 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
886 nullptr, this);
887 m_stTrackingText->Connect(wxEVT_RIGHT_DOWN,
888 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
889 nullptr, this);
890 m_stTrackingText->Connect(wxEVT_RIGHT_UP,
891 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
892 nullptr, this);
893 m_stTrackingText->Connect(wxEVT_MOTION,
894 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
895 nullptr, this);
896 m_stTrackingText->Connect(wxEVT_LEFT_DCLICK,
897 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
898 nullptr, this);
899 m_stTrackingText->Connect(wxEVT_MIDDLE_DCLICK,
900 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
901 nullptr, this);
902 m_stTrackingText->Connect(wxEVT_RIGHT_DCLICK,
903 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
904 nullptr, this);
905 m_stTrackingText->Connect(wxEVT_LEAVE_WINDOW,
906 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
907 nullptr, this);
908 m_stTrackingText->Connect(wxEVT_ENTER_WINDOW,
909 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
910 nullptr, this);
911 m_stTrackingText->Connect(wxEVT_MOUSEWHEEL,
912 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
913 nullptr, this);
914 m_cbWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
915 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
916 this);
917 m_cbWind->Connect(wxEVT_RIGHT_DOWN,
918 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
919 nullptr, this);
920 m_cbWindGust->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
921 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
922 this);
923 m_cbWindGust->Connect(wxEVT_RIGHT_DOWN,
924 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
925 nullptr, this);
926 m_cbPressure->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
927 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
928 this);
929 m_cbPressure->Connect(wxEVT_RIGHT_DOWN,
930 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
931 nullptr, this);
932 m_cbWave->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
933 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
934 this);
935 m_cbWave->Connect(wxEVT_RIGHT_DOWN,
936 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
937 nullptr, this);
938 m_cbCurrent->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
939 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
940 this);
941 m_cbCurrent->Connect(wxEVT_RIGHT_DOWN,
942 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
943 nullptr, this);
944 m_cbPrecipitation->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
945 wxCommandEventHandler(CursorDataBase::OnCBAny),
946 nullptr, this);
947 m_cbPrecipitation->Connect(
948 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
949 nullptr, this);
950 m_cbCloud->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
951 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
952 this);
953 m_cbCloud->Connect(wxEVT_RIGHT_DOWN,
954 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
955 nullptr, this);
956 m_cbAirTemperature->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
957 wxCommandEventHandler(CursorDataBase::OnCBAny),
958 nullptr, this);
959 m_cbAirTemperature->Connect(
960 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
961 nullptr, this);
962 m_cbSeaTemperature->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
963 wxCommandEventHandler(CursorDataBase::OnCBAny),
964 nullptr, this);
965 m_cbSeaTemperature->Connect(
966 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
967 nullptr, this);
968 m_cbCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
969 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
970 this);
971 m_cbCAPE->Connect(wxEVT_RIGHT_DOWN,
972 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
973 nullptr, this);
974 m_cbReflC->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
975 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
976 this);
977 m_cbReflC->Connect(wxEVT_RIGHT_DOWN,
978 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
979 nullptr, this);
980}
981
982CursorDataBase::~CursorDataBase() {
983 // Disconnect Events
984 this->Disconnect(wxEVT_LEFT_DOWN,
985 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
986 this->Disconnect(wxEVT_LEFT_UP,
987 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
988 this->Disconnect(wxEVT_MIDDLE_DOWN,
989 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
990 this->Disconnect(wxEVT_MIDDLE_UP,
991 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
992 this->Disconnect(wxEVT_RIGHT_DOWN,
993 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
994 this->Disconnect(wxEVT_RIGHT_UP,
995 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
996 this->Disconnect(wxEVT_MOTION,
997 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
998 this->Disconnect(wxEVT_LEFT_DCLICK,
999 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1000 this->Disconnect(wxEVT_MIDDLE_DCLICK,
1001 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1002 this->Disconnect(wxEVT_RIGHT_DCLICK,
1003 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1004 this->Disconnect(wxEVT_LEAVE_WINDOW,
1005 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1006 this->Disconnect(wxEVT_ENTER_WINDOW,
1007 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1008 this->Disconnect(wxEVT_MOUSEWHEEL,
1009 wxMouseEventHandler(CursorDataBase::OnMouseEvent));
1010 m_stTrackingText->Disconnect(
1011 wxEVT_LEFT_DOWN, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1012 nullptr, this);
1013 m_stTrackingText->Disconnect(
1014 wxEVT_LEFT_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent), nullptr,
1015 this);
1016 m_stTrackingText->Disconnect(
1017 wxEVT_MIDDLE_DOWN, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1018 nullptr, this);
1019 m_stTrackingText->Disconnect(
1020 wxEVT_MIDDLE_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1021 nullptr, this);
1022 m_stTrackingText->Disconnect(
1023 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1024 nullptr, this);
1025 m_stTrackingText->Disconnect(
1026 wxEVT_RIGHT_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1027 nullptr, this);
1028 m_stTrackingText->Disconnect(
1029 wxEVT_MOTION, wxMouseEventHandler(CursorDataBase::OnMouseEvent), nullptr,
1030 this);
1031 m_stTrackingText->Disconnect(
1032 wxEVT_LEFT_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1033 nullptr, this);
1034 m_stTrackingText->Disconnect(
1035 wxEVT_MIDDLE_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1036 nullptr, this);
1037 m_stTrackingText->Disconnect(
1038 wxEVT_RIGHT_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1039 nullptr, this);
1040 m_stTrackingText->Disconnect(
1041 wxEVT_LEAVE_WINDOW, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1042 nullptr, this);
1043 m_stTrackingText->Disconnect(
1044 wxEVT_ENTER_WINDOW, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1045 nullptr, this);
1046 m_stTrackingText->Disconnect(
1047 wxEVT_MOUSEWHEEL, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1048 nullptr, this);
1049 m_cbWind->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1050 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
1051 this);
1052 m_cbWind->Disconnect(wxEVT_RIGHT_DOWN,
1053 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1054 nullptr, this);
1055 m_cbWindGust->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1056 wxCommandEventHandler(CursorDataBase::OnCBAny),
1057 nullptr, this);
1058 m_cbWindGust->Disconnect(wxEVT_RIGHT_DOWN,
1059 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1060 nullptr, this);
1061 m_cbPressure->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1062 wxCommandEventHandler(CursorDataBase::OnCBAny),
1063 nullptr, this);
1064 m_cbPressure->Disconnect(wxEVT_RIGHT_DOWN,
1065 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1066 nullptr, this);
1067 m_cbWave->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1068 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
1069 this);
1070 m_cbWave->Disconnect(wxEVT_RIGHT_DOWN,
1071 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1072 nullptr, this);
1073 m_cbCurrent->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1074 wxCommandEventHandler(CursorDataBase::OnCBAny),
1075 nullptr, this);
1076 m_cbCurrent->Disconnect(wxEVT_RIGHT_DOWN,
1077 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1078 nullptr, this);
1079 m_cbPrecipitation->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1080 wxCommandEventHandler(CursorDataBase::OnCBAny),
1081 nullptr, this);
1082 m_cbPrecipitation->Disconnect(
1083 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1084 nullptr, this);
1085 m_cbCloud->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1086 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
1087 this);
1088 m_cbCloud->Disconnect(wxEVT_RIGHT_DOWN,
1089 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1090 nullptr, this);
1091 m_cbAirTemperature->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1092 wxCommandEventHandler(CursorDataBase::OnCBAny),
1093 nullptr, this);
1094 m_cbAirTemperature->Disconnect(
1095 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1096 nullptr, this);
1097 m_cbSeaTemperature->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1098 wxCommandEventHandler(CursorDataBase::OnCBAny),
1099 nullptr, this);
1100 m_cbSeaTemperature->Disconnect(
1101 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1102 nullptr, this);
1103 m_cbCAPE->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1104 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
1105 this);
1106 m_cbCAPE->Disconnect(wxEVT_RIGHT_DOWN,
1107 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1108 nullptr, this);
1109 m_cbReflC->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1110 wxCommandEventHandler(CursorDataBase::OnCBAny), nullptr,
1111 this);
1112 m_cbReflC->Disconnect(wxEVT_RIGHT_DOWN,
1113 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1114 nullptr, this);
1115}
1116
1117GribSettingsDialogBase::GribSettingsDialogBase(wxWindow* parent, wxWindowID id,
1118 const wxString& title,
1119 const wxPoint& pos,
1120 const wxSize& size, long style)
1121 : wxDialog(parent, id, title, pos, size, style) {
1122 this->SetSizeHints(wxDefaultSize, wxSize(-1, -1));
1123
1124 wxFlexGridSizer* fgSizer53;
1125 fgSizer53 = new wxFlexGridSizer(0, 1, 0, 0);
1126 fgSizer53->SetFlexibleDirection(wxBOTH);
1127 fgSizer53->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1128
1129 m_nSettingsBook =
1130 new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
1131 wxScrolledWindow* m_scSetDataPanel;
1132 m_scSetDataPanel =
1133 new wxScrolledWindow(m_nSettingsBook, wxID_ANY, wxDefaultPosition,
1134 wxDefaultSize, wxHSCROLL | wxVSCROLL);
1135 m_scSetDataPanel->SetScrollRate(5, 5);
1136 m_fgSetDataSizer = new wxFlexGridSizer(0, 1, 0, 0);
1137 m_fgSetDataSizer->AddGrowableCol(0);
1138 m_fgSetDataSizer->AddGrowableRow(1);
1139 m_fgSetDataSizer->SetFlexibleDirection(wxBOTH);
1140 m_fgSetDataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1141
1142 wxStaticBoxSizer* sbSizer101;
1143 sbSizer101 = new wxStaticBoxSizer(
1144 new wxStaticBox(m_scSetDataPanel, wxID_ANY, _("Data Display Options")),
1145 wxVERTICAL);
1146
1147 wxFlexGridSizer* fgSizer15;
1148 fgSizer15 = new wxFlexGridSizer(0, 3, 0, 0);
1149 fgSizer15->SetFlexibleDirection(wxBOTH);
1150 fgSizer15->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1151
1152 wxArrayString m_cDataTypeChoices;
1153 m_cDataTypeChoices.Add(_T("Item0"));
1154 m_cDataType = new wxChoice(m_scSetDataPanel, wxID_ANY, wxDefaultPosition,
1155 wxDefaultSize, m_cDataTypeChoices, 0);
1156 m_cDataType->SetSelection(0);
1157 fgSizer15->Add(m_cDataType, 0, wxBOTTOM | wxEXPAND | wxTOP, 5);
1158
1159 wxStaticText* m_staticText12;
1160 m_staticText12 = new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Units"),
1161 wxDefaultPosition, wxDefaultSize, 0);
1162 m_staticText12->Wrap(-1);
1163 m_staticText12->SetMinSize(wxSize(110, -1));
1164
1165 fgSizer15->Add(m_staticText12, 0, wxALL | wxEXPAND, 5);
1166
1167 wxArrayString m_cDataUnitsChoices;
1168 m_cDataUnitsChoices.Add(_T("Item0"));
1169 m_cDataUnits = new wxChoice(m_scSetDataPanel, wxID_ANY, wxDefaultPosition,
1170 wxDefaultSize, m_cDataUnitsChoices, 0);
1171 m_cDataUnits->SetSelection(0);
1172 fgSizer15->Add(m_cDataUnits, 0, wxBOTTOM | wxEXPAND | wxTOP, 5);
1173
1174 m_cbBarbedArrows =
1175 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Barbed Arrows"),
1176 wxDefaultPosition, wxDefaultSize, 0);
1177 fgSizer15->Add(m_cbBarbedArrows, 0, wxBOTTOM | wxTOP, 5);
1178
1179 m_fgBarbedData1 = new wxFlexGridSizer(0, 1, 0, 0);
1180 m_fgBarbedData1->SetFlexibleDirection(wxBOTH);
1181 m_fgBarbedData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1182
1183 wxString m_cBarbedColoursChoices[] = {_("Default Color"),
1184 _("Controlled Colors")};
1185 int m_cBarbedColoursNChoices =
1186 sizeof(m_cBarbedColoursChoices) / sizeof(wxString);
1187 m_cBarbedColours =
1188 new wxChoice(m_scSetDataPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize,
1189 m_cBarbedColoursNChoices, m_cBarbedColoursChoices, 0);
1190 m_cBarbedColours->SetSelection(0);
1191 m_fgBarbedData1->Add(m_cBarbedColours, 0, wxALL | wxEXPAND, 5);
1192
1193 wxFlexGridSizer* fgSizer42;
1194 fgSizer42 = new wxFlexGridSizer(0, 2, 0, 0);
1195 fgSizer42->SetFlexibleDirection(wxBOTH);
1196 fgSizer42->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1197
1198 wxStaticText* m_staticText41;
1199 m_staticText41 =
1200 new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Spacing(pixels)"),
1201 wxDefaultPosition, wxDefaultSize, 0);
1202 m_staticText41->Wrap(-1);
1203 fgSizer42->Add(m_staticText41, 0, wxALL, 5);
1204
1205 m_cBarbArrFixSpac =
1206 new wxCheckBox(m_scSetDataPanel, BARBFIXSPACING, _("Fixed"),
1207 wxDefaultPosition, wxDefaultSize, 0);
1208 fgSizer42->Add(m_cBarbArrFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1209
1210 fgSizer42->Add(0, 0, 1, wxEXPAND, 5);
1211
1212 m_cBarbArrMinSpac =
1213 new wxCheckBox(m_scSetDataPanel, BARBMINSPACING, _("Minimum"),
1214 wxDefaultPosition, wxDefaultSize, 0);
1215 fgSizer42->Add(m_cBarbArrMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1216
1217 m_fgBarbedData1->Add(fgSizer42, 1, wxEXPAND, 0);
1218
1219 fgSizer15->Add(m_fgBarbedData1, 1, wxEXPAND, 0);
1220
1221 m_fgBarbedData2 = new wxFlexGridSizer(0, 1, 0, 0);
1222 m_fgBarbedData2->SetFlexibleDirection(wxBOTH);
1223 m_fgBarbedData2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1224
1225 m_cBarbedVisibility =
1226 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Always visible"),
1227 wxDefaultPosition, wxDefaultSize, 0);
1228 m_fgBarbedData2->Add(m_cBarbedVisibility, 0, wxALL | wxEXPAND, 5);
1229
1230 m_sBarbArrSpacing = new wxSpinCtrl(m_scSetDataPanel, wxID_ANY, wxEmptyString,
1231 wxDefaultPosition, wxDefaultSize,
1232 wxSP_ARROW_KEYS, 30, 100, 30);
1233 m_fgBarbedData2->Add(m_sBarbArrSpacing, 0, wxALL, 5);
1234
1235 fgSizer15->Add(m_fgBarbedData2, 1, wxEXPAND, 0);
1236
1237 m_cbIsoBars = new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("IsoBars"),
1238 wxDefaultPosition, wxDefaultSize, 0);
1239 fgSizer15->Add(m_cbIsoBars, 0, wxBOTTOM | wxTOP, 5);
1240
1241 m_fIsoBarSpacing = new wxFlexGridSizer(0, 2, 0, 0);
1242 m_fIsoBarSpacing->SetFlexibleDirection(wxBOTH);
1243 m_fIsoBarSpacing->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1244
1245 m_tIsoBarSpacing = new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Spacing"),
1246 wxDefaultPosition, wxDefaultSize, 0);
1247 m_tIsoBarSpacing->Wrap(-1);
1248 m_fIsoBarSpacing->Add(m_tIsoBarSpacing, 0, wxALL, 5);
1249
1250 m_sIsoBarSpacing = new wxSpinCtrl(m_scSetDataPanel, wxID_ANY, wxEmptyString,
1251 wxDefaultPosition, wxDefaultSize,
1252 wxSP_ARROW_KEYS, 1, 1000, 1);
1253 m_fIsoBarSpacing->Add(m_sIsoBarSpacing, 0, wxALL | wxALIGN_RIGHT, 5);
1254
1255 fgSizer15->Add(m_fIsoBarSpacing, 1, wxALL | wxEXPAND, 0);
1256
1257 m_fIsoBarVisibility = new wxFlexGridSizer(0, 1, 0, 0);
1258 m_fIsoBarVisibility->SetFlexibleDirection(wxBOTH);
1259 m_fIsoBarVisibility->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1260
1261 m_sIsoBarVisibility =
1262 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Always visible"),
1263 wxDefaultPosition, wxDefaultSize, 0);
1264 m_fIsoBarVisibility->Add(m_sIsoBarVisibility, 0, wxALL | wxEXPAND, 5);
1265
1266 fgSizer15->Add(m_fIsoBarVisibility, 1, wxALL | wxEXPAND, 5);
1267
1268 fgSizer15->Add(0, 0, 1, wxEXPAND, 5);
1269
1270 m_cbAbbrIsoBarsNumbers =
1271 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Abbreviated Numbers"),
1272 wxDefaultPosition, wxDefaultSize, 0);
1273 fgSizer15->Add(m_cbAbbrIsoBarsNumbers, 0, wxEXPAND, 5);
1274
1275 fgSizer15->Add(0, 0, 1, wxEXPAND, 5);
1276
1277 m_cbDirectionArrows =
1278 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Direction Arrows"),
1279 wxDefaultPosition, wxDefaultSize, 0);
1280 fgSizer15->Add(m_cbDirectionArrows, 0, wxBOTTOM | wxTOP, 5);
1281
1282 m_fgDirArrData1 = new wxFlexGridSizer(0, 1, 0, 0);
1283 m_fgDirArrData1->SetFlexibleDirection(wxBOTH);
1284 m_fgDirArrData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1285
1286 wxString m_cDirectionArrowFormChoices[] = {
1287 _("Single Arrow"), _("Double Arrow"), _("Proportional Arrow")};
1288 int m_cDirectionArrowFormNChoices =
1289 sizeof(m_cDirectionArrowFormChoices) / sizeof(wxString);
1290 m_cDirectionArrowForm = new wxChoice(
1291 m_scSetDataPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize,
1292 m_cDirectionArrowFormNChoices, m_cDirectionArrowFormChoices, 0);
1293 m_cDirectionArrowForm->SetSelection(1);
1294 m_fgDirArrData1->Add(m_cDirectionArrowForm, 0, wxBOTTOM | wxEXPAND | wxTOP,
1295 5);
1296
1297 wxFlexGridSizer* fgSizer43;
1298 fgSizer43 = new wxFlexGridSizer(0, 2, 0, 0);
1299 fgSizer43->SetFlexibleDirection(wxBOTH);
1300 fgSizer43->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1301
1302 wxStaticText* m_staticText42;
1303 m_staticText42 =
1304 new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Spacing(pixels)"),
1305 wxDefaultPosition, wxDefaultSize, 0);
1306 m_staticText42->Wrap(-1);
1307 fgSizer43->Add(m_staticText42, 0, wxALL, 5);
1308
1309 m_cDirArrFixSpac = new wxCheckBox(m_scSetDataPanel, DIRFIXSPACING, _("Fixed"),
1310 wxDefaultPosition, wxDefaultSize, 0);
1311 fgSizer43->Add(m_cDirArrFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1312
1313 fgSizer43->Add(0, 0, 1, wxEXPAND, 5);
1314
1315 m_cDirArrMinSpac =
1316 new wxCheckBox(m_scSetDataPanel, DIRMINSPACING, _("Minimum"),
1317 wxDefaultPosition, wxDefaultSize, 0);
1318 fgSizer43->Add(m_cDirArrMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1319
1320 m_fgDirArrData1->Add(fgSizer43, 1, wxEXPAND, 0);
1321
1322 fgSizer15->Add(m_fgDirArrData1, 1, wxEXPAND, 5);
1323
1324 m_fgDirArrData2 = new wxFlexGridSizer(0, 1, 0, 0);
1325 m_fgDirArrData2->SetFlexibleDirection(wxBOTH);
1326 m_fgDirArrData2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1327
1328 wxString m_cDirectionArrowSizeChoices[] = {_("Default Size"),
1329 _("Small Size")};
1330 int m_cDirectionArrowSizeNChoices =
1331 sizeof(m_cDirectionArrowSizeChoices) / sizeof(wxString);
1332 m_cDirectionArrowSize = new wxChoice(
1333 m_scSetDataPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize,
1334 m_cDirectionArrowSizeNChoices, m_cDirectionArrowSizeChoices, 0);
1335 m_cDirectionArrowSize->SetSelection(0);
1336 m_fgDirArrData2->Add(m_cDirectionArrowSize, 0, wxALL | wxEXPAND, 5);
1337
1338 m_sDirArrSpacing = new wxSpinCtrl(m_scSetDataPanel, wxID_ANY, wxEmptyString,
1339 wxDefaultPosition, wxDefaultSize,
1340 wxSP_ARROW_KEYS, 30, 100, 30);
1341 m_fgDirArrData2->Add(m_sDirArrSpacing, 0, wxALL, 5);
1342
1343 fgSizer15->Add(m_fgDirArrData2, 1, wxEXPAND, 0);
1344
1345 m_cbOverlayMap = new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("OverlayMap"),
1346 wxDefaultPosition, wxDefaultSize, 0);
1347 fgSizer15->Add(m_cbOverlayMap, 0, wxBOTTOM | wxTOP, 5);
1348
1349 m_tOverlayColors =
1350 new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Color scheme"),
1351 wxDefaultPosition, wxDefaultSize, 0);
1352 m_tOverlayColors->Wrap(-1);
1353 fgSizer15->Add(m_tOverlayColors, 0, wxALL | wxEXPAND, 5);
1354
1355 wxString m_cOverlayColorsChoices[] = {
1356 _("Generic"), _("Wind"), _("Air Temp"), _("Sea Temp"),
1357 _("Rainfall"), _("Cloud Cover"), _("Current"), _("CAPE"),
1358 _("REFC"), _("Windy")};
1359 int m_cOverlayColorsNChoices =
1360 sizeof(m_cOverlayColorsChoices) / sizeof(wxString);
1361 m_cOverlayColors =
1362 new wxChoice(m_scSetDataPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize,
1363 m_cOverlayColorsNChoices, m_cOverlayColorsChoices, 0);
1364 m_cOverlayColors->SetSelection(0);
1365 fgSizer15->Add(m_cOverlayColors, 0, wxALL | wxEXPAND, 5);
1366
1367 m_cbNumbers = new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Numbers"),
1368 wxDefaultPosition, wxDefaultSize, 0);
1369 fgSizer15->Add(m_cbNumbers, 0, wxBOTTOM | wxTOP, 5);
1370
1371 m_fgNumData1 = new wxFlexGridSizer(0, 2, 0, 0);
1372 m_fgNumData1->SetFlexibleDirection(wxBOTH);
1373 m_fgNumData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1374
1375 wxStaticText* m_staticText43;
1376 m_staticText43 =
1377 new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Spacing(pixels)"),
1378 wxDefaultPosition, wxDefaultSize, 0);
1379 m_staticText43->Wrap(-1);
1380 m_fgNumData1->Add(m_staticText43, 0, wxALL, 5);
1381
1382 m_cNumFixSpac = new wxCheckBox(m_scSetDataPanel, NUMFIXSPACING, _("Fixed"),
1383 wxDefaultPosition, wxDefaultSize, 0);
1384 m_fgNumData1->Add(m_cNumFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1385
1386 m_fgNumData1->Add(0, 0, 1, wxEXPAND, 5);
1387
1388 m_cNumMinSpac = new wxCheckBox(m_scSetDataPanel, NUMMINSPACING, _("Minimum"),
1389 wxDefaultPosition, wxDefaultSize, 0);
1390 m_fgNumData1->Add(m_cNumMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1391
1392 fgSizer15->Add(m_fgNumData1, 1, wxEXPAND, 0);
1393
1394 m_sNumbersSpacing = new wxSpinCtrl(m_scSetDataPanel, wxID_ANY, wxEmptyString,
1395 wxDefaultPosition, wxDefaultSize,
1396 wxSP_ARROW_KEYS, 30, 100, 50);
1397 fgSizer15->Add(m_sNumbersSpacing, 0, wxALL, 5);
1398
1399 m_cbParticles = new wxCheckBox(m_scSetDataPanel, wxID_ANY, _("Particle Map"),
1400 wxDefaultPosition, wxDefaultSize, 0);
1401 fgSizer15->Add(m_cbParticles, 0, wxBOTTOM | wxTOP, 5);
1402
1403 m_ctParticles = new wxStaticText(m_scSetDataPanel, wxID_ANY, _("Density"),
1404 wxDefaultPosition, wxDefaultSize, 0);
1405 m_ctParticles->Wrap(-1);
1406 fgSizer15->Add(m_ctParticles, 0, wxALL, 5);
1407
1408#if defined(__WXOSX__) && !wxCHECK_VERSION(3, 1, 0)
1409 m_sParticleDensity =
1410 new wxSlider(m_scSetDataPanel, wxID_ANY, 5, 1, 10, wxDefaultPosition,
1411 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL);
1412#else
1413 m_sParticleDensity =
1414 new wxSlider(m_scSetDataPanel, wxID_ANY, 5, 1, 10, wxDefaultPosition,
1415 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
1416#endif
1417 fgSizer15->Add(m_sParticleDensity, 0, wxALL | wxEXPAND, 5);
1418
1419 sbSizer101->Add(fgSizer15, 1, wxEXPAND, 5);
1420
1421 m_fgSetDataSizer->Add(sbSizer101, 1, wxEXPAND | wxTOP, 10);
1422
1423 m_fgSetDataSizer->Add(0, 0, 1, wxEXPAND, 5);
1424
1425 wxStaticBoxSizer* sbSizer12;
1426 sbSizer12 = new wxStaticBoxSizer(
1427 new wxStaticBox(m_scSetDataPanel, wxID_ANY,
1428 _("Transparency for all Overlay Maps")),
1429 wxVERTICAL);
1430
1431 wxFlexGridSizer* fgSizer34;
1432 fgSizer34 = new wxFlexGridSizer(0, 2, 0, 0);
1433 fgSizer34->SetFlexibleDirection(wxBOTH);
1434 fgSizer34->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1435
1436 m_staticText24 = new wxStaticText(m_scSetDataPanel, wxID_ANY,
1437 _("Overlay Transparency (%)"),
1438 wxDefaultPosition, wxDefaultSize, 0);
1439 m_staticText24->Wrap(-1);
1440 fgSizer34->Add(m_staticText24, 0, wxEXPAND | wxRIGHT | wxTOP, 15);
1441
1442 m_sTransparency =
1443 new wxSlider(m_scSetDataPanel, wxID_ANY, 50, 0, 100, wxDefaultPosition,
1444 wxSize(-1, -1), wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
1445 m_sTransparency->SetMinSize(wxSize(250, -1));
1446
1447 fgSizer34->Add(m_sTransparency, 0, wxALL | wxEXPAND, 5);
1448
1449 sbSizer12->Add(fgSizer34, 1, wxEXPAND | wxLEFT, 5);
1450
1451 m_fgSetDataSizer->Add(sbSizer12, 1, wxEXPAND | wxTOP, 10);
1452
1453 m_scSetDataPanel->SetSizer(m_fgSetDataSizer);
1454 m_scSetDataPanel->Layout();
1455 m_fgSetDataSizer->Fit(m_scSetDataPanel);
1456 m_nSettingsBook->AddPage(m_scSetDataPanel, _("Data"), false);
1457 wxScrolledWindow* m_scSetPlaybackPanel;
1458 m_scSetPlaybackPanel =
1459 new wxScrolledWindow(m_nSettingsBook, wxID_ANY, wxDefaultPosition,
1460 wxDefaultSize, wxHSCROLL | wxVSCROLL);
1461 m_scSetPlaybackPanel->SetScrollRate(5, 5);
1462 m_fgSetPlaybackSizer = new wxFlexGridSizer(0, 1, 0, 0);
1463 m_fgSetPlaybackSizer->AddGrowableCol(0);
1464 m_fgSetPlaybackSizer->SetFlexibleDirection(wxBOTH);
1465 m_fgSetPlaybackSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1466
1467 wxStaticBoxSizer* sbSizer121;
1468 sbSizer121 = new wxStaticBoxSizer(
1469 new wxStaticBox(m_scSetPlaybackPanel, wxID_ANY, _("Playback Options")),
1470 wxVERTICAL);
1471
1472 wxFlexGridSizer* fgSizer48;
1473 fgSizer48 = new wxFlexGridSizer(0, 1, 0, 0);
1474 fgSizer48->SetFlexibleDirection(wxBOTH);
1475 fgSizer48->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1476
1477 wxStaticText* m_staticText4;
1478 m_staticText4 =
1479 new wxStaticText(m_scSetPlaybackPanel, wxID_ANY, _("Speed Control"),
1480 wxDefaultPosition, wxDefaultSize, 0);
1481 m_staticText4->Wrap(-1);
1482 fgSizer48->Add(m_staticText4, 0, wxALL | wxEXPAND, 5);
1483
1484 wxFlexGridSizer* fgSizer480;
1485 fgSizer480 = new wxFlexGridSizer(0, 4, 0, 0);
1486 fgSizer480->SetFlexibleDirection(wxBOTH);
1487 fgSizer480->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1488
1489 fgSizer480->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
1490
1491 wxStaticText* m_staticText400;
1492 m_staticText400 = new wxStaticText(m_scSetPlaybackPanel, wxID_ANY, _("Slow"),
1493 wxDefaultPosition, wxDefaultSize, 0);
1494 m_staticText400->Wrap(-1);
1495 fgSizer480->Add(m_staticText400, 0, wxLEFT | wxTOP, 5);
1496
1497 m_sUpdatesPerSecond =
1498 new wxSlider(m_scSetPlaybackPanel, wxID_ANY, 4, 2, 12, wxDefaultPosition,
1499 wxSize(-1, -1), wxSL_HORIZONTAL);
1500 fgSizer480->Add(m_sUpdatesPerSecond, 0, wxEXPAND | wxBOTTOM, 5);
1501
1502 wxStaticText* m_staticText401;
1503 m_staticText401 = new wxStaticText(m_scSetPlaybackPanel, wxID_ANY, _("Fast"),
1504 wxDefaultPosition, wxDefaultSize, 0);
1505 m_staticText401->Wrap(-1);
1506 fgSizer480->Add(m_staticText401, 0, wxRIGHT | wxTOP, 5);
1507
1508 fgSizer48->Add(fgSizer480, 0, wxALL | wxEXPAND, 5);
1509
1510 m_cLoopMode = new wxCheckBox(m_scSetPlaybackPanel, wxID_ANY, _("Loop Mode"),
1511 wxDefaultPosition, wxDefaultSize, 0);
1512 fgSizer48->Add(m_cLoopMode, 0, wxALL, 5);
1513
1514 wxFlexGridSizer* fgSizer481;
1515 fgSizer481 = new wxFlexGridSizer(0, 3, 0, 0);
1516 fgSizer481->SetFlexibleDirection(wxBOTH);
1517 fgSizer481->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1518
1519 fgSizer481->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
1520
1521 m_staticText26 =
1522 new wxStaticText(m_scSetPlaybackPanel, wxID_ANY, _("Loop Start"),
1523 wxDefaultPosition, wxDefaultSize, 0);
1524 m_staticText26->Wrap(-1);
1525 fgSizer481->Add(m_staticText26, 0, wxALL | wxEXPAND, 5);
1526
1527 wxString m_cLoopStartPointChoices[] = {_("Top of Grib File"),
1528 _("Current time forecast")};
1529 int m_cLoopStartPointNChoices =
1530 sizeof(m_cLoopStartPointChoices) / sizeof(wxString);
1531 m_cLoopStartPoint = new wxChoice(
1532 m_scSetPlaybackPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize,
1533 m_cLoopStartPointNChoices, m_cLoopStartPointChoices, 0);
1534 m_cLoopStartPoint->SetSelection(0);
1535 fgSizer481->Add(m_cLoopStartPoint, 0, wxALL | wxEXPAND, 5);
1536
1537 fgSizer48->Add(fgSizer481, 0, wxALL, 5);
1538
1539 m_cInterpolate = new wxCheckBox(m_scSetPlaybackPanel, wxID_ANY,
1540 _("Interpolate between gribs"),
1541 wxDefaultPosition, wxDefaultSize, 0);
1542 fgSizer48->Add(m_cInterpolate, 0, wxALL | wxEXPAND, 5);
1543
1544 wxFlexGridSizer* fgSizer482;
1545 fgSizer482 = new wxFlexGridSizer(0, 3, 0, 0);
1546 fgSizer482->SetFlexibleDirection(wxBOTH);
1547 fgSizer482->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1548
1549 fgSizer482->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
1550
1551 m_tSlicesPerUpdate =
1552 new wxStaticText(m_scSetPlaybackPanel, wxID_ANY, _("Time Interval"),
1553 wxDefaultPosition, wxDefaultSize, 0);
1554 m_tSlicesPerUpdate->Wrap(-1);
1555 fgSizer482->Add(m_tSlicesPerUpdate, 0, wxALL | wxEXPAND, 5);
1556
1557 wxArrayString m_sSlicesPerUpdateChoices;
1558 m_sSlicesPerUpdate =
1559 new wxChoice(m_scSetPlaybackPanel, wxID_ANY, wxDefaultPosition,
1560 wxDefaultSize, m_sSlicesPerUpdateChoices, 0);
1561 m_sSlicesPerUpdate->SetSelection(0);
1562 fgSizer482->Add(m_sSlicesPerUpdate, 0, wxALL | wxEXPAND, 5);
1563
1564 fgSizer48->Add(fgSizer482, 0, wxALL | wxEXPAND, 5);
1565
1566 sbSizer121->Add(fgSizer48, 1, wxEXPAND | wxALL, 5);
1567
1568 m_fgSetPlaybackSizer->Add(sbSizer121, 1, wxEXPAND | wxTOP, 10);
1569
1570 m_scSetPlaybackPanel->SetSizer(m_fgSetPlaybackSizer);
1571 m_scSetPlaybackPanel->Layout();
1572 m_fgSetPlaybackSizer->Fit(m_scSetPlaybackPanel);
1573 m_nSettingsBook->AddPage(m_scSetPlaybackPanel, _("Playback"), false);
1574 wxScrolledWindow* m_scSetGuiPanel;
1575 m_scSetGuiPanel =
1576 new wxScrolledWindow(m_nSettingsBook, wxID_ANY, wxDefaultPosition,
1577 wxDefaultSize, wxHSCROLL | wxVSCROLL);
1578 m_scSetGuiPanel->SetScrollRate(5, 5);
1579 m_fgSetGuiSizer = new wxFlexGridSizer(0, 1, 0, 0);
1580 m_fgSetGuiSizer->AddGrowableCol(0);
1581 m_fgSetGuiSizer->SetFlexibleDirection(wxBOTH);
1582 m_fgSetGuiSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1583
1584 wxStaticBoxSizer* sbSizer9;
1585 sbSizer9 = new wxStaticBoxSizer(
1586 new wxStaticBox(m_scSetGuiPanel, wxID_ANY, _("Dialogs Style")),
1587 wxVERTICAL);
1588
1589 wxFlexGridSizer* fgSizer47;
1590 fgSizer47 = new wxFlexGridSizer(0, 1, 0, 0);
1591 fgSizer47->SetFlexibleDirection(wxBOTH);
1592 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1593
1594 m_rbCurDataAttaWCap =
1595 new wxRadioButton(m_scSetGuiPanel, wxID_ANY,
1596 _("Data at cursor dialog is attached to icons bar - "
1597 "with a title/drag bar"),
1598 wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
1599 fgSizer47->Add(m_rbCurDataAttaWCap, 0, wxALL, 5);
1600
1601 m_rbCurDataAttaWoCap =
1602 new wxRadioButton(m_scSetGuiPanel, wxID_ANY,
1603 _("Data at cursor dialog is attached to icons bar - "
1604 "without a title/drag bar"),
1605 wxDefaultPosition, wxDefaultSize, 0);
1606 fgSizer47->Add(m_rbCurDataAttaWoCap, 0, wxALL, 5);
1607
1608 m_rbCurDataIsolHoriz = new wxRadioButton(
1609 m_scSetGuiPanel, wxID_ANY,
1610 _("Data at cursor dialog is isolated and displayed horizontally"),
1611 wxDefaultPosition, wxDefaultSize, 0);
1612 fgSizer47->Add(m_rbCurDataIsolHoriz, 0, wxALL, 5);
1613
1614 m_rbCurDataIsolVertic = new wxRadioButton(
1615 m_scSetGuiPanel, wxID_ANY,
1616 _("Data at cursor dialog is isolated and displayed vertically"),
1617 wxDefaultPosition, wxDefaultSize, 0);
1618 fgSizer47->Add(m_rbCurDataIsolVertic, 0, wxALL, 5);
1619
1620 sbSizer9->Add(fgSizer47, 1, wxEXPAND, 5);
1621
1622 m_fgSetGuiSizer->Add(sbSizer9, 1, wxEXPAND | wxTOP, 10);
1623
1624 m_fgSetGuiSizer->Add(0, 0, 1, wxALL, 5);
1625
1626 wxStaticBoxSizer* sbSizer10;
1627 sbSizer10 = new wxStaticBoxSizer(
1628 new wxStaticBox(m_scSetGuiPanel, wxID_ANY, _("Buttons Visibility")),
1629 wxVERTICAL);
1630
1631 wxFlexGridSizer* fgSizer52;
1632 fgSizer52 = new wxFlexGridSizer(0, 4, 0, 0);
1633 fgSizer52->SetFlexibleDirection(wxBOTH);
1634 fgSizer52->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1635
1636 fgSizer52->Add(0, 0, 1, wxEXPAND, 5);
1637
1638 fgSizer52->Add(0, 0, 1, wxEXPAND, 5);
1639
1640 wxStaticText* m_staticText44;
1641 m_staticText44 =
1642 new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Attached icon bar"),
1643 wxDefaultPosition, wxDefaultSize, 0);
1644 m_staticText44->Wrap(-1);
1645 fgSizer52->Add(m_staticText44, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1646
1647 wxStaticText* m_staticText45;
1648 m_staticText45 =
1649 new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Isolated icon bar"),
1650 wxDefaultPosition, wxDefaultSize, 0);
1651 m_staticText45->Wrap(-1);
1652 fgSizer52->Add(m_staticText45, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1653
1654 m_biAltitude = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1655 wxDefaultPosition, wxDefaultSize, 0);
1656 fgSizer52->Add(m_biAltitude, 0, wxALL, 2);
1657
1658 wxStaticText* m_staticText46;
1659 m_staticText46 =
1660 new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Geopot. Height Choice"),
1661 wxDefaultPosition, wxDefaultSize, 0);
1662 m_staticText46->Wrap(-1);
1663 fgSizer52->Add(m_staticText46, 0, wxALL, 3);
1664
1665 wxCheckBox* m_checkBox48;
1666 m_checkBox48 = new wxCheckBox(m_scSetGuiPanel, AC0, wxEmptyString,
1667 wxDefaultPosition, wxDefaultSize, 0);
1668 fgSizer52->Add(m_checkBox48, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1669
1670 wxCheckBox* m_checkBox49;
1671 m_checkBox49 = new wxCheckBox(m_scSetGuiPanel, AC1, wxEmptyString,
1672 wxDefaultPosition, wxDefaultSize, 0);
1673 fgSizer52->Add(m_checkBox49, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1674
1675 m_biNow = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1676 wxDefaultPosition, wxDefaultSize, 0);
1677 fgSizer52->Add(m_biNow, 0, wxALL, 3);
1678
1679 wxStaticText* m_staticText47;
1680 m_staticText47 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Now"),
1681 wxDefaultPosition, wxDefaultSize, 0);
1682 m_staticText47->Wrap(-1);
1683 fgSizer52->Add(m_staticText47, 0, wxALL, 3);
1684
1685 wxCheckBox* m_checkBox50;
1686 m_checkBox50 = new wxCheckBox(m_scSetGuiPanel, NW0, wxEmptyString,
1687 wxDefaultPosition, wxDefaultSize, 0);
1688 fgSizer52->Add(m_checkBox50, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1689
1690 wxCheckBox* m_checkBox51;
1691 m_checkBox51 = new wxCheckBox(m_scSetGuiPanel, NW1, wxEmptyString,
1692 wxDefaultPosition, wxDefaultSize, 0);
1693 fgSizer52->Add(m_checkBox51, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1694
1695 m_biZoomToCenter = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1696 wxDefaultPosition, wxDefaultSize, 0);
1697 fgSizer52->Add(m_biZoomToCenter, 0, wxALL, 3);
1698
1699 wxStaticText* m_staticText48;
1700 m_staticText48 =
1701 new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Zoom to Center"),
1702 wxDefaultPosition, wxDefaultSize, 0);
1703 m_staticText48->Wrap(-1);
1704 fgSizer52->Add(m_staticText48, 0, wxALL, 3);
1705
1706 wxCheckBox* m_checkBox52;
1707 m_checkBox52 = new wxCheckBox(m_scSetGuiPanel, ZC0, wxEmptyString,
1708 wxDefaultPosition, wxDefaultSize, 0);
1709 fgSizer52->Add(m_checkBox52, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1710
1711 wxCheckBox* m_checkBox53;
1712 m_checkBox53 = new wxCheckBox(m_scSetGuiPanel, ZC1, wxEmptyString,
1713 wxDefaultPosition, wxDefaultSize, 0);
1714 fgSizer52->Add(m_checkBox53, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1715
1716 m_biShowCursorData =
1717 new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1718 wxDefaultPosition, wxDefaultSize, 0);
1719 fgSizer52->Add(m_biShowCursorData, 0, wxALL, 3);
1720
1721 wxStaticText* m_staticText49;
1722 m_staticText49 =
1723 new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Show Cursor Data"),
1724 wxDefaultPosition, wxDefaultSize, 0);
1725 m_staticText49->Wrap(-1);
1726 fgSizer52->Add(m_staticText49, 0, wxALL, 3);
1727
1728 wxCheckBox* m_checkBox54;
1729 m_checkBox54 = new wxCheckBox(m_scSetGuiPanel, SCD0, wxEmptyString,
1730 wxDefaultPosition, wxDefaultSize, 0);
1731 fgSizer52->Add(m_checkBox54, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1732
1733 wxCheckBox* m_checkBox55;
1734 m_checkBox55 = new wxCheckBox(m_scSetGuiPanel, SCD1, wxEmptyString,
1735 wxDefaultPosition, wxDefaultSize, 0);
1736 fgSizer52->Add(m_checkBox55, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1737
1738 m_biPlay = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1739 wxDefaultPosition, wxDefaultSize, 0);
1740 fgSizer52->Add(m_biPlay, 0, wxALL, 3);
1741
1742 wxStaticText* m_staticText50;
1743 m_staticText50 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Playback"),
1744 wxDefaultPosition, wxDefaultSize, 0);
1745 m_staticText50->Wrap(-1);
1746 fgSizer52->Add(m_staticText50, 0, wxALL, 3);
1747
1748 wxCheckBox* m_checkBox56;
1749 m_checkBox56 = new wxCheckBox(m_scSetGuiPanel, PB0, wxEmptyString,
1750 wxDefaultPosition, wxDefaultSize, 0);
1751 fgSizer52->Add(m_checkBox56, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1752
1753 wxCheckBox* m_checkBox57;
1754 m_checkBox57 = new wxCheckBox(m_scSetGuiPanel, PB1, wxEmptyString,
1755 wxDefaultPosition, wxDefaultSize, 0);
1756 fgSizer52->Add(m_checkBox57, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1757
1758 m_biTimeSlider = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1759 wxDefaultPosition, wxDefaultSize, 0);
1760 fgSizer52->Add(m_biTimeSlider, 0, wxALL, 3);
1761
1762 wxStaticText* m_staticText51;
1763 m_staticText51 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Time Slider"),
1764 wxDefaultPosition, wxDefaultSize, 0);
1765 m_staticText51->Wrap(-1);
1766 fgSizer52->Add(m_staticText51, 0, wxALL, 3);
1767
1768 wxCheckBox* m_checkBox58;
1769 m_checkBox58 = new wxCheckBox(m_scSetGuiPanel, TL0, wxEmptyString,
1770 wxDefaultPosition, wxDefaultSize, 0);
1771 fgSizer52->Add(m_checkBox58, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1772
1773 wxCheckBox* m_checkBox59;
1774 m_checkBox59 = new wxCheckBox(m_scSetGuiPanel, TL1, wxEmptyString,
1775 wxDefaultPosition, wxDefaultSize, 0);
1776 fgSizer52->Add(m_checkBox59, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1777
1778 m_biOpenFile = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1779 wxDefaultPosition, wxDefaultSize, 0);
1780 fgSizer52->Add(m_biOpenFile, 0, wxALL, 3);
1781
1782 wxStaticText* m_staticText52;
1783 m_staticText52 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Open File"),
1784 wxDefaultPosition, wxDefaultSize, 0);
1785 m_staticText52->Wrap(-1);
1786 fgSizer52->Add(m_staticText52, 0, wxALL, 3);
1787
1788 wxCheckBox* m_checkBox60;
1789 m_checkBox60 = new wxCheckBox(m_scSetGuiPanel, OF0, wxEmptyString,
1790 wxDefaultPosition, wxDefaultSize, 0);
1791 fgSizer52->Add(m_checkBox60, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1792
1793 wxCheckBox* m_checkBox61;
1794 m_checkBox61 = new wxCheckBox(m_scSetGuiPanel, OF1, wxEmptyString,
1795 wxDefaultPosition, wxDefaultSize, 0);
1796 fgSizer52->Add(m_checkBox61, 0, wxALIGN_CENTER_HORIZONTAL, 5);
1797
1798 m_biSettings = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1799 wxDefaultPosition, wxDefaultSize, 0);
1800 fgSizer52->Add(m_biSettings, 0, wxALL, 3);
1801
1802 wxStaticText* m_staticText53;
1803 m_staticText53 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Settings"),
1804 wxDefaultPosition, wxDefaultSize, 0);
1805 m_staticText53->Wrap(-1);
1806 fgSizer52->Add(m_staticText53, 0, wxALL, 3);
1807
1808 wxCheckBox* m_checkBox62;
1809 m_checkBox62 = new wxCheckBox(m_scSetGuiPanel, STS0, wxEmptyString,
1810 wxDefaultPosition, wxDefaultSize, 0);
1811 fgSizer52->Add(m_checkBox62, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1812
1813 wxCheckBox* m_checkBox63;
1814 m_checkBox63 = new wxCheckBox(m_scSetGuiPanel, STS1, wxEmptyString,
1815 wxDefaultPosition, wxDefaultSize, 0);
1816 fgSizer52->Add(m_checkBox63, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1817
1818 m_biRequest = new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1819 wxDefaultPosition, wxDefaultSize, 0);
1820 fgSizer52->Add(m_biRequest, 0, wxALL, 3);
1821
1822 wxStaticText* m_staticText54;
1823 m_staticText54 = new wxStaticText(m_scSetGuiPanel, wxID_ANY, _("Request"),
1824 wxDefaultPosition, wxDefaultSize, 0);
1825 m_staticText54->Wrap(-1);
1826 fgSizer52->Add(m_staticText54, 0, wxALL, 3);
1827
1828 wxCheckBox* m_checkBox64;
1829 m_checkBox64 = new wxCheckBox(m_scSetGuiPanel, RQ0, wxEmptyString,
1830 wxDefaultPosition, wxDefaultSize, 0);
1831 fgSizer52->Add(m_checkBox64, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1832
1833 wxCheckBox* m_checkBox65;
1834 m_checkBox65 = new wxCheckBox(m_scSetGuiPanel, RQ1, wxEmptyString,
1835 wxDefaultPosition, wxDefaultSize, 0);
1836 fgSizer52->Add(m_checkBox65, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 3);
1837
1838 sbSizer10->Add(fgSizer52, 1, wxEXPAND, 5);
1839
1840 m_fgSetGuiSizer->Add(sbSizer10, 1, wxEXPAND | wxTOP, 5);
1841
1842 m_scSetGuiPanel->SetSizer(m_fgSetGuiSizer);
1843 m_scSetGuiPanel->Layout();
1844 m_fgSetGuiSizer->Fit(m_scSetGuiPanel);
1845 m_nSettingsBook->AddPage(m_scSetGuiPanel, _("GUI"), true);
1846
1847 fgSizer53->Add(m_nSettingsBook, 1, wxEXPAND | wxALL, 5);
1848
1849 m_sButton = new wxStdDialogButtonSizer();
1850 m_sButtonOK = new wxButton(this, wxID_OK);
1851 m_sButton->AddButton(m_sButtonOK);
1852 m_sButtonApply = new wxButton(this, wxID_APPLY);
1853 m_sButton->AddButton(m_sButtonApply);
1854 m_sButtonCancel = new wxButton(this, wxID_CANCEL, _("Cancel"));
1855 m_sButton->AddButton(m_sButtonCancel);
1856 m_sButton->Realize();
1857
1858 fgSizer53->Add(m_sButton, 1, wxEXPAND, 5);
1859
1860 this->SetSizer(fgSizer53);
1861 this->Layout();
1862 fgSizer53->Fit(this);
1863
1864 this->Centre(wxBOTH);
1865
1866 // Connect Events
1867 m_nSettingsBook->Connect(
1868 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED,
1869 wxNotebookEventHandler(GribSettingsDialogBase::OnPageChange), nullptr,
1870 this);
1871 m_cDataType->Connect(
1872 wxEVT_COMMAND_CHOICE_SELECTED,
1873 wxCommandEventHandler(GribSettingsDialogBase::OnDataTypeChoice), nullptr,
1874 this);
1875 m_cDataUnits->Connect(
1876 wxEVT_COMMAND_CHOICE_SELECTED,
1877 wxCommandEventHandler(GribSettingsDialogBase::OnUnitChange), nullptr,
1878 this);
1879 m_cBarbArrFixSpac->Connect(
1880 wxEVT_COMMAND_CHECKBOX_CLICKED,
1881 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1882 nullptr, this);
1883 m_cBarbArrMinSpac->Connect(
1884 wxEVT_COMMAND_CHECKBOX_CLICKED,
1885 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1886 nullptr, this);
1887 m_cDirArrFixSpac->Connect(
1888 wxEVT_COMMAND_CHECKBOX_CLICKED,
1889 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1890 nullptr, this);
1891 m_cDirArrMinSpac->Connect(
1892 wxEVT_COMMAND_CHECKBOX_CLICKED,
1893 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1894 nullptr, this);
1895 m_cNumFixSpac->Connect(
1896 wxEVT_COMMAND_CHECKBOX_CLICKED,
1897 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1898 nullptr, this);
1899 m_cNumMinSpac->Connect(
1900 wxEVT_COMMAND_CHECKBOX_CLICKED,
1901 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1902 nullptr, this);
1903 m_sTransparency->Connect(
1904 wxEVT_SCROLL_TOP,
1905 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1906 nullptr, this);
1907 m_sTransparency->Connect(
1908 wxEVT_SCROLL_BOTTOM,
1909 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1910 nullptr, this);
1911 m_sTransparency->Connect(
1912 wxEVT_SCROLL_LINEUP,
1913 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1914 nullptr, this);
1915 m_sTransparency->Connect(
1916 wxEVT_SCROLL_LINEDOWN,
1917 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1918 nullptr, this);
1919 m_sTransparency->Connect(
1920 wxEVT_SCROLL_PAGEUP,
1921 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1922 nullptr, this);
1923 m_sTransparency->Connect(
1924 wxEVT_SCROLL_PAGEDOWN,
1925 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1926 nullptr, this);
1927 m_sTransparency->Connect(
1928 wxEVT_SCROLL_THUMBTRACK,
1929 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1930 nullptr, this);
1931 m_sTransparency->Connect(
1932 wxEVT_SCROLL_THUMBRELEASE,
1933 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1934 nullptr, this);
1935 m_sTransparency->Connect(
1936 wxEVT_SCROLL_CHANGED,
1937 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1938 nullptr, this);
1939 m_cLoopMode->Connect(
1940 wxEVT_COMMAND_CHECKBOX_CLICKED,
1941 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
1942 nullptr, this);
1943 m_cInterpolate->Connect(
1944 wxEVT_COMMAND_CHECKBOX_CLICKED,
1945 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
1946 nullptr, this);
1947 m_rbCurDataAttaWCap->Connect(
1948 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1949 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1950 nullptr, this);
1951 m_rbCurDataAttaWoCap->Connect(
1952 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1953 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1954 nullptr, this);
1955 m_rbCurDataIsolHoriz->Connect(
1956 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1957 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1958 nullptr, this);
1959 m_rbCurDataIsolVertic->Connect(
1960 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1961 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1962 nullptr, this);
1963 m_sButtonApply->Connect(
1964 wxEVT_COMMAND_BUTTON_CLICKED,
1965 wxCommandEventHandler(GribSettingsDialogBase::OnApply), nullptr, this);
1966}
1967
1968GribSettingsDialogBase::~GribSettingsDialogBase() {
1969 // Disconnect Events
1970 m_nSettingsBook->Disconnect(
1971 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED,
1972 wxNotebookEventHandler(GribSettingsDialogBase::OnPageChange), nullptr,
1973 this);
1974 m_cDataType->Disconnect(
1975 wxEVT_COMMAND_CHOICE_SELECTED,
1976 wxCommandEventHandler(GribSettingsDialogBase::OnDataTypeChoice), nullptr,
1977 this);
1978 m_cDataUnits->Disconnect(
1979 wxEVT_COMMAND_CHOICE_SELECTED,
1980 wxCommandEventHandler(GribSettingsDialogBase::OnUnitChange), nullptr,
1981 this);
1982 m_cBarbArrFixSpac->Disconnect(
1983 wxEVT_COMMAND_CHECKBOX_CLICKED,
1984 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1985 nullptr, this);
1986 m_cBarbArrMinSpac->Disconnect(
1987 wxEVT_COMMAND_CHECKBOX_CLICKED,
1988 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1989 nullptr, this);
1990 m_cDirArrFixSpac->Disconnect(
1991 wxEVT_COMMAND_CHECKBOX_CLICKED,
1992 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1993 nullptr, this);
1994 m_cDirArrMinSpac->Disconnect(
1995 wxEVT_COMMAND_CHECKBOX_CLICKED,
1996 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1997 nullptr, this);
1998 m_cNumFixSpac->Disconnect(
1999 wxEVT_COMMAND_CHECKBOX_CLICKED,
2000 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2001 nullptr, this);
2002 m_cNumMinSpac->Disconnect(
2003 wxEVT_COMMAND_CHECKBOX_CLICKED,
2004 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2005 nullptr, this);
2006 m_sTransparency->Disconnect(
2007 wxEVT_SCROLL_TOP,
2008 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2009 nullptr, this);
2010 m_sTransparency->Disconnect(
2011 wxEVT_SCROLL_BOTTOM,
2012 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2013 nullptr, this);
2014 m_sTransparency->Disconnect(
2015 wxEVT_SCROLL_LINEUP,
2016 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2017 nullptr, this);
2018 m_sTransparency->Disconnect(
2019 wxEVT_SCROLL_LINEDOWN,
2020 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2021 nullptr, this);
2022 m_sTransparency->Disconnect(
2023 wxEVT_SCROLL_PAGEUP,
2024 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2025 nullptr, this);
2026 m_sTransparency->Disconnect(
2027 wxEVT_SCROLL_PAGEDOWN,
2028 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2029 nullptr, this);
2030 m_sTransparency->Disconnect(
2031 wxEVT_SCROLL_THUMBTRACK,
2032 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2033 nullptr, this);
2034 m_sTransparency->Disconnect(
2035 wxEVT_SCROLL_THUMBRELEASE,
2036 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2037 nullptr, this);
2038 m_sTransparency->Disconnect(
2039 wxEVT_SCROLL_CHANGED,
2040 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2041 nullptr, this);
2042 m_cLoopMode->Disconnect(
2043 wxEVT_COMMAND_CHECKBOX_CLICKED,
2044 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
2045 nullptr, this);
2046 m_cInterpolate->Disconnect(
2047 wxEVT_COMMAND_CHECKBOX_CLICKED,
2048 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
2049 nullptr, this);
2050 m_rbCurDataAttaWCap->Disconnect(
2051 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2052 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2053 nullptr, this);
2054 m_rbCurDataAttaWoCap->Disconnect(
2055 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2056 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2057 nullptr, this);
2058 m_rbCurDataIsolHoriz->Disconnect(
2059 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2060 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2061 nullptr, this);
2062 m_rbCurDataIsolVertic->Disconnect(
2063 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2064 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2065 nullptr, this);
2066 m_sButtonApply->Disconnect(
2067 wxEVT_COMMAND_BUTTON_CLICKED,
2068 wxCommandEventHandler(GribSettingsDialogBase::OnApply), nullptr, this);
2069}
2070
2071#ifndef __OCPN__ANDROID__
2072GribPreferencesDialogBase::GribPreferencesDialogBase(
2073 wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
2074 const wxSize& size, long style)
2075 : wxDialog(parent, id, title, pos, size, style) {
2076 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2077
2078 wxBoxSizer* itemBoxSizerMainPanel = new wxBoxSizer(wxVERTICAL);
2079 SetSizer(itemBoxSizerMainPanel);
2080
2081 wxScrolledWindow* scrollWin = new wxScrolledWindow(
2082 this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxVSCROLL);
2083 scrollWin->SetScrollRate(1, 1);
2084 itemBoxSizerMainPanel->Add(scrollWin, 1, wxEXPAND | wxALL, 0);
2085
2086 wxBoxSizer* bSizerPrefsMain = new wxBoxSizer(wxVERTICAL);
2087 scrollWin->SetSizer(bSizerPrefsMain);
2088
2089 wxStdDialogButtonSizer* m_sdbSizer2;
2090 wxButton* m_sdbSizer2OK;
2091 wxButton* m_sdbSizer2Cancel;
2092 m_sdbSizer2 = new wxStdDialogButtonSizer();
2093 m_sdbSizer2OK = new wxButton(this, wxID_OK);
2094 m_sdbSizer2->AddButton(m_sdbSizer2OK);
2095 m_sdbSizer2Cancel = new wxButton(this, wxID_CANCEL, _("Cancel"));
2096 m_sdbSizer2->AddButton(m_sdbSizer2Cancel);
2097 auto help_btn = new wxButton(this, wxID_HELP);
2098 help_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [&](wxCommandEvent) {
2099 wxString datadir = GetPluginDataDir("manual_pi");
2100 Manual(this, datadir.ToStdString()).Launch("Grib");
2101 });
2102 m_sdbSizer2->AddButton(help_btn);
2103
2104 m_sdbSizer2->Realize();
2105
2106 itemBoxSizerMainPanel->Add(m_sdbSizer2, 0, wxEXPAND, 5);
2107
2108 wxStaticBoxSizer* sbSizer9;
2109 sbSizer9 = new wxStaticBoxSizer(
2110 new wxStaticBox(scrollWin, wxID_ANY, _("General Options")), wxVERTICAL);
2111
2112 wxFlexGridSizer* fgSizer46;
2113 fgSizer46 = new wxFlexGridSizer(0, 1, 0, 0);
2114 fgSizer46->SetFlexibleDirection(wxBOTH);
2115 fgSizer46->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2116
2117 m_cbUseHiDef =
2118 new wxCheckBox(scrollWin, wxID_ANY, _("Use High Definition Graphics"),
2119 wxDefaultPosition, wxDefaultSize, 0);
2120 fgSizer46->Add(m_cbUseHiDef, 0, wxALL, 5);
2121
2122 m_cbUseGradualColors =
2123 new wxCheckBox(scrollWin, wxID_ANY, _("Use Gradual Colors"),
2124 wxDefaultPosition, wxDefaultSize, 0);
2125 fgSizer46->Add(m_cbUseGradualColors, 0, wxALL, 5);
2126
2127 m_cbCopyFirstCumulativeRecord = new wxCheckBox(
2128 scrollWin, wxID_ANY, _("Copy First Cumulative Missing Record"),
2129 wxDefaultPosition, wxDefaultSize, 0);
2130 fgSizer46->Add(m_cbCopyFirstCumulativeRecord, 0, wxALL, 5);
2131
2132 m_cbCopyMissingWaveRecord =
2133 new wxCheckBox(scrollWin, wxID_ANY, _("Copy Missing Wave Records"),
2134 wxDefaultPosition, wxDefaultSize, 0);
2135 fgSizer46->Add(m_cbCopyMissingWaveRecord, 0, wxALL, 5);
2136
2137 m_cbDrawBarbedArrowHead =
2138 new wxCheckBox(scrollWin, wxID_ANY, _("Draw Barbed Arrows Head"),
2139 wxDefaultPosition, wxDefaultSize, 0);
2140 fgSizer46->Add(m_cbDrawBarbedArrowHead, 0, wxALL, 5);
2141
2142 m_cZoomToCenterAtInit =
2143 new wxCheckBox(scrollWin, wxID_ANY, _("Zoom to file center when opened"),
2144 wxDefaultPosition, wxDefaultSize, 0);
2145 fgSizer46->Add(m_cZoomToCenterAtInit, 0, wxALL, 5);
2146
2147 sbSizer9->Add(fgSizer46, 1, wxEXPAND, 5);
2148
2149 bSizerPrefsMain->Add(sbSizer9, 1, wxEXPAND, 5);
2150
2151 wxString m_rbLoadOptionsChoices[] = {
2152 _("Load the More Recent File in Directory"),
2153 _("Load the Last Opened File")};
2154 int m_rbLoadOptionsNChoices =
2155 sizeof(m_rbLoadOptionsChoices) / sizeof(wxString);
2156 m_rbLoadOptions =
2157 new wxRadioBox(scrollWin, wxID_ANY, _("Load File Options"),
2158 wxDefaultPosition, wxDefaultSize, m_rbLoadOptionsNChoices,
2159 m_rbLoadOptionsChoices, 1, wxRA_SPECIFY_COLS);
2160 m_rbLoadOptions->SetSelection(0);
2161 bSizerPrefsMain->Add(m_rbLoadOptions, 0, wxALL | wxEXPAND, 5);
2162
2163 wxString m_rbStartOptionsChoices[] = {
2164 _("Start at the first forecast in GRIB file"),
2165 _("Start at the nearest forecast to current time"),
2166 _("Authorize Interpolation to start at current time")};
2167 int m_rbStartOptionsNChoices =
2168 sizeof(m_rbStartOptionsChoices) / sizeof(wxString);
2169 m_rbStartOptions = new wxRadioBox(
2170 scrollWin, wxID_ANY, _("Start Options"), wxDefaultPosition, wxDefaultSize,
2171 m_rbStartOptionsNChoices, m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2172 m_rbStartOptions->SetSelection(0);
2173 bSizerPrefsMain->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2174
2175 wxString m_rbTimeFormatChoices[] = {_("Local Time"), _("UTC")};
2176 int m_rbTimeFormatNChoices = sizeof(m_rbTimeFormatChoices) / sizeof(wxString);
2177 m_rbTimeFormat = new wxRadioBox(
2178 scrollWin, wxID_ANY, _("Time Options"), wxDefaultPosition, wxDefaultSize,
2179 m_rbTimeFormatNChoices, m_rbTimeFormatChoices, 1, wxRA_SPECIFY_COLS);
2180 m_rbTimeFormat->SetSelection(1);
2181 bSizerPrefsMain->Add(m_rbTimeFormat, 0, wxALL | wxEXPAND, 5);
2182
2183#ifdef __WXMSW__
2184 wxFlexGridSizer* fgSizer47;
2185 fgSizer47 = new wxFlexGridSizer(0, 2, 0, 0);
2186 fgSizer47->SetFlexibleDirection(wxBOTH);
2187 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2188 wxStaticText* text =
2189 new wxStaticText(scrollWin, wxID_ANY, _("Icons Size Factor"),
2190 wxDefaultPosition, wxDefaultSize);
2191 fgSizer47->Add(text, 0, wxALL | wxEXPAND, 5);
2192 m_sIconSizeFactor =
2193 new wxSlider(scrollWin, wxID_ANY, 0, -8, 8, wxDefaultPosition,
2194 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
2195 fgSizer47->Add(m_sIconSizeFactor, 0, wxALL | wxEXPAND, 5);
2196 bSizerPrefsMain->Add(fgSizer47, 0, wxALL | wxEXPAND, 5);
2197#endif
2198
2199 wxButton* SetSaveButton =
2200 new wxButton(scrollWin, wxID_ANY, _("Select GRIB download directory"));
2201 bSizerPrefsMain->Add(SetSaveButton, 0, wxALL | wxEXPAND, 5);
2202 SetSaveButton->Connect(
2203 wxEVT_COMMAND_BUTTON_CLICKED,
2204 wxCommandEventHandler(GribPreferencesDialogBase::OnDirSelClick), nullptr,
2205 this);
2206
2207 Layout();
2208 Fit();
2209
2210 // Connect Events
2211 m_rbStartOptions->Connect(
2212 wxEVT_COMMAND_RADIOBOX_SELECTED,
2213 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2214 nullptr, this);
2215 m_sdbSizer2OK->Connect(
2216 wxEVT_COMMAND_BUTTON_CLICKED,
2217 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick), nullptr,
2218 this);
2219}
2220#else
2221
2222GribPreferencesDialogBase::GribPreferencesDialogBase(
2223 wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
2224 const wxSize& size, long style)
2225 : wxDialog(parent, id, title, pos, size, style) {
2226 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2227
2228 wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
2229 SetSizer(topSizer);
2230
2231 wxBoxSizer* labelSizer = new wxBoxSizer(wxHORIZONTAL);
2232 topSizer->Add(labelSizer, 0, wxEXPAND, 5);
2233
2234 wxStaticText* labelBox =
2235 new wxStaticText(this, wxID_ANY, _("GRIB PlugIn Preferences"),
2236 wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
2237 labelSizer->Add(labelBox, 1, wxEXPAND, 0);
2238
2239 wxScrolledWindow* itemScrollWin = new wxScrolledWindow(
2240 this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxVSCROLL);
2241 topSizer->Add(itemScrollWin, 1, wxEXPAND | wxALL, 0);
2242 itemScrollWin->SetScrollRate(2, 2);
2243
2244 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
2245 itemScrollWin->SetSizer(itemBoxSizer2);
2246
2247 wxStaticBoxSizer* sbSizer9;
2248 sbSizer9 = new wxStaticBoxSizer(
2249 new wxStaticBox(itemScrollWin, wxID_ANY, _("General Options")),
2250 wxVERTICAL);
2251 itemBoxSizer2->Add(sbSizer9, 1, wxEXPAND, 5);
2252
2253 m_cbUseHiDef =
2254 new wxCheckBox(itemScrollWin, wxID_ANY, _("Use High Definition Graphics"),
2255 wxDefaultPosition, wxDefaultSize, 0);
2256 sbSizer9->Add(m_cbUseHiDef, 0, wxALL, 5);
2257
2258 m_cbUseGradualColors =
2259 new wxCheckBox(itemScrollWin, wxID_ANY, _("Use Gradual Colors"),
2260 wxDefaultPosition, wxDefaultSize, 0);
2261 sbSizer9->Add(m_cbUseGradualColors, 0, wxALL, 5);
2262
2263 m_cbCopyFirstCumulativeRecord = new wxCheckBox(
2264 itemScrollWin, wxID_ANY, _("Copy First Cumulative Missing Record"),
2265 wxDefaultPosition, wxDefaultSize, 0);
2266 sbSizer9->Add(m_cbCopyFirstCumulativeRecord, 0, wxALL, 5);
2267
2268 m_cbCopyMissingWaveRecord =
2269 new wxCheckBox(itemScrollWin, wxID_ANY, _("Copy Missing Wave Records"),
2270 wxDefaultPosition, wxDefaultSize, 0);
2271 sbSizer9->Add(m_cbCopyMissingWaveRecord, 0, wxALL, 5);
2272
2273 m_cbDrawBarbedArrowHead =
2274 new wxCheckBox(itemScrollWin, wxID_ANY, _("Draw Barbed Arrows Head"),
2275 wxDefaultPosition, wxDefaultSize, 0);
2276 sbSizer9->Add(m_cbDrawBarbedArrowHead, 0, wxALL, 5);
2277
2278 m_cZoomToCenterAtInit = new wxCheckBox(itemScrollWin, wxID_ANY,
2279 _("Zoom to file center when opened"),
2280 wxDefaultPosition, wxDefaultSize, 0);
2281 sbSizer9->Add(m_cZoomToCenterAtInit, 0, wxALL, 5);
2282
2283 wxString m_rbLoadOptionsChoices[] = {
2284 _("Load the More Recent File in Directory"),
2285 _("Load the Last Opened File")};
2286 int m_rbLoadOptionsNChoices =
2287 sizeof(m_rbLoadOptionsChoices) / sizeof(wxString);
2288 m_rbLoadOptions =
2289 new wxRadioBox(itemScrollWin, wxID_ANY, _("Load File Options"),
2290 wxDefaultPosition, wxDefaultSize, m_rbLoadOptionsNChoices,
2291 m_rbLoadOptionsChoices, 1, wxRA_SPECIFY_COLS);
2292 m_rbLoadOptions->SetSelection(0);
2293 sbSizer9->Add(m_rbLoadOptions, 0, wxALL | wxEXPAND, 5);
2294
2295 wxString m_rbStartOptionsChoices[] = {
2296 _("Start at the first forecast in GRIB file"),
2297 _("Start at the nearest forecast to current time"),
2298 _("Authorize Interpolation to start at current time")};
2299 int m_rbStartOptionsNChoices =
2300 sizeof(m_rbStartOptionsChoices) / sizeof(wxString);
2301 m_rbStartOptions =
2302 new wxRadioBox(itemScrollWin, wxID_ANY, _("Start Options"),
2303 wxDefaultPosition, wxDefaultSize, m_rbStartOptionsNChoices,
2304 m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2305 m_rbStartOptions->SetSelection(0);
2306 sbSizer9->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2307
2308 wxString m_rbTimeFormatChoices[] = {_("Local Time"), _("UTC")};
2309 int m_rbTimeFormatNChoices = sizeof(m_rbTimeFormatChoices) / sizeof(wxString);
2310 m_rbTimeFormat =
2311 new wxRadioBox(itemScrollWin, wxID_ANY, _("Time Options"),
2312 wxDefaultPosition, wxDefaultSize, m_rbTimeFormatNChoices,
2313 m_rbTimeFormatChoices, 1, wxRA_SPECIFY_COLS);
2314 m_rbTimeFormat->SetSelection(1);
2315 sbSizer9->Add(m_rbTimeFormat, 0, wxALL | wxEXPAND, 5);
2316
2317 wxBoxSizer* m_sdbButtonSizer = new wxBoxSizer(wxHORIZONTAL);
2318 topSizer->Add(m_sdbButtonSizer, 0, wxEXPAND, 5);
2319
2320 wxButton* m_sdbButtonSizerOK = new wxButton(this, wxID_OK);
2321 m_sdbButtonSizer->Add(m_sdbButtonSizerOK, 0, wxALL | wxALIGN_RIGHT, 15);
2322
2323 wxButton* m_sdbButtonSizerCancel = new wxButton(this, wxID_CANCEL);
2324 m_sdbButtonSizer->Add(m_sdbButtonSizerCancel, 0, wxALL | wxALIGN_RIGHT, 15);
2325
2326 // Connect Events
2327 m_rbStartOptions->Connect(
2328 wxEVT_COMMAND_RADIOBOX_SELECTED,
2329 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2330 nullptr, this);
2331 m_sdbButtonSizerOK->Connect(
2332 wxEVT_COMMAND_BUTTON_CLICKED,
2333 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick), nullptr,
2334 this);
2335}
2336
2337#endif
2338
2339GribPreferencesDialogBase::~GribPreferencesDialogBase() {
2340 // Disconnect Events
2341 m_rbStartOptions->Disconnect(
2342 wxEVT_COMMAND_RADIOBOX_SELECTED,
2343 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2344 nullptr, this);
2345}
2346
2347void GribPreferencesDialogBase::OnDirSelClick(wxCommandEvent& event) {
2348 wxString dir_spec;
2349 int response = PlatformDirSelectorDialog(
2350 this, &dir_spec, _("Choose GRIB File Directory"), m_grib_dir_sel);
2351
2352 if (response == wxID_OK) {
2353 m_grib_dir_sel = dir_spec;
2354 }
2355}
2356
2357GribRequestSettingBase::GribRequestSettingBase(wxWindow* parent, wxWindowID id,
2358 const wxString& title,
2359 const wxPoint& pos,
2360 const wxSize& size, long style)
2361 : wxDialog(parent, id, title, pos, size, style) {
2362 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2363
2364 wxBoxSizer* bSizerMain;
2365 bSizerMain = new wxBoxSizer(wxVERTICAL);
2366
2367 m_notebookGetGrib =
2368 new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
2369 m_panelWorld = new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2370 wxDefaultSize, wxTAB_TRAVERSAL);
2371 wxBoxSizer* bSizerWorldDownload;
2372 bSizerWorldDownload = new wxBoxSizer(wxVERTICAL);
2373
2374 m_htmlWinWorld =
2375 new wxHtmlWindow(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2376 wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2377 bSizerWorldDownload->Add(m_htmlWinWorld, 1, wxALL | wxEXPAND, 5);
2378
2379 m_staticTextInfo =
2380 new wxStaticText(m_panelWorld, wxID_ANY, _("Download grib..."),
2381 wxDefaultPosition, wxDefaultSize, 0);
2382 m_staticTextInfo->Wrap(-1);
2383 bSizerWorldDownload->Add(m_staticTextInfo, 0, wxALL, 5);
2384
2385 wxBoxSizer* bSizerWorld;
2386 bSizerWorld = new wxBoxSizer(wxHORIZONTAL);
2387
2388 m_stForecastLength =
2389 new wxStaticText(m_panelWorld, wxID_ANY, _("Forecast length"),
2390 wxDefaultPosition, wxDefaultSize, 0);
2391 m_stForecastLength->Wrap(-1);
2392 bSizerWorld->Add(m_stForecastLength, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2393
2394 wxString m_chForecastLengthChoices[] = {_("24 hours"), _("3 days"),
2395 _("Maximum")};
2396 int m_chForecastLengthNChoices =
2397 sizeof(m_chForecastLengthChoices) / sizeof(wxString);
2398 m_chForecastLength =
2399 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2400 m_chForecastLengthNChoices, m_chForecastLengthChoices, 0);
2401 m_chForecastLength->SetSelection(0);
2402 bSizerWorld->Add(m_chForecastLength, 0, wxALL, 5);
2403
2404 m_stECMWFResolution = new wxStaticText(m_panelWorld, wxID_ANY, _("Model"),
2405 wxDefaultPosition, wxDefaultSize, 0);
2406 m_stECMWFResolution->Wrap(-1);
2407 bSizerWorld->Add(m_stECMWFResolution, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2408
2409 wxString m_chECMWFResolutionChoices[] = {
2410 wxString::Format("0.25%c IFS", 0x00B0),
2411 wxString::Format("0.25%c AIFS", 0x00B0)};
2412 int m_chECMWFResolutionNChoices =
2413 sizeof(m_chECMWFResolutionChoices) / sizeof(wxString);
2414 m_chECMWFResolution =
2415 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2416 m_chECMWFResolutionNChoices, m_chECMWFResolutionChoices, 0);
2417 m_chECMWFResolution->SetSelection(0);
2418 bSizerWorld->Add(m_chECMWFResolution, 0, wxALL, 5);
2419
2420 bSizerWorld->Add(0, 0, 1, wxEXPAND, 5);
2421
2422 m_btnDownloadWorld = new wxButton(m_panelWorld, wxID_ANY, _("Download"),
2423 wxDefaultPosition, wxDefaultSize, 0);
2424 bSizerWorld->Add(m_btnDownloadWorld, 0, wxALL, 5);
2425
2426 bSizerWorldDownload->Add(bSizerWorld, 0, wxEXPAND, 5);
2427
2428 m_panelWorld->SetSizer(bSizerWorldDownload);
2429 m_panelWorld->Layout();
2430 bSizerWorldDownload->Fit(m_panelWorld);
2431 m_notebookGetGrib->AddPage(m_panelWorld, _("World"), true);
2432 m_panelLocalModels =
2433 new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2434 wxTAB_TRAVERSAL);
2435 wxBoxSizer* bMainSizer;
2436 bMainSizer = new wxBoxSizer(wxVERTICAL);
2437
2438 wxBoxSizer* bSizerSource;
2439 bSizerSource = new wxBoxSizer(wxHORIZONTAL);
2440
2441 m_SourcesTreeCtrl1 = new wxTreeCtrl(
2442 m_panelLocalModels, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2443 wxTR_DEFAULT_STYLE | wxTR_FULL_ROW_HIGHLIGHT | wxTR_SINGLE);
2444 bSizerSource->Add(m_SourcesTreeCtrl1, 1, wxALL | wxEXPAND, 5);
2445
2446 m_htmlInfoWin =
2447 new wxHtmlWindow(m_panelLocalModels, wxID_ANY, wxDefaultPosition,
2448 wxDefaultSize, wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2449 bSizerSource->Add(m_htmlInfoWin, 1, wxALL | wxEXPAND, 5);
2450
2451 bMainSizer->Add(bSizerSource, 1, wxEXPAND, 5);
2452
2453 m_stLocalDownloadInfo =
2454 new wxStaticText(m_panelLocalModels, wxID_ANY, _("Download grib..."),
2455 wxDefaultPosition, wxDefaultSize, 0);
2456 m_stLocalDownloadInfo->Wrap(-1);
2457 bMainSizer->Add(m_stLocalDownloadInfo, 0, wxALL, 5);
2458
2459 wxBoxSizer* bSizerLocalButtons;
2460 bSizerLocalButtons = new wxBoxSizer(wxHORIZONTAL);
2461
2462 m_buttonUpdateCatalog =
2463 new wxButton(m_panelLocalModels, wxID_ANY, _("Update Catalog"),
2464 wxDefaultPosition, wxDefaultSize, 0);
2465 bSizerLocalButtons->Add(m_buttonUpdateCatalog, 0, wxALL, 5);
2466
2467 bSizerLocalButtons->Add(0, 0, 1, wxEXPAND, 5);
2468
2469 m_btnDownloadLocal = new wxButton(m_panelLocalModels, wxID_ANY, _("Download"),
2470 wxDefaultPosition, wxDefaultSize, 0);
2471 bSizerLocalButtons->Add(m_btnDownloadLocal, 0, wxALL, 5);
2472
2473 bMainSizer->Add(bSizerLocalButtons, 0, wxEXPAND, 5);
2474
2475 m_panelLocalModels->SetSizer(bMainSizer);
2476 m_panelLocalModels->Layout();
2477 bMainSizer->Fit(m_panelLocalModels);
2478 m_notebookGetGrib->AddPage(m_panelLocalModels, _("Local models"), false);
2479
2480 m_panelEmail = new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2481 wxDefaultSize, wxTAB_TRAVERSAL);
2482
2483 wxFlexGridSizer* fgSizer101;
2484 fgSizer101 = new wxFlexGridSizer(0, 1, 0, 0);
2485 fgSizer101->SetFlexibleDirection(wxBOTH);
2486 fgSizer101->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2487
2488 m_sScrolledDialog = new wxScrolledWindow(
2489 m_panelEmail, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2490 wxHSCROLL | wxTAB_TRAVERSAL | wxVSCROLL);
2491 m_sScrolledDialog->SetScrollRate(0, 5);
2492 m_fgScrollSizer = new wxFlexGridSizer(0, 1, 0, 0);
2493 m_fgScrollSizer->SetFlexibleDirection(wxBOTH);
2494 m_fgScrollSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2495
2496 wxStaticBoxSizer* sbSizer7;
2497 sbSizer7 = new wxStaticBoxSizer(
2498 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Profile")), wxVERTICAL);
2499
2500 wxFlexGridSizer* fgSizer17;
2501 fgSizer17 = new wxFlexGridSizer(0, 1, 0, 0);
2502 fgSizer17->SetFlexibleDirection(wxBOTH);
2503 fgSizer17->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2504
2505 m_pSenderSizer = new wxFlexGridSizer(0, 2, 0, 0);
2506 m_pSenderSizer->AddGrowableCol(1);
2507 m_pSenderSizer->SetFlexibleDirection(wxBOTH);
2508 m_pSenderSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2509
2510 wxStaticText* m_staticText25;
2511 m_staticText25 =
2512 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Sender eMail Address"),
2513 wxDefaultPosition, wxDefaultSize, 0);
2514 m_staticText25->Wrap(-1);
2515 m_pSenderSizer->Add(m_staticText25, 0, wxALL, 5);
2516
2517 m_pSenderAddress = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2518 wxDefaultPosition, wxDefaultSize, 0);
2519 m_pSenderSizer->Add(m_pSenderAddress, 0, wxALL | wxEXPAND, 5);
2520
2521 wxStaticLine* m_staticline4;
2522 m_staticline4 =
2523 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2524 wxDefaultSize, wxLI_HORIZONTAL);
2525 m_pSenderSizer->Add(m_staticline4, 0, wxEXPAND | wxALL, 5);
2526
2527 wxStaticLine* m_staticline5;
2528 m_staticline5 =
2529 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2530 wxDefaultSize, wxLI_HORIZONTAL);
2531 m_pSenderSizer->Add(m_staticline5, 0, wxEXPAND | wxALL, 5);
2532
2533 fgSizer17->Add(m_pSenderSizer, 1, wxEXPAND, 5);
2534
2535 wxFlexGridSizer* fgSizer9;
2536 fgSizer9 = new wxFlexGridSizer(0, 3, 0, 0);
2537 fgSizer9->SetFlexibleDirection(wxBOTH);
2538 fgSizer9->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2539
2540 wxFlexGridSizer* fgSizer33;
2541 fgSizer33 = new wxFlexGridSizer(0, 2, 0, 0);
2542 fgSizer33->SetFlexibleDirection(wxBOTH);
2543 fgSizer33->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2544
2545 wxStaticText* m_staticText15;
2546 m_staticText15 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Mail To "),
2547 wxDefaultPosition, wxDefaultSize, 0);
2548 m_staticText15->Wrap(-1);
2549 fgSizer33->Add(m_staticText15, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, 5);
2550
2551 wxArrayString m_pMailToChoices;
2552 m_pMailTo = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2553 wxDefaultSize, m_pMailToChoices, 0);
2554 m_pMailTo->SetSelection(0);
2555 fgSizer33->Add(m_pMailTo, 0, wxALL, 5);
2556
2557 wxStaticText* m_staticText16;
2558 m_staticText16 =
2559 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Forecast Model "),
2560 wxDefaultPosition, wxDefaultSize, 0);
2561 m_staticText16->Wrap(-1);
2562 fgSizer33->Add(m_staticText16, 0, wxALL | wxEXPAND | wxLEFT | wxRIGHT | wxTOP,
2563 5);
2564
2565 wxArrayString m_pModelChoices;
2566 m_pModel = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2567 wxDefaultSize, m_pModelChoices, 0);
2568 m_pModel->SetSelection(0);
2569 fgSizer33->Add(m_pModel, 0, wxALL, 5);
2570
2571 fgSizer9->Add(fgSizer33, 1, wxEXPAND, 5);
2572
2573 wxFlexGridSizer* fgSizer32;
2574 fgSizer32 = new wxFlexGridSizer(0, 2, 0, 0);
2575 fgSizer32->SetFlexibleDirection(wxBOTH);
2576 fgSizer32->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2577
2578 m_cMovingGribEnabled =
2579 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Moving Grib"),
2580 wxDefaultPosition, wxDefaultSize, 0);
2581 fgSizer32->Add(m_cMovingGribEnabled, 0, wxALL, 5);
2582
2583 m_fgMovingParams = new wxFlexGridSizer(0, 3, 0, 0);
2584 m_fgMovingParams->SetFlexibleDirection(wxBOTH);
2585 m_fgMovingParams->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2586
2587 wxStaticText* m_staticText27;
2588 m_staticText27 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Speed"),
2589 wxDefaultPosition, wxDefaultSize, 0);
2590 m_staticText27->Wrap(-1);
2591 m_fgMovingParams->Add(m_staticText27, 0, wxALL, 5);
2592
2593 m_sMovingSpeed = new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2594 wxDefaultPosition, wxDefaultSize,
2595 wxSP_ARROW_KEYS, 1, 30, 1);
2596 m_fgMovingParams->Add(m_sMovingSpeed, 0, wxALL, 5);
2597
2598 wxStaticText* m_sSpeedUnit;
2599 m_sSpeedUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Kts"),
2600 wxDefaultPosition, wxDefaultSize, 0);
2601 m_sSpeedUnit->Wrap(-1);
2602 m_fgMovingParams->Add(m_sSpeedUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2603 5);
2604
2605 wxStaticText* m_staticText29;
2606 m_staticText29 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Course"),
2607 wxDefaultPosition, wxDefaultSize, 0);
2608 m_staticText29->Wrap(-1);
2609 m_fgMovingParams->Add(m_staticText29, 0, wxALL, 5);
2610
2611 m_sMovingCourse = new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2612 wxDefaultPosition, wxDefaultSize,
2613 wxSP_ARROW_KEYS, 1, 360, 1);
2614 m_fgMovingParams->Add(m_sMovingCourse, 0, wxALL, 5);
2615
2616 m_sCourseUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Deg"),
2617 wxDefaultPosition, wxDefaultSize, 0);
2618 m_sCourseUnit->Wrap(-1);
2619 m_fgMovingParams->Add(m_sCourseUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2620 5);
2621
2622 fgSizer32->Add(m_fgMovingParams, 1, wxEXPAND, 5);
2623
2624 fgSizer9->Add(fgSizer32, 1, wxEXPAND, 5);
2625
2626 m_fgLog = new wxFlexGridSizer(0, 2, 0, 0);
2627 m_fgLog->SetFlexibleDirection(wxBOTH);
2628 m_fgLog->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2629
2630 wxStaticText* m_tLogin;
2631 m_tLogin = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("zyGrib Login"),
2632 wxDefaultPosition, wxDefaultSize, 0);
2633 m_tLogin->Wrap(-1);
2634 m_fgLog->Add(m_tLogin, 0, wxALL, 5);
2635
2636 m_pLogin = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2637 wxDefaultPosition, wxDefaultSize, 0);
2638 m_fgLog->Add(m_pLogin, 0, wxALL, 5);
2639
2640 wxStaticText* m_tCode;
2641 m_tCode = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("zyGrib Code"),
2642 wxDefaultPosition, wxDefaultSize, 0);
2643 m_tCode->Wrap(-1);
2644 m_fgLog->Add(m_tCode, 0, wxALL, 5);
2645
2646 m_pCode = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2647 wxDefaultPosition, wxDefaultSize, 0);
2648 m_fgLog->Add(m_pCode, 0, wxALL, 5);
2649
2650 fgSizer9->Add(m_fgLog, 1, wxEXPAND, 5);
2651
2652 fgSizer17->Add(fgSizer9, 1, wxEXPAND, 10);
2653
2654 wxFlexGridSizer* fgSizer13;
2655 fgSizer13 = new wxFlexGridSizer(0, 9, 0, 0);
2656 fgSizer13->SetFlexibleDirection(wxBOTH);
2657 fgSizer13->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2658
2659 wxStaticText* m_staticText17;
2660 m_staticText17 =
2661 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Resolution"),
2662 wxDefaultPosition, wxDefaultSize, 0);
2663 m_staticText17->Wrap(-1);
2664 fgSizer13->Add(m_staticText17, 0, wxALL, 5);
2665
2666 wxArrayString m_pResolutionChoices;
2667 m_pResolution = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2668 wxDefaultSize, m_pResolutionChoices, 0);
2669 m_pResolution->SetSelection(0);
2670 fgSizer13->Add(m_pResolution, 0, wxALL, 1);
2671
2672 m_tResUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Deg"),
2673 wxDefaultPosition, wxDefaultSize, 0);
2674 m_tResUnit->Wrap(-1);
2675 fgSizer13->Add(m_tResUnit, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2676
2677 wxStaticText* m_staticText18;
2678 m_staticText18 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Interval"),
2679 wxDefaultPosition, wxDefaultSize, 0);
2680 m_staticText18->Wrap(-1);
2681 fgSizer13->Add(m_staticText18, 0, wxALL, 5);
2682
2683 wxArrayString m_pIntervalChoices;
2684 m_pInterval = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2685 wxDefaultSize, m_pIntervalChoices, 0);
2686 m_pInterval->SetSelection(0);
2687 fgSizer13->Add(m_pInterval, 0, wxALL, 1);
2688
2689 wxStaticText* m_staticText20;
2690 m_staticText20 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Hours"),
2691 wxDefaultPosition, wxDefaultSize, 0);
2692 m_staticText20->Wrap(-1);
2693 fgSizer13->Add(m_staticText20, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2694
2695 wxStaticText* m_staticText19;
2696 m_staticText19 =
2697 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Time Range"),
2698 wxDefaultPosition, wxDefaultSize, 0);
2699 m_staticText19->Wrap(-1);
2700 fgSizer13->Add(m_staticText19, 0, wxALL, 5);
2701
2702 wxArrayString m_pTimeRangeChoices;
2703 m_pTimeRange = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2704 wxDefaultSize, m_pTimeRangeChoices, 0);
2705 m_pTimeRange->SetSelection(0);
2706 fgSizer13->Add(m_pTimeRange, 0, wxALL, 1);
2707
2708 m_staticText21 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Days"),
2709 wxDefaultPosition, wxDefaultSize, 0);
2710 m_staticText21->Wrap(-1);
2711 fgSizer13->Add(m_staticText21, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2712
2713 fgSizer17->Add(fgSizer13, 1, wxEXPAND, 5);
2714
2715 sbSizer7->Add(fgSizer17, 1, wxEXPAND, 5);
2716
2717 m_fgScrollSizer->Add(sbSizer7, 1, wxEXPAND, 5);
2718
2719 wxStaticBoxSizer* sbSizer81;
2720 sbSizer81 = new wxStaticBoxSizer(
2721 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Area Selection")),
2722 wxVERTICAL);
2723
2724 wxFlexGridSizer* fgSizer36;
2725 fgSizer36 = new wxFlexGridSizer(0, 2, 0, 0);
2726 fgSizer36->SetFlexibleDirection(wxBOTH);
2727 fgSizer36->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2728
2729 wxFlexGridSizer* fgSizer37;
2730 fgSizer37 = new wxFlexGridSizer(0, 1, 0, 0);
2731 fgSizer37->SetFlexibleDirection(wxBOTH);
2732 fgSizer37->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2733
2734 m_cManualZoneSel =
2735 new wxCheckBox(m_sScrolledDialog, MANSELECT, _("Manual Selection"),
2736 wxDefaultPosition, wxDefaultSize, 0);
2737 fgSizer37->Add(m_cManualZoneSel, 0, wxLEFT | wxBOTTOM, 5);
2738
2739 m_cUseSavedZone =
2740 new wxCheckBox(m_sScrolledDialog, SAVEDZONE, _("Use Always this Area"),
2741 wxDefaultPosition, wxDefaultSize, 0);
2742 fgSizer37->Add(m_cUseSavedZone, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2743
2744 fgSizer36->Add(fgSizer37, 1, wxEXPAND | wxLEFT, 5);
2745
2746 fgZoneCoordinatesSizer = new wxFlexGridSizer(0, 6, 0, 0);
2747 fgZoneCoordinatesSizer->SetFlexibleDirection(wxBOTH);
2748 fgZoneCoordinatesSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2749
2750 wxStaticText* m_staticText34;
2751 m_staticText34 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Max Lat"),
2752 wxDefaultPosition, wxDefaultSize, 0);
2753 m_staticText34->Wrap(-1);
2754 fgZoneCoordinatesSizer->Add(m_staticText34, 0, wxLEFT | wxRIGHT, 5);
2755
2756 m_spMaxLat = new wxSpinCtrl(m_sScrolledDialog, MAXLAT, wxEmptyString,
2757 wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS,
2758 -180, 180, 0);
2759 fgZoneCoordinatesSizer->Add(m_spMaxLat, 0, wxLEFT | wxRIGHT, 5);
2760
2761 m_stMaxLatNS = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("N"),
2762 wxDefaultPosition, wxDefaultSize, 0);
2763 m_stMaxLatNS->Wrap(-1);
2764 fgZoneCoordinatesSizer->Add(m_stMaxLatNS, 0, wxRIGHT, 20);
2765
2766 m_staticText36 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Max Long"),
2767 wxDefaultPosition, wxDefaultSize, 0);
2768 m_staticText36->Wrap(-1);
2769 fgZoneCoordinatesSizer->Add(m_staticText36, 0, wxLEFT | wxRIGHT, 5);
2770
2771 m_spMaxLon = new wxSpinCtrl(m_sScrolledDialog, MAXLON, wxEmptyString,
2772 wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS,
2773 -180, 180, 0);
2774 fgZoneCoordinatesSizer->Add(m_spMaxLon, 0, wxLEFT | wxRIGHT, 5);
2775
2776 m_stMaxLonEW = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("E"),
2777 wxDefaultPosition, wxDefaultSize, 0);
2778 m_stMaxLonEW->Wrap(-1);
2779 fgZoneCoordinatesSizer->Add(m_stMaxLonEW, 0, wxRIGHT, 5);
2780
2781 wxStaticText* m_staticText38;
2782 m_staticText38 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Min Lat"),
2783 wxDefaultPosition, wxDefaultSize, 0);
2784 m_staticText38->Wrap(-1);
2785 fgZoneCoordinatesSizer->Add(m_staticText38, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2786
2787 m_spMinLat = new wxSpinCtrl(m_sScrolledDialog, MINLAT, wxEmptyString,
2788 wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS,
2789 -180, 180, 0);
2790 fgZoneCoordinatesSizer->Add(m_spMinLat, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2791
2792 m_stMinLatNS = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("S"),
2793 wxDefaultPosition, wxDefaultSize, 0);
2794 m_stMinLatNS->Wrap(-1);
2795 fgZoneCoordinatesSizer->Add(m_stMinLatNS, 0, wxRIGHT | wxTOP, 5);
2796
2797 wxStaticText* m_staticText40;
2798 m_staticText40 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Min Long"),
2799 wxDefaultPosition, wxDefaultSize, 0);
2800 m_staticText40->Wrap(-1);
2801 fgZoneCoordinatesSizer->Add(m_staticText40, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2802
2803 m_spMinLon = new wxSpinCtrl(m_sScrolledDialog, MINLON, wxEmptyString,
2804 wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS,
2805 -180, 180, 0);
2806 fgZoneCoordinatesSizer->Add(m_spMinLon, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2807
2808 m_stMinLonEW = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("W"),
2809 wxDefaultPosition, wxDefaultSize, 0);
2810 m_stMinLonEW->Wrap(-1);
2811 fgZoneCoordinatesSizer->Add(m_stMinLonEW, 0, wxRIGHT | wxTOP, 5);
2812
2813 fgSizer36->Add(fgZoneCoordinatesSizer, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2814
2815 sbSizer81->Add(fgSizer36, 1, wxBOTTOM | wxEXPAND | wxTOP, 5);
2816
2817 m_fgScrollSizer->Add(sbSizer81, 1, wxEXPAND, 5);
2818
2819 wxStaticBoxSizer* sbSizer8;
2820 sbSizer8 = new wxStaticBoxSizer(
2821 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Data Selection")),
2822 wxVERTICAL);
2823
2824 wxFlexGridSizer* fgSizer10;
2825 fgSizer10 = new wxFlexGridSizer(0, 3, 0, 0);
2826 fgSizer10->SetFlexibleDirection(wxBOTH);
2827 fgSizer10->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2828
2829 m_pWind = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Wind"),
2830 wxDefaultPosition, wxDefaultSize, 0);
2831 fgSizer10->Add(m_pWind, 0, wxALL | wxEXPAND, 5);
2832
2833 m_pPress = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Pressure"),
2834 wxDefaultPosition, wxDefaultSize, 0);
2835 fgSizer10->Add(m_pPress, 0, wxALL | wxEXPAND, 5);
2836
2837 m_pWindGust = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Wind Gust"),
2838 wxDefaultPosition, wxDefaultSize, 0);
2839 fgSizer10->Add(m_pWindGust, 0, wxALL | wxEXPAND, 5);
2840
2841 m_pRainfall = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Rainfall"),
2842 wxDefaultPosition, wxDefaultSize, 0);
2843 fgSizer10->Add(m_pRainfall, 0, wxALL | wxEXPAND, 5);
2844
2845 m_pCloudCover = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Cloud Cover"),
2846 wxDefaultPosition, wxDefaultSize, 0);
2847 fgSizer10->Add(m_pCloudCover, 0, wxALL | wxEXPAND, 5);
2848
2849 m_pAirTemp =
2850 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Air Temperature(2m)"),
2851 wxDefaultPosition, wxDefaultSize, 0);
2852 m_pAirTemp->SetValue(true);
2853 fgSizer10->Add(m_pAirTemp, 0, wxALL | wxEXPAND, 5);
2854
2855 m_pCAPE = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("CAPE"),
2856 wxDefaultPosition, wxDefaultSize, 0);
2857 fgSizer10->Add(m_pCAPE, 0, wxALL | wxEXPAND, 5);
2858
2859 m_pReflectivity =
2860 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Comp. Reflect."),
2861 wxDefaultPosition, wxDefaultSize, 0);
2862 fgSizer10->Add(m_pReflectivity, 0, wxALL | wxEXPAND, 5);
2863
2864 m_pSeaTemp =
2865 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Sea Temperature(surf.)"),
2866 wxDefaultPosition, wxDefaultSize, 0);
2867 fgSizer10->Add(m_pSeaTemp, 0, wxALL | wxEXPAND, 5);
2868
2869 m_pCurrent = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Current"),
2870 wxDefaultPosition, wxDefaultSize, 0);
2871 fgSizer10->Add(m_pCurrent, 0, wxALL | wxEXPAND, 5);
2872
2873 wxFlexGridSizer* fgSizer28;
2874 fgSizer28 = new wxFlexGridSizer(0, 2, 0, 0);
2875 fgSizer28->SetFlexibleDirection(wxBOTH);
2876 fgSizer28->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2877
2878 m_pWaves = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Waves"),
2879 wxDefaultPosition, wxDefaultSize, 0);
2880 fgSizer28->Add(m_pWaves, 0, wxALL, 5);
2881
2882 wxArrayString m_pWModelChoices;
2883 m_pWModel = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2884 wxDefaultSize, m_pWModelChoices, 0);
2885 m_pWModel->SetSelection(0);
2886 fgSizer28->Add(m_pWModel, 0, wxALL | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 1);
2887
2888 fgSizer10->Add(fgSizer28, 1, wxEXPAND, 5);
2889
2890 wxFlexGridSizer* fgSizer331;
2891 fgSizer331 = new wxFlexGridSizer(0, 2, 0, 0);
2892 fgSizer331->SetFlexibleDirection(wxBOTH);
2893 fgSizer331->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2894
2895 m_pAltitudeData =
2896 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Geopotential Height"),
2897 wxDefaultPosition, wxDefaultSize, 0);
2898 fgSizer331->Add(m_pAltitudeData, 0, wxALL | wxEXPAND, 5);
2899
2900 fgSizer10->Add(fgSizer331, 1, wxEXPAND, 5);
2901
2902 m_fgAltitudeData = new wxFlexGridSizer(0, 2, 0, 0);
2903 m_fgAltitudeData->SetFlexibleDirection(wxBOTH);
2904 m_fgAltitudeData->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2905
2906 m_p850hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("850 hPa"),
2907 wxDefaultPosition, wxDefaultSize, 0);
2908 m_fgAltitudeData->Add(m_p850hpa, 0,
2909 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2910
2911 m_p700hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("700 hPa"),
2912 wxDefaultPosition, wxDefaultSize, 0);
2913 m_fgAltitudeData->Add(m_p700hpa, 0,
2914 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2915
2916 m_p500hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("500 hPa"),
2917 wxDefaultPosition, wxDefaultSize, 0);
2918 m_fgAltitudeData->Add(m_p500hpa, 0, wxALL | wxEXPAND, 5);
2919
2920 m_p300hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("300 hPa"),
2921 wxDefaultPosition, wxDefaultSize, 0);
2922 m_fgAltitudeData->Add(m_p300hpa, 0, wxALL | wxEXPAND, 5);
2923
2924 fgSizer10->Add(m_fgAltitudeData, 1, wxEXPAND, 5);
2925
2926 sbSizer8->Add(fgSizer10, 1, wxEXPAND, 5);
2927
2928 m_fgScrollSizer->Add(sbSizer8, 1, wxEXPAND | wxTOP, 5);
2929
2930 wxStaticBoxSizer* sbSizer6;
2931 sbSizer6 = new wxStaticBoxSizer(
2932 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Mail")), wxVERTICAL);
2933
2934 wxFlexGridSizer* fgSizer11;
2935 fgSizer11 = new wxFlexGridSizer(0, 1, 0, 0);
2936 fgSizer11->AddGrowableCol(0);
2937 fgSizer11->SetFlexibleDirection(wxBOTH);
2938 fgSizer11->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2939
2940 m_MailImage = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2941 wxDefaultPosition, wxDefaultSize,
2942 wxTE_MULTILINE | wxTE_READONLY);
2943 fgSizer11->Add(m_MailImage, 0, wxALL | wxEXPAND, 5);
2944
2945 sbSizer6->Add(fgSizer11, 1, wxEXPAND, 5);
2946
2947 m_fgScrollSizer->Add(sbSizer6, 1, wxEXPAND, 5);
2948
2949 m_sScrolledDialog->SetSizer(m_fgScrollSizer);
2950 m_sScrolledDialog->Layout();
2951 m_fgScrollSizer->Fit(m_sScrolledDialog);
2952 fgSizer101->Add(m_sScrolledDialog, 1, 0, 5);
2953
2954 m_fgFixedSizer = new wxFlexGridSizer(0, 3, 0, 0);
2955 m_fgFixedSizer->SetFlexibleDirection(wxBOTH);
2956 m_fgFixedSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2957
2958 wxStaticText* m_staticText181;
2959 m_staticText181 =
2960 new wxStaticText(m_panelEmail, wxID_ANY, _("Estimated File Size"),
2961 wxDefaultPosition, wxDefaultSize, 0);
2962 m_staticText181->Wrap(-1);
2963 m_fgFixedSizer->Add(m_staticText181, 0, wxALL, 5);
2964
2965 m_tFileSize = new wxStaticText(m_panelEmail, wxID_ANY, wxEmptyString,
2966 wxDefaultPosition, wxDefaultSize, 0);
2967 m_tFileSize->Wrap(-1);
2968 m_fgFixedSizer->Add(m_tFileSize, 0, wxTOP | wxBOTTOM, 5);
2969
2970 m_tLimit = new wxStaticText(m_panelEmail, wxID_ANY, _(" (Max size )"),
2971 wxDefaultPosition, wxDefaultSize, 0);
2972 m_tLimit->Wrap(-1);
2973 m_fgFixedSizer->Add(m_tLimit, 0, wxALL, 5);
2974
2975 fgSizer101->Add(m_fgFixedSizer, 1, wxEXPAND, 5);
2976
2977 m_rButton = new wxStdDialogButtonSizer();
2978 m_rButtonYes = new wxButton(m_panelEmail, wxID_YES);
2979 m_rButton->AddButton(m_rButtonYes);
2980 m_rButtonApply = new wxButton(m_panelEmail, wxID_APPLY);
2981 m_rButton->AddButton(m_rButtonApply);
2982 m_rButtonCancel = new wxButton(m_panelEmail, wxID_CANCEL, _("Cancel"));
2983 m_rButton->AddButton(m_rButtonCancel);
2984 m_rButton->Realize();
2985
2986 fgSizer101->Add(m_rButton, 1, wxEXPAND, 5);
2987
2988 m_panelEmail->SetSizer(fgSizer101);
2989 m_panelEmail->Layout();
2990 fgSizer101->Fit(m_panelEmail);
2991 m_notebookGetGrib->AddPage(m_panelEmail, _("e-mail"), false);
2992
2993 // Create XyGrib panel object
2994 m_xygribPanel =
2995 new XyGribPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2996 wxDefaultSize, wxTAB_TRAVERSAL);
2997 // Add the XyGrib panel to the download notebook
2998 m_notebookGetGrib->AddPage(m_xygribPanel, _("XyGrib"), false);
2999
3000 bSizerMain->Add(m_notebookGetGrib, 1, wxEXPAND | wxALL, 5);
3001
3002 this->SetSizer(bSizerMain);
3003 this->Layout();
3004 // this->Fit();
3005 bSizerMain->Fit(this);
3006
3007 this->Centre(wxBOTH);
3008
3009 // Connect Events
3010 this->Connect(wxEVT_CLOSE_WINDOW,
3011 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3012 m_chForecastLength->Connect(
3013 wxEVT_COMMAND_CHOICE_SELECTED,
3014 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3015 nullptr, this);
3016 m_btnDownloadWorld->Connect(
3017 wxEVT_COMMAND_BUTTON_CLICKED,
3018 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload), nullptr,
3019 this);
3020 m_SourcesTreeCtrl1->Connect(
3021 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3022 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3023 nullptr, this);
3024 m_SourcesTreeCtrl1->Connect(
3025 wxEVT_COMMAND_TREE_SEL_CHANGED,
3026 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3027 nullptr, this);
3028 m_buttonUpdateCatalog->Connect(
3029 wxEVT_COMMAND_BUTTON_CLICKED,
3030 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3031 nullptr, this);
3032 m_btnDownloadLocal->Connect(
3033 wxEVT_COMMAND_BUTTON_CLICKED,
3034 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal), nullptr,
3035 this);
3036 m_pMailTo->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3037 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3038 nullptr, this);
3039 m_pModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3040 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3041 nullptr, this);
3042 m_cMovingGribEnabled->Connect(
3043 wxEVT_COMMAND_CHECKBOX_CLICKED,
3044 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick), nullptr,
3045 this);
3046 m_sMovingSpeed->Connect(
3047 wxEVT_COMMAND_SPINCTRL_UPDATED,
3048 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3049 this);
3050 m_sMovingCourse->Connect(
3051 wxEVT_COMMAND_SPINCTRL_UPDATED,
3052 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3053 this);
3054 m_pLogin->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3055 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3056 nullptr, this);
3057 m_pCode->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3058 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3059 nullptr, this);
3060 m_pResolution->Connect(
3061 wxEVT_COMMAND_CHOICE_SELECTED,
3062 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3063 this);
3064 m_pInterval->Connect(
3065 wxEVT_COMMAND_CHOICE_SELECTED,
3066 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3067 this);
3068 m_pTimeRange->Connect(
3069 wxEVT_COMMAND_CHOICE_SELECTED,
3070 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange), nullptr,
3071 this);
3072 m_cManualZoneSel->Connect(
3073 wxEVT_COMMAND_CHECKBOX_CLICKED,
3074 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3075 nullptr, this);
3076 m_cUseSavedZone->Connect(
3077 wxEVT_COMMAND_CHECKBOX_CLICKED,
3078 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3079 nullptr, this);
3080 m_spMaxLat->Connect(
3081 wxEVT_COMMAND_SPINCTRL_UPDATED,
3082 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3083 this);
3084 m_spMaxLon->Connect(
3085 wxEVT_COMMAND_SPINCTRL_UPDATED,
3086 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3087 this);
3088 m_spMinLat->Connect(
3089 wxEVT_COMMAND_SPINCTRL_UPDATED,
3090 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3091 this);
3092 m_spMinLon->Connect(
3093 wxEVT_COMMAND_SPINCTRL_UPDATED,
3094 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3095 this);
3096 m_pWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3097 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3098 nullptr, this);
3099 m_pPress->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3100 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3101 nullptr, this);
3102 m_pWindGust->Connect(
3103 wxEVT_COMMAND_CHECKBOX_CLICKED,
3104 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3105 this);
3106 m_pRainfall->Connect(
3107 wxEVT_COMMAND_CHECKBOX_CLICKED,
3108 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3109 this);
3110 m_pCloudCover->Connect(
3111 wxEVT_COMMAND_CHECKBOX_CLICKED,
3112 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3113 this);
3114 m_pAirTemp->Connect(
3115 wxEVT_COMMAND_CHECKBOX_CLICKED,
3116 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3117 this);
3118 m_pCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3119 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3120 nullptr, this);
3121 m_pReflectivity->Connect(
3122 wxEVT_COMMAND_CHECKBOX_CLICKED,
3123 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3124 this);
3125 m_pSeaTemp->Connect(
3126 wxEVT_COMMAND_CHECKBOX_CLICKED,
3127 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3128 this);
3129 m_pCurrent->Connect(
3130 wxEVT_COMMAND_CHECKBOX_CLICKED,
3131 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3132 this);
3133 m_pWaves->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3134 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3135 nullptr, this);
3136 m_pWModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3137 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3138 nullptr, this);
3139 m_pAltitudeData->Connect(
3140 wxEVT_COMMAND_CHECKBOX_CLICKED,
3141 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3142 this);
3143 m_p850hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3144 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3145 nullptr, this);
3146 m_p700hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3147 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3148 nullptr, this);
3149 m_p500hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3150 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3151 nullptr, this);
3152 m_p300hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3153 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3154 nullptr, this);
3155 m_rButtonApply->Connect(
3156 wxEVT_COMMAND_BUTTON_CLICKED,
3157 wxCommandEventHandler(GribRequestSettingBase::OnSaveMail), nullptr, this);
3158 m_rButtonCancel->Connect(
3159 wxEVT_COMMAND_BUTTON_CLICKED,
3160 wxCommandEventHandler(GribRequestSettingBase::OnCancel), nullptr, this);
3161 m_rButtonYes->Connect(
3162 wxEVT_COMMAND_BUTTON_CLICKED,
3163 wxCommandEventHandler(GribRequestSettingBase::OnSendMaiL), nullptr, this);
3164
3165 // Connect XyGrib related callbacks
3166 m_xygribPanel->m_download_button->Connect(
3167 wxEVT_COMMAND_BUTTON_CLICKED,
3168 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3169 nullptr, this);
3170 m_xygribPanel->m_atmmodel_choice->Connect(
3171 wxEVT_COMMAND_CHOICE_SELECTED,
3172 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3173 nullptr, this);
3174 m_xygribPanel->m_wavemodel_choice->Connect(
3175 wxEVT_COMMAND_CHOICE_SELECTED,
3176 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3177 nullptr, this);
3178 m_xygribPanel->m_wind_cbox->Connect(
3179 wxEVT_COMMAND_CHECKBOX_CLICKED,
3180 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3181 nullptr, this);
3182 m_xygribPanel->m_gust_cbox->Connect(
3183 wxEVT_COMMAND_CHECKBOX_CLICKED,
3184 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3185 nullptr, this);
3186 m_xygribPanel->m_reflectivity_cbox->Connect(
3187 wxEVT_COMMAND_CHECKBOX_CLICKED,
3188 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3189 nullptr, this);
3190 m_xygribPanel->m_precipitation_cbox->Connect(
3191 wxEVT_COMMAND_CHECKBOX_CLICKED,
3192 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3193 nullptr, this);
3194 m_xygribPanel->m_cape_cbox->Connect(
3195 wxEVT_COMMAND_CHECKBOX_CLICKED,
3196 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3197 nullptr, this);
3198 m_xygribPanel->m_pressure_cbox->Connect(
3199 wxEVT_COMMAND_CHECKBOX_CLICKED,
3200 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3201 nullptr, this);
3202 m_xygribPanel->m_cloudcover_cbox->Connect(
3203 wxEVT_COMMAND_CHECKBOX_CLICKED,
3204 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3205 nullptr, this);
3206 m_xygribPanel->m_temperature_cbox->Connect(
3207 wxEVT_COMMAND_CHECKBOX_CLICKED,
3208 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3209 nullptr, this);
3210 m_xygribPanel->m_waveheight_cbox->Connect(
3211 wxEVT_COMMAND_CHECKBOX_CLICKED,
3212 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3213 nullptr, this);
3214 m_xygribPanel->m_windwave_cbox->Connect(
3215 wxEVT_COMMAND_CHECKBOX_CLICKED,
3216 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3217 nullptr, this);
3218 m_xygribPanel->m_resolution_choice->Connect(
3219 wxEVT_COMMAND_CHOICE_SELECTED,
3220 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3221 nullptr, this);
3222 m_xygribPanel->m_duration_choice->Connect(
3223 wxEVT_COMMAND_CHOICE_SELECTED,
3224 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3225 nullptr, this);
3226 m_xygribPanel->m_interval_choice->Connect(
3227 wxEVT_COMMAND_CHOICE_SELECTED,
3228 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3229 nullptr, this);
3230}
3231
3232GribRequestSettingBase::~GribRequestSettingBase() {
3233 // Disconnect Events
3234 this->Disconnect(wxEVT_CLOSE_WINDOW,
3235 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3236 m_chForecastLength->Disconnect(
3237 wxEVT_COMMAND_CHOICE_SELECTED,
3238 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3239 nullptr, this);
3240 m_btnDownloadWorld->Disconnect(
3241 wxEVT_COMMAND_BUTTON_CLICKED,
3242 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload), nullptr,
3243 this);
3244 m_SourcesTreeCtrl1->Disconnect(
3245 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3246 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3247 nullptr, this);
3248 m_SourcesTreeCtrl1->Disconnect(
3249 wxEVT_COMMAND_TREE_SEL_CHANGED,
3250 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3251 nullptr, this);
3252 m_buttonUpdateCatalog->Disconnect(
3253 wxEVT_COMMAND_BUTTON_CLICKED,
3254 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3255 nullptr, this);
3256 m_btnDownloadLocal->Disconnect(
3257 wxEVT_COMMAND_BUTTON_CLICKED,
3258 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal), nullptr,
3259 this);
3260 m_pMailTo->Disconnect(
3261 wxEVT_COMMAND_CHOICE_SELECTED,
3262 wxCommandEventHandler(GribRequestSettingBase::OnTopChange), nullptr,
3263 this);
3264 m_pModel->Disconnect(
3265 wxEVT_COMMAND_CHOICE_SELECTED,
3266 wxCommandEventHandler(GribRequestSettingBase::OnTopChange), nullptr,
3267 this);
3268 m_cMovingGribEnabled->Disconnect(
3269 wxEVT_COMMAND_CHECKBOX_CLICKED,
3270 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick), nullptr,
3271 this);
3272 m_sMovingSpeed->Disconnect(
3273 wxEVT_COMMAND_SPINCTRL_UPDATED,
3274 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3275 this);
3276 m_sMovingCourse->Disconnect(
3277 wxEVT_COMMAND_SPINCTRL_UPDATED,
3278 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3279 this);
3280 m_pLogin->Disconnect(
3281 wxEVT_COMMAND_TEXT_UPDATED,
3282 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3283 this);
3284 m_pCode->Disconnect(
3285 wxEVT_COMMAND_TEXT_UPDATED,
3286 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3287 this);
3288 m_pResolution->Disconnect(
3289 wxEVT_COMMAND_CHOICE_SELECTED,
3290 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3291 this);
3292 m_pInterval->Disconnect(
3293 wxEVT_COMMAND_CHOICE_SELECTED,
3294 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3295 this);
3296 m_pTimeRange->Disconnect(
3297 wxEVT_COMMAND_CHOICE_SELECTED,
3298 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange), nullptr,
3299 this);
3300 m_cManualZoneSel->Disconnect(
3301 wxEVT_COMMAND_CHECKBOX_CLICKED,
3302 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3303 nullptr, this);
3304 m_cUseSavedZone->Disconnect(
3305 wxEVT_COMMAND_CHECKBOX_CLICKED,
3306 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3307 nullptr, this);
3308 m_spMaxLat->Disconnect(
3309 wxEVT_COMMAND_SPINCTRL_UPDATED,
3310 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3311 this);
3312 m_spMaxLon->Disconnect(
3313 wxEVT_COMMAND_SPINCTRL_UPDATED,
3314 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3315 this);
3316 m_spMinLat->Disconnect(
3317 wxEVT_COMMAND_SPINCTRL_UPDATED,
3318 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3319 this);
3320 m_spMinLon->Disconnect(
3321 wxEVT_COMMAND_SPINCTRL_UPDATED,
3322 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3323 this);
3324 m_pWind->Disconnect(
3325 wxEVT_COMMAND_CHECKBOX_CLICKED,
3326 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3327 this);
3328 m_pPress->Disconnect(
3329 wxEVT_COMMAND_CHECKBOX_CLICKED,
3330 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3331 this);
3332 m_pWindGust->Disconnect(
3333 wxEVT_COMMAND_CHECKBOX_CLICKED,
3334 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3335 this);
3336 m_pRainfall->Disconnect(
3337 wxEVT_COMMAND_CHECKBOX_CLICKED,
3338 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3339 this);
3340 m_pCloudCover->Disconnect(
3341 wxEVT_COMMAND_CHECKBOX_CLICKED,
3342 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3343 this);
3344 m_pAirTemp->Disconnect(
3345 wxEVT_COMMAND_CHECKBOX_CLICKED,
3346 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3347 this);
3348 m_pCAPE->Disconnect(
3349 wxEVT_COMMAND_CHECKBOX_CLICKED,
3350 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3351 this);
3352 m_pReflectivity->Disconnect(
3353 wxEVT_COMMAND_CHECKBOX_CLICKED,
3354 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3355 this);
3356 m_pSeaTemp->Disconnect(
3357 wxEVT_COMMAND_CHECKBOX_CLICKED,
3358 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3359 this);
3360 m_pCurrent->Disconnect(
3361 wxEVT_COMMAND_CHECKBOX_CLICKED,
3362 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3363 this);
3364 m_pWaves->Disconnect(
3365 wxEVT_COMMAND_CHECKBOX_CLICKED,
3366 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3367 this);
3368 m_pWModel->Disconnect(
3369 wxEVT_COMMAND_CHOICE_SELECTED,
3370 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3371 this);
3372 m_pAltitudeData->Disconnect(
3373 wxEVT_COMMAND_CHECKBOX_CLICKED,
3374 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3375 this);
3376 m_p850hpa->Disconnect(
3377 wxEVT_COMMAND_CHECKBOX_CLICKED,
3378 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3379 this);
3380 m_p700hpa->Disconnect(
3381 wxEVT_COMMAND_CHECKBOX_CLICKED,
3382 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3383 this);
3384 m_p500hpa->Disconnect(
3385 wxEVT_COMMAND_CHECKBOX_CLICKED,
3386 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3387 this);
3388 m_p300hpa->Disconnect(
3389 wxEVT_COMMAND_CHECKBOX_CLICKED,
3390 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3391 this);
3392 m_rButtonApply->Disconnect(
3393 wxEVT_COMMAND_BUTTON_CLICKED,
3394 wxCommandEventHandler(GribRequestSettingBase::OnSaveMail), nullptr, this);
3395 m_rButtonCancel->Disconnect(
3396 wxEVT_COMMAND_BUTTON_CLICKED,
3397 wxCommandEventHandler(GribRequestSettingBase::OnCancel), nullptr, this);
3398 m_rButtonYes->Disconnect(
3399 wxEVT_COMMAND_BUTTON_CLICKED,
3400 wxCommandEventHandler(GribRequestSettingBase::OnSendMaiL), nullptr, this);
3401
3402 // Disconnect XyGrib related callbacks
3403 m_xygribPanel->m_download_button->Disconnect(
3404 wxEVT_COMMAND_BUTTON_CLICKED,
3405 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3406 nullptr, this);
3407 m_xygribPanel->m_atmmodel_choice->Disconnect(
3408 wxEVT_COMMAND_CHOICE_SELECTED,
3409 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3410 nullptr, this);
3411 m_xygribPanel->m_wavemodel_choice->Disconnect(
3412 wxEVT_COMMAND_CHOICE_SELECTED,
3413 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3414 nullptr, this);
3415 m_xygribPanel->m_wind_cbox->Disconnect(
3416 wxEVT_COMMAND_CHECKBOX_CLICKED,
3417 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3418 nullptr, this);
3419 m_xygribPanel->m_gust_cbox->Disconnect(
3420 wxEVT_COMMAND_CHECKBOX_CLICKED,
3421 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3422 nullptr, this);
3423 m_xygribPanel->m_reflectivity_cbox->Disconnect(
3424 wxEVT_COMMAND_CHECKBOX_CLICKED,
3425 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3426 nullptr, this);
3427 m_xygribPanel->m_precipitation_cbox->Disconnect(
3428 wxEVT_COMMAND_CHECKBOX_CLICKED,
3429 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3430 nullptr, this);
3431 m_xygribPanel->m_cape_cbox->Disconnect(
3432 wxEVT_COMMAND_CHECKBOX_CLICKED,
3433 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3434 nullptr, this);
3435 m_xygribPanel->m_pressure_cbox->Disconnect(
3436 wxEVT_COMMAND_CHECKBOX_CLICKED,
3437 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3438 nullptr, this);
3439 m_xygribPanel->m_cloudcover_cbox->Disconnect(
3440 wxEVT_COMMAND_CHECKBOX_CLICKED,
3441 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3442 nullptr, this);
3443 m_xygribPanel->m_temperature_cbox->Disconnect(
3444 wxEVT_COMMAND_CHECKBOX_CLICKED,
3445 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3446 nullptr, this);
3447 m_xygribPanel->m_waveheight_cbox->Disconnect(
3448 wxEVT_COMMAND_CHECKBOX_CLICKED,
3449 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3450 nullptr, this);
3451 m_xygribPanel->m_windwave_cbox->Disconnect(
3452 wxEVT_COMMAND_CHECKBOX_CLICKED,
3453 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3454 nullptr, this);
3455 m_xygribPanel->m_resolution_choice->Disconnect(
3456 wxEVT_COMMAND_CHOICE_SELECTED,
3457 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3458 nullptr, this);
3459 m_xygribPanel->m_duration_choice->Disconnect(
3460 wxEVT_COMMAND_CHOICE_SELECTED,
3461 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3462 nullptr, this);
3463 m_xygribPanel->m_interval_choice->Disconnect(
3464 wxEVT_COMMAND_CHOICE_SELECTED,
3465 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3466 nullptr, this);
3467}
3468
3469GRIBTableBase::GRIBTableBase(wxWindow* parent, wxWindowID id,
3470 const wxString& title, const wxPoint& pos,
3471 const wxSize& size, long style)
3472 : wxDialog(parent, id, title, pos, size, style) {
3473 this->SetSizeHints(wxSize(-1, -1), wxSize(-1, -1));
3474
3475 wxBoxSizer* bSizer1;
3476 bSizer1 = new wxBoxSizer(wxVERTICAL);
3477
3478 wxFlexGridSizer* fgSizer18;
3479 fgSizer18 = new wxFlexGridSizer(0, 1, 0, 0);
3480 fgSizer18->AddGrowableRow(1);
3481 fgSizer18->SetFlexibleDirection(wxBOTH);
3482 fgSizer18->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3483
3484 wxFlexGridSizer* fgSizer19;
3485 fgSizer19 = new wxFlexGridSizer(0, 2, 0, 0);
3486 fgSizer19->SetFlexibleDirection(wxBOTH);
3487 fgSizer19->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3488
3489 m_pPositionText = new wxStaticText(this, wxID_ANY, _("Data at Position:"),
3490 wxDefaultPosition, wxDefaultSize, 0);
3491 m_pPositionText->Wrap(-1);
3492 fgSizer19->Add(m_pPositionText, 0, wxALL | wxEXPAND, 5);
3493
3494 m_pCursorPosition = new wxStaticText(this, wxID_ANY, wxEmptyString,
3495 wxDefaultPosition, wxDefaultSize, 0);
3496 m_pCursorPosition->Wrap(-1);
3497 fgSizer19->Add(m_pCursorPosition, 0, wxALL | wxEXPAND, 5);
3498
3499 fgSizer18->Add(fgSizer19, 1, wxEXPAND, 10);
3500
3501 wxFlexGridSizer* fgSizer20;
3502 fgSizer20 = new wxFlexGridSizer(0, 1, 0, 0);
3503 fgSizer20->AddGrowableRow(0);
3504 fgSizer20->SetFlexibleDirection(wxBOTH);
3505 fgSizer20->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_ALL);
3506
3507 m_pGribTable = new CustomGrid(this, wxID_ANY, wxDefaultPosition,
3508 wxSize(-1, 50), 0, _T(" "));
3509
3510 // Cell Defaults
3511 m_pGribTable->SetDefaultCellFont(
3512 wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT,
3513 wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
3514 m_pGribTable->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_TOP);
3515 fgSizer20->Add(m_pGribTable, 0, wxALL | wxEXPAND, 5);
3516
3517 fgSizer18->Add(fgSizer20, 1, wxEXPAND, 5);
3518
3519 wxStdDialogButtonSizer* m_pButtonTable = new wxStdDialogButtonSizer();
3520 m_pButtonTableOK = new wxButton(this, wxID_OK, _("Close"));
3521 m_pButtonTableOK->SetFont(GetOCPNGUIScaledFont_PlugIn(_("Dialog")));
3522 m_pButtonTable->AddButton(m_pButtonTableOK);
3523 m_pButtonTable->Realize();
3524
3525 fgSizer18->Add(m_pButtonTable, 1, wxEXPAND, 5);
3526
3527 bSizer1->Add(fgSizer18, 1, wxEXPAND, 5);
3528
3529 this->SetSizer(bSizer1);
3530 this->Layout();
3531 bSizer1->Fit(this);
3532
3533 this->Centre(wxBOTH);
3534
3535 // Connect Events
3536 this->Connect(wxEVT_CLOSE_WINDOW,
3537 wxCloseEventHandler(GRIBTableBase::OnClose));
3538 m_pButtonTableOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3539 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3540 nullptr, this);
3541}
3542
3543GRIBTableBase::~GRIBTableBase() {
3544 // Disconnect Events
3545 this->Disconnect(wxEVT_CLOSE_WINDOW,
3546 wxCloseEventHandler(GRIBTableBase::OnClose));
3547 m_pButtonTableOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
3548 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3549 nullptr, this);
3550}
3551
3552ProjectBoatPanel::ProjectBoatPanel(wxWindow* parent, wxWindowID id,
3553 const wxPoint& pos, const wxSize& size,
3554 long style, const wxString& name)
3555 : wxPanel(parent, id, pos, size, style, name) {
3556 wxBoxSizer* bSizerProjectBoat;
3557 bSizerProjectBoat = new wxBoxSizer(wxHORIZONTAL);
3558
3559 m_cbProjectPosition = new wxCheckBox(this, wxID_ANY, _("Project position"),
3560 wxDefaultPosition, wxDefaultSize, 0);
3561 bSizerProjectBoat->Add(m_cbProjectPosition, 0,
3562 wxALIGN_CENTER_VERTICAL | wxALL, 5);
3563
3564 m_stCourse = new wxStaticText(this, wxID_ANY, _("Course"), wxDefaultPosition,
3565 wxDefaultSize, 0);
3566 m_stCourse->Wrap(-1);
3567 bSizerProjectBoat->Add(m_stCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3568
3569 m_tCourse = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3570 wxDefaultSize, 0);
3571 bSizerProjectBoat->Add(m_tCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3572
3573 m_stSpeed = new wxStaticText(this, wxID_ANY, _("Speed"), wxDefaultPosition,
3574 wxDefaultSize, 0);
3575 m_stSpeed->Wrap(-1);
3576 bSizerProjectBoat->Add(m_stSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3577
3578 m_tSpeed = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3579 wxDefaultSize, 0);
3580 bSizerProjectBoat->Add(m_tSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3581
3582 m_stSpeedUnit = new wxStaticText(this, wxID_ANY, wxT("kt"), wxDefaultPosition,
3583 wxDefaultSize, 0);
3584 m_stSpeedUnit->Wrap(-1);
3585 bSizerProjectBoat->Add(m_stSpeedUnit, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3586
3587 this->SetSizer(bSizerProjectBoat);
3588 this->Layout();
3589}
3590
3591ProjectBoatPanel::~ProjectBoatPanel() {}
3592
3593double ProjectBoatPanel::GetCourse() {
3594 double val;
3595 if (m_tCourse->GetValue().ToDouble(&val)) {
3596 return val;
3597 } else {
3598 return 0;
3599 }
3600}
3601double ProjectBoatPanel::GetSpeed() {
3602 double val;
3603 if (m_tSpeed->GetValue().ToDouble(&val)) {
3604 return val;
3605 } else {
3606 return 0;
3607 }
3608}
3609bool ProjectBoatPanel::ProjectionEnabled() {
3610 return m_cbProjectPosition->IsChecked();
3611}
Base User Interface Components for GRIB Plugin.
Class ProjectBoatPanel.
Class XyGribPanel.
Definition XyGribPanel.h:37
wxFont GetOCPNGUIScaledFont_PlugIn(wxString item)
Gets a uniquely scaled font copy for responsive UI elements.