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 | wxALL, 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 wxStaticBoxSizer* sbSizerFolder;
2196 sbSizerFolder = new wxStaticBoxSizer(
2197 new wxStaticBox(this, wxID_ANY, _("Grib File Directory")), wxHORIZONTAL);
2198
2199 m_textDirectory =
2200 new wxTextCtrl(scrollWin, wxID_ANY, wxEmptyString, wxDefaultPosition,
2201 wxDefaultSize, wxTE_READONLY);
2202 sbSizerFolder->Add(m_textDirectory, 1, wxALL, 5);
2203
2204 wxButton* dbFolderButton = new wxButton(scrollWin, wxID_ANY, _("Browse..."));
2205 sbSizerFolder->Add(dbFolderButton, 0, wxALL, 5);
2206
2207 bSizerPrefsMain->Add(sbSizerFolder, 0, wxALL | wxEXPAND, 5);
2208
2209 wxString m_rbStartOptionsChoices[] = {
2210 _("Start at the first forecast in GRIB file"),
2211 _("Start at the nearest forecast to current time"),
2212 _("Authorize Interpolation to start at current time")};
2213 int m_rbStartOptionsNChoices =
2214 sizeof(m_rbStartOptionsChoices) / sizeof(wxString);
2215 m_rbStartOptions = new wxRadioBox(
2216 scrollWin, wxID_ANY, _("Start Options"), wxDefaultPosition, wxDefaultSize,
2217 m_rbStartOptionsNChoices, m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2218 m_rbStartOptions->SetSelection(0);
2219 bSizerPrefsMain->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2220
2221#ifdef __WXMSW__
2222 wxFlexGridSizer* fgSizer47;
2223 fgSizer47 = new wxFlexGridSizer(0, 2, 0, 0);
2224 fgSizer47->SetFlexibleDirection(wxBOTH);
2225 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2226 wxStaticText* text =
2227 new wxStaticText(scrollWin, wxID_ANY, _("Icons Size Factor"),
2228 wxDefaultPosition, wxDefaultSize);
2229 fgSizer47->Add(text, 0, wxALL | wxEXPAND, 5);
2230 m_sIconSizeFactor =
2231 new wxSlider(scrollWin, wxID_ANY, 0, -8, 8, wxDefaultPosition,
2232 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
2233 fgSizer47->Add(m_sIconSizeFactor, 0, wxALL | wxEXPAND, 5);
2234 bSizerPrefsMain->Add(fgSizer47, 0, wxALL | wxEXPAND, 5);
2235#endif
2236 Layout();
2237 Fit();
2238
2239 // Connect Events
2240 m_rbStartOptions->Connect(
2241 wxEVT_COMMAND_RADIOBOX_SELECTED,
2242 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2243 nullptr, this);
2244 m_sdbSizer2OK->Connect(
2245 wxEVT_COMMAND_BUTTON_CLICKED,
2246 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick), nullptr,
2247 this);
2248 dbFolderButton->Connect(
2249 wxEVT_COMMAND_BUTTON_CLICKED,
2250 wxCommandEventHandler(GribPreferencesDialogBase::OnDirSelClick), nullptr,
2251 this);
2252}
2253#else
2254
2255GribPreferencesDialogBase::GribPreferencesDialogBase(
2256 wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
2257 const wxSize& size, long style)
2258 : wxDialog(parent, id, title, pos, size, style) {
2259 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2260
2261 wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
2262 SetSizer(topSizer);
2263
2264 wxBoxSizer* labelSizer = new wxBoxSizer(wxHORIZONTAL);
2265 topSizer->Add(labelSizer, 0, wxEXPAND, 5);
2266
2267 wxStaticText* labelBox =
2268 new wxStaticText(this, wxID_ANY, _("GRIB PlugIn Preferences"),
2269 wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
2270 labelSizer->Add(labelBox, 1, wxEXPAND, 0);
2271
2272 wxScrolledWindow* itemScrollWin = new wxScrolledWindow(
2273 this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxVSCROLL);
2274 topSizer->Add(itemScrollWin, 1, wxEXPAND | wxALL, 0);
2275 itemScrollWin->SetScrollRate(2, 2);
2276
2277 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
2278 itemScrollWin->SetSizer(itemBoxSizer2);
2279
2280 wxStaticBoxSizer* sbSizer9;
2281 sbSizer9 = new wxStaticBoxSizer(
2282 new wxStaticBox(itemScrollWin, wxID_ANY, _("General Options")),
2283 wxVERTICAL);
2284 itemBoxSizer2->Add(sbSizer9, 1, wxEXPAND, 5);
2285
2286 m_cbUseHiDef =
2287 new wxCheckBox(itemScrollWin, wxID_ANY, _("Use High Definition Graphics"),
2288 wxDefaultPosition, wxDefaultSize, 0);
2289 sbSizer9->Add(m_cbUseHiDef, 0, wxALL, 5);
2290
2291 m_cbUseGradualColors =
2292 new wxCheckBox(itemScrollWin, wxID_ANY, _("Use Gradual Colors"),
2293 wxDefaultPosition, wxDefaultSize, 0);
2294 sbSizer9->Add(m_cbUseGradualColors, 0, wxALL, 5);
2295
2296 m_cbCopyFirstCumulativeRecord = new wxCheckBox(
2297 itemScrollWin, wxID_ANY, _("Copy First Cumulative Missing Record"),
2298 wxDefaultPosition, wxDefaultSize, 0);
2299 sbSizer9->Add(m_cbCopyFirstCumulativeRecord, 0, wxALL, 5);
2300
2301 m_cbCopyMissingWaveRecord =
2302 new wxCheckBox(itemScrollWin, wxID_ANY, _("Copy Missing Wave Records"),
2303 wxDefaultPosition, wxDefaultSize, 0);
2304 sbSizer9->Add(m_cbCopyMissingWaveRecord, 0, wxALL, 5);
2305
2306 m_cbDrawBarbedArrowHead =
2307 new wxCheckBox(itemScrollWin, wxID_ANY, _("Draw Barbed Arrows Head"),
2308 wxDefaultPosition, wxDefaultSize, 0);
2309 sbSizer9->Add(m_cbDrawBarbedArrowHead, 0, wxALL, 5);
2310
2311 m_cZoomToCenterAtInit = new wxCheckBox(itemScrollWin, wxID_ANY,
2312 _("Zoom to file center when opened"),
2313 wxDefaultPosition, wxDefaultSize, 0);
2314 sbSizer9->Add(m_cZoomToCenterAtInit, 0, wxALL, 5);
2315
2316 wxString m_rbLoadOptionsChoices[] = {
2317 _("Load the More Recent File in Directory"),
2318 _("Load the Last Opened File")};
2319 int m_rbLoadOptionsNChoices =
2320 sizeof(m_rbLoadOptionsChoices) / sizeof(wxString);
2321 m_rbLoadOptions =
2322 new wxRadioBox(itemScrollWin, wxID_ANY, _("Load File Options"),
2323 wxDefaultPosition, wxDefaultSize, m_rbLoadOptionsNChoices,
2324 m_rbLoadOptionsChoices, 1, wxRA_SPECIFY_COLS);
2325 m_rbLoadOptions->SetSelection(0);
2326 sbSizer9->Add(m_rbLoadOptions, 0, wxALL | wxEXPAND, 5);
2327
2328 wxString m_rbStartOptionsChoices[] = {
2329 _("Start at the first forecast in GRIB file"),
2330 _("Start at the nearest forecast to current time"),
2331 _("Authorize Interpolation to start at current time")};
2332 int m_rbStartOptionsNChoices =
2333 sizeof(m_rbStartOptionsChoices) / sizeof(wxString);
2334 m_rbStartOptions =
2335 new wxRadioBox(itemScrollWin, wxID_ANY, _("Start Options"),
2336 wxDefaultPosition, wxDefaultSize, m_rbStartOptionsNChoices,
2337 m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2338 m_rbStartOptions->SetSelection(0);
2339 sbSizer9->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2340
2341 wxBoxSizer* m_sdbButtonSizer = new wxBoxSizer(wxHORIZONTAL);
2342 topSizer->Add(m_sdbButtonSizer, 0, wxEXPAND, 5);
2343
2344 wxButton* m_sdbButtonSizerOK = new wxButton(this, wxID_OK);
2345 m_sdbButtonSizer->Add(m_sdbButtonSizerOK, 0, wxALL | wxALIGN_RIGHT, 15);
2346
2347 wxButton* m_sdbButtonSizerCancel = new wxButton(this, wxID_CANCEL);
2348 m_sdbButtonSizer->Add(m_sdbButtonSizerCancel, 0, wxALL | wxALIGN_RIGHT, 15);
2349
2350 // Connect Events
2351 m_rbStartOptions->Connect(
2352 wxEVT_COMMAND_RADIOBOX_SELECTED,
2353 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2354 nullptr, this);
2355 m_sdbButtonSizerOK->Connect(
2356 wxEVT_COMMAND_BUTTON_CLICKED,
2357 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick), nullptr,
2358 this);
2359}
2360
2361#endif
2362
2363GribPreferencesDialogBase::~GribPreferencesDialogBase() {
2364 // Disconnect Events
2365 m_rbStartOptions->Disconnect(
2366 wxEVT_COMMAND_RADIOBOX_SELECTED,
2367 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2368 nullptr, this);
2369}
2370
2371void GribPreferencesDialogBase::OnDirSelClick(wxCommandEvent& event) {
2372 wxString dir_spec;
2373 int response = PlatformDirSelectorDialog(
2374 this, &dir_spec, _("Choose GRIB File Directory"), m_grib_dir_sel);
2375
2376 if (response == wxID_OK) {
2377 m_grib_dir_sel = dir_spec;
2378 m_textDirectory->ChangeValue(dir_spec);
2379 }
2380}
2381
2382wxStaticBoxSizer* GribRequestSettingBase::createAreaSelectionSection(
2383 wxWindow* parent, GRIBUICtrlBarBase* ctrlBar) {
2384 wxStaticBoxSizer* sbSizer81;
2385 sbSizer81 = new wxStaticBoxSizer(
2386 new wxStaticBox(parent, wxID_ANY, _("Area Selection")), wxVERTICAL);
2387
2388 wxFlexGridSizer* fgSizer36;
2389 fgSizer36 = new wxFlexGridSizer(0, 2, 0, 0);
2390 fgSizer36->SetFlexibleDirection(wxBOTH);
2391 fgSizer36->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2392
2393 wxFlexGridSizer* fgSizer37;
2394 fgSizer37 = new wxFlexGridSizer(0, 1, 0, 0);
2395 fgSizer37->SetFlexibleDirection(wxBOTH);
2396 fgSizer37->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2397
2398 wxBoxSizer* zoneSelBoxSizer = new wxBoxSizer(wxVERTICAL);
2400 new wxRadioButton(parent, AUTOSELECT, _("Current View"),
2401 wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
2402 m_rbManualSelect = new wxRadioButton(parent, MANSELECT, _("Manual Selection"),
2403 wxDefaultPosition, wxDefaultSize);
2404 m_rbCurrentView->SetValue(true); // Set Current View as default
2405
2406 zoneSelBoxSizer->Add(m_rbCurrentView, 0, wxALL, 5);
2407 zoneSelBoxSizer->Add(m_rbManualSelect, 0, wxALL, 5);
2408 fgSizer37->Add(zoneSelBoxSizer, 0, wxLEFT | wxBOTTOM, 5);
2409
2410 m_bpManualSelection =
2411 new wxBitmapToggleButton(this, ID_BTNREQUEST, wxNullBitmap,
2412 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
2413 m_bpManualSelection->SetBitmapLabel(GRIBUICtrlBarBase::GetScaledBitmap(
2414 wxBitmap(selzone), _T("selzone"), ctrlBar->GetScaleFactor()));
2415 // Set the pressed state bitmap - use a darker/highlighted version of the same
2416 // bitmap
2417 wxBitmap pressedBitmap = GRIBUICtrlBarBase::GetScaledBitmap(
2418 wxBitmap(selzone), _T("selzone"), ctrlBar->GetScaleFactor());
2419 pressedBitmap =
2420 pressedBitmap.ConvertToDisabled(); // Creates a greyed version
2421 m_bpManualSelection->SetBitmapPressed(pressedBitmap);
2422
2423 m_bpManualSelection->SetToolTip(
2424 _("Click to select the download area, or Shift + Click + Drag on the "
2425 "canvas"));
2426 fgSizer37->Add(m_bpManualSelection, 0, wxLEFT, 5);
2427
2428 fgSizer36->Add(fgSizer37, 1, wxEXPAND | wxLEFT, 5);
2429
2430 fgZoneCoordinatesSizer = new wxFlexGridSizer(0, 6, 0, 0);
2431 fgZoneCoordinatesSizer->SetFlexibleDirection(wxBOTH);
2432 fgZoneCoordinatesSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2433
2434 wxStaticText* m_staticText34;
2435 m_staticText34 = new wxStaticText(parent, wxID_ANY, _("Max Lat"),
2436 wxDefaultPosition, wxDefaultSize, 0);
2437 m_staticText34->Wrap(-1);
2438 fgZoneCoordinatesSizer->Add(m_staticText34, 0, wxLEFT | wxRIGHT, 5);
2439
2440 m_spMaxLat = new wxSpinCtrl(parent, MAXLAT, wxEmptyString, wxDefaultPosition,
2441 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2442 fgZoneCoordinatesSizer->Add(m_spMaxLat, 0, wxLEFT | wxRIGHT, 5);
2443
2444 m_stMaxLatNS = new wxStaticText(parent, wxID_ANY, _("N"), wxDefaultPosition,
2445 wxDefaultSize, 0);
2446 m_stMaxLatNS->Wrap(-1);
2447 fgZoneCoordinatesSizer->Add(m_stMaxLatNS, 0, wxRIGHT, 20);
2448
2449 m_staticText36 = new wxStaticText(parent, wxID_ANY, _("Max Long"),
2450 wxDefaultPosition, wxDefaultSize, 0);
2451 m_staticText36->Wrap(-1);
2452 fgZoneCoordinatesSizer->Add(m_staticText36, 0, wxLEFT | wxRIGHT, 5);
2453
2454 m_spMaxLon = new wxSpinCtrl(parent, MAXLON, wxEmptyString, wxDefaultPosition,
2455 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2456 fgZoneCoordinatesSizer->Add(m_spMaxLon, 0, wxLEFT | wxRIGHT, 5);
2457
2458 m_stMaxLonEW = new wxStaticText(parent, wxID_ANY, _("E"), wxDefaultPosition,
2459 wxDefaultSize, 0);
2460 m_stMaxLonEW->Wrap(-1);
2461 fgZoneCoordinatesSizer->Add(m_stMaxLonEW, 0, wxRIGHT, 5);
2462
2463 wxStaticText* m_staticText38;
2464 m_staticText38 = new wxStaticText(parent, wxID_ANY, _("Min Lat"),
2465 wxDefaultPosition, wxDefaultSize, 0);
2466 m_staticText38->Wrap(-1);
2467 fgZoneCoordinatesSizer->Add(m_staticText38, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2468
2469 m_spMinLat = new wxSpinCtrl(parent, MINLAT, wxEmptyString, wxDefaultPosition,
2470 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2471 fgZoneCoordinatesSizer->Add(m_spMinLat, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2472
2473 m_stMinLatNS = new wxStaticText(parent, wxID_ANY, _("S"), wxDefaultPosition,
2474 wxDefaultSize, 0);
2475 m_stMinLatNS->Wrap(-1);
2476 fgZoneCoordinatesSizer->Add(m_stMinLatNS, 0, wxRIGHT | wxTOP, 5);
2477
2478 wxStaticText* m_staticText40;
2479 m_staticText40 = new wxStaticText(parent, wxID_ANY, _("Min Long"),
2480 wxDefaultPosition, wxDefaultSize, 0);
2481 m_staticText40->Wrap(-1);
2482 fgZoneCoordinatesSizer->Add(m_staticText40, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2483
2484 m_spMinLon = new wxSpinCtrl(parent, MINLON, wxEmptyString, wxDefaultPosition,
2485 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2486 fgZoneCoordinatesSizer->Add(m_spMinLon, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2487
2488 m_stMinLonEW = new wxStaticText(parent, wxID_ANY, _("W"), wxDefaultPosition,
2489 wxDefaultSize, 0);
2490 m_stMinLonEW->Wrap(-1);
2491 fgZoneCoordinatesSizer->Add(m_stMinLonEW, 0, wxRIGHT | wxTOP, 5);
2492
2493 wxFlexGridSizer* fgSizer38;
2494 fgSizer38 = new wxFlexGridSizer(0, 1, 0, 0);
2495 fgSizer38->Add(fgZoneCoordinatesSizer, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2496
2497 m_cUseSavedZone = new wxCheckBox(parent, SAVEDZONE, _("Use Always this Area"),
2498 wxDefaultPosition, wxDefaultSize, 0);
2499 fgSizer38->Add(m_cUseSavedZone, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2500
2501 fgSizer36->Add(fgSizer38, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2502
2503 sbSizer81->Add(fgSizer36, 1, wxBOTTOM | wxEXPAND | wxTOP, 5);
2504
2505 return sbSizer81;
2506}
2507
2508void GribRequestSettingBase::createWorldPanel() {
2509 m_panelWorld = new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2510 wxDefaultSize, wxTAB_TRAVERSAL);
2511 wxBoxSizer* bSizerWorldDownload;
2512 bSizerWorldDownload = new wxBoxSizer(wxVERTICAL);
2513
2514 m_htmlWinWorld =
2515 new wxHtmlWindow(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2516 wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2517 bSizerWorldDownload->Add(m_htmlWinWorld, 1, wxALL | wxEXPAND, 5);
2518
2519 m_staticTextInfo =
2520 new wxStaticText(m_panelWorld, wxID_ANY, _("Download grib..."),
2521 wxDefaultPosition, wxDefaultSize, 0);
2522 m_staticTextInfo->Wrap(-1);
2523 bSizerWorldDownload->Add(m_staticTextInfo, 0, wxALL, 5);
2524
2525 wxBoxSizer* bSizerWorld;
2526 bSizerWorld = new wxBoxSizer(wxHORIZONTAL);
2527
2528 m_stForecastLength =
2529 new wxStaticText(m_panelWorld, wxID_ANY, _("Forecast length"),
2530 wxDefaultPosition, wxDefaultSize, 0);
2531 m_stForecastLength->Wrap(-1);
2532 bSizerWorld->Add(m_stForecastLength, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2533
2534 wxString m_chForecastLengthChoices[] = {_("24 hours"), _("3 days"),
2535 _("Maximum")};
2536 int m_chForecastLengthNChoices =
2537 sizeof(m_chForecastLengthChoices) / sizeof(wxString);
2538 m_chForecastLength =
2539 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2540 m_chForecastLengthNChoices, m_chForecastLengthChoices, 0);
2541 m_chForecastLength->SetSelection(0);
2542 bSizerWorld->Add(m_chForecastLength, 0, wxALL, 5);
2543
2544 m_stECMWFResolution = new wxStaticText(m_panelWorld, wxID_ANY, _("Model"),
2545 wxDefaultPosition, wxDefaultSize, 0);
2546 m_stECMWFResolution->Wrap(-1);
2547 bSizerWorld->Add(m_stECMWFResolution, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2548
2549 wxString m_chECMWFResolutionChoices[] = {
2550 wxString::Format("0.25%c IFS", 0x00B0),
2551 wxString::Format("0.25%c AIFS", 0x00B0)};
2552 int m_chECMWFResolutionNChoices =
2553 sizeof(m_chECMWFResolutionChoices) / sizeof(wxString);
2554 m_chECMWFResolution =
2555 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2556 m_chECMWFResolutionNChoices, m_chECMWFResolutionChoices, 0);
2557 m_chECMWFResolution->SetSelection(0);
2558 bSizerWorld->Add(m_chECMWFResolution, 0, wxALL, 5);
2559
2560 bSizerWorld->Add(0, 0, 1, wxEXPAND, 5);
2561
2562 m_btnDownloadWorld = new wxButton(m_panelWorld, wxID_ANY, _("Download"),
2563 wxDefaultPosition, wxDefaultSize, 0);
2564 bSizerWorld->Add(m_btnDownloadWorld, 0, wxALL, 5);
2565
2566 bSizerWorldDownload->Add(bSizerWorld, 0, wxEXPAND, 5);
2567
2568 m_panelWorld->SetSizer(bSizerWorldDownload);
2569 m_panelWorld->Layout();
2570 bSizerWorldDownload->Fit(m_panelWorld);
2571}
2572
2573void GribRequestSettingBase::createLocalModelsPanel() {
2574 m_panelLocalModels =
2575 new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2576 wxTAB_TRAVERSAL);
2577 wxBoxSizer* bMainSizer;
2578 bMainSizer = new wxBoxSizer(wxVERTICAL);
2579
2580 wxBoxSizer* bSizerSource;
2581 bSizerSource = new wxBoxSizer(wxHORIZONTAL);
2582
2583 m_SourcesTreeCtrl1 = new wxTreeCtrl(
2584 m_panelLocalModels, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2585 wxTR_DEFAULT_STYLE | wxTR_FULL_ROW_HIGHLIGHT | wxTR_SINGLE);
2586 bSizerSource->Add(m_SourcesTreeCtrl1, 1, wxALL | wxEXPAND, 5);
2587
2588 m_htmlInfoWin =
2589 new wxHtmlWindow(m_panelLocalModels, wxID_ANY, wxDefaultPosition,
2590 wxDefaultSize, wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2591 bSizerSource->Add(m_htmlInfoWin, 1, wxALL | wxEXPAND, 5);
2592
2593 bMainSizer->Add(bSizerSource, 1, wxEXPAND, 5);
2594
2595 m_stLocalDownloadInfo =
2596 new wxStaticText(m_panelLocalModels, wxID_ANY, _("Download grib..."),
2597 wxDefaultPosition, wxDefaultSize, 0);
2598 m_stLocalDownloadInfo->Wrap(-1);
2599 bMainSizer->Add(m_stLocalDownloadInfo, 0, wxALL, 5);
2600
2601 wxBoxSizer* bSizerLocalButtons;
2602 bSizerLocalButtons = new wxBoxSizer(wxHORIZONTAL);
2603
2604 m_buttonUpdateCatalog =
2605 new wxButton(m_panelLocalModels, wxID_ANY, _("Update Catalog"),
2606 wxDefaultPosition, wxDefaultSize, 0);
2607 bSizerLocalButtons->Add(m_buttonUpdateCatalog, 0, wxALL, 5);
2608
2609 bSizerLocalButtons->Add(0, 0, 1, wxEXPAND, 5);
2610
2611 m_btnDownloadLocal = new wxButton(m_panelLocalModels, wxID_ANY, _("Download"),
2612 wxDefaultPosition, wxDefaultSize, 0);
2613 bSizerLocalButtons->Add(m_btnDownloadLocal, 0, wxALL, 5);
2614
2615 bMainSizer->Add(bSizerLocalButtons, 0, wxEXPAND, 5);
2616
2617 m_panelLocalModels->SetSizer(bMainSizer);
2618 m_panelLocalModels->Layout();
2619 bMainSizer->Fit(m_panelLocalModels);
2620}
2621
2622void GribRequestSettingBase::createEmailPanel() {
2623 m_panelEmail = new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2624 wxDefaultSize, wxTAB_TRAVERSAL);
2625
2626 wxFlexGridSizer* fgSizer101;
2627 fgSizer101 = new wxFlexGridSizer(0, 1, 0, 0);
2628 fgSizer101->SetFlexibleDirection(wxBOTH);
2629 fgSizer101->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2630
2631 m_sScrolledDialog = new wxScrolledWindow(
2632 m_panelEmail, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2633 wxHSCROLL | wxTAB_TRAVERSAL | wxVSCROLL);
2634 m_sScrolledDialog->SetScrollRate(0, 5);
2635 m_fgScrollSizer = new wxFlexGridSizer(0, 1, 0, 0);
2636 m_fgScrollSizer->SetFlexibleDirection(wxBOTH);
2637 m_fgScrollSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2638
2639 wxStaticBoxSizer* sbSizer7;
2640 sbSizer7 = new wxStaticBoxSizer(
2641 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Profile")), wxVERTICAL);
2642
2643 wxFlexGridSizer* fgSizer17;
2644 fgSizer17 = new wxFlexGridSizer(0, 1, 0, 0);
2645 fgSizer17->SetFlexibleDirection(wxBOTH);
2646 fgSizer17->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2647
2648 m_pSenderSizer = new wxFlexGridSizer(0, 2, 0, 0);
2649 m_pSenderSizer->AddGrowableCol(1);
2650 m_pSenderSizer->SetFlexibleDirection(wxBOTH);
2651 m_pSenderSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2652
2653 wxStaticText* m_staticText25;
2654 m_staticText25 =
2655 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Sender eMail Address"),
2656 wxDefaultPosition, wxDefaultSize, 0);
2657 m_staticText25->Wrap(-1);
2658 m_pSenderSizer->Add(m_staticText25, 0, wxALL, 5);
2659
2660 m_pSenderAddress = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2661 wxDefaultPosition, wxDefaultSize, 0);
2662 m_pSenderSizer->Add(m_pSenderAddress, 0, wxALL | wxEXPAND, 5);
2663
2664 wxStaticLine* m_staticline4;
2665 m_staticline4 =
2666 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2667 wxDefaultSize, wxLI_HORIZONTAL);
2668 m_pSenderSizer->Add(m_staticline4, 0, wxEXPAND | wxALL, 5);
2669
2670 wxStaticLine* m_staticline5;
2671 m_staticline5 =
2672 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2673 wxDefaultSize, wxLI_HORIZONTAL);
2674 m_pSenderSizer->Add(m_staticline5, 0, wxEXPAND | wxALL, 5);
2675
2676 fgSizer17->Add(m_pSenderSizer, 1, wxEXPAND, 5);
2677
2678 wxFlexGridSizer* fgSizer9;
2679 fgSizer9 = new wxFlexGridSizer(0, 3, 0, 0);
2680 fgSizer9->SetFlexibleDirection(wxBOTH);
2681 fgSizer9->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2682
2683 wxFlexGridSizer* fgSizer33;
2684 fgSizer33 = new wxFlexGridSizer(0, 2, 0, 0);
2685 fgSizer33->SetFlexibleDirection(wxBOTH);
2686 fgSizer33->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2687
2688 wxStaticText* m_staticText15;
2689 m_staticText15 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Mail To "),
2690 wxDefaultPosition, wxDefaultSize, 0);
2691 m_staticText15->Wrap(-1);
2692 fgSizer33->Add(m_staticText15, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, 5);
2693
2694 wxArrayString m_pMailToChoices;
2695 m_pMailTo = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2696 wxDefaultSize, m_pMailToChoices, 0);
2697 m_pMailTo->SetSelection(0);
2698 fgSizer33->Add(m_pMailTo, 0, wxALL, 5);
2699
2700 wxStaticText* m_staticText16;
2701 m_staticText16 =
2702 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Forecast Model "),
2703 wxDefaultPosition, wxDefaultSize, 0);
2704 m_staticText16->Wrap(-1);
2705 fgSizer33->Add(m_staticText16, 0, wxALL | wxEXPAND | wxLEFT | wxRIGHT | wxTOP,
2706 5);
2707
2708 wxArrayString m_pModelChoices;
2709 m_pModel = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2710 wxDefaultSize, m_pModelChoices, 0);
2711 m_pModel->SetSelection(0);
2712 fgSizer33->Add(m_pModel, 0, wxALL, 5);
2713
2714 fgSizer9->Add(fgSizer33, 1, wxEXPAND, 5);
2715
2716 wxFlexGridSizer* fgSizer32;
2717 fgSizer32 = new wxFlexGridSizer(0, 2, 0, 0);
2718 fgSizer32->SetFlexibleDirection(wxBOTH);
2719 fgSizer32->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2720
2721 m_cMovingGribEnabled =
2722 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Moving Grib"),
2723 wxDefaultPosition, wxDefaultSize, 0);
2724 fgSizer32->Add(m_cMovingGribEnabled, 0, wxALL, 5);
2725
2726 m_fgMovingParams = new wxFlexGridSizer(0, 3, 0, 0);
2727 m_fgMovingParams->SetFlexibleDirection(wxBOTH);
2728 m_fgMovingParams->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2729
2730 wxStaticText* m_staticText27;
2731 m_staticText27 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Speed"),
2732 wxDefaultPosition, wxDefaultSize, 0);
2733 m_staticText27->Wrap(-1);
2734 m_fgMovingParams->Add(m_staticText27, 0, wxALL, 5);
2735
2736 m_sMovingSpeed = new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2737 wxDefaultPosition, wxDefaultSize,
2738 wxSP_ARROW_KEYS, 1, 30, 1);
2739 m_fgMovingParams->Add(m_sMovingSpeed, 0, wxALL, 5);
2740
2741 wxStaticText* m_sSpeedUnit;
2742 m_sSpeedUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Kts"),
2743 wxDefaultPosition, wxDefaultSize, 0);
2744 m_sSpeedUnit->Wrap(-1);
2745 m_fgMovingParams->Add(m_sSpeedUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2746 5);
2747
2748 wxStaticText* m_staticText29;
2749 m_staticText29 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Course"),
2750 wxDefaultPosition, wxDefaultSize, 0);
2751 m_staticText29->Wrap(-1);
2752 m_fgMovingParams->Add(m_staticText29, 0, wxALL, 5);
2753
2754 m_sMovingCourse = new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2755 wxDefaultPosition, wxDefaultSize,
2756 wxSP_ARROW_KEYS, 1, 360, 1);
2757 m_fgMovingParams->Add(m_sMovingCourse, 0, wxALL, 5);
2758
2759 m_sCourseUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Deg"),
2760 wxDefaultPosition, wxDefaultSize, 0);
2761 m_sCourseUnit->Wrap(-1);
2762 m_fgMovingParams->Add(m_sCourseUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2763 5);
2764
2765 fgSizer32->Add(m_fgMovingParams, 1, wxEXPAND, 5);
2766
2767 fgSizer9->Add(fgSizer32, 1, wxEXPAND, 5);
2768
2769 m_fgLog = new wxFlexGridSizer(0, 2, 0, 0);
2770 m_fgLog->SetFlexibleDirection(wxBOTH);
2771 m_fgLog->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2772
2773 wxStaticText* m_tLogin;
2774 m_tLogin = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("zyGrib Login"),
2775 wxDefaultPosition, wxDefaultSize, 0);
2776 m_tLogin->Wrap(-1);
2777 m_fgLog->Add(m_tLogin, 0, wxALL, 5);
2778
2779 m_pLogin = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2780 wxDefaultPosition, wxDefaultSize, 0);
2781 m_fgLog->Add(m_pLogin, 0, wxALL, 5);
2782
2783 wxStaticText* m_tCode;
2784 m_tCode = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("zyGrib Code"),
2785 wxDefaultPosition, wxDefaultSize, 0);
2786 m_tCode->Wrap(-1);
2787 m_fgLog->Add(m_tCode, 0, wxALL, 5);
2788
2789 m_pCode = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2790 wxDefaultPosition, wxDefaultSize, 0);
2791 m_fgLog->Add(m_pCode, 0, wxALL, 5);
2792
2793 fgSizer9->Add(m_fgLog, 1, wxEXPAND, 5);
2794
2795 fgSizer17->Add(fgSizer9, 1, wxEXPAND, 10);
2796
2797 wxFlexGridSizer* fgSizer13;
2798 fgSizer13 = new wxFlexGridSizer(0, 9, 0, 0);
2799 fgSizer13->SetFlexibleDirection(wxBOTH);
2800 fgSizer13->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2801
2802 wxStaticText* m_staticText17;
2803 m_staticText17 =
2804 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Resolution"),
2805 wxDefaultPosition, wxDefaultSize, 0);
2806 m_staticText17->Wrap(-1);
2807 fgSizer13->Add(m_staticText17, 0, wxALL, 5);
2808
2809 wxArrayString m_pResolutionChoices;
2810 m_pResolution = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2811 wxDefaultSize, m_pResolutionChoices, 0);
2812 m_pResolution->SetSelection(0);
2813 fgSizer13->Add(m_pResolution, 0, wxALL, 1);
2814
2815 m_tResUnit = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Deg"),
2816 wxDefaultPosition, wxDefaultSize, 0);
2817 m_tResUnit->Wrap(-1);
2818 fgSizer13->Add(m_tResUnit, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2819
2820 wxStaticText* m_staticText18;
2821 m_staticText18 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Interval"),
2822 wxDefaultPosition, wxDefaultSize, 0);
2823 m_staticText18->Wrap(-1);
2824 fgSizer13->Add(m_staticText18, 0, wxALL, 5);
2825
2826 wxArrayString m_pIntervalChoices;
2827 m_pInterval = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2828 wxDefaultSize, m_pIntervalChoices, 0);
2829 m_pInterval->SetSelection(0);
2830 fgSizer13->Add(m_pInterval, 0, wxALL, 1);
2831
2832 wxStaticText* m_staticText20;
2833 m_staticText20 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Hours"),
2834 wxDefaultPosition, wxDefaultSize, 0);
2835 m_staticText20->Wrap(-1);
2836 fgSizer13->Add(m_staticText20, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2837
2838 wxStaticText* m_staticText19;
2839 m_staticText19 =
2840 new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Time Range"),
2841 wxDefaultPosition, wxDefaultSize, 0);
2842 m_staticText19->Wrap(-1);
2843 fgSizer13->Add(m_staticText19, 0, wxALL, 5);
2844
2845 wxArrayString m_pTimeRangeChoices;
2846 m_pTimeRange = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2847 wxDefaultSize, m_pTimeRangeChoices, 0);
2848 m_pTimeRange->SetSelection(0);
2849 fgSizer13->Add(m_pTimeRange, 0, wxALL, 1);
2850
2851 m_staticText21 = new wxStaticText(m_sScrolledDialog, wxID_ANY, _("Days"),
2852 wxDefaultPosition, wxDefaultSize, 0);
2853 m_staticText21->Wrap(-1);
2854 fgSizer13->Add(m_staticText21, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2855
2856 fgSizer17->Add(fgSizer13, 1, wxEXPAND, 5);
2857
2858 sbSizer7->Add(fgSizer17, 1, wxEXPAND, 5);
2859
2860 m_fgScrollSizer->Add(sbSizer7, 1, wxEXPAND, 5);
2861
2862 // wxStaticBoxSizer* sbSizer81 =
2863 // createAreaSelectionSection(m_sScrolledDialog);
2864 // m_fgScrollSizer->Add(sbSizer81, 1, wxEXPAND, 5);
2865
2866 wxStaticBoxSizer* sbSizer8;
2867 sbSizer8 = new wxStaticBoxSizer(
2868 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Data Selection")),
2869 wxVERTICAL);
2870
2871 wxFlexGridSizer* fgSizer10;
2872 fgSizer10 = new wxFlexGridSizer(0, 3, 0, 0);
2873 fgSizer10->SetFlexibleDirection(wxBOTH);
2874 fgSizer10->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2875
2876 m_pWind = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Wind"),
2877 wxDefaultPosition, wxDefaultSize, 0);
2878 fgSizer10->Add(m_pWind, 0, wxALL | wxEXPAND, 5);
2879
2880 m_pPress = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Pressure"),
2881 wxDefaultPosition, wxDefaultSize, 0);
2882 fgSizer10->Add(m_pPress, 0, wxALL | wxEXPAND, 5);
2883
2884 m_pWindGust = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Wind Gust"),
2885 wxDefaultPosition, wxDefaultSize, 0);
2886 fgSizer10->Add(m_pWindGust, 0, wxALL | wxEXPAND, 5);
2887
2888 m_pRainfall = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Rainfall"),
2889 wxDefaultPosition, wxDefaultSize, 0);
2890 fgSizer10->Add(m_pRainfall, 0, wxALL | wxEXPAND, 5);
2891
2892 m_pCloudCover = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Cloud Cover"),
2893 wxDefaultPosition, wxDefaultSize, 0);
2894 fgSizer10->Add(m_pCloudCover, 0, wxALL | wxEXPAND, 5);
2895
2896 m_pAirTemp =
2897 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Air Temperature(2m)"),
2898 wxDefaultPosition, wxDefaultSize, 0);
2899 m_pAirTemp->SetValue(true);
2900 fgSizer10->Add(m_pAirTemp, 0, wxALL | wxEXPAND, 5);
2901
2902 m_pCAPE = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("CAPE"),
2903 wxDefaultPosition, wxDefaultSize, 0);
2904 fgSizer10->Add(m_pCAPE, 0, wxALL | wxEXPAND, 5);
2905
2906 m_pReflectivity =
2907 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Comp. Reflect."),
2908 wxDefaultPosition, wxDefaultSize, 0);
2909 fgSizer10->Add(m_pReflectivity, 0, wxALL | wxEXPAND, 5);
2910
2911 m_pSeaTemp =
2912 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Sea Temperature(surf.)"),
2913 wxDefaultPosition, wxDefaultSize, 0);
2914 fgSizer10->Add(m_pSeaTemp, 0, wxALL | wxEXPAND, 5);
2915
2916 m_pCurrent = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Current"),
2917 wxDefaultPosition, wxDefaultSize, 0);
2918 fgSizer10->Add(m_pCurrent, 0, wxALL | wxEXPAND, 5);
2919
2920 wxFlexGridSizer* fgSizer28;
2921 fgSizer28 = new wxFlexGridSizer(0, 2, 0, 0);
2922 fgSizer28->SetFlexibleDirection(wxBOTH);
2923 fgSizer28->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2924
2925 m_pWaves = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Waves"),
2926 wxDefaultPosition, wxDefaultSize, 0);
2927 fgSizer28->Add(m_pWaves, 0, wxALL, 5);
2928
2929 wxArrayString m_pWModelChoices;
2930 m_pWModel = new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2931 wxDefaultSize, m_pWModelChoices, 0);
2932 m_pWModel->SetSelection(0);
2933 fgSizer28->Add(m_pWModel, 0, wxALL | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 1);
2934
2935 fgSizer10->Add(fgSizer28, 1, wxEXPAND, 5);
2936
2937 wxFlexGridSizer* fgSizer331;
2938 fgSizer331 = new wxFlexGridSizer(0, 2, 0, 0);
2939 fgSizer331->SetFlexibleDirection(wxBOTH);
2940 fgSizer331->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2941
2942 m_pAltitudeData =
2943 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("Geopotential Height"),
2944 wxDefaultPosition, wxDefaultSize, 0);
2945 fgSizer331->Add(m_pAltitudeData, 0, wxALL | wxEXPAND, 5);
2946
2947 fgSizer10->Add(fgSizer331, 1, wxEXPAND, 5);
2948
2949 m_fgAltitudeData = new wxFlexGridSizer(0, 2, 0, 0);
2950 m_fgAltitudeData->SetFlexibleDirection(wxBOTH);
2951 m_fgAltitudeData->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2952
2953 m_p850hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("850 hPa"),
2954 wxDefaultPosition, wxDefaultSize, 0);
2955 m_fgAltitudeData->Add(m_p850hpa, 0,
2956 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2957
2958 m_p700hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("700 hPa"),
2959 wxDefaultPosition, wxDefaultSize, 0);
2960 m_fgAltitudeData->Add(m_p700hpa, 0,
2961 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2962
2963 m_p500hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("500 hPa"),
2964 wxDefaultPosition, wxDefaultSize, 0);
2965 m_fgAltitudeData->Add(m_p500hpa, 0, wxALL | wxEXPAND, 5);
2966
2967 m_p300hpa = new wxCheckBox(m_sScrolledDialog, wxID_ANY, _("300 hPa"),
2968 wxDefaultPosition, wxDefaultSize, 0);
2969 m_fgAltitudeData->Add(m_p300hpa, 0, wxALL | wxEXPAND, 5);
2970
2971 fgSizer10->Add(m_fgAltitudeData, 1, wxEXPAND, 5);
2972
2973 sbSizer8->Add(fgSizer10, 1, wxEXPAND, 5);
2974
2975 m_fgScrollSizer->Add(sbSizer8, 1, wxEXPAND | wxTOP, 5);
2976
2977 wxStaticBoxSizer* sbSizer6;
2978 sbSizer6 = new wxStaticBoxSizer(
2979 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _("Mail")), wxVERTICAL);
2980
2981 wxFlexGridSizer* fgSizer11;
2982 fgSizer11 = new wxFlexGridSizer(0, 1, 0, 0);
2983 fgSizer11->AddGrowableCol(0);
2984 fgSizer11->SetFlexibleDirection(wxBOTH);
2985 fgSizer11->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2986
2987 m_MailImage = new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2988 wxDefaultPosition, wxDefaultSize,
2989 wxTE_MULTILINE | wxTE_READONLY);
2990 fgSizer11->Add(m_MailImage, 0, wxALL | wxEXPAND, 5);
2991
2992 sbSizer6->Add(fgSizer11, 1, wxEXPAND, 5);
2993
2994 m_fgScrollSizer->Add(sbSizer6, 1, wxEXPAND, 5);
2995
2996 m_sScrolledDialog->SetSizer(m_fgScrollSizer);
2997 m_sScrolledDialog->Layout();
2998 m_fgScrollSizer->Fit(m_sScrolledDialog);
2999 fgSizer101->Add(m_sScrolledDialog, 1, 0, 5);
3000
3001 m_fgFixedSizer = new wxFlexGridSizer(0, 3, 0, 0);
3002 m_fgFixedSizer->SetFlexibleDirection(wxBOTH);
3003 m_fgFixedSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
3004
3005 wxStaticText* m_staticText181;
3006 m_staticText181 =
3007 new wxStaticText(m_panelEmail, wxID_ANY, _("Estimated File Size"),
3008 wxDefaultPosition, wxDefaultSize, 0);
3009 m_staticText181->Wrap(-1);
3010 m_fgFixedSizer->Add(m_staticText181, 0, wxALL, 5);
3011
3012 m_tFileSize = new wxStaticText(m_panelEmail, wxID_ANY, wxEmptyString,
3013 wxDefaultPosition, wxDefaultSize, 0);
3014 m_tFileSize->Wrap(-1);
3015 m_fgFixedSizer->Add(m_tFileSize, 0, wxTOP | wxBOTTOM, 5);
3016
3017 m_tLimit = new wxStaticText(m_panelEmail, wxID_ANY, _(" (Max size )"),
3018 wxDefaultPosition, wxDefaultSize, 0);
3019 m_tLimit->Wrap(-1);
3020 m_fgFixedSizer->Add(m_tLimit, 0, wxALL, 5);
3021
3022 fgSizer101->Add(m_fgFixedSizer, 1, wxEXPAND, 5);
3023
3024 wxBoxSizer* buttonSizer = new wxBoxSizer(wxHORIZONTAL);
3025 m_rButtonYes = new wxButton(m_panelEmail, wxID_YES);
3026 m_rButtonYes->SetLabel(_("Send"));
3027 buttonSizer->Add(m_rButtonYes, 0, wxALL, 5);
3028 fgSizer101->Add(buttonSizer, 0, wxEXPAND | wxALL, 5);
3029
3030 m_panelEmail->SetSizer(fgSizer101);
3031 m_panelEmail->Layout();
3032 fgSizer101->Fit(m_panelEmail);
3033}
3034
3035GribRequestSettingBase::GribRequestSettingBase(GRIBUICtrlBarBase* parent,
3036 wxWindowID id,
3037 const wxString& title,
3038 const wxPoint& pos,
3039 const wxSize& size, long style)
3040 : wxDialog(parent, id, title, pos, size, style) {
3041 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
3042
3043 wxBoxSizer* bSizerMain;
3044 bSizerMain = new wxBoxSizer(wxVERTICAL);
3045
3046 m_notebookGetGrib =
3047 new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
3048
3049 // Create "World" tab.
3050 createWorldPanel();
3051 m_notebookGetGrib->AddPage(m_panelWorld, _("World"), true);
3052
3053 // Create "Local models" tab.
3054 createLocalModelsPanel();
3055 m_notebookGetGrib->AddPage(m_panelLocalModels, _("Local models"), false);
3056
3057 // Create "e-mail" tab.
3058 createEmailPanel();
3059 m_notebookGetGrib->AddPage(m_panelEmail, _("e-mail"), false);
3060
3061 // Create XyGrib panel tab
3062 m_xygribPanel =
3063 new XyGribPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
3064 wxDefaultSize, wxTAB_TRAVERSAL);
3065 // Add the XyGrib panel to the download notebook
3066 m_notebookGetGrib->AddPage(m_xygribPanel, _("XyGrib"), false);
3067
3068 // Add area selection panel tab.
3069 wxStaticBoxSizer* sbSizer81 = createAreaSelectionSection(this, parent);
3070 bSizerMain->Add(sbSizer81, 0, wxEXPAND | wxALL, 5);
3071
3072 // Add notebook with the tabs (World, Local Models, e-mail, XyGrib) to the
3073 // main sizer.
3074 bSizerMain->Add(m_notebookGetGrib, 1, wxEXPAND | wxALL, 5);
3075
3076 // Add Save and Cancel buttons.
3077 wxBoxSizer* bottomButtonSizer = new wxBoxSizer(wxHORIZONTAL);
3078 m_rButtonCancel = new wxButton(this, wxID_CANCEL, _("Cancel"));
3079 bottomButtonSizer->Add(m_rButtonCancel, 0, wxALL, 5);
3080
3081 bottomButtonSizer->AddStretchSpacer();
3082
3083 m_rButtonApply = new wxButton(this, wxID_APPLY);
3084 bottomButtonSizer->Add(m_rButtonApply, 0, wxALL, 5);
3085
3086 bSizerMain->Add(bottomButtonSizer, 0, wxEXPAND | wxALL, 5);
3087
3088 this->SetSizer(bSizerMain);
3089 this->Layout();
3090 // this->Fit();
3091 bSizerMain->Fit(this);
3092
3093 this->Centre(wxBOTH);
3094
3095 // Connect Events
3096 this->Connect(wxEVT_CLOSE_WINDOW,
3097 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3098 m_chForecastLength->Connect(
3099 wxEVT_COMMAND_CHOICE_SELECTED,
3100 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3101 nullptr, this);
3102 m_btnDownloadWorld->Connect(
3103 wxEVT_COMMAND_BUTTON_CLICKED,
3104 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload), nullptr,
3105 this);
3106 m_SourcesTreeCtrl1->Connect(
3107 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3108 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3109 nullptr, this);
3110 m_SourcesTreeCtrl1->Connect(
3111 wxEVT_COMMAND_TREE_SEL_CHANGED,
3112 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3113 nullptr, this);
3114 m_buttonUpdateCatalog->Connect(
3115 wxEVT_COMMAND_BUTTON_CLICKED,
3116 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3117 nullptr, this);
3118 m_btnDownloadLocal->Connect(
3119 wxEVT_COMMAND_BUTTON_CLICKED,
3120 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal), nullptr,
3121 this);
3122 m_pMailTo->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3123 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3124 nullptr, this);
3125 m_pModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3126 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3127 nullptr, this);
3128 m_cMovingGribEnabled->Connect(
3129 wxEVT_COMMAND_CHECKBOX_CLICKED,
3130 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick), nullptr,
3131 this);
3132 m_sMovingSpeed->Connect(
3133 wxEVT_COMMAND_SPINCTRL_UPDATED,
3134 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3135 this);
3136 m_sMovingCourse->Connect(
3137 wxEVT_COMMAND_SPINCTRL_UPDATED,
3138 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3139 this);
3140 m_pLogin->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3141 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3142 nullptr, this);
3143 m_pCode->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3144 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3145 nullptr, this);
3146 m_pResolution->Connect(
3147 wxEVT_COMMAND_CHOICE_SELECTED,
3148 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3149 this);
3150 m_pInterval->Connect(
3151 wxEVT_COMMAND_CHOICE_SELECTED,
3152 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3153 this);
3154 m_pTimeRange->Connect(
3155 wxEVT_COMMAND_CHOICE_SELECTED,
3156 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange), nullptr,
3157 this);
3158 m_rbCurrentView->Connect(
3159 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3160 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3161 nullptr, this);
3162 m_rbManualSelect->Connect(
3163 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3164 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3165 nullptr, this);
3166 m_cUseSavedZone->Connect(
3167 wxEVT_COMMAND_CHECKBOX_CLICKED,
3168 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3169 nullptr, this);
3170 m_spMaxLat->Connect(
3171 wxEVT_COMMAND_SPINCTRL_UPDATED,
3172 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3173 this);
3174 m_spMaxLon->Connect(
3175 wxEVT_COMMAND_SPINCTRL_UPDATED,
3176 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3177 this);
3178 m_spMinLat->Connect(
3179 wxEVT_COMMAND_SPINCTRL_UPDATED,
3180 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3181 this);
3182 m_spMinLon->Connect(
3183 wxEVT_COMMAND_SPINCTRL_UPDATED,
3184 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3185 this);
3186 m_pWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3187 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3188 nullptr, this);
3189 m_pPress->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3190 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3191 nullptr, this);
3192 m_pWindGust->Connect(
3193 wxEVT_COMMAND_CHECKBOX_CLICKED,
3194 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3195 this);
3196 m_pRainfall->Connect(
3197 wxEVT_COMMAND_CHECKBOX_CLICKED,
3198 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3199 this);
3200 m_pCloudCover->Connect(
3201 wxEVT_COMMAND_CHECKBOX_CLICKED,
3202 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3203 this);
3204 m_pAirTemp->Connect(
3205 wxEVT_COMMAND_CHECKBOX_CLICKED,
3206 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3207 this);
3208 m_pCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3209 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3210 nullptr, this);
3211 m_pReflectivity->Connect(
3212 wxEVT_COMMAND_CHECKBOX_CLICKED,
3213 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3214 this);
3215 m_pSeaTemp->Connect(
3216 wxEVT_COMMAND_CHECKBOX_CLICKED,
3217 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3218 this);
3219 m_pCurrent->Connect(
3220 wxEVT_COMMAND_CHECKBOX_CLICKED,
3221 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3222 this);
3223 m_pWaves->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3224 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3225 nullptr, this);
3226 m_pWModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3227 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3228 nullptr, this);
3229 m_pAltitudeData->Connect(
3230 wxEVT_COMMAND_CHECKBOX_CLICKED,
3231 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3232 this);
3233 m_p850hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3234 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3235 nullptr, this);
3236 m_p700hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3237 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3238 nullptr, this);
3239 m_p500hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3240 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3241 nullptr, this);
3242 m_p300hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3243 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3244 nullptr, this);
3245 m_rButtonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3246 wxCommandEventHandler(GribRequestSettingBase::OnOK),
3247 nullptr, this);
3248 m_rButtonCancel->Connect(
3249 wxEVT_COMMAND_BUTTON_CLICKED,
3250 wxCommandEventHandler(GribRequestSettingBase::OnCancel), nullptr, this);
3251 m_rButtonYes->Connect(
3252 wxEVT_COMMAND_BUTTON_CLICKED,
3253 wxCommandEventHandler(GribRequestSettingBase::OnSendMaiL), nullptr, this);
3254
3255 // Connect XyGrib related callbacks
3256 m_xygribPanel->m_download_button->Connect(
3257 wxEVT_COMMAND_BUTTON_CLICKED,
3258 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3259 nullptr, this);
3260 m_xygribPanel->m_atmmodel_choice->Connect(
3261 wxEVT_COMMAND_CHOICE_SELECTED,
3262 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3263 nullptr, this);
3264 m_xygribPanel->m_wavemodel_choice->Connect(
3265 wxEVT_COMMAND_CHOICE_SELECTED,
3266 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3267 nullptr, this);
3268 m_xygribPanel->m_wind_cbox->Connect(
3269 wxEVT_COMMAND_CHECKBOX_CLICKED,
3270 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3271 nullptr, this);
3272 m_xygribPanel->m_gust_cbox->Connect(
3273 wxEVT_COMMAND_CHECKBOX_CLICKED,
3274 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3275 nullptr, this);
3276 m_xygribPanel->m_reflectivity_cbox->Connect(
3277 wxEVT_COMMAND_CHECKBOX_CLICKED,
3278 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3279 nullptr, this);
3280 m_xygribPanel->m_precipitation_cbox->Connect(
3281 wxEVT_COMMAND_CHECKBOX_CLICKED,
3282 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3283 nullptr, this);
3284 m_xygribPanel->m_cape_cbox->Connect(
3285 wxEVT_COMMAND_CHECKBOX_CLICKED,
3286 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3287 nullptr, this);
3288 m_xygribPanel->m_pressure_cbox->Connect(
3289 wxEVT_COMMAND_CHECKBOX_CLICKED,
3290 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3291 nullptr, this);
3292 m_xygribPanel->m_cloudcover_cbox->Connect(
3293 wxEVT_COMMAND_CHECKBOX_CLICKED,
3294 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3295 nullptr, this);
3296 m_xygribPanel->m_temperature_cbox->Connect(
3297 wxEVT_COMMAND_CHECKBOX_CLICKED,
3298 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3299 nullptr, this);
3300 m_xygribPanel->m_waveheight_cbox->Connect(
3301 wxEVT_COMMAND_CHECKBOX_CLICKED,
3302 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3303 nullptr, this);
3304 m_xygribPanel->m_windwave_cbox->Connect(
3305 wxEVT_COMMAND_CHECKBOX_CLICKED,
3306 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3307 nullptr, this);
3308 m_xygribPanel->m_resolution_choice->Connect(
3309 wxEVT_COMMAND_CHOICE_SELECTED,
3310 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3311 nullptr, this);
3312 m_xygribPanel->m_duration_choice->Connect(
3313 wxEVT_COMMAND_CHOICE_SELECTED,
3314 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3315 nullptr, this);
3316 m_xygribPanel->m_interval_choice->Connect(
3317 wxEVT_COMMAND_CHOICE_SELECTED,
3318 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3319 nullptr, this);
3320}
3321
3322GribRequestSettingBase::~GribRequestSettingBase() {
3323 // Disconnect Events
3324 this->Disconnect(wxEVT_CLOSE_WINDOW,
3325 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3326 m_chForecastLength->Disconnect(
3327 wxEVT_COMMAND_CHOICE_SELECTED,
3328 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3329 nullptr, this);
3330 m_btnDownloadWorld->Disconnect(
3331 wxEVT_COMMAND_BUTTON_CLICKED,
3332 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload), nullptr,
3333 this);
3334 m_SourcesTreeCtrl1->Disconnect(
3335 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3336 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3337 nullptr, this);
3338 m_SourcesTreeCtrl1->Disconnect(
3339 wxEVT_COMMAND_TREE_SEL_CHANGED,
3340 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3341 nullptr, this);
3342 m_buttonUpdateCatalog->Disconnect(
3343 wxEVT_COMMAND_BUTTON_CLICKED,
3344 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3345 nullptr, this);
3346 m_btnDownloadLocal->Disconnect(
3347 wxEVT_COMMAND_BUTTON_CLICKED,
3348 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal), nullptr,
3349 this);
3350 m_pMailTo->Disconnect(
3351 wxEVT_COMMAND_CHOICE_SELECTED,
3352 wxCommandEventHandler(GribRequestSettingBase::OnTopChange), nullptr,
3353 this);
3354 m_pModel->Disconnect(
3355 wxEVT_COMMAND_CHOICE_SELECTED,
3356 wxCommandEventHandler(GribRequestSettingBase::OnTopChange), nullptr,
3357 this);
3358 m_cMovingGribEnabled->Disconnect(
3359 wxEVT_COMMAND_CHECKBOX_CLICKED,
3360 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick), nullptr,
3361 this);
3362 m_sMovingSpeed->Disconnect(
3363 wxEVT_COMMAND_SPINCTRL_UPDATED,
3364 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3365 this);
3366 m_sMovingCourse->Disconnect(
3367 wxEVT_COMMAND_SPINCTRL_UPDATED,
3368 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange), nullptr,
3369 this);
3370 m_pLogin->Disconnect(
3371 wxEVT_COMMAND_TEXT_UPDATED,
3372 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3373 this);
3374 m_pCode->Disconnect(
3375 wxEVT_COMMAND_TEXT_UPDATED,
3376 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3377 this);
3378 m_pResolution->Disconnect(
3379 wxEVT_COMMAND_CHOICE_SELECTED,
3380 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3381 this);
3382 m_pInterval->Disconnect(
3383 wxEVT_COMMAND_CHOICE_SELECTED,
3384 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3385 this);
3386 m_pTimeRange->Disconnect(
3387 wxEVT_COMMAND_CHOICE_SELECTED,
3388 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange), nullptr,
3389 this);
3390 m_rbCurrentView->Disconnect(
3391 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3392 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3393 nullptr, this);
3394 m_rbManualSelect->Disconnect(
3395 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3396 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3397 nullptr, this);
3398 m_cUseSavedZone->Disconnect(
3399 wxEVT_COMMAND_CHECKBOX_CLICKED,
3400 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3401 nullptr, this);
3402 m_spMaxLat->Disconnect(
3403 wxEVT_COMMAND_SPINCTRL_UPDATED,
3404 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3405 this);
3406 m_spMaxLon->Disconnect(
3407 wxEVT_COMMAND_SPINCTRL_UPDATED,
3408 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3409 this);
3410 m_spMinLat->Disconnect(
3411 wxEVT_COMMAND_SPINCTRL_UPDATED,
3412 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3413 this);
3414 m_spMinLon->Disconnect(
3415 wxEVT_COMMAND_SPINCTRL_UPDATED,
3416 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange), nullptr,
3417 this);
3418 m_pWind->Disconnect(
3419 wxEVT_COMMAND_CHECKBOX_CLICKED,
3420 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3421 this);
3422 m_pPress->Disconnect(
3423 wxEVT_COMMAND_CHECKBOX_CLICKED,
3424 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3425 this);
3426 m_pWindGust->Disconnect(
3427 wxEVT_COMMAND_CHECKBOX_CLICKED,
3428 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3429 this);
3430 m_pRainfall->Disconnect(
3431 wxEVT_COMMAND_CHECKBOX_CLICKED,
3432 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3433 this);
3434 m_pCloudCover->Disconnect(
3435 wxEVT_COMMAND_CHECKBOX_CLICKED,
3436 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3437 this);
3438 m_pAirTemp->Disconnect(
3439 wxEVT_COMMAND_CHECKBOX_CLICKED,
3440 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3441 this);
3442 m_pCAPE->Disconnect(
3443 wxEVT_COMMAND_CHECKBOX_CLICKED,
3444 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3445 this);
3446 m_pReflectivity->Disconnect(
3447 wxEVT_COMMAND_CHECKBOX_CLICKED,
3448 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3449 this);
3450 m_pSeaTemp->Disconnect(
3451 wxEVT_COMMAND_CHECKBOX_CLICKED,
3452 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3453 this);
3454 m_pCurrent->Disconnect(
3455 wxEVT_COMMAND_CHECKBOX_CLICKED,
3456 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3457 this);
3458 m_pWaves->Disconnect(
3459 wxEVT_COMMAND_CHECKBOX_CLICKED,
3460 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3461 this);
3462 m_pWModel->Disconnect(
3463 wxEVT_COMMAND_CHOICE_SELECTED,
3464 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3465 this);
3466 m_pAltitudeData->Disconnect(
3467 wxEVT_COMMAND_CHECKBOX_CLICKED,
3468 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3469 this);
3470 m_p850hpa->Disconnect(
3471 wxEVT_COMMAND_CHECKBOX_CLICKED,
3472 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3473 this);
3474 m_p700hpa->Disconnect(
3475 wxEVT_COMMAND_CHECKBOX_CLICKED,
3476 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3477 this);
3478 m_p500hpa->Disconnect(
3479 wxEVT_COMMAND_CHECKBOX_CLICKED,
3480 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3481 this);
3482 m_p300hpa->Disconnect(
3483 wxEVT_COMMAND_CHECKBOX_CLICKED,
3484 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange), nullptr,
3485 this);
3486 m_rButtonApply->Disconnect(
3487 wxEVT_COMMAND_BUTTON_CLICKED,
3488 wxCommandEventHandler(GribRequestSettingBase::OnOK), nullptr, this);
3489 m_rButtonCancel->Disconnect(
3490 wxEVT_COMMAND_BUTTON_CLICKED,
3491 wxCommandEventHandler(GribRequestSettingBase::OnCancel), nullptr, this);
3492 m_rButtonYes->Disconnect(
3493 wxEVT_COMMAND_BUTTON_CLICKED,
3494 wxCommandEventHandler(GribRequestSettingBase::OnSendMaiL), nullptr, this);
3495
3496 // Disconnect XyGrib related callbacks
3497 m_xygribPanel->m_download_button->Disconnect(
3498 wxEVT_COMMAND_BUTTON_CLICKED,
3499 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3500 nullptr, this);
3501 m_xygribPanel->m_atmmodel_choice->Disconnect(
3502 wxEVT_COMMAND_CHOICE_SELECTED,
3503 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3504 nullptr, this);
3505 m_xygribPanel->m_wavemodel_choice->Disconnect(
3506 wxEVT_COMMAND_CHOICE_SELECTED,
3507 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3508 nullptr, this);
3509 m_xygribPanel->m_wind_cbox->Disconnect(
3510 wxEVT_COMMAND_CHECKBOX_CLICKED,
3511 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3512 nullptr, this);
3513 m_xygribPanel->m_gust_cbox->Disconnect(
3514 wxEVT_COMMAND_CHECKBOX_CLICKED,
3515 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3516 nullptr, this);
3517 m_xygribPanel->m_reflectivity_cbox->Disconnect(
3518 wxEVT_COMMAND_CHECKBOX_CLICKED,
3519 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3520 nullptr, this);
3521 m_xygribPanel->m_precipitation_cbox->Disconnect(
3522 wxEVT_COMMAND_CHECKBOX_CLICKED,
3523 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3524 nullptr, this);
3525 m_xygribPanel->m_cape_cbox->Disconnect(
3526 wxEVT_COMMAND_CHECKBOX_CLICKED,
3527 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3528 nullptr, this);
3529 m_xygribPanel->m_pressure_cbox->Disconnect(
3530 wxEVT_COMMAND_CHECKBOX_CLICKED,
3531 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3532 nullptr, this);
3533 m_xygribPanel->m_cloudcover_cbox->Disconnect(
3534 wxEVT_COMMAND_CHECKBOX_CLICKED,
3535 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3536 nullptr, this);
3537 m_xygribPanel->m_temperature_cbox->Disconnect(
3538 wxEVT_COMMAND_CHECKBOX_CLICKED,
3539 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3540 nullptr, this);
3541 m_xygribPanel->m_waveheight_cbox->Disconnect(
3542 wxEVT_COMMAND_CHECKBOX_CLICKED,
3543 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3544 nullptr, this);
3545 m_xygribPanel->m_windwave_cbox->Disconnect(
3546 wxEVT_COMMAND_CHECKBOX_CLICKED,
3547 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3548 nullptr, this);
3549 m_xygribPanel->m_resolution_choice->Disconnect(
3550 wxEVT_COMMAND_CHOICE_SELECTED,
3551 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3552 nullptr, this);
3553 m_xygribPanel->m_duration_choice->Disconnect(
3554 wxEVT_COMMAND_CHOICE_SELECTED,
3555 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3556 nullptr, this);
3557 m_xygribPanel->m_interval_choice->Disconnect(
3558 wxEVT_COMMAND_CHOICE_SELECTED,
3559 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3560 nullptr, this);
3561}
3562
3563GRIBTableBase::GRIBTableBase(wxWindow* parent, wxWindowID id,
3564 const wxString& title, const wxPoint& pos,
3565 const wxSize& size, long style)
3566 : wxDialog(parent, id, title, pos, size, style) {
3567 this->SetSizeHints(wxSize(-1, -1), wxSize(-1, -1));
3568
3569 wxBoxSizer* bSizer1;
3570 bSizer1 = new wxBoxSizer(wxVERTICAL);
3571
3572 wxFlexGridSizer* fgSizer18;
3573 fgSizer18 = new wxFlexGridSizer(0, 1, 0, 0);
3574 fgSizer18->AddGrowableRow(1);
3575 fgSizer18->SetFlexibleDirection(wxBOTH);
3576 fgSizer18->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3577
3578 wxFlexGridSizer* fgSizer19;
3579 fgSizer19 = new wxFlexGridSizer(0, 2, 0, 0);
3580 fgSizer19->SetFlexibleDirection(wxBOTH);
3581 fgSizer19->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3582
3583 m_pPositionText = new wxStaticText(this, wxID_ANY, _("Data at Position:"),
3584 wxDefaultPosition, wxDefaultSize, 0);
3585 m_pPositionText->Wrap(-1);
3586 fgSizer19->Add(m_pPositionText, 0, wxALL | wxEXPAND, 5);
3587
3588 m_pCursorPosition = new wxStaticText(this, wxID_ANY, wxEmptyString,
3589 wxDefaultPosition, wxDefaultSize, 0);
3590 m_pCursorPosition->Wrap(-1);
3591 fgSizer19->Add(m_pCursorPosition, 0, wxALL | wxEXPAND, 5);
3592
3593 fgSizer18->Add(fgSizer19, 1, wxEXPAND, 10);
3594
3595 wxFlexGridSizer* fgSizer20;
3596 fgSizer20 = new wxFlexGridSizer(0, 1, 0, 0);
3597 fgSizer20->AddGrowableRow(0);
3598 fgSizer20->SetFlexibleDirection(wxBOTH);
3599 fgSizer20->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_ALL);
3600
3601 m_pGribTable = new CustomGrid(this, wxID_ANY, wxDefaultPosition,
3602 wxSize(-1, 50), 0, _T(" "));
3603
3604 // Cell Defaults
3605 m_pGribTable->SetDefaultCellFont(
3606 wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT,
3607 wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString));
3608 m_pGribTable->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_TOP);
3609 fgSizer20->Add(m_pGribTable, 0, wxALL | wxEXPAND, 5);
3610
3611 fgSizer18->Add(fgSizer20, 1, wxEXPAND, 5);
3612
3613 wxStdDialogButtonSizer* m_pButtonTable = new wxStdDialogButtonSizer();
3614 m_pButtonTableOK = new wxButton(this, wxID_OK, _("Close"));
3615 m_pButtonTableOK->SetFont(GetOCPNGUIScaledFont_PlugIn(_("Dialog")));
3616 m_pButtonTable->AddButton(m_pButtonTableOK);
3617 m_pButtonTable->Realize();
3618
3619 fgSizer18->Add(m_pButtonTable, 1, wxEXPAND, 5);
3620
3621 bSizer1->Add(fgSizer18, 1, wxEXPAND, 5);
3622
3623 this->SetSizer(bSizer1);
3624 this->Layout();
3625 bSizer1->Fit(this);
3626
3627 this->Centre(wxBOTH);
3628
3629 // Connect Events
3630 this->Connect(wxEVT_CLOSE_WINDOW,
3631 wxCloseEventHandler(GRIBTableBase::OnClose));
3632 m_pButtonTableOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3633 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3634 nullptr, this);
3635}
3636
3637GRIBTableBase::~GRIBTableBase() {
3638 // Disconnect Events
3639 this->Disconnect(wxEVT_CLOSE_WINDOW,
3640 wxCloseEventHandler(GRIBTableBase::OnClose));
3641 m_pButtonTableOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
3642 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3643 nullptr, this);
3644}
3645
3646ProjectBoatPanel::ProjectBoatPanel(wxWindow* parent, wxWindowID id,
3647 const wxPoint& pos, const wxSize& size,
3648 long style, const wxString& name)
3649 : wxPanel(parent, id, pos, size, style, name) {
3650 SetFont(*OCPNGetFont(_("Dialog")));
3651
3652 SetMinSize(wxSize(-1, GetCharHeight()) * 2);
3653
3654 wxBoxSizer* bSizerProjectBoat = new wxBoxSizer(wxHORIZONTAL);
3655 SetSizer(bSizerProjectBoat);
3656
3657 m_cbProjectPosition = new wxCheckBox(this, wxID_ANY, _("Project position"),
3658 wxDefaultPosition, wxDefaultSize);
3659 bSizerProjectBoat->Add(m_cbProjectPosition, 0,
3660 wxALIGN_CENTER_VERTICAL | wxALL, 5);
3661
3662 m_stCourse = new wxStaticText(this, wxID_ANY, _("Course"), wxDefaultPosition,
3663 wxDefaultSize, 0);
3664 m_stCourse->Wrap(-1);
3665 bSizerProjectBoat->Add(m_stCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3666
3667 m_tCourse = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3668 wxDefaultSize, 0);
3669 bSizerProjectBoat->Add(m_tCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3670
3671 m_stSpeed = new wxStaticText(this, wxID_ANY, _("Speed"), wxDefaultPosition,
3672 wxDefaultSize, 0);
3673 m_stSpeed->Wrap(-1);
3674 bSizerProjectBoat->Add(m_stSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3675
3676 m_tSpeed = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3677 wxDefaultSize, 0);
3678 bSizerProjectBoat->Add(m_tSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3679
3680 m_stSpeedUnit = new wxStaticText(this, wxID_ANY, wxT("kt"), wxDefaultPosition,
3681 wxDefaultSize, 0);
3682 m_stSpeedUnit->Wrap(-1);
3683 bSizerProjectBoat->Add(m_stSpeedUnit, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3684
3685 this->Layout();
3686}
3687
3688ProjectBoatPanel::~ProjectBoatPanel() {}
3689
3690double ProjectBoatPanel::GetCourse() {
3691 double val;
3692 if (m_tCourse->GetValue().ToDouble(&val)) {
3693 return val;
3694 } else {
3695 return 0;
3696 }
3697}
3698double ProjectBoatPanel::GetSpeed() {
3699 double val;
3700 if (m_tSpeed->GetValue().ToDouble(&val)) {
3701 return val;
3702 } else {
3703 return 0;
3704 }
3705}
3706bool ProjectBoatPanel::ProjectionEnabled() {
3707 return m_cbProjectPosition->IsChecked();
3708}
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.