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