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