12#include "XyGribPanel.h"
19GRIBUICtrlBarBase::GRIBUICtrlBarBase(wxWindow* parent, wxWindowID
id,
20 const wxString& title,
const wxPoint& pos,
21 const wxSize& size,
long style,
23 : wxDialog(parent, id, title, pos, size, style) {
24 m_ProjectBoatPanel =
nullptr;
25 m_ScaledFactor = scale_factor;
27#ifdef __OCPN__ANDROID__
28 const bool m_bcompact =
true;
30 const bool m_bcompact =
false;
33 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
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);
40 wxBoxSizer* mainBox =
new wxBoxSizer(wxVERTICAL);
41 m_fgCtrlBarSizer->Add(mainBox, 1, wxEXPAND, 0);
43 wxBoxSizer* fgSizer50 =
new wxBoxSizer(wxHORIZONTAL);
44 mainBox->Add(fgSizer50, 0, wxEXPAND, 5);
47 new wxBitmapButton(
this, ID_BTNPREV, wxNullBitmap, wxDefaultPosition,
48 wxDefaultSize, wxBU_AUTODRAW);
49 m_bpPrev->SetToolTip(_(
"Previous"));
51 fgSizer50->Add(m_bpPrev, 0, wxALL, 1);
53 wxArrayString m_cRecordForecastChoices;
54 m_cRecordForecastChoices.Add(_T(
"Item0"));
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);
62 new wxBitmapButton(
this, ID_BTNNEXT, wxNullBitmap, wxDefaultPosition,
63 wxDefaultSize, wxBU_AUTODRAW);
64 m_bpNext->SetToolTip(_(
"Next"));
66 fgSizer50->Add(m_bpNext, 0, wxALL, 1);
68 wxBoxSizer* fgSizer51 =
new wxBoxSizer(wxHORIZONTAL);
69 mainBox->Add(fgSizer51, 0, wxEXPAND, 5);
72 new wxBitmapButton(
this, ID_CTRLALTITUDE, wxNullBitmap,
73 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
74 m_bpAltitude->SetToolTip(_(
"Select geoptential altitude"));
76 fgSizer51->Add(m_bpAltitude, 0, wxALL, 1);
79 new wxBitmapButton(
this, ID_BTNNOW, wxNullBitmap, wxDefaultPosition,
80 wxDefaultSize, wxBU_AUTODRAW);
81 m_bpNow->SetToolTip(_(
"Now"));
83 fgSizer51->Add(m_bpNow, 0, wxALL, 1);
86 new wxBitmapButton(
this, ID_BTNZOOMTC, wxNullBitmap, wxDefaultPosition,
87 wxDefaultSize, wxBU_AUTODRAW);
88 m_bpZoomToCenter->SetToolTip(_(
"Zoom To Center"));
90 fgSizer51->Add(m_bpZoomToCenter, 0, wxALL, 1);
93 new wxBitmapButton(
this, ID_BTNSHOWCDATA, wxNullBitmap,
94 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
95 fgSizer51->Add(m_bpShowCursorData, 0, wxALL, 1);
97 fgSizer51->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
99 new wxBitmapButton(
this, ID_BTNPLAY, wxNullBitmap, wxDefaultPosition,
100 wxDefaultSize, wxBU_AUTODRAW);
101 fgSizer51->Add(m_bpPlay, 0, wxBOTTOM | wxLEFT | wxTOP, 1);
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);
107 fgSizer51->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
109 m_bpOpenFile =
nullptr;
116 new wxBitmapButton(
this, ID_BTNSETTING, wxNullBitmap, wxDefaultPosition,
117 wxDefaultSize, wxBU_AUTODRAW);
118 m_bpSettings->SetToolTip(_(
"Settings"));
120 fgSizer51->Add(m_bpSettings, 0, wxALL, 1);
122 m_bpRequest =
nullptr;
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);
139 mainBox->Add(m_fgCDataSizer, 1, wxEXPAND, 5);
141 m_fgCtrlGrabberSize =
new wxFlexGridSizer(0, 1, 0, 0);
142 m_fgCtrlGrabberSize->SetFlexibleDirection(wxBOTH);
143 m_fgCtrlGrabberSize->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
145 this->SetSizer(m_fgCtrlBarSizer);
147 m_fgCtrlBarSizer->Fit(
this);
149 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
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);
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);
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);
172 new wxBitmapButton(
this, ID_BTNPREV, wxNullBitmap, wxDefaultPosition,
173 wxDefaultSize, wxBU_AUTODRAW);
174 m_bpPrev->SetToolTip(_(
"Previous"));
176 fgSizer50->Add(m_bpPrev, 0, wxALL, 1);
178 wxArrayString m_cRecordForecastChoices;
179 m_cRecordForecastChoices.Add(_T(
"Item0"));
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);
187 new wxBitmapButton(
this, ID_BTNNEXT, wxNullBitmap, wxDefaultPosition,
188 wxDefaultSize, wxBU_AUTODRAW);
189 m_bpNext->SetToolTip(_(
"Next"));
191 fgSizer50->Add(m_bpNext, 0, wxALL, 1);
193 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
196 new wxBitmapButton(
this, ID_CTRLALTITUDE, wxNullBitmap,
197 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
198 m_bpAltitude->SetToolTip(_(
"Select geoptential altitude"));
200 fgSizer50->Add(m_bpAltitude, 0, wxALL, 1);
203 new wxBitmapButton(
this, ID_BTNNOW, wxNullBitmap, wxDefaultPosition,
204 wxDefaultSize, wxBU_AUTODRAW);
205 m_bpNow->SetToolTip(_(
"Now"));
207 fgSizer50->Add(m_bpNow, 0, wxALL, 1);
210 new wxBitmapButton(
this, ID_BTNZOOMTC, wxNullBitmap, wxDefaultPosition,
211 wxDefaultSize, wxBU_AUTODRAW);
212 m_bpZoomToCenter->SetToolTip(_(
"Zoom To Center"));
214 fgSizer50->Add(m_bpZoomToCenter, 0, wxALL, 1);
217 new wxBitmapButton(
this, ID_BTNSHOWCDATA, wxNullBitmap,
218 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
219 fgSizer50->Add(m_bpShowCursorData, 0, wxALL, 1);
221 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
224 new wxBitmapButton(
this, ID_BTNPLAY, wxNullBitmap, wxDefaultPosition,
225 wxDefaultSize, wxBU_AUTODRAW);
226 fgSizer50->Add(m_bpPlay, 0, wxBOTTOM | wxLEFT | wxTOP, 1);
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);
232 fgSizer50->Add(0, 0, 1, wxEXPAND | wxLEFT | wxRIGHT, 1);
235 new wxBitmapButton(
this, ID_BTNOPENFILE, wxNullBitmap,
236 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
237 m_bpOpenFile->SetToolTip(_(
"Open a new file"));
239 fgSizer50->Add(m_bpOpenFile, 0, wxALL, 1);
242 new wxBitmapButton(
this, ID_BTNSETTING, wxNullBitmap, wxDefaultPosition,
243 wxDefaultSize, wxBU_AUTODRAW);
244 m_bpSettings->SetToolTip(_(
"Settings"));
246 fgSizer50->Add(m_bpSettings, 0, wxALL, 1);
249 new wxBitmapButton(
this,
ID_BTNREQUEST, wxNullBitmap, wxDefaultPosition,
250 wxDefaultSize, wxBU_AUTODRAW);
251 fgSizer50->Add(m_bpRequest, 0, wxALL, 1);
254 fgSizer49->Add(m_ProjectBoatPanel, 0, wxEXPAND | wxALL, 1);
256 m_fgCDataSizer =
new wxFlexGridSizer(0, 2, 0, 0);
257 m_fgCDataSizer->SetFlexibleDirection(wxBOTH);
258 m_fgCDataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
260 fgSizer49->Add(m_fgCDataSizer, 0, wxEXPAND, 5);
262 m_fgCtrlGrabberSize =
new wxFlexGridSizer(0, 1, 0, 0);
263 m_fgCtrlGrabberSize->SetFlexibleDirection(wxBOTH);
264 m_fgCtrlGrabberSize->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
266 m_fgCtrlBarSizer->Add(m_fgCtrlGrabberSize, 1, wxEXPAND, 0);
268 this->SetSizer(m_fgCtrlBarSizer);
270 m_fgCtrlBarSizer->Fit(
this);
273 this->Centre(wxBOTH);
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));
307 this->Connect(wxEVT_PAINT, wxPaintEventHandler(GRIBUICtrlBarBase::OnPaint));
309 m_bpPrev->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
310 wxCommandEventHandler(GRIBUICtrlBarBase::OnPrev),
nullptr,
312 m_bpPrev->Connect(wxEVT_RIGHT_DOWN,
313 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
315 m_cRecordForecast->Connect(
316 wxEVT_COMMAND_CHOICE_SELECTED,
317 wxCommandEventHandler(GRIBUICtrlBarBase::OnRecordForecast),
nullptr,
319 m_cRecordForecast->Connect(
320 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
322 m_bpNext->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
323 wxCommandEventHandler(GRIBUICtrlBarBase::OnNext),
nullptr,
325 m_bpNext->Connect(wxEVT_RIGHT_DOWN,
326 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
328 m_bpAltitude->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
329 wxCommandEventHandler(GRIBUICtrlBarBase::OnAltitude),
331 m_bpAltitude->Connect(wxEVT_RIGHT_DOWN,
332 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
334 m_bpNow->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
335 wxCommandEventHandler(GRIBUICtrlBarBase::OnNow),
nullptr,
337 m_bpNow->Connect(wxEVT_RIGHT_DOWN,
338 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
340 m_bpZoomToCenter->Connect(
341 wxEVT_COMMAND_BUTTON_CLICKED,
342 wxCommandEventHandler(GRIBUICtrlBarBase::OnZoomToCenterClick),
nullptr,
344 m_bpZoomToCenter->Connect(
345 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
347 m_bpShowCursorData->Connect(
348 wxEVT_COMMAND_BUTTON_CLICKED,
349 wxCommandEventHandler(GRIBUICtrlBarBase::OnShowCursorData),
nullptr,
351 m_bpShowCursorData->Connect(
352 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
354 m_bpPlay->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
355 wxCommandEventHandler(GRIBUICtrlBarBase::OnPlayStop),
357 m_bpPlay->Connect(wxEVT_RIGHT_DOWN,
358 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
360 m_sTimeline->Connect(wxEVT_RIGHT_DOWN,
361 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
363 m_sTimeline->Connect(wxEVT_SCROLL_TOP,
364 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
366 m_sTimeline->Connect(wxEVT_SCROLL_BOTTOM,
367 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
369 m_sTimeline->Connect(wxEVT_SCROLL_LINEUP,
370 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
372 m_sTimeline->Connect(wxEVT_SCROLL_LINEDOWN,
373 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
375 m_sTimeline->Connect(wxEVT_SCROLL_PAGEUP,
376 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
378 m_sTimeline->Connect(wxEVT_SCROLL_PAGEDOWN,
379 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
381 m_sTimeline->Connect(wxEVT_SCROLL_THUMBTRACK,
382 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
384 m_sTimeline->Connect(wxEVT_SCROLL_THUMBRELEASE,
385 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
387 m_sTimeline->Connect(wxEVT_SCROLL_CHANGED,
388 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
392 m_bpOpenFile->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
393 wxCommandEventHandler(GRIBUICtrlBarBase::OnOpenFile),
395 m_bpOpenFile->Connect(wxEVT_RIGHT_DOWN,
396 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
400#ifdef __OCPN__ANDROID__
401 m_bpSettings->Connect(
402 wxEVT_COMMAND_BUTTON_CLICKED,
403 wxCommandEventHandler(GRIBUICtrlBarBase::OnCompositeDialog),
nullptr,
406 m_bpSettings->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
407 wxCommandEventHandler(GRIBUICtrlBarBase::OnSettings),
409 m_bpSettings->Connect(wxEVT_RIGHT_DOWN,
410 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
415 m_bpRequest->Connect(
416 wxEVT_COMMAND_BUTTON_CLICKED,
417 wxCommandEventHandler(GRIBUICtrlBarBase::OnRequestForecastData),
419 m_bpRequest->Connect(wxEVT_RIGHT_DOWN,
420 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
425GRIBUICtrlBarBase::~GRIBUICtrlBarBase() {
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),
461 m_bpPrev->Disconnect(wxEVT_RIGHT_DOWN,
462 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
464 m_cRecordForecast->Disconnect(
465 wxEVT_COMMAND_CHOICE_SELECTED,
466 wxCommandEventHandler(GRIBUICtrlBarBase::OnRecordForecast),
nullptr,
468 m_cRecordForecast->Disconnect(
469 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
471 m_bpNext->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
472 wxCommandEventHandler(GRIBUICtrlBarBase::OnNext),
474 m_bpNext->Disconnect(wxEVT_RIGHT_DOWN,
475 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
477 m_bpAltitude->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
478 wxCommandEventHandler(GRIBUICtrlBarBase::OnAltitude),
480 m_bpAltitude->Disconnect(wxEVT_RIGHT_DOWN,
481 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
483 m_bpNow->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
484 wxCommandEventHandler(GRIBUICtrlBarBase::OnNow),
nullptr,
486 m_bpNow->Disconnect(wxEVT_RIGHT_DOWN,
487 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
489 m_bpZoomToCenter->Disconnect(
490 wxEVT_COMMAND_BUTTON_CLICKED,
491 wxCommandEventHandler(GRIBUICtrlBarBase::OnZoomToCenterClick),
nullptr,
493 m_bpZoomToCenter->Disconnect(
494 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
496 m_bpShowCursorData->Disconnect(
497 wxEVT_COMMAND_BUTTON_CLICKED,
498 wxCommandEventHandler(GRIBUICtrlBarBase::OnShowCursorData),
nullptr,
500 m_bpShowCursorData->Disconnect(
501 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
503 m_bpPlay->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
504 wxCommandEventHandler(GRIBUICtrlBarBase::OnPlayStop),
506 m_bpPlay->Disconnect(wxEVT_RIGHT_DOWN,
507 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
509 m_sTimeline->Disconnect(wxEVT_RIGHT_DOWN,
510 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
512 m_sTimeline->Disconnect(wxEVT_SCROLL_TOP,
513 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
515 m_sTimeline->Disconnect(wxEVT_SCROLL_BOTTOM,
516 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
518 m_sTimeline->Disconnect(wxEVT_SCROLL_LINEUP,
519 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
521 m_sTimeline->Disconnect(wxEVT_SCROLL_LINEDOWN,
522 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
524 m_sTimeline->Disconnect(wxEVT_SCROLL_PAGEUP,
525 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
527 m_sTimeline->Disconnect(wxEVT_SCROLL_PAGEDOWN,
528 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
530 m_sTimeline->Disconnect(wxEVT_SCROLL_THUMBTRACK,
531 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
533 m_sTimeline->Disconnect(wxEVT_SCROLL_THUMBRELEASE,
534 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
536 m_sTimeline->Disconnect(wxEVT_SCROLL_CHANGED,
537 wxScrollEventHandler(GRIBUICtrlBarBase::OnTimeline),
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),
549 m_bpSettings->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
550 wxCommandEventHandler(GRIBUICtrlBarBase::OnSettings),
552 m_bpSettings->Disconnect(wxEVT_RIGHT_DOWN,
553 wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
557 m_bpRequest->Disconnect(
558 wxEVT_COMMAND_BUTTON_CLICKED,
559 wxCommandEventHandler(GRIBUICtrlBarBase::OnRequestForecastData),
561 m_bpRequest->Disconnect(
562 wxEVT_RIGHT_DOWN, wxMouseEventHandler(GRIBUICtrlBarBase::OnMouseEvent),
567wxBitmap GRIBUICtrlBarBase::GetScaledBitmap(wxBitmap bitmap,
568 const wxString svgFileName,
569 double scale_factor) {
572 int w = bitmap.GetWidth() - margin;
573 int h = bitmap.GetHeight() - margin;
579 wxFileName::GetPathSeparator() + _T(
"grib_pi") +
580 wxFileName::GetPathSeparator() + _T(
"data") +
581 wxFileName::GetPathSeparator();
582 wxString filename = shareLocn + svgFileName + _T(
".svg");
585 if (svgbm.GetWidth() > 0 && svgbm.GetHeight() > 0)
590 wxImage a = bitmap.ConvertToImage();
591 return wxBitmap(a.Scale(w, h), wxIMAGE_QUALITY_HIGH);
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));
603 wxFlexGridSizer* fgSizer57;
604 fgSizer57 =
new wxFlexGridSizer(0, 2, 0, 0);
605 fgSizer57->SetFlexibleDirection(wxBOTH);
606 fgSizer57->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
608 m_fgCdataSizer =
new wxFlexGridSizer(0, 1, 0, 0);
609 m_fgCdataSizer->SetFlexibleDirection(wxBOTH);
610 m_fgCdataSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
612 fgSizer57->Add(m_fgCdataSizer, 1, wxEXPAND, 5);
614 this->SetSizer(fgSizer57);
616 fgSizer57->Fit(
this);
618 this->Centre(wxBOTH);
621GRIBUICDataBase::~GRIBUICDataBase() {}
623CursorDataBase::CursorDataBase(wxWindow* parent, wxWindowID
id,
624 const wxPoint& pos,
const wxSize& size,
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);
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);
637 wxFlexGridSizer* fgSizer43;
638 fgSizer43 =
new wxFlexGridSizer(0, 1, 0, 0);
639 fgSizer43->SetFlexibleDirection(wxBOTH);
640 fgSizer43->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
642 m_fgTrackingControls =
new wxFlexGridSizer(0, 8, 0, 0);
643 m_fgTrackingControls->SetFlexibleDirection(wxBOTH);
644 m_fgTrackingControls->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
646 m_cbWind =
new wxCheckBox(
this, ID_CB_WIND, _(
"Wind"), wxDefaultPosition,
648 m_fgTrackingControls->Add(m_cbWind, 0, wxEXPAND | wxLEFT | wxTOP, 2);
651 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
652 wxSize(70, -1), wxTE_READONLY);
653 m_fgTrackingControls->Add(m_tcWindSpeed, 0, 0, 1);
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);
661 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
662 wxSize(45, -1), wxTE_READONLY);
663 m_fgTrackingControls->Add(m_tcWindDirection, 0, 0, 1);
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);
670 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
671 wxSize(70, -1), wxTE_READONLY);
672 m_fgTrackingControls->Add(m_tcWindGust, 0, 0, 1);
674 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
676 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
678 m_cbPressure =
new wxCheckBox(
this, ID_CB_PRESSURE, _(
"Pressure"),
679 wxDefaultPosition, wxDefaultSize, 0);
680 m_fgTrackingControls->Add(m_cbPressure, 0, wxALL | wxEXPAND, 5);
683 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
684 wxSize(70, -1), wxTE_READONLY);
685 m_tcPressure->SetToolTip(_(
"Mean Sea Level Pressure (MSLP)"));
687 m_fgTrackingControls->Add(m_tcPressure, 0, 0, 1);
689 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
691 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
693 m_cbWave =
new wxCheckBox(
this, ID_CB_WAVES, _(
"Waves"), wxDefaultPosition,
695 m_fgTrackingControls->Add(m_cbWave, 0, wxALL | wxEXPAND, 5);
698 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
699 wxSize(70, -1), wxTE_READONLY);
700 m_tcWaveHeight->SetToolTip(_(
"Significant Wave Height"));
702 m_fgTrackingControls->Add(m_tcWaveHeight, 0, 0, 1);
705 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
706 wxSize(45, -1), wxTE_READONLY);
707 m_tcWavePeriode->SetToolTip(_(
"Waves period"));
709 m_fgTrackingControls->Add(m_tcWavePeriode, 0, 0, 1);
712 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
713 wxSize(45, -1), wxTE_READONLY);
714 m_tcWaveDirection->SetToolTip(_(
"Waves Direction"));
716 m_fgTrackingControls->Add(m_tcWaveDirection, 0, 0, 1);
718 m_cbCurrent =
new wxCheckBox(
this, ID_CB_CURRENT, _(
"Current"),
719 wxDefaultPosition, wxDefaultSize, 0);
720 m_fgTrackingControls->Add(m_cbCurrent, 0, wxALL | wxEXPAND, 5);
722 m_tcCurrentVelocity =
723 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
724 wxSize(70, -1), wxTE_READONLY);
725 m_tcCurrentVelocity->SetToolTip(_(
"Surface Current Speed"));
727 m_fgTrackingControls->Add(m_tcCurrentVelocity, 0, 0, 1);
729 m_tcCurrentDirection =
730 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
731 wxSize(45, -1), wxTE_READONLY);
732 m_tcCurrentDirection->SetToolTip(_(
"Surface Current Direction"));
734 m_fgTrackingControls->Add(m_tcCurrentDirection, 0, 0, 1);
736 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
738 m_cbPrecipitation =
new wxCheckBox(
this, ID_CB_RAINFALL, _(
"Rainfall"),
739 wxDefaultPosition, wxDefaultSize, 0);
740 m_fgTrackingControls->Add(m_cbPrecipitation, 0, wxALL | wxEXPAND, 5);
743 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
744 wxSize(70, -1), wxTE_READONLY);
745 m_tcPrecipitation->SetToolTip(_(
"Cumulative Rainfall per Hour"));
747 m_fgTrackingControls->Add(m_tcPrecipitation, 0, 0, 1);
749 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
751 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
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);
757 m_tcCloud =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
758 wxSize(70, -1), wxTE_READONLY);
759 m_tcCloud->SetToolTip(_(
"Cloud Cover"));
761 m_fgTrackingControls->Add(m_tcCloud, 0, 0, 1);
763 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
765 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
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);
772 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
773 wxSize(70, -1), wxTE_READONLY);
774 m_fgTrackingControls->Add(m_tcAirTemperature, 0, 0, 1);
776 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 1);
778 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
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);
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"));
789 m_fgTrackingControls->Add(m_tcSeaTemperature, 0, 0, 1);
791 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
793 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
795 m_cbCAPE =
new wxCheckBox(
this, ID_CB_CAPE, _(
"CAPE"), wxDefaultPosition,
797 m_fgTrackingControls->Add(m_cbCAPE, 0, wxALL | wxEXPAND, 5);
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"));
803 m_fgTrackingControls->Add(m_tcCAPE, 0, 0, 1);
805 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
807 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
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);
813 m_tcReflC =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxPoint(-1, -1),
814 wxSize(70, -1), wxTE_READONLY);
815 m_tcReflC->SetToolTip(_(
"Composite Reflectivity"));
817 m_fgTrackingControls->Add(m_tcReflC, 0, 0, 1);
819 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
821 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
823 m_cbAltitude =
new wxCheckBox(
this, wxID_ANY, _(
"Altitude"),
824 wxDefaultPosition, wxDefaultSize, 0);
825 m_cbAltitude->SetValue(
true);
826 m_cbAltitude->Enable(
false);
828 m_fgTrackingControls->Add(m_cbAltitude, 0, wxALL | wxEXPAND, 5);
831 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
832 wxSize(-1, -1), wxTE_READONLY);
833 m_tcAltitude->SetMinSize(wxSize(70, -1));
835 m_fgTrackingControls->Add(m_tcAltitude, 0, 0, 5);
837 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
839 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
841 m_cbTemp =
new wxCheckBox(
this, wxID_ANY, _(
"Temp."), wxDefaultPosition,
843 m_cbTemp->SetValue(
true);
844 m_cbTemp->Enable(
false);
846 m_fgTrackingControls->Add(m_cbTemp, 0, wxALL | wxEXPAND, 5);
848 m_tcTemp =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
849 wxDefaultSize, wxTE_READONLY);
850 m_tcTemp->SetMinSize(wxSize(70, -1));
852 m_fgTrackingControls->Add(m_tcTemp, 0, 0, 5);
854 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
856 m_fgTrackingControls->Add(0, 0, 1, wxEXPAND, 5);
858 m_cbRelHumid =
new wxCheckBox(
this, wxID_ANY, _(
"Relat. Hum."),
859 wxDefaultPosition, wxDefaultSize, 0);
860 m_cbRelHumid->SetValue(
true);
861 m_cbRelHumid->Enable(
false);
863 m_fgTrackingControls->Add(m_cbRelHumid, 0, wxALL | wxEXPAND, 5);
866 new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
867 wxDefaultSize, wxTE_READONLY);
868 m_tcRelHumid->SetMinSize(wxSize(70, -1));
870 m_fgTrackingControls->Add(m_tcRelHumid, 0, 0, 5);
872 fgSizer43->Add(m_fgTrackingControls, 1, wxEXPAND, 1);
874 fgSizer30->Add(fgSizer43, 1, wxEXPAND, 5);
876 this->SetSizer(fgSizer30);
878 fgSizer30->Fit(
this);
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),
910 m_stTrackingText->Connect(wxEVT_LEFT_UP,
911 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
913 m_stTrackingText->Connect(wxEVT_MIDDLE_DOWN,
914 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
916 m_stTrackingText->Connect(wxEVT_MIDDLE_UP,
917 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
919 m_stTrackingText->Connect(wxEVT_RIGHT_DOWN,
920 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
922 m_stTrackingText->Connect(wxEVT_RIGHT_UP,
923 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
925 m_stTrackingText->Connect(wxEVT_MOTION,
926 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
928 m_stTrackingText->Connect(wxEVT_LEFT_DCLICK,
929 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
931 m_stTrackingText->Connect(wxEVT_MIDDLE_DCLICK,
932 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
934 m_stTrackingText->Connect(wxEVT_RIGHT_DCLICK,
935 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
937 m_stTrackingText->Connect(wxEVT_LEAVE_WINDOW,
938 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
940 m_stTrackingText->Connect(wxEVT_ENTER_WINDOW,
941 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
943 m_stTrackingText->Connect(wxEVT_MOUSEWHEEL,
944 wxMouseEventHandler(CursorDataBase::OnMouseEvent),
946 m_cbWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
947 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
949 m_cbWind->Connect(wxEVT_RIGHT_DOWN,
950 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
952 m_cbWindGust->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
953 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
955 m_cbWindGust->Connect(wxEVT_RIGHT_DOWN,
956 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
958 m_cbPressure->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
959 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
961 m_cbPressure->Connect(wxEVT_RIGHT_DOWN,
962 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
964 m_cbWave->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
965 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
967 m_cbWave->Connect(wxEVT_RIGHT_DOWN,
968 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
970 m_cbCurrent->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
971 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
973 m_cbCurrent->Connect(wxEVT_RIGHT_DOWN,
974 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
976 m_cbPrecipitation->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
977 wxCommandEventHandler(CursorDataBase::OnCBAny),
979 m_cbPrecipitation->Connect(
980 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
982 m_cbCloud->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
983 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
985 m_cbCloud->Connect(wxEVT_RIGHT_DOWN,
986 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
988 m_cbAirTemperature->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
989 wxCommandEventHandler(CursorDataBase::OnCBAny),
991 m_cbAirTemperature->Connect(
992 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
994 m_cbSeaTemperature->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
995 wxCommandEventHandler(CursorDataBase::OnCBAny),
997 m_cbSeaTemperature->Connect(
998 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1000 m_cbCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1001 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1003 m_cbCAPE->Connect(wxEVT_RIGHT_DOWN,
1004 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1006 m_cbReflC->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1007 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1009 m_cbReflC->Connect(wxEVT_RIGHT_DOWN,
1010 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1014CursorDataBase::~CursorDataBase() {
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),
1045 m_stTrackingText->Disconnect(
1046 wxEVT_LEFT_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
nullptr,
1048 m_stTrackingText->Disconnect(
1049 wxEVT_MIDDLE_DOWN, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1051 m_stTrackingText->Disconnect(
1052 wxEVT_MIDDLE_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1054 m_stTrackingText->Disconnect(
1055 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1057 m_stTrackingText->Disconnect(
1058 wxEVT_RIGHT_UP, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1060 m_stTrackingText->Disconnect(
1061 wxEVT_MOTION, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
nullptr,
1063 m_stTrackingText->Disconnect(
1064 wxEVT_LEFT_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1066 m_stTrackingText->Disconnect(
1067 wxEVT_MIDDLE_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1069 m_stTrackingText->Disconnect(
1070 wxEVT_RIGHT_DCLICK, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1072 m_stTrackingText->Disconnect(
1073 wxEVT_LEAVE_WINDOW, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1075 m_stTrackingText->Disconnect(
1076 wxEVT_ENTER_WINDOW, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1078 m_stTrackingText->Disconnect(
1079 wxEVT_MOUSEWHEEL, wxMouseEventHandler(CursorDataBase::OnMouseEvent),
1081 m_cbWind->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1082 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1084 m_cbWind->Disconnect(wxEVT_RIGHT_DOWN,
1085 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1087 m_cbWindGust->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1088 wxCommandEventHandler(CursorDataBase::OnCBAny),
1090 m_cbWindGust->Disconnect(wxEVT_RIGHT_DOWN,
1091 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1093 m_cbPressure->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1094 wxCommandEventHandler(CursorDataBase::OnCBAny),
1096 m_cbPressure->Disconnect(wxEVT_RIGHT_DOWN,
1097 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1099 m_cbWave->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1100 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1102 m_cbWave->Disconnect(wxEVT_RIGHT_DOWN,
1103 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1105 m_cbCurrent->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1106 wxCommandEventHandler(CursorDataBase::OnCBAny),
1108 m_cbCurrent->Disconnect(wxEVT_RIGHT_DOWN,
1109 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1111 m_cbPrecipitation->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1112 wxCommandEventHandler(CursorDataBase::OnCBAny),
1114 m_cbPrecipitation->Disconnect(
1115 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1117 m_cbCloud->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1118 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1120 m_cbCloud->Disconnect(wxEVT_RIGHT_DOWN,
1121 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1123 m_cbAirTemperature->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1124 wxCommandEventHandler(CursorDataBase::OnCBAny),
1126 m_cbAirTemperature->Disconnect(
1127 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1129 m_cbSeaTemperature->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1130 wxCommandEventHandler(CursorDataBase::OnCBAny),
1132 m_cbSeaTemperature->Disconnect(
1133 wxEVT_RIGHT_DOWN, wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1135 m_cbCAPE->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1136 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1138 m_cbCAPE->Disconnect(wxEVT_RIGHT_DOWN,
1139 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1141 m_cbReflC->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED,
1142 wxCommandEventHandler(CursorDataBase::OnCBAny),
nullptr,
1144 m_cbReflC->Disconnect(wxEVT_RIGHT_DOWN,
1145 wxMouseEventHandler(CursorDataBase::OnMenuCallBack),
1149GribSettingsDialogBase::GribSettingsDialogBase(wxWindow* parent, wxWindowID
id,
1150 const wxString& title,
1152 const wxSize& size,
long style)
1153 : wxDialog(parent, id, title, pos, size, style) {
1154 this->SetSizeHints(wxDefaultSize, wxSize(-1, -1));
1156 wxFlexGridSizer* fgSizer53;
1157 fgSizer53 =
new wxFlexGridSizer(0, 1, 0, 0);
1158 fgSizer53->SetFlexibleDirection(wxBOTH);
1159 fgSizer53->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1162 new wxNotebook(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
1163 wxScrolledWindow* 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);
1174 wxStaticBoxSizer* sbSizer101;
1175 sbSizer101 =
new wxStaticBoxSizer(
1176 new wxStaticBox(m_scSetDataPanel, wxID_ANY, _(
"Data Display Options")),
1179 wxFlexGridSizer* fgSizer15;
1180 fgSizer15 =
new wxFlexGridSizer(0, 3, 0, 0);
1181 fgSizer15->SetFlexibleDirection(wxBOTH);
1182 fgSizer15->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
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));
1197 fgSizer15->Add(m_staticText12, 0, wxALL | wxEXPAND, 5);
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);
1207 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"Barbed Arrows"),
1208 wxDefaultPosition, wxDefaultSize, 0);
1209 fgSizer15->Add(m_cbBarbedArrows, 0, wxBOTTOM | wxTOP, 5);
1211 m_fgBarbedData1 =
new wxFlexGridSizer(0, 1, 0, 0);
1212 m_fgBarbedData1->SetFlexibleDirection(wxBOTH);
1213 m_fgBarbedData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1215 wxString m_cBarbedColoursChoices[] = {_(
"Default Color"),
1216 _(
"Controlled Colors")};
1217 int m_cBarbedColoursNChoices =
1218 sizeof(m_cBarbedColoursChoices) /
sizeof(wxString);
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);
1225 wxFlexGridSizer* fgSizer42;
1226 fgSizer42 =
new wxFlexGridSizer(0, 2, 0, 0);
1227 fgSizer42->SetFlexibleDirection(wxBOTH);
1228 fgSizer42->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1230 wxStaticText* 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);
1238 new wxCheckBox(m_scSetDataPanel, BARBFIXSPACING, _(
"Fixed"),
1239 wxDefaultPosition, wxDefaultSize, 0);
1240 fgSizer42->Add(m_cBarbArrFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1242 fgSizer42->Add(0, 0, 1, wxEXPAND, 5);
1245 new wxCheckBox(m_scSetDataPanel, BARBMINSPACING, _(
"Minimum"),
1246 wxDefaultPosition, wxDefaultSize, 0);
1247 fgSizer42->Add(m_cBarbArrMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1249 m_fgBarbedData1->Add(fgSizer42, 1, wxEXPAND, 0);
1251 fgSizer15->Add(m_fgBarbedData1, 1, wxEXPAND, 0);
1253 m_fgBarbedData2 =
new wxFlexGridSizer(0, 1, 0, 0);
1254 m_fgBarbedData2->SetFlexibleDirection(wxBOTH);
1255 m_fgBarbedData2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
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);
1267 fgSizer15->Add(m_fgBarbedData2, 1, wxEXPAND, 0);
1269 m_cbIsoBars =
new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"IsoBars"),
1270 wxDefaultPosition, wxDefaultSize, 0);
1271 fgSizer15->Add(m_cbIsoBars, 0, wxBOTTOM | wxTOP, 5);
1273 m_fIsoBarSpacing =
new wxFlexGridSizer(0, 2, 0, 0);
1274 m_fIsoBarSpacing->SetFlexibleDirection(wxBOTH);
1275 m_fIsoBarSpacing->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
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);
1287 fgSizer15->Add(m_fIsoBarSpacing, 1, wxALL | wxEXPAND, 0);
1289 m_fIsoBarVisibility =
new wxFlexGridSizer(0, 1, 0, 0);
1290 m_fIsoBarVisibility->SetFlexibleDirection(wxBOTH);
1291 m_fIsoBarVisibility->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
1298 fgSizer15->Add(m_fIsoBarVisibility, 1, wxALL | wxEXPAND, 5);
1300 fgSizer15->Add(0, 0, 1, wxEXPAND, 5);
1302 m_cbAbbrIsoBarsNumbers =
1303 new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"Abbreviated Numbers"),
1304 wxDefaultPosition, wxDefaultSize, 0);
1305 fgSizer15->Add(m_cbAbbrIsoBarsNumbers, 0, wxEXPAND, 5);
1307 fgSizer15->Add(0, 0, 1, wxEXPAND, 5);
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);
1314 m_fgDirArrData1 =
new wxFlexGridSizer(0, 1, 0, 0);
1315 m_fgDirArrData1->SetFlexibleDirection(wxBOTH);
1316 m_fgDirArrData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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,
1329 wxFlexGridSizer* fgSizer43;
1330 fgSizer43 =
new wxFlexGridSizer(0, 2, 0, 0);
1331 fgSizer43->SetFlexibleDirection(wxBOTH);
1332 fgSizer43->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1334 wxStaticText* 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);
1341 m_cDirArrFixSpac =
new wxCheckBox(m_scSetDataPanel, DIRFIXSPACING, _(
"Fixed"),
1342 wxDefaultPosition, wxDefaultSize, 0);
1343 fgSizer43->Add(m_cDirArrFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1345 fgSizer43->Add(0, 0, 1, wxEXPAND, 5);
1348 new wxCheckBox(m_scSetDataPanel, DIRMINSPACING, _(
"Minimum"),
1349 wxDefaultPosition, wxDefaultSize, 0);
1350 fgSizer43->Add(m_cDirArrMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1352 m_fgDirArrData1->Add(fgSizer43, 1, wxEXPAND, 0);
1354 fgSizer15->Add(m_fgDirArrData1, 1, wxEXPAND, 5);
1356 m_fgDirArrData2 =
new wxFlexGridSizer(0, 1, 0, 0);
1357 m_fgDirArrData2->SetFlexibleDirection(wxBOTH);
1358 m_fgDirArrData2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1360 wxString m_cDirectionArrowSizeChoices[] = {_(
"Default 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);
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);
1375 fgSizer15->Add(m_fgDirArrData2, 1, wxEXPAND, 0);
1377 m_cbOverlayMap =
new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"OverlayMap"),
1378 wxDefaultPosition, wxDefaultSize, 0);
1379 fgSizer15->Add(m_cbOverlayMap, 0, wxBOTTOM | wxTOP, 5);
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);
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);
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);
1399 m_cbNumbers =
new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"Numbers"),
1400 wxDefaultPosition, wxDefaultSize, 0);
1401 fgSizer15->Add(m_cbNumbers, 0, wxBOTTOM | wxTOP, 5);
1403 m_fgNumData1 =
new wxFlexGridSizer(0, 2, 0, 0);
1404 m_fgNumData1->SetFlexibleDirection(wxBOTH);
1405 m_fgNumData1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1407 wxStaticText* 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);
1414 m_cNumFixSpac =
new wxCheckBox(m_scSetDataPanel, NUMFIXSPACING, _(
"Fixed"),
1415 wxDefaultPosition, wxDefaultSize, 0);
1416 m_fgNumData1->Add(m_cNumFixSpac, 0, wxLEFT | wxRIGHT | wxTOP, 5);
1418 m_fgNumData1->Add(0, 0, 1, wxEXPAND, 5);
1420 m_cNumMinSpac =
new wxCheckBox(m_scSetDataPanel, NUMMINSPACING, _(
"Minimum"),
1421 wxDefaultPosition, wxDefaultSize, 0);
1422 m_fgNumData1->Add(m_cNumMinSpac, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5);
1424 fgSizer15->Add(m_fgNumData1, 1, wxEXPAND, 0);
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);
1431 m_cbParticles =
new wxCheckBox(m_scSetDataPanel, wxID_ANY, _(
"Particle Map"),
1432 wxDefaultPosition, wxDefaultSize, 0);
1433 fgSizer15->Add(m_cbParticles, 0, wxBOTTOM | wxTOP, 5);
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);
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);
1445 m_sParticleDensity =
1446 new wxSlider(m_scSetDataPanel, wxID_ANY, 5, 1, 10, wxDefaultPosition,
1447 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
1449 fgSizer15->Add(m_sParticleDensity, 0, wxALL | wxEXPAND, 5);
1451 sbSizer101->Add(fgSizer15, 1, wxEXPAND, 5);
1453 m_fgSetDataSizer->Add(sbSizer101, 1, wxEXPAND | wxTOP, 10);
1455 m_fgSetDataSizer->Add(0, 0, 1, wxEXPAND, 5);
1457 wxStaticBoxSizer* sbSizer12;
1458 sbSizer12 =
new wxStaticBoxSizer(
1459 new wxStaticBox(m_scSetDataPanel, wxID_ANY,
1460 _(
"Transparency for all Overlay Maps")),
1463 wxFlexGridSizer* fgSizer34;
1464 fgSizer34 =
new wxFlexGridSizer(0, 2, 0, 0);
1465 fgSizer34->SetFlexibleDirection(wxBOTH);
1466 fgSizer34->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
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));
1479 fgSizer34->Add(m_sTransparency, 0, wxALL | wxEXPAND, 5);
1481 sbSizer12->Add(fgSizer34, 1, wxEXPAND | wxLEFT, 5);
1483 m_fgSetDataSizer->Add(sbSizer12, 1, wxEXPAND | wxTOP, 10);
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);
1499 wxStaticBoxSizer* sbSizer121;
1500 sbSizer121 =
new wxStaticBoxSizer(
1501 new wxStaticBox(m_scSetPlaybackPanel, wxID_ANY, _(
"Playback Options")),
1504 wxFlexGridSizer* fgSizer48;
1505 fgSizer48 =
new wxFlexGridSizer(0, 1, 0, 0);
1506 fgSizer48->SetFlexibleDirection(wxBOTH);
1507 fgSizer48->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1509 wxStaticText* 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);
1516 wxFlexGridSizer* fgSizer480;
1517 fgSizer480 =
new wxFlexGridSizer(0, 4, 0, 0);
1518 fgSizer480->SetFlexibleDirection(wxBOTH);
1519 fgSizer480->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1521 fgSizer480->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
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);
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);
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);
1540 fgSizer48->Add(fgSizer480, 0, wxALL | wxEXPAND, 5);
1542 m_cLoopMode =
new wxCheckBox(m_scSetPlaybackPanel, wxID_ANY, _(
"Loop Mode"),
1543 wxDefaultPosition, wxDefaultSize, 0);
1544 fgSizer48->Add(m_cLoopMode, 0, wxALL, 5);
1546 wxFlexGridSizer* fgSizer481;
1547 fgSizer481 =
new wxFlexGridSizer(0, 3, 0, 0);
1548 fgSizer481->SetFlexibleDirection(wxBOTH);
1549 fgSizer481->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1551 fgSizer481->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
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);
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);
1569 fgSizer48->Add(fgSizer481, 0, wxALL, 5);
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);
1576 wxFlexGridSizer* fgSizer482;
1577 fgSizer482 =
new wxFlexGridSizer(0, 3, 0, 0);
1578 fgSizer482->SetFlexibleDirection(wxBOTH);
1579 fgSizer482->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1581 fgSizer482->Add(0, 0, 1, wxLEFT | wxRIGHT, 15);
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);
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);
1596 fgSizer48->Add(fgSizer482, 0, wxALL | wxEXPAND, 5);
1598 sbSizer121->Add(fgSizer48, 1, wxEXPAND | wxALL, 5);
1600 m_fgSetPlaybackSizer->Add(sbSizer121, 1, wxEXPAND | wxTOP, 10);
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;
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);
1616 wxStaticBoxSizer* sbSizer9;
1617 sbSizer9 =
new wxStaticBoxSizer(
1618 new wxStaticBox(m_scSetGuiPanel, wxID_ANY, _(
"Dialogs Style")),
1621 wxFlexGridSizer* fgSizer47;
1622 fgSizer47 =
new wxFlexGridSizer(0, 1, 0, 0);
1623 fgSizer47->SetFlexibleDirection(wxBOTH);
1624 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
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);
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);
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);
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);
1652 sbSizer9->Add(fgSizer47, 1, wxEXPAND, 5);
1654 m_fgSetGuiSizer->Add(sbSizer9, 1, wxEXPAND | wxTOP, 10);
1656 m_fgSetGuiSizer->Add(0, 0, 1, wxALL, 5);
1658 wxStaticBoxSizer* sbSizer10;
1659 sbSizer10 =
new wxStaticBoxSizer(
1660 new wxStaticBox(m_scSetGuiPanel, wxID_ANY, _(
"Buttons Visibility")),
1663 wxFlexGridSizer* fgSizer52;
1664 fgSizer52 =
new wxFlexGridSizer(0, 4, 0, 0);
1665 fgSizer52->SetFlexibleDirection(wxBOTH);
1666 fgSizer52->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
1668 fgSizer52->Add(0, 0, 1, wxEXPAND, 5);
1670 fgSizer52->Add(0, 0, 1, wxEXPAND, 5);
1672 wxStaticText* 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);
1679 wxStaticText* 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);
1686 m_biAltitude =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1687 wxDefaultPosition, wxDefaultSize, 0);
1688 fgSizer52->Add(m_biAltitude, 0, wxALL, 2);
1690 wxStaticText* 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);
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);
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);
1707 m_biNow =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1708 wxDefaultPosition, wxDefaultSize, 0);
1709 fgSizer52->Add(m_biNow, 0, wxALL, 3);
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);
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);
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);
1727 m_biZoomToCenter =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1728 wxDefaultPosition, wxDefaultSize, 0);
1729 fgSizer52->Add(m_biZoomToCenter, 0, wxALL, 3);
1731 wxStaticText* 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);
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);
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);
1748 m_biShowCursorData =
1749 new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1750 wxDefaultPosition, wxDefaultSize, 0);
1751 fgSizer52->Add(m_biShowCursorData, 0, wxALL, 3);
1753 wxStaticText* 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);
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);
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);
1770 m_biPlay =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1771 wxDefaultPosition, wxDefaultSize, 0);
1772 fgSizer52->Add(m_biPlay, 0, wxALL, 3);
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);
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);
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);
1790 m_biTimeSlider =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1791 wxDefaultPosition, wxDefaultSize, 0);
1792 fgSizer52->Add(m_biTimeSlider, 0, wxALL, 3);
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);
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);
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);
1810 m_biOpenFile =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1811 wxDefaultPosition, wxDefaultSize, 0);
1812 fgSizer52->Add(m_biOpenFile, 0, wxALL, 3);
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);
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);
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);
1830 m_biSettings =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1831 wxDefaultPosition, wxDefaultSize, 0);
1832 fgSizer52->Add(m_biSettings, 0, wxALL, 3);
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);
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);
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);
1850 m_biRequest =
new wxStaticBitmap(m_scSetGuiPanel, wxID_ANY, wxNullBitmap,
1851 wxDefaultPosition, wxDefaultSize, 0);
1852 fgSizer52->Add(m_biRequest, 0, wxALL, 3);
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);
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);
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);
1870 sbSizer10->Add(fgSizer52, 1, wxEXPAND, 5);
1872 m_fgSetGuiSizer->Add(sbSizer10, 1, wxEXPAND | wxTOP, 5);
1874 m_scSetGuiPanel->SetSizer(m_fgSetGuiSizer);
1875 m_scSetGuiPanel->Layout();
1876 m_fgSetGuiSizer->Fit(m_scSetGuiPanel);
1877 m_nSettingsBook->AddPage(m_scSetGuiPanel, _(
"GUI"),
true);
1879 fgSizer53->Add(m_nSettingsBook, 1, wxEXPAND | wxALL, 5);
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();
1890 fgSizer53->Add(m_sButton, 1, wxEXPAND, 5);
1892 this->SetSizer(fgSizer53);
1894 fgSizer53->Fit(
this);
1896 this->Centre(wxBOTH);
1899 m_nSettingsBook->Connect(
1900 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED,
1901 wxNotebookEventHandler(GribSettingsDialogBase::OnPageChange),
nullptr,
1903 m_cDataType->Connect(
1904 wxEVT_COMMAND_CHOICE_SELECTED,
1905 wxCommandEventHandler(GribSettingsDialogBase::OnDataTypeChoice),
nullptr,
1907 m_cDataUnits->Connect(
1908 wxEVT_COMMAND_CHOICE_SELECTED,
1909 wxCommandEventHandler(GribSettingsDialogBase::OnUnitChange),
nullptr,
1911 m_cBarbArrFixSpac->Connect(
1912 wxEVT_COMMAND_CHECKBOX_CLICKED,
1913 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1915 m_cBarbArrMinSpac->Connect(
1916 wxEVT_COMMAND_CHECKBOX_CLICKED,
1917 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1919 m_cDirArrFixSpac->Connect(
1920 wxEVT_COMMAND_CHECKBOX_CLICKED,
1921 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1923 m_cDirArrMinSpac->Connect(
1924 wxEVT_COMMAND_CHECKBOX_CLICKED,
1925 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1927 m_cNumFixSpac->Connect(
1928 wxEVT_COMMAND_CHECKBOX_CLICKED,
1929 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1931 m_cNumMinSpac->Connect(
1932 wxEVT_COMMAND_CHECKBOX_CLICKED,
1933 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
1935 m_sTransparency->Connect(
1937 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1939 m_sTransparency->Connect(
1940 wxEVT_SCROLL_BOTTOM,
1941 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1943 m_sTransparency->Connect(
1944 wxEVT_SCROLL_LINEUP,
1945 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1947 m_sTransparency->Connect(
1948 wxEVT_SCROLL_LINEDOWN,
1949 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1951 m_sTransparency->Connect(
1952 wxEVT_SCROLL_PAGEUP,
1953 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1955 m_sTransparency->Connect(
1956 wxEVT_SCROLL_PAGEDOWN,
1957 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1959 m_sTransparency->Connect(
1960 wxEVT_SCROLL_THUMBTRACK,
1961 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1963 m_sTransparency->Connect(
1964 wxEVT_SCROLL_THUMBRELEASE,
1965 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1967 m_sTransparency->Connect(
1968 wxEVT_SCROLL_CHANGED,
1969 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
1971 m_cLoopMode->Connect(
1972 wxEVT_COMMAND_CHECKBOX_CLICKED,
1973 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
1975 m_cInterpolate->Connect(
1976 wxEVT_COMMAND_CHECKBOX_CLICKED,
1977 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
1979 m_rbCurDataAttaWCap->Connect(
1980 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1981 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1983 m_rbCurDataAttaWoCap->Connect(
1984 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1985 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1987 m_rbCurDataIsolHoriz->Connect(
1988 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1989 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1991 m_rbCurDataIsolVertic->Connect(
1992 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
1993 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
1995 m_sButtonApply->Connect(
1996 wxEVT_COMMAND_BUTTON_CLICKED,
1997 wxCommandEventHandler(GribSettingsDialogBase::OnApply),
nullptr,
this);
2000GribSettingsDialogBase::~GribSettingsDialogBase() {
2002 m_nSettingsBook->Disconnect(
2003 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED,
2004 wxNotebookEventHandler(GribSettingsDialogBase::OnPageChange),
nullptr,
2006 m_cDataType->Disconnect(
2007 wxEVT_COMMAND_CHOICE_SELECTED,
2008 wxCommandEventHandler(GribSettingsDialogBase::OnDataTypeChoice),
nullptr,
2010 m_cDataUnits->Disconnect(
2011 wxEVT_COMMAND_CHOICE_SELECTED,
2012 wxCommandEventHandler(GribSettingsDialogBase::OnUnitChange),
nullptr,
2015 wxEVT_COMMAND_CHECKBOX_CLICKED,
2016 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2018 m_cBarbArrMinSpac->Disconnect(
2019 wxEVT_COMMAND_CHECKBOX_CLICKED,
2020 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2022 m_cDirArrFixSpac->Disconnect(
2023 wxEVT_COMMAND_CHECKBOX_CLICKED,
2024 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2026 m_cDirArrMinSpac->Disconnect(
2027 wxEVT_COMMAND_CHECKBOX_CLICKED,
2028 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2030 m_cNumFixSpac->Disconnect(
2031 wxEVT_COMMAND_CHECKBOX_CLICKED,
2032 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2034 m_cNumMinSpac->Disconnect(
2035 wxEVT_COMMAND_CHECKBOX_CLICKED,
2036 wxCommandEventHandler(GribSettingsDialogBase::OnSpacingModeChange),
2038 m_sTransparency->Disconnect(
2040 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2042 m_sTransparency->Disconnect(
2043 wxEVT_SCROLL_BOTTOM,
2044 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2046 m_sTransparency->Disconnect(
2047 wxEVT_SCROLL_LINEUP,
2048 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2050 m_sTransparency->Disconnect(
2051 wxEVT_SCROLL_LINEDOWN,
2052 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2054 m_sTransparency->Disconnect(
2055 wxEVT_SCROLL_PAGEUP,
2056 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2058 m_sTransparency->Disconnect(
2059 wxEVT_SCROLL_PAGEDOWN,
2060 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2062 m_sTransparency->Disconnect(
2063 wxEVT_SCROLL_THUMBTRACK,
2064 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2066 m_sTransparency->Disconnect(
2067 wxEVT_SCROLL_THUMBRELEASE,
2068 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2070 m_sTransparency->Disconnect(
2071 wxEVT_SCROLL_CHANGED,
2072 wxScrollEventHandler(GribSettingsDialogBase::OnTransparencyChange),
2074 m_cLoopMode->Disconnect(
2075 wxEVT_COMMAND_CHECKBOX_CLICKED,
2076 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
2078 m_cInterpolate->Disconnect(
2079 wxEVT_COMMAND_CHECKBOX_CLICKED,
2080 wxCommandEventHandler(GribSettingsDialogBase::OnIntepolateChange),
2082 m_rbCurDataAttaWCap->Disconnect(
2083 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2084 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2086 m_rbCurDataAttaWoCap->Disconnect(
2087 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2088 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2090 m_rbCurDataIsolHoriz->Disconnect(
2091 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2092 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2094 m_rbCurDataIsolVertic->Disconnect(
2095 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
2096 wxCommandEventHandler(GribSettingsDialogBase::OnCtrlandDataStyleChanged),
2098 m_sButtonApply->Disconnect(
2099 wxEVT_COMMAND_BUTTON_CLICKED,
2100 wxCommandEventHandler(GribSettingsDialogBase::OnApply),
nullptr,
this);
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);
2110 wxBoxSizer* itemBoxSizerMainPanel =
new wxBoxSizer(wxVERTICAL);
2111 SetSizer(itemBoxSizerMainPanel);
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);
2118 wxBoxSizer* bSizerPrefsMain =
new wxBoxSizer(wxVERTICAL);
2119 scrollWin->SetSizer(bSizerPrefsMain);
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");
2134 m_sdbSizer2->AddButton(help_btn);
2136 m_sdbSizer2->Realize();
2138 itemBoxSizerMainPanel->Add(m_sdbSizer2, 0, wxEXPAND, 5);
2140 wxStaticBoxSizer* sbSizer9;
2141 sbSizer9 =
new wxStaticBoxSizer(
2142 new wxStaticBox(scrollWin, wxID_ANY, _(
"General Options")), wxVERTICAL);
2144 wxFlexGridSizer* fgSizer46;
2145 fgSizer46 =
new wxFlexGridSizer(0, 1, 0, 0);
2146 fgSizer46->SetFlexibleDirection(wxBOTH);
2147 fgSizer46->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2150 new wxCheckBox(scrollWin, wxID_ANY, _(
"Use High Definition Graphics"),
2151 wxDefaultPosition, wxDefaultSize, 0);
2152 fgSizer46->Add(m_cbUseHiDef, 0, wxALL, 5);
2154 m_cbUseGradualColors =
2155 new wxCheckBox(scrollWin, wxID_ANY, _(
"Use Gradual Colors"),
2156 wxDefaultPosition, wxDefaultSize, 0);
2157 fgSizer46->Add(m_cbUseGradualColors, 0, wxALL, 5);
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);
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);
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);
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);
2179 sbSizer9->Add(fgSizer46, 1, wxEXPAND, 5);
2181 bSizerPrefsMain->Add(sbSizer9, 1, wxEXPAND, 5);
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);
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);
2195 wxString m_rbStartOptionsChoices[] = {
2196 _(
"Start at the first forecast in GRIB file"),
2197 _(
"Start at the nearest forecast to current time"),
2198 _(
"Authorize Interpolation to start at current time")};
2199 int m_rbStartOptionsNChoices =
2200 sizeof(m_rbStartOptionsChoices) /
sizeof(wxString);
2201 m_rbStartOptions =
new wxRadioBox(
2202 scrollWin, wxID_ANY, _(
"Start Options"), wxDefaultPosition, wxDefaultSize,
2203 m_rbStartOptionsNChoices, m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2204 m_rbStartOptions->SetSelection(0);
2205 bSizerPrefsMain->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2208 wxFlexGridSizer* fgSizer47;
2209 fgSizer47 =
new wxFlexGridSizer(0, 2, 0, 0);
2210 fgSizer47->SetFlexibleDirection(wxBOTH);
2211 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2212 wxStaticText* text =
2213 new wxStaticText(scrollWin, wxID_ANY, _(
"Icons Size Factor"),
2214 wxDefaultPosition, wxDefaultSize);
2215 fgSizer47->Add(text, 0, wxALL | wxEXPAND, 5);
2217 new wxSlider(scrollWin, wxID_ANY, 0, -8, 8, wxDefaultPosition,
2218 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
2219 fgSizer47->Add(m_sIconSizeFactor, 0, wxALL | wxEXPAND, 5);
2220 bSizerPrefsMain->Add(fgSizer47, 0, wxALL | wxEXPAND, 5);
2223 wxButton* SetSaveButton =
2224 new wxButton(scrollWin, wxID_ANY, _(
"Select GRIB download directory"));
2225 bSizerPrefsMain->Add(SetSaveButton, 0, wxALL | wxEXPAND, 5);
2226 SetSaveButton->Connect(
2227 wxEVT_COMMAND_BUTTON_CLICKED,
2228 wxCommandEventHandler(GribPreferencesDialogBase::OnDirSelClick),
nullptr,
2235 m_rbStartOptions->Connect(
2236 wxEVT_COMMAND_RADIOBOX_SELECTED,
2237 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2239 m_sdbSizer2OK->Connect(
2240 wxEVT_COMMAND_BUTTON_CLICKED,
2241 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick),
nullptr,
2246GribPreferencesDialogBase::GribPreferencesDialogBase(
2247 wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
2248 const wxSize& size,
long style)
2249 : wxDialog(parent, id, title, pos, size, style) {
2250 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2252 wxBoxSizer* topSizer =
new wxBoxSizer(wxVERTICAL);
2255 wxBoxSizer* labelSizer =
new wxBoxSizer(wxHORIZONTAL);
2256 topSizer->Add(labelSizer, 0, wxEXPAND, 5);
2258 wxStaticText* labelBox =
2259 new wxStaticText(
this, wxID_ANY, _(
"GRIB PlugIn Preferences"),
2260 wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
2261 labelSizer->Add(labelBox, 1, wxEXPAND, 0);
2263 wxScrolledWindow* itemScrollWin =
new wxScrolledWindow(
2264 this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxVSCROLL);
2265 topSizer->Add(itemScrollWin, 1, wxEXPAND | wxALL, 0);
2266 itemScrollWin->SetScrollRate(2, 2);
2268 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
2269 itemScrollWin->SetSizer(itemBoxSizer2);
2271 wxStaticBoxSizer* sbSizer9;
2272 sbSizer9 =
new wxStaticBoxSizer(
2273 new wxStaticBox(itemScrollWin, wxID_ANY, _(
"General Options")),
2275 itemBoxSizer2->Add(sbSizer9, 1, wxEXPAND, 5);
2278 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Use High Definition Graphics"),
2279 wxDefaultPosition, wxDefaultSize, 0);
2280 sbSizer9->Add(m_cbUseHiDef, 0, wxALL, 5);
2282 m_cbUseGradualColors =
2283 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Use Gradual Colors"),
2284 wxDefaultPosition, wxDefaultSize, 0);
2285 sbSizer9->Add(m_cbUseGradualColors, 0, wxALL, 5);
2287 m_cbCopyFirstCumulativeRecord =
new wxCheckBox(
2288 itemScrollWin, wxID_ANY, _(
"Copy First Cumulative Missing Record"),
2289 wxDefaultPosition, wxDefaultSize, 0);
2290 sbSizer9->Add(m_cbCopyFirstCumulativeRecord, 0, wxALL, 5);
2292 m_cbCopyMissingWaveRecord =
2293 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Copy Missing Wave Records"),
2294 wxDefaultPosition, wxDefaultSize, 0);
2295 sbSizer9->Add(m_cbCopyMissingWaveRecord, 0, wxALL, 5);
2297 m_cbDrawBarbedArrowHead =
2298 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Draw Barbed Arrows Head"),
2299 wxDefaultPosition, wxDefaultSize, 0);
2300 sbSizer9->Add(m_cbDrawBarbedArrowHead, 0, wxALL, 5);
2302 m_cZoomToCenterAtInit =
new wxCheckBox(itemScrollWin, wxID_ANY,
2303 _(
"Zoom to file center when opened"),
2304 wxDefaultPosition, wxDefaultSize, 0);
2305 sbSizer9->Add(m_cZoomToCenterAtInit, 0, wxALL, 5);
2307 wxString m_rbLoadOptionsChoices[] = {
2308 _(
"Load the More Recent File in Directory"),
2309 _(
"Load the Last Opened File")};
2310 int m_rbLoadOptionsNChoices =
2311 sizeof(m_rbLoadOptionsChoices) /
sizeof(wxString);
2313 new wxRadioBox(itemScrollWin, wxID_ANY, _(
"Load File Options"),
2314 wxDefaultPosition, wxDefaultSize, m_rbLoadOptionsNChoices,
2315 m_rbLoadOptionsChoices, 1, wxRA_SPECIFY_COLS);
2316 m_rbLoadOptions->SetSelection(0);
2317 sbSizer9->Add(m_rbLoadOptions, 0, wxALL | wxEXPAND, 5);
2319 wxString m_rbStartOptionsChoices[] = {
2320 _(
"Start at the first forecast in GRIB file"),
2321 _(
"Start at the nearest forecast to current time"),
2322 _(
"Authorize Interpolation to start at current time")};
2323 int m_rbStartOptionsNChoices =
2324 sizeof(m_rbStartOptionsChoices) /
sizeof(wxString);
2326 new wxRadioBox(itemScrollWin, wxID_ANY, _(
"Start Options"),
2327 wxDefaultPosition, wxDefaultSize, m_rbStartOptionsNChoices,
2328 m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2329 m_rbStartOptions->SetSelection(0);
2330 sbSizer9->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2332 wxBoxSizer* m_sdbButtonSizer =
new wxBoxSizer(wxHORIZONTAL);
2333 topSizer->Add(m_sdbButtonSizer, 0, wxEXPAND, 5);
2335 wxButton* m_sdbButtonSizerOK =
new wxButton(
this, wxID_OK);
2336 m_sdbButtonSizer->Add(m_sdbButtonSizerOK, 0, wxALL | wxALIGN_RIGHT, 15);
2338 wxButton* m_sdbButtonSizerCancel =
new wxButton(
this, wxID_CANCEL);
2339 m_sdbButtonSizer->Add(m_sdbButtonSizerCancel, 0, wxALL | wxALIGN_RIGHT, 15);
2342 m_rbStartOptions->Connect(
2343 wxEVT_COMMAND_RADIOBOX_SELECTED,
2344 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2346 m_sdbButtonSizerOK->Connect(
2347 wxEVT_COMMAND_BUTTON_CLICKED,
2348 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick),
nullptr,
2354GribPreferencesDialogBase::~GribPreferencesDialogBase() {
2356 m_rbStartOptions->Disconnect(
2357 wxEVT_COMMAND_RADIOBOX_SELECTED,
2358 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2362void GribPreferencesDialogBase::OnDirSelClick(wxCommandEvent& event) {
2365 this, &dir_spec, _(
"Choose GRIB File Directory"), m_grib_dir_sel);
2367 if (response == wxID_OK) {
2368 m_grib_dir_sel = dir_spec;
2372wxStaticBoxSizer* GribRequestSettingBase::createAreaSelectionSection(
2374 wxStaticBoxSizer* sbSizer81;
2375 sbSizer81 =
new wxStaticBoxSizer(
2376 new wxStaticBox(parent, wxID_ANY, _(
"Area Selection")), wxVERTICAL);
2378 wxFlexGridSizer* fgSizer36;
2379 fgSizer36 =
new wxFlexGridSizer(0, 2, 0, 0);
2380 fgSizer36->SetFlexibleDirection(wxBOTH);
2381 fgSizer36->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2383 wxFlexGridSizer* fgSizer37;
2384 fgSizer37 =
new wxFlexGridSizer(0, 1, 0, 0);
2385 fgSizer37->SetFlexibleDirection(wxBOTH);
2386 fgSizer37->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2388 wxBoxSizer* zoneSelBoxSizer =
new wxBoxSizer(wxVERTICAL);
2390 new wxRadioButton(parent,
AUTOSELECT, _(
"Current View"),
2391 wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
2393 wxDefaultPosition, wxDefaultSize);
2398 fgSizer37->Add(zoneSelBoxSizer, 0, wxLEFT | wxBOTTOM, 5);
2400 m_bpManualSelection =
2402 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
2403 m_bpManualSelection->SetBitmapLabel(GRIBUICtrlBarBase::GetScaledBitmap(
2404 wxBitmap(selzone), _T(
"selzone"), ctrlBar->GetScaleFactor()));
2407 wxBitmap pressedBitmap = GRIBUICtrlBarBase::GetScaledBitmap(
2408 wxBitmap(selzone), _T(
"selzone"), ctrlBar->GetScaleFactor());
2410 pressedBitmap.ConvertToDisabled();
2411 m_bpManualSelection->SetBitmapPressed(pressedBitmap);
2413 m_bpManualSelection->SetToolTip(
2414 _(
"Click to select the download area, or Shift + Click + Drag on the "
2416 fgSizer37->Add(m_bpManualSelection, 0, wxLEFT, 5);
2418 fgSizer36->Add(fgSizer37, 1, wxEXPAND | wxLEFT, 5);
2420 fgZoneCoordinatesSizer =
new wxFlexGridSizer(0, 6, 0, 0);
2421 fgZoneCoordinatesSizer->SetFlexibleDirection(wxBOTH);
2422 fgZoneCoordinatesSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2424 wxStaticText* m_staticText34;
2425 m_staticText34 =
new wxStaticText(parent, wxID_ANY, _(
"Max Lat"),
2426 wxDefaultPosition, wxDefaultSize, 0);
2427 m_staticText34->Wrap(-1);
2428 fgZoneCoordinatesSizer->Add(m_staticText34, 0, wxLEFT | wxRIGHT, 5);
2430 m_spMaxLat =
new wxSpinCtrl(parent, MAXLAT, wxEmptyString, wxDefaultPosition,
2431 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2432 fgZoneCoordinatesSizer->Add(
m_spMaxLat, 0, wxLEFT | wxRIGHT, 5);
2434 m_stMaxLatNS =
new wxStaticText(parent, wxID_ANY, _(
"N"), wxDefaultPosition,
2436 m_stMaxLatNS->Wrap(-1);
2437 fgZoneCoordinatesSizer->Add(m_stMaxLatNS, 0, wxRIGHT, 20);
2439 m_staticText36 =
new wxStaticText(parent, wxID_ANY, _(
"Max Long"),
2440 wxDefaultPosition, wxDefaultSize, 0);
2441 m_staticText36->Wrap(-1);
2442 fgZoneCoordinatesSizer->Add(m_staticText36, 0, wxLEFT | wxRIGHT, 5);
2444 m_spMaxLon =
new wxSpinCtrl(parent, MAXLON, wxEmptyString, wxDefaultPosition,
2445 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2446 fgZoneCoordinatesSizer->Add(
m_spMaxLon, 0, wxLEFT | wxRIGHT, 5);
2448 m_stMaxLonEW =
new wxStaticText(parent, wxID_ANY, _(
"E"), wxDefaultPosition,
2450 m_stMaxLonEW->Wrap(-1);
2451 fgZoneCoordinatesSizer->Add(m_stMaxLonEW, 0, wxRIGHT, 5);
2453 wxStaticText* m_staticText38;
2454 m_staticText38 =
new wxStaticText(parent, wxID_ANY, _(
"Min Lat"),
2455 wxDefaultPosition, wxDefaultSize, 0);
2456 m_staticText38->Wrap(-1);
2457 fgZoneCoordinatesSizer->Add(m_staticText38, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2459 m_spMinLat =
new wxSpinCtrl(parent, MINLAT, wxEmptyString, wxDefaultPosition,
2460 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2461 fgZoneCoordinatesSizer->Add(
m_spMinLat, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2463 m_stMinLatNS =
new wxStaticText(parent, wxID_ANY, _(
"S"), wxDefaultPosition,
2465 m_stMinLatNS->Wrap(-1);
2466 fgZoneCoordinatesSizer->Add(m_stMinLatNS, 0, wxRIGHT | wxTOP, 5);
2468 wxStaticText* m_staticText40;
2469 m_staticText40 =
new wxStaticText(parent, wxID_ANY, _(
"Min Long"),
2470 wxDefaultPosition, wxDefaultSize, 0);
2471 m_staticText40->Wrap(-1);
2472 fgZoneCoordinatesSizer->Add(m_staticText40, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2474 m_spMinLon =
new wxSpinCtrl(parent, MINLON, wxEmptyString, wxDefaultPosition,
2475 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2476 fgZoneCoordinatesSizer->Add(
m_spMinLon, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2478 m_stMinLonEW =
new wxStaticText(parent, wxID_ANY, _(
"W"), wxDefaultPosition,
2480 m_stMinLonEW->Wrap(-1);
2481 fgZoneCoordinatesSizer->Add(m_stMinLonEW, 0, wxRIGHT | wxTOP, 5);
2483 wxFlexGridSizer* fgSizer38;
2484 fgSizer38 =
new wxFlexGridSizer(0, 1, 0, 0);
2485 fgSizer38->Add(fgZoneCoordinatesSizer, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2487 m_cUseSavedZone =
new wxCheckBox(parent,
SAVEDZONE, _(
"Use Always this Area"),
2488 wxDefaultPosition, wxDefaultSize, 0);
2489 fgSizer38->Add(m_cUseSavedZone, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2491 fgSizer36->Add(fgSizer38, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2493 sbSizer81->Add(fgSizer36, 1, wxBOTTOM | wxEXPAND | wxTOP, 5);
2498void GribRequestSettingBase::createWorldPanel() {
2499 m_panelWorld =
new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2500 wxDefaultSize, wxTAB_TRAVERSAL);
2501 wxBoxSizer* bSizerWorldDownload;
2502 bSizerWorldDownload =
new wxBoxSizer(wxVERTICAL);
2505 new wxHtmlWindow(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2506 wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2507 bSizerWorldDownload->Add(m_htmlWinWorld, 1, wxALL | wxEXPAND, 5);
2510 new wxStaticText(m_panelWorld, wxID_ANY, _(
"Download grib..."),
2511 wxDefaultPosition, wxDefaultSize, 0);
2512 m_staticTextInfo->Wrap(-1);
2513 bSizerWorldDownload->Add(m_staticTextInfo, 0, wxALL, 5);
2515 wxBoxSizer* bSizerWorld;
2516 bSizerWorld =
new wxBoxSizer(wxHORIZONTAL);
2518 m_stForecastLength =
2519 new wxStaticText(m_panelWorld, wxID_ANY, _(
"Forecast length"),
2520 wxDefaultPosition, wxDefaultSize, 0);
2521 m_stForecastLength->Wrap(-1);
2522 bSizerWorld->Add(m_stForecastLength, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2524 wxString m_chForecastLengthChoices[] = {_(
"24 hours"), _(
"3 days"),
2526 int m_chForecastLengthNChoices =
2527 sizeof(m_chForecastLengthChoices) /
sizeof(wxString);
2528 m_chForecastLength =
2529 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2530 m_chForecastLengthNChoices, m_chForecastLengthChoices, 0);
2531 m_chForecastLength->SetSelection(0);
2532 bSizerWorld->Add(m_chForecastLength, 0, wxALL, 5);
2534 m_stECMWFResolution =
new wxStaticText(m_panelWorld, wxID_ANY, _(
"Model"),
2535 wxDefaultPosition, wxDefaultSize, 0);
2536 m_stECMWFResolution->Wrap(-1);
2537 bSizerWorld->Add(m_stECMWFResolution, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2539 wxString m_chECMWFResolutionChoices[] = {
2540 wxString::Format(
"0.25%c IFS", 0x00B0),
2541 wxString::Format(
"0.25%c AIFS", 0x00B0)};
2542 int m_chECMWFResolutionNChoices =
2543 sizeof(m_chECMWFResolutionChoices) /
sizeof(wxString);
2544 m_chECMWFResolution =
2545 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2546 m_chECMWFResolutionNChoices, m_chECMWFResolutionChoices, 0);
2547 m_chECMWFResolution->SetSelection(0);
2548 bSizerWorld->Add(m_chECMWFResolution, 0, wxALL, 5);
2550 bSizerWorld->Add(0, 0, 1, wxEXPAND, 5);
2552 m_btnDownloadWorld =
new wxButton(m_panelWorld, wxID_ANY, _(
"Download"),
2553 wxDefaultPosition, wxDefaultSize, 0);
2554 bSizerWorld->Add(m_btnDownloadWorld, 0, wxALL, 5);
2556 bSizerWorldDownload->Add(bSizerWorld, 0, wxEXPAND, 5);
2558 m_panelWorld->SetSizer(bSizerWorldDownload);
2559 m_panelWorld->Layout();
2560 bSizerWorldDownload->Fit(m_panelWorld);
2563void GribRequestSettingBase::createLocalModelsPanel() {
2564 m_panelLocalModels =
2565 new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2567 wxBoxSizer* bMainSizer;
2568 bMainSizer =
new wxBoxSizer(wxVERTICAL);
2570 wxBoxSizer* bSizerSource;
2571 bSizerSource =
new wxBoxSizer(wxHORIZONTAL);
2573 m_SourcesTreeCtrl1 =
new wxTreeCtrl(
2574 m_panelLocalModels, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2575 wxTR_DEFAULT_STYLE | wxTR_FULL_ROW_HIGHLIGHT | wxTR_SINGLE);
2576 bSizerSource->Add(m_SourcesTreeCtrl1, 1, wxALL | wxEXPAND, 5);
2579 new wxHtmlWindow(m_panelLocalModels, wxID_ANY, wxDefaultPosition,
2580 wxDefaultSize, wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2581 bSizerSource->Add(m_htmlInfoWin, 1, wxALL | wxEXPAND, 5);
2583 bMainSizer->Add(bSizerSource, 1, wxEXPAND, 5);
2585 m_stLocalDownloadInfo =
2586 new wxStaticText(m_panelLocalModels, wxID_ANY, _(
"Download grib..."),
2587 wxDefaultPosition, wxDefaultSize, 0);
2588 m_stLocalDownloadInfo->Wrap(-1);
2589 bMainSizer->Add(m_stLocalDownloadInfo, 0, wxALL, 5);
2591 wxBoxSizer* bSizerLocalButtons;
2592 bSizerLocalButtons =
new wxBoxSizer(wxHORIZONTAL);
2594 m_buttonUpdateCatalog =
2595 new wxButton(m_panelLocalModels, wxID_ANY, _(
"Update Catalog"),
2596 wxDefaultPosition, wxDefaultSize, 0);
2597 bSizerLocalButtons->Add(m_buttonUpdateCatalog, 0, wxALL, 5);
2599 bSizerLocalButtons->Add(0, 0, 1, wxEXPAND, 5);
2601 m_btnDownloadLocal =
new wxButton(m_panelLocalModels, wxID_ANY, _(
"Download"),
2602 wxDefaultPosition, wxDefaultSize, 0);
2603 bSizerLocalButtons->Add(m_btnDownloadLocal, 0, wxALL, 5);
2605 bMainSizer->Add(bSizerLocalButtons, 0, wxEXPAND, 5);
2607 m_panelLocalModels->SetSizer(bMainSizer);
2608 m_panelLocalModels->Layout();
2609 bMainSizer->Fit(m_panelLocalModels);
2612void GribRequestSettingBase::createEmailPanel() {
2613 m_panelEmail =
new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2614 wxDefaultSize, wxTAB_TRAVERSAL);
2616 wxFlexGridSizer* fgSizer101;
2617 fgSizer101 =
new wxFlexGridSizer(0, 1, 0, 0);
2618 fgSizer101->SetFlexibleDirection(wxBOTH);
2619 fgSizer101->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2621 m_sScrolledDialog =
new wxScrolledWindow(
2622 m_panelEmail, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2623 wxHSCROLL | wxTAB_TRAVERSAL | wxVSCROLL);
2624 m_sScrolledDialog->SetScrollRate(0, 5);
2625 m_fgScrollSizer =
new wxFlexGridSizer(0, 1, 0, 0);
2626 m_fgScrollSizer->SetFlexibleDirection(wxBOTH);
2627 m_fgScrollSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2629 wxStaticBoxSizer* sbSizer7;
2630 sbSizer7 =
new wxStaticBoxSizer(
2631 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Profile")), wxVERTICAL);
2633 wxFlexGridSizer* fgSizer17;
2634 fgSizer17 =
new wxFlexGridSizer(0, 1, 0, 0);
2635 fgSizer17->SetFlexibleDirection(wxBOTH);
2636 fgSizer17->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2638 m_pSenderSizer =
new wxFlexGridSizer(0, 2, 0, 0);
2639 m_pSenderSizer->AddGrowableCol(1);
2640 m_pSenderSizer->SetFlexibleDirection(wxBOTH);
2641 m_pSenderSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2643 wxStaticText* m_staticText25;
2645 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Sender eMail Address"),
2646 wxDefaultPosition, wxDefaultSize, 0);
2647 m_staticText25->Wrap(-1);
2648 m_pSenderSizer->Add(m_staticText25, 0, wxALL, 5);
2650 m_pSenderAddress =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2651 wxDefaultPosition, wxDefaultSize, 0);
2652 m_pSenderSizer->Add(m_pSenderAddress, 0, wxALL | wxEXPAND, 5);
2654 wxStaticLine* m_staticline4;
2656 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2657 wxDefaultSize, wxLI_HORIZONTAL);
2658 m_pSenderSizer->Add(m_staticline4, 0, wxEXPAND | wxALL, 5);
2660 wxStaticLine* m_staticline5;
2662 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2663 wxDefaultSize, wxLI_HORIZONTAL);
2664 m_pSenderSizer->Add(m_staticline5, 0, wxEXPAND | wxALL, 5);
2666 fgSizer17->Add(m_pSenderSizer, 1, wxEXPAND, 5);
2668 wxFlexGridSizer* fgSizer9;
2669 fgSizer9 =
new wxFlexGridSizer(0, 3, 0, 0);
2670 fgSizer9->SetFlexibleDirection(wxBOTH);
2671 fgSizer9->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2673 wxFlexGridSizer* fgSizer33;
2674 fgSizer33 =
new wxFlexGridSizer(0, 2, 0, 0);
2675 fgSizer33->SetFlexibleDirection(wxBOTH);
2676 fgSizer33->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2678 wxStaticText* m_staticText15;
2679 m_staticText15 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Mail To "),
2680 wxDefaultPosition, wxDefaultSize, 0);
2681 m_staticText15->Wrap(-1);
2682 fgSizer33->Add(m_staticText15, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, 5);
2684 wxArrayString m_pMailToChoices;
2685 m_pMailTo =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2686 wxDefaultSize, m_pMailToChoices, 0);
2687 m_pMailTo->SetSelection(0);
2688 fgSizer33->Add(m_pMailTo, 0, wxALL, 5);
2690 wxStaticText* m_staticText16;
2692 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Forecast Model "),
2693 wxDefaultPosition, wxDefaultSize, 0);
2694 m_staticText16->Wrap(-1);
2695 fgSizer33->Add(m_staticText16, 0, wxALL | wxEXPAND | wxLEFT | wxRIGHT | wxTOP,
2698 wxArrayString m_pModelChoices;
2699 m_pModel =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2700 wxDefaultSize, m_pModelChoices, 0);
2701 m_pModel->SetSelection(0);
2702 fgSizer33->Add(m_pModel, 0, wxALL, 5);
2704 fgSizer9->Add(fgSizer33, 1, wxEXPAND, 5);
2706 wxFlexGridSizer* fgSizer32;
2707 fgSizer32 =
new wxFlexGridSizer(0, 2, 0, 0);
2708 fgSizer32->SetFlexibleDirection(wxBOTH);
2709 fgSizer32->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2711 m_cMovingGribEnabled =
2712 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Moving Grib"),
2713 wxDefaultPosition, wxDefaultSize, 0);
2714 fgSizer32->Add(m_cMovingGribEnabled, 0, wxALL, 5);
2716 m_fgMovingParams =
new wxFlexGridSizer(0, 3, 0, 0);
2717 m_fgMovingParams->SetFlexibleDirection(wxBOTH);
2718 m_fgMovingParams->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2720 wxStaticText* m_staticText27;
2721 m_staticText27 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Speed"),
2722 wxDefaultPosition, wxDefaultSize, 0);
2723 m_staticText27->Wrap(-1);
2724 m_fgMovingParams->Add(m_staticText27, 0, wxALL, 5);
2726 m_sMovingSpeed =
new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2727 wxDefaultPosition, wxDefaultSize,
2728 wxSP_ARROW_KEYS, 1, 30, 1);
2729 m_fgMovingParams->Add(m_sMovingSpeed, 0, wxALL, 5);
2731 wxStaticText* m_sSpeedUnit;
2732 m_sSpeedUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Kts"),
2733 wxDefaultPosition, wxDefaultSize, 0);
2734 m_sSpeedUnit->Wrap(-1);
2735 m_fgMovingParams->Add(m_sSpeedUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2738 wxStaticText* m_staticText29;
2739 m_staticText29 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Course"),
2740 wxDefaultPosition, wxDefaultSize, 0);
2741 m_staticText29->Wrap(-1);
2742 m_fgMovingParams->Add(m_staticText29, 0, wxALL, 5);
2744 m_sMovingCourse =
new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2745 wxDefaultPosition, wxDefaultSize,
2746 wxSP_ARROW_KEYS, 1, 360, 1);
2747 m_fgMovingParams->Add(m_sMovingCourse, 0, wxALL, 5);
2749 m_sCourseUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Deg"),
2750 wxDefaultPosition, wxDefaultSize, 0);
2751 m_sCourseUnit->Wrap(-1);
2752 m_fgMovingParams->Add(m_sCourseUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2755 fgSizer32->Add(m_fgMovingParams, 1, wxEXPAND, 5);
2757 fgSizer9->Add(fgSizer32, 1, wxEXPAND, 5);
2759 m_fgLog =
new wxFlexGridSizer(0, 2, 0, 0);
2760 m_fgLog->SetFlexibleDirection(wxBOTH);
2761 m_fgLog->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2763 wxStaticText* m_tLogin;
2764 m_tLogin =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"zyGrib Login"),
2765 wxDefaultPosition, wxDefaultSize, 0);
2767 m_fgLog->Add(m_tLogin, 0, wxALL, 5);
2769 m_pLogin =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2770 wxDefaultPosition, wxDefaultSize, 0);
2771 m_fgLog->Add(m_pLogin, 0, wxALL, 5);
2773 wxStaticText* m_tCode;
2774 m_tCode =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"zyGrib Code"),
2775 wxDefaultPosition, wxDefaultSize, 0);
2777 m_fgLog->Add(m_tCode, 0, wxALL, 5);
2779 m_pCode =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2780 wxDefaultPosition, wxDefaultSize, 0);
2781 m_fgLog->Add(m_pCode, 0, wxALL, 5);
2783 fgSizer9->Add(m_fgLog, 1, wxEXPAND, 5);
2785 fgSizer17->Add(fgSizer9, 1, wxEXPAND, 10);
2787 wxFlexGridSizer* fgSizer13;
2788 fgSizer13 =
new wxFlexGridSizer(0, 9, 0, 0);
2789 fgSizer13->SetFlexibleDirection(wxBOTH);
2790 fgSizer13->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2792 wxStaticText* m_staticText17;
2794 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Resolution"),
2795 wxDefaultPosition, wxDefaultSize, 0);
2796 m_staticText17->Wrap(-1);
2797 fgSizer13->Add(m_staticText17, 0, wxALL, 5);
2799 wxArrayString m_pResolutionChoices;
2800 m_pResolution =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2801 wxDefaultSize, m_pResolutionChoices, 0);
2802 m_pResolution->SetSelection(0);
2803 fgSizer13->Add(m_pResolution, 0, wxALL, 1);
2805 m_tResUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Deg"),
2806 wxDefaultPosition, wxDefaultSize, 0);
2807 m_tResUnit->Wrap(-1);
2808 fgSizer13->Add(m_tResUnit, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2810 wxStaticText* m_staticText18;
2811 m_staticText18 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Interval"),
2812 wxDefaultPosition, wxDefaultSize, 0);
2813 m_staticText18->Wrap(-1);
2814 fgSizer13->Add(m_staticText18, 0, wxALL, 5);
2816 wxArrayString m_pIntervalChoices;
2817 m_pInterval =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2818 wxDefaultSize, m_pIntervalChoices, 0);
2819 m_pInterval->SetSelection(0);
2820 fgSizer13->Add(m_pInterval, 0, wxALL, 1);
2822 wxStaticText* m_staticText20;
2823 m_staticText20 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Hours"),
2824 wxDefaultPosition, wxDefaultSize, 0);
2825 m_staticText20->Wrap(-1);
2826 fgSizer13->Add(m_staticText20, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2828 wxStaticText* m_staticText19;
2830 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Time Range"),
2831 wxDefaultPosition, wxDefaultSize, 0);
2832 m_staticText19->Wrap(-1);
2833 fgSizer13->Add(m_staticText19, 0, wxALL, 5);
2835 wxArrayString m_pTimeRangeChoices;
2836 m_pTimeRange =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2837 wxDefaultSize, m_pTimeRangeChoices, 0);
2838 m_pTimeRange->SetSelection(0);
2839 fgSizer13->Add(m_pTimeRange, 0, wxALL, 1);
2841 m_staticText21 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Days"),
2842 wxDefaultPosition, wxDefaultSize, 0);
2843 m_staticText21->Wrap(-1);
2844 fgSizer13->Add(m_staticText21, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2846 fgSizer17->Add(fgSizer13, 1, wxEXPAND, 5);
2848 sbSizer7->Add(fgSizer17, 1, wxEXPAND, 5);
2850 m_fgScrollSizer->Add(sbSizer7, 1, wxEXPAND, 5);
2856 wxStaticBoxSizer* sbSizer8;
2857 sbSizer8 =
new wxStaticBoxSizer(
2858 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Data Selection")),
2861 wxFlexGridSizer* fgSizer10;
2862 fgSizer10 =
new wxFlexGridSizer(0, 3, 0, 0);
2863 fgSizer10->SetFlexibleDirection(wxBOTH);
2864 fgSizer10->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2866 m_pWind =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Wind"),
2867 wxDefaultPosition, wxDefaultSize, 0);
2868 fgSizer10->Add(m_pWind, 0, wxALL | wxEXPAND, 5);
2870 m_pPress =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Pressure"),
2871 wxDefaultPosition, wxDefaultSize, 0);
2872 fgSizer10->Add(m_pPress, 0, wxALL | wxEXPAND, 5);
2874 m_pWindGust =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Wind Gust"),
2875 wxDefaultPosition, wxDefaultSize, 0);
2876 fgSizer10->Add(m_pWindGust, 0, wxALL | wxEXPAND, 5);
2878 m_pRainfall =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Rainfall"),
2879 wxDefaultPosition, wxDefaultSize, 0);
2880 fgSizer10->Add(m_pRainfall, 0, wxALL | wxEXPAND, 5);
2882 m_pCloudCover =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Cloud Cover"),
2883 wxDefaultPosition, wxDefaultSize, 0);
2884 fgSizer10->Add(m_pCloudCover, 0, wxALL | wxEXPAND, 5);
2887 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Air Temperature(2m)"),
2888 wxDefaultPosition, wxDefaultSize, 0);
2889 m_pAirTemp->SetValue(
true);
2890 fgSizer10->Add(m_pAirTemp, 0, wxALL | wxEXPAND, 5);
2892 m_pCAPE =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"CAPE"),
2893 wxDefaultPosition, wxDefaultSize, 0);
2894 fgSizer10->Add(m_pCAPE, 0, wxALL | wxEXPAND, 5);
2897 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Comp. Reflect."),
2898 wxDefaultPosition, wxDefaultSize, 0);
2899 fgSizer10->Add(m_pReflectivity, 0, wxALL | wxEXPAND, 5);
2902 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Sea Temperature(surf.)"),
2903 wxDefaultPosition, wxDefaultSize, 0);
2904 fgSizer10->Add(m_pSeaTemp, 0, wxALL | wxEXPAND, 5);
2906 m_pCurrent =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Current"),
2907 wxDefaultPosition, wxDefaultSize, 0);
2908 fgSizer10->Add(m_pCurrent, 0, wxALL | wxEXPAND, 5);
2910 wxFlexGridSizer* fgSizer28;
2911 fgSizer28 =
new wxFlexGridSizer(0, 2, 0, 0);
2912 fgSizer28->SetFlexibleDirection(wxBOTH);
2913 fgSizer28->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2915 m_pWaves =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Waves"),
2916 wxDefaultPosition, wxDefaultSize, 0);
2917 fgSizer28->Add(m_pWaves, 0, wxALL, 5);
2919 wxArrayString m_pWModelChoices;
2920 m_pWModel =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2921 wxDefaultSize, m_pWModelChoices, 0);
2922 m_pWModel->SetSelection(0);
2923 fgSizer28->Add(m_pWModel, 0, wxALL | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 1);
2925 fgSizer10->Add(fgSizer28, 1, wxEXPAND, 5);
2927 wxFlexGridSizer* fgSizer331;
2928 fgSizer331 =
new wxFlexGridSizer(0, 2, 0, 0);
2929 fgSizer331->SetFlexibleDirection(wxBOTH);
2930 fgSizer331->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2933 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Geopotential Height"),
2934 wxDefaultPosition, wxDefaultSize, 0);
2935 fgSizer331->Add(m_pAltitudeData, 0, wxALL | wxEXPAND, 5);
2937 fgSizer10->Add(fgSizer331, 1, wxEXPAND, 5);
2939 m_fgAltitudeData =
new wxFlexGridSizer(0, 2, 0, 0);
2940 m_fgAltitudeData->SetFlexibleDirection(wxBOTH);
2941 m_fgAltitudeData->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2943 m_p850hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"850 hPa"),
2944 wxDefaultPosition, wxDefaultSize, 0);
2945 m_fgAltitudeData->Add(m_p850hpa, 0,
2946 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2948 m_p700hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"700 hPa"),
2949 wxDefaultPosition, wxDefaultSize, 0);
2950 m_fgAltitudeData->Add(m_p700hpa, 0,
2951 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2953 m_p500hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"500 hPa"),
2954 wxDefaultPosition, wxDefaultSize, 0);
2955 m_fgAltitudeData->Add(m_p500hpa, 0, wxALL | wxEXPAND, 5);
2957 m_p300hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"300 hPa"),
2958 wxDefaultPosition, wxDefaultSize, 0);
2959 m_fgAltitudeData->Add(m_p300hpa, 0, wxALL | wxEXPAND, 5);
2961 fgSizer10->Add(m_fgAltitudeData, 1, wxEXPAND, 5);
2963 sbSizer8->Add(fgSizer10, 1, wxEXPAND, 5);
2965 m_fgScrollSizer->Add(sbSizer8, 1, wxEXPAND | wxTOP, 5);
2967 wxStaticBoxSizer* sbSizer6;
2968 sbSizer6 =
new wxStaticBoxSizer(
2969 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Mail")), wxVERTICAL);
2971 wxFlexGridSizer* fgSizer11;
2972 fgSizer11 =
new wxFlexGridSizer(0, 1, 0, 0);
2973 fgSizer11->AddGrowableCol(0);
2974 fgSizer11->SetFlexibleDirection(wxBOTH);
2975 fgSizer11->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2977 m_MailImage =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2978 wxDefaultPosition, wxDefaultSize,
2979 wxTE_MULTILINE | wxTE_READONLY);
2980 fgSizer11->Add(m_MailImage, 0, wxALL | wxEXPAND, 5);
2982 sbSizer6->Add(fgSizer11, 1, wxEXPAND, 5);
2984 m_fgScrollSizer->Add(sbSizer6, 1, wxEXPAND, 5);
2986 m_sScrolledDialog->SetSizer(m_fgScrollSizer);
2987 m_sScrolledDialog->Layout();
2988 m_fgScrollSizer->Fit(m_sScrolledDialog);
2989 fgSizer101->Add(m_sScrolledDialog, 1, 0, 5);
2991 m_fgFixedSizer =
new wxFlexGridSizer(0, 3, 0, 0);
2992 m_fgFixedSizer->SetFlexibleDirection(wxBOTH);
2993 m_fgFixedSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2995 wxStaticText* m_staticText181;
2997 new wxStaticText(m_panelEmail, wxID_ANY, _(
"Estimated File Size"),
2998 wxDefaultPosition, wxDefaultSize, 0);
2999 m_staticText181->Wrap(-1);
3000 m_fgFixedSizer->Add(m_staticText181, 0, wxALL, 5);
3002 m_tFileSize =
new wxStaticText(m_panelEmail, wxID_ANY, wxEmptyString,
3003 wxDefaultPosition, wxDefaultSize, 0);
3004 m_tFileSize->Wrap(-1);
3005 m_fgFixedSizer->Add(m_tFileSize, 0, wxTOP | wxBOTTOM, 5);
3007 m_tLimit =
new wxStaticText(m_panelEmail, wxID_ANY, _(
" (Max size )"),
3008 wxDefaultPosition, wxDefaultSize, 0);
3010 m_fgFixedSizer->Add(m_tLimit, 0, wxALL, 5);
3012 fgSizer101->Add(m_fgFixedSizer, 1, wxEXPAND, 5);
3014 wxBoxSizer* buttonSizer =
new wxBoxSizer(wxHORIZONTAL);
3018 fgSizer101->Add(buttonSizer, 0, wxEXPAND | wxALL, 5);
3020 m_panelEmail->SetSizer(fgSizer101);
3021 m_panelEmail->Layout();
3022 fgSizer101->Fit(m_panelEmail);
3027 const wxString& title,
3029 const wxSize& size,
long style)
3030 : wxDialog(parent, id, title, pos, size, style) {
3031 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
3033 wxBoxSizer* bSizerMain;
3034 bSizerMain =
new wxBoxSizer(wxVERTICAL);
3037 new wxNotebook(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
3041 m_notebookGetGrib->AddPage(m_panelWorld, _(
"World"),
true);
3044 createLocalModelsPanel();
3045 m_notebookGetGrib->AddPage(m_panelLocalModels, _(
"Local models"),
false);
3049 m_notebookGetGrib->AddPage(m_panelEmail, _(
"e-mail"),
false);
3053 new XyGribPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
3054 wxDefaultSize, wxTAB_TRAVERSAL);
3056 m_notebookGetGrib->AddPage(m_xygribPanel, _(
"XyGrib"),
false);
3059 wxStaticBoxSizer* sbSizer81 = createAreaSelectionSection(
this, parent);
3060 bSizerMain->Add(sbSizer81, 0, wxEXPAND | wxALL, 5);
3064 bSizerMain->Add(m_notebookGetGrib, 1, wxEXPAND | wxALL, 5);
3067 wxBoxSizer* bottomButtonSizer =
new wxBoxSizer(wxHORIZONTAL);
3068 m_rButtonCancel =
new wxButton(
this, wxID_CANCEL, _(
"Cancel"));
3069 bottomButtonSizer->Add(m_rButtonCancel, 0, wxALL, 5);
3071 bottomButtonSizer->AddStretchSpacer();
3073 m_rButtonApply =
new wxButton(
this, wxID_APPLY);
3074 bottomButtonSizer->Add(m_rButtonApply, 0, wxALL, 5);
3076 bSizerMain->Add(bottomButtonSizer, 0, wxEXPAND | wxALL, 5);
3078 this->SetSizer(bSizerMain);
3081 bSizerMain->Fit(
this);
3083 this->Centre(wxBOTH);
3086 this->Connect(wxEVT_CLOSE_WINDOW,
3087 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3088 m_chForecastLength->Connect(
3089 wxEVT_COMMAND_CHOICE_SELECTED,
3090 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3092 m_btnDownloadWorld->Connect(
3093 wxEVT_COMMAND_BUTTON_CLICKED,
3094 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload),
nullptr,
3096 m_SourcesTreeCtrl1->Connect(
3097 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3098 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3100 m_SourcesTreeCtrl1->Connect(
3101 wxEVT_COMMAND_TREE_SEL_CHANGED,
3102 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3104 m_buttonUpdateCatalog->Connect(
3105 wxEVT_COMMAND_BUTTON_CLICKED,
3106 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3108 m_btnDownloadLocal->Connect(
3109 wxEVT_COMMAND_BUTTON_CLICKED,
3110 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal),
nullptr,
3112 m_pMailTo->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3113 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3115 m_pModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3116 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3118 m_cMovingGribEnabled->Connect(
3119 wxEVT_COMMAND_CHECKBOX_CLICKED,
3120 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick),
nullptr,
3122 m_sMovingSpeed->Connect(
3123 wxEVT_COMMAND_SPINCTRL_UPDATED,
3124 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3126 m_sMovingCourse->Connect(
3127 wxEVT_COMMAND_SPINCTRL_UPDATED,
3128 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3130 m_pLogin->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3131 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3133 m_pCode->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3134 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3136 m_pResolution->Connect(
3137 wxEVT_COMMAND_CHOICE_SELECTED,
3138 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3140 m_pInterval->Connect(
3141 wxEVT_COMMAND_CHOICE_SELECTED,
3142 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3144 m_pTimeRange->Connect(
3145 wxEVT_COMMAND_CHOICE_SELECTED,
3146 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange),
nullptr,
3148 m_rbCurrentView->Connect(
3149 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3150 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3152 m_rbManualSelect->Connect(
3153 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3154 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3156 m_cUseSavedZone->Connect(
3157 wxEVT_COMMAND_CHECKBOX_CLICKED,
3158 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3160 m_spMaxLat->Connect(
3161 wxEVT_COMMAND_SPINCTRL_UPDATED,
3162 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3164 m_spMaxLon->Connect(
3165 wxEVT_COMMAND_SPINCTRL_UPDATED,
3166 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3168 m_spMinLat->Connect(
3169 wxEVT_COMMAND_SPINCTRL_UPDATED,
3170 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3172 m_spMinLon->Connect(
3173 wxEVT_COMMAND_SPINCTRL_UPDATED,
3174 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3176 m_pWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3177 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3179 m_pPress->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3180 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3182 m_pWindGust->Connect(
3183 wxEVT_COMMAND_CHECKBOX_CLICKED,
3184 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3186 m_pRainfall->Connect(
3187 wxEVT_COMMAND_CHECKBOX_CLICKED,
3188 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3190 m_pCloudCover->Connect(
3191 wxEVT_COMMAND_CHECKBOX_CLICKED,
3192 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3194 m_pAirTemp->Connect(
3195 wxEVT_COMMAND_CHECKBOX_CLICKED,
3196 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3198 m_pCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3199 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3201 m_pReflectivity->Connect(
3202 wxEVT_COMMAND_CHECKBOX_CLICKED,
3203 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3205 m_pSeaTemp->Connect(
3206 wxEVT_COMMAND_CHECKBOX_CLICKED,
3207 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3209 m_pCurrent->Connect(
3210 wxEVT_COMMAND_CHECKBOX_CLICKED,
3211 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3213 m_pWaves->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3214 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3216 m_pWModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3217 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3219 m_pAltitudeData->Connect(
3220 wxEVT_COMMAND_CHECKBOX_CLICKED,
3221 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3223 m_p850hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3224 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3226 m_p700hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3227 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3229 m_p500hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3230 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3232 m_p300hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3233 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3235 m_rButtonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3238 m_rButtonCancel->Connect(
3239 wxEVT_COMMAND_BUTTON_CLICKED,
3241 m_rButtonYes->Connect(
3242 wxEVT_COMMAND_BUTTON_CLICKED,
3246 m_xygribPanel->m_download_button->Connect(
3247 wxEVT_COMMAND_BUTTON_CLICKED,
3248 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3250 m_xygribPanel->m_atmmodel_choice->Connect(
3251 wxEVT_COMMAND_CHOICE_SELECTED,
3252 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3254 m_xygribPanel->m_wavemodel_choice->Connect(
3255 wxEVT_COMMAND_CHOICE_SELECTED,
3256 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3258 m_xygribPanel->m_wind_cbox->Connect(
3259 wxEVT_COMMAND_CHECKBOX_CLICKED,
3260 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3262 m_xygribPanel->m_gust_cbox->Connect(
3263 wxEVT_COMMAND_CHECKBOX_CLICKED,
3264 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3266 m_xygribPanel->m_reflectivity_cbox->Connect(
3267 wxEVT_COMMAND_CHECKBOX_CLICKED,
3268 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3270 m_xygribPanel->m_precipitation_cbox->Connect(
3271 wxEVT_COMMAND_CHECKBOX_CLICKED,
3272 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3274 m_xygribPanel->m_cape_cbox->Connect(
3275 wxEVT_COMMAND_CHECKBOX_CLICKED,
3276 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3278 m_xygribPanel->m_pressure_cbox->Connect(
3279 wxEVT_COMMAND_CHECKBOX_CLICKED,
3280 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3282 m_xygribPanel->m_cloudcover_cbox->Connect(
3283 wxEVT_COMMAND_CHECKBOX_CLICKED,
3284 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3286 m_xygribPanel->m_temperature_cbox->Connect(
3287 wxEVT_COMMAND_CHECKBOX_CLICKED,
3288 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3290 m_xygribPanel->m_waveheight_cbox->Connect(
3291 wxEVT_COMMAND_CHECKBOX_CLICKED,
3292 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3294 m_xygribPanel->m_windwave_cbox->Connect(
3295 wxEVT_COMMAND_CHECKBOX_CLICKED,
3296 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3298 m_xygribPanel->m_resolution_choice->Connect(
3299 wxEVT_COMMAND_CHOICE_SELECTED,
3300 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3302 m_xygribPanel->m_duration_choice->Connect(
3303 wxEVT_COMMAND_CHOICE_SELECTED,
3304 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3306 m_xygribPanel->m_interval_choice->Connect(
3307 wxEVT_COMMAND_CHOICE_SELECTED,
3308 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3312GribRequestSettingBase::~GribRequestSettingBase() {
3314 this->Disconnect(wxEVT_CLOSE_WINDOW,
3315 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3316 m_chForecastLength->Disconnect(
3317 wxEVT_COMMAND_CHOICE_SELECTED,
3318 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3320 m_btnDownloadWorld->Disconnect(
3321 wxEVT_COMMAND_BUTTON_CLICKED,
3322 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload),
nullptr,
3324 m_SourcesTreeCtrl1->Disconnect(
3325 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3326 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3328 m_SourcesTreeCtrl1->Disconnect(
3329 wxEVT_COMMAND_TREE_SEL_CHANGED,
3330 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3332 m_buttonUpdateCatalog->Disconnect(
3333 wxEVT_COMMAND_BUTTON_CLICKED,
3334 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3336 m_btnDownloadLocal->Disconnect(
3337 wxEVT_COMMAND_BUTTON_CLICKED,
3338 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal),
nullptr,
3340 m_pMailTo->Disconnect(
3341 wxEVT_COMMAND_CHOICE_SELECTED,
3342 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
nullptr,
3344 m_pModel->Disconnect(
3345 wxEVT_COMMAND_CHOICE_SELECTED,
3346 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
nullptr,
3348 m_cMovingGribEnabled->Disconnect(
3349 wxEVT_COMMAND_CHECKBOX_CLICKED,
3350 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick),
nullptr,
3352 m_sMovingSpeed->Disconnect(
3353 wxEVT_COMMAND_SPINCTRL_UPDATED,
3354 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3356 m_sMovingCourse->Disconnect(
3357 wxEVT_COMMAND_SPINCTRL_UPDATED,
3358 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3360 m_pLogin->Disconnect(
3361 wxEVT_COMMAND_TEXT_UPDATED,
3362 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3364 m_pCode->Disconnect(
3365 wxEVT_COMMAND_TEXT_UPDATED,
3366 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3368 m_pResolution->Disconnect(
3369 wxEVT_COMMAND_CHOICE_SELECTED,
3370 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3372 m_pInterval->Disconnect(
3373 wxEVT_COMMAND_CHOICE_SELECTED,
3374 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3376 m_pTimeRange->Disconnect(
3377 wxEVT_COMMAND_CHOICE_SELECTED,
3378 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange),
nullptr,
3381 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3382 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3385 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3386 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3388 m_cUseSavedZone->Disconnect(
3389 wxEVT_COMMAND_CHECKBOX_CLICKED,
3390 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3393 wxEVT_COMMAND_SPINCTRL_UPDATED,
3394 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3397 wxEVT_COMMAND_SPINCTRL_UPDATED,
3398 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3401 wxEVT_COMMAND_SPINCTRL_UPDATED,
3402 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3405 wxEVT_COMMAND_SPINCTRL_UPDATED,
3406 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3408 m_pWind->Disconnect(
3409 wxEVT_COMMAND_CHECKBOX_CLICKED,
3410 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3412 m_pPress->Disconnect(
3413 wxEVT_COMMAND_CHECKBOX_CLICKED,
3414 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3416 m_pWindGust->Disconnect(
3417 wxEVT_COMMAND_CHECKBOX_CLICKED,
3418 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3420 m_pRainfall->Disconnect(
3421 wxEVT_COMMAND_CHECKBOX_CLICKED,
3422 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3424 m_pCloudCover->Disconnect(
3425 wxEVT_COMMAND_CHECKBOX_CLICKED,
3426 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3428 m_pAirTemp->Disconnect(
3429 wxEVT_COMMAND_CHECKBOX_CLICKED,
3430 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3432 m_pCAPE->Disconnect(
3433 wxEVT_COMMAND_CHECKBOX_CLICKED,
3434 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3436 m_pReflectivity->Disconnect(
3437 wxEVT_COMMAND_CHECKBOX_CLICKED,
3438 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3440 m_pSeaTemp->Disconnect(
3441 wxEVT_COMMAND_CHECKBOX_CLICKED,
3442 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3444 m_pCurrent->Disconnect(
3445 wxEVT_COMMAND_CHECKBOX_CLICKED,
3446 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3448 m_pWaves->Disconnect(
3449 wxEVT_COMMAND_CHECKBOX_CLICKED,
3450 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3452 m_pWModel->Disconnect(
3453 wxEVT_COMMAND_CHOICE_SELECTED,
3454 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3456 m_pAltitudeData->Disconnect(
3457 wxEVT_COMMAND_CHECKBOX_CLICKED,
3458 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3460 m_p850hpa->Disconnect(
3461 wxEVT_COMMAND_CHECKBOX_CLICKED,
3462 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3464 m_p700hpa->Disconnect(
3465 wxEVT_COMMAND_CHECKBOX_CLICKED,
3466 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3468 m_p500hpa->Disconnect(
3469 wxEVT_COMMAND_CHECKBOX_CLICKED,
3470 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3472 m_p300hpa->Disconnect(
3473 wxEVT_COMMAND_CHECKBOX_CLICKED,
3474 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3477 wxEVT_COMMAND_BUTTON_CLICKED,
3480 wxEVT_COMMAND_BUTTON_CLICKED,
3483 wxEVT_COMMAND_BUTTON_CLICKED,
3487 m_xygribPanel->m_download_button->Disconnect(
3488 wxEVT_COMMAND_BUTTON_CLICKED,
3489 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3491 m_xygribPanel->m_atmmodel_choice->Disconnect(
3492 wxEVT_COMMAND_CHOICE_SELECTED,
3493 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3495 m_xygribPanel->m_wavemodel_choice->Disconnect(
3496 wxEVT_COMMAND_CHOICE_SELECTED,
3497 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3499 m_xygribPanel->m_wind_cbox->Disconnect(
3500 wxEVT_COMMAND_CHECKBOX_CLICKED,
3501 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3503 m_xygribPanel->m_gust_cbox->Disconnect(
3504 wxEVT_COMMAND_CHECKBOX_CLICKED,
3505 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3507 m_xygribPanel->m_reflectivity_cbox->Disconnect(
3508 wxEVT_COMMAND_CHECKBOX_CLICKED,
3509 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3511 m_xygribPanel->m_precipitation_cbox->Disconnect(
3512 wxEVT_COMMAND_CHECKBOX_CLICKED,
3513 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3515 m_xygribPanel->m_cape_cbox->Disconnect(
3516 wxEVT_COMMAND_CHECKBOX_CLICKED,
3517 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3519 m_xygribPanel->m_pressure_cbox->Disconnect(
3520 wxEVT_COMMAND_CHECKBOX_CLICKED,
3521 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3523 m_xygribPanel->m_cloudcover_cbox->Disconnect(
3524 wxEVT_COMMAND_CHECKBOX_CLICKED,
3525 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3527 m_xygribPanel->m_temperature_cbox->Disconnect(
3528 wxEVT_COMMAND_CHECKBOX_CLICKED,
3529 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3531 m_xygribPanel->m_waveheight_cbox->Disconnect(
3532 wxEVT_COMMAND_CHECKBOX_CLICKED,
3533 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3535 m_xygribPanel->m_windwave_cbox->Disconnect(
3536 wxEVT_COMMAND_CHECKBOX_CLICKED,
3537 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3539 m_xygribPanel->m_resolution_choice->Disconnect(
3540 wxEVT_COMMAND_CHOICE_SELECTED,
3541 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3543 m_xygribPanel->m_duration_choice->Disconnect(
3544 wxEVT_COMMAND_CHOICE_SELECTED,
3545 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3547 m_xygribPanel->m_interval_choice->Disconnect(
3548 wxEVT_COMMAND_CHOICE_SELECTED,
3549 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3553GRIBTableBase::GRIBTableBase(wxWindow* parent, wxWindowID
id,
3554 const wxString& title,
const wxPoint& pos,
3555 const wxSize& size,
long style)
3556 : wxDialog(parent, id, title, pos, size, style) {
3557 this->SetSizeHints(wxSize(-1, -1), wxSize(-1, -1));
3559 wxBoxSizer* bSizer1;
3560 bSizer1 =
new wxBoxSizer(wxVERTICAL);
3562 wxFlexGridSizer* fgSizer18;
3563 fgSizer18 =
new wxFlexGridSizer(0, 1, 0, 0);
3564 fgSizer18->AddGrowableRow(1);
3565 fgSizer18->SetFlexibleDirection(wxBOTH);
3566 fgSizer18->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3568 wxFlexGridSizer* fgSizer19;
3569 fgSizer19 =
new wxFlexGridSizer(0, 2, 0, 0);
3570 fgSizer19->SetFlexibleDirection(wxBOTH);
3571 fgSizer19->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3573 m_pPositionText =
new wxStaticText(
this, wxID_ANY, _(
"Data at Position:"),
3574 wxDefaultPosition, wxDefaultSize, 0);
3575 m_pPositionText->Wrap(-1);
3576 fgSizer19->Add(m_pPositionText, 0, wxALL | wxEXPAND, 5);
3578 m_pCursorPosition =
new wxStaticText(
this, wxID_ANY, wxEmptyString,
3579 wxDefaultPosition, wxDefaultSize, 0);
3580 m_pCursorPosition->Wrap(-1);
3581 fgSizer19->Add(m_pCursorPosition, 0, wxALL | wxEXPAND, 5);
3583 fgSizer18->Add(fgSizer19, 1, wxEXPAND, 10);
3585 wxFlexGridSizer* fgSizer20;
3586 fgSizer20 =
new wxFlexGridSizer(0, 1, 0, 0);
3587 fgSizer20->AddGrowableRow(0);
3588 fgSizer20->SetFlexibleDirection(wxBOTH);
3589 fgSizer20->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_ALL);
3591 m_pGribTable =
new CustomGrid(
this, wxID_ANY, wxDefaultPosition,
3592 wxSize(-1, 50), 0, _T(
" "));
3595 m_pGribTable->SetDefaultCellFont(
3596 wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT,
3597 wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString));
3598 m_pGribTable->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_TOP);
3599 fgSizer20->Add(m_pGribTable, 0, wxALL | wxEXPAND, 5);
3601 fgSizer18->Add(fgSizer20, 1, wxEXPAND, 5);
3603 wxStdDialogButtonSizer* m_pButtonTable =
new wxStdDialogButtonSizer();
3604 m_pButtonTableOK =
new wxButton(
this, wxID_OK, _(
"Close"));
3606 m_pButtonTable->AddButton(m_pButtonTableOK);
3607 m_pButtonTable->Realize();
3609 fgSizer18->Add(m_pButtonTable, 1, wxEXPAND, 5);
3611 bSizer1->Add(fgSizer18, 1, wxEXPAND, 5);
3613 this->SetSizer(bSizer1);
3617 this->Centre(wxBOTH);
3620 this->Connect(wxEVT_CLOSE_WINDOW,
3621 wxCloseEventHandler(GRIBTableBase::OnClose));
3622 m_pButtonTableOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3623 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3627GRIBTableBase::~GRIBTableBase() {
3629 this->Disconnect(wxEVT_CLOSE_WINDOW,
3630 wxCloseEventHandler(GRIBTableBase::OnClose));
3631 m_pButtonTableOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
3632 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3636ProjectBoatPanel::ProjectBoatPanel(wxWindow* parent, wxWindowID
id,
3637 const wxPoint& pos,
const wxSize& size,
3638 long style,
const wxString& name)
3639 : wxPanel(parent, id, pos, size, style, name) {
3642 SetMinSize(wxSize(-1, GetCharHeight()) * 2);
3644 wxBoxSizer* bSizerProjectBoat =
new wxBoxSizer(wxHORIZONTAL);
3645 SetSizer(bSizerProjectBoat);
3647 m_cbProjectPosition =
new wxCheckBox(
this, wxID_ANY, _(
"Project position"),
3648 wxDefaultPosition, wxDefaultSize);
3649 bSizerProjectBoat->Add(m_cbProjectPosition, 0,
3650 wxALIGN_CENTER_VERTICAL | wxALL, 5);
3652 m_stCourse =
new wxStaticText(
this, wxID_ANY, _(
"Course"), wxDefaultPosition,
3654 m_stCourse->Wrap(-1);
3655 bSizerProjectBoat->Add(m_stCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3657 m_tCourse =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3659 bSizerProjectBoat->Add(m_tCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3661 m_stSpeed =
new wxStaticText(
this, wxID_ANY, _(
"Speed"), wxDefaultPosition,
3663 m_stSpeed->Wrap(-1);
3664 bSizerProjectBoat->Add(m_stSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3666 m_tSpeed =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3668 bSizerProjectBoat->Add(m_tSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3670 m_stSpeedUnit =
new wxStaticText(
this, wxID_ANY, wxT(
"kt"), wxDefaultPosition,
3672 m_stSpeedUnit->Wrap(-1);
3673 bSizerProjectBoat->Add(m_stSpeedUnit, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3678ProjectBoatPanel::~ProjectBoatPanel() {}
3680double ProjectBoatPanel::GetCourse() {
3682 if (m_tCourse->GetValue().ToDouble(&val)) {
3688double ProjectBoatPanel::GetSpeed() {
3690 if (m_tSpeed->GetValue().ToDouble(&val)) {
3696bool ProjectBoatPanel::ProjectionEnabled() {
3697 return m_cbProjectPosition->IsChecked();
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.
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.
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.