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) {
2132 Manual(
this, datadir.ToStdString()).Launch(
"Grib");
2134 m_sdbSizer2->AddButton(help_btn);
2136 m_sdbSizer2->Realize();
2138 itemBoxSizerMainPanel->Add(m_sdbSizer2, 0, wxEXPAND | wxALL, 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 wxStaticBoxSizer* sbSizerFolder;
2196 sbSizerFolder =
new wxStaticBoxSizer(
2197 new wxStaticBox(
this, wxID_ANY, _(
"Grib File Directory")), wxHORIZONTAL);
2200 new wxTextCtrl(scrollWin, wxID_ANY, wxEmptyString, wxDefaultPosition,
2201 wxDefaultSize, wxTE_READONLY);
2202 sbSizerFolder->Add(m_textDirectory, 1, wxALL, 5);
2204 wxButton* dbFolderButton =
new wxButton(scrollWin, wxID_ANY, _(
"Browse..."));
2205 sbSizerFolder->Add(dbFolderButton, 0, wxALL, 5);
2207 bSizerPrefsMain->Add(sbSizerFolder, 0, wxALL | wxEXPAND, 5);
2209 wxString m_rbStartOptionsChoices[] = {
2210 _(
"Start at the first forecast in GRIB file"),
2211 _(
"Start at the nearest forecast to current time"),
2212 _(
"Authorize Interpolation to start at current time")};
2213 int m_rbStartOptionsNChoices =
2214 sizeof(m_rbStartOptionsChoices) /
sizeof(wxString);
2215 m_rbStartOptions =
new wxRadioBox(
2216 scrollWin, wxID_ANY, _(
"Start Options"), wxDefaultPosition, wxDefaultSize,
2217 m_rbStartOptionsNChoices, m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2218 m_rbStartOptions->SetSelection(0);
2219 bSizerPrefsMain->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2222 wxFlexGridSizer* fgSizer47;
2223 fgSizer47 =
new wxFlexGridSizer(0, 2, 0, 0);
2224 fgSizer47->SetFlexibleDirection(wxBOTH);
2225 fgSizer47->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2226 wxStaticText* text =
2227 new wxStaticText(scrollWin, wxID_ANY, _(
"Icons Size Factor"),
2228 wxDefaultPosition, wxDefaultSize);
2229 fgSizer47->Add(text, 0, wxALL | wxEXPAND, 5);
2231 new wxSlider(scrollWin, wxID_ANY, 0, -8, 8, wxDefaultPosition,
2232 wxDefaultSize, wxSL_BOTTOM | wxSL_HORIZONTAL | wxSL_LABELS);
2233 fgSizer47->Add(m_sIconSizeFactor, 0, wxALL | wxEXPAND, 5);
2234 bSizerPrefsMain->Add(fgSizer47, 0, wxALL | wxEXPAND, 5);
2240 m_rbStartOptions->Connect(
2241 wxEVT_COMMAND_RADIOBOX_SELECTED,
2242 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2244 m_sdbSizer2OK->Connect(
2245 wxEVT_COMMAND_BUTTON_CLICKED,
2246 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick),
nullptr,
2248 dbFolderButton->Connect(
2249 wxEVT_COMMAND_BUTTON_CLICKED,
2250 wxCommandEventHandler(GribPreferencesDialogBase::OnDirSelClick),
nullptr,
2255GribPreferencesDialogBase::GribPreferencesDialogBase(
2256 wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
2257 const wxSize& size,
long style)
2258 : wxDialog(parent, id, title, pos, size, style) {
2259 m_textDirectory =
nullptr;
2261 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
2263 wxBoxSizer* topSizer =
new wxBoxSizer(wxVERTICAL);
2266 wxBoxSizer* labelSizer =
new wxBoxSizer(wxHORIZONTAL);
2267 topSizer->Add(labelSizer, 0, wxEXPAND, 5);
2269 wxStaticText* labelBox =
2270 new wxStaticText(
this, wxID_ANY, _(
"GRIB PlugIn Preferences"),
2271 wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
2272 labelSizer->Add(labelBox, 1, wxEXPAND, 0);
2274 wxScrolledWindow* itemScrollWin =
new wxScrolledWindow(
2275 this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxVSCROLL);
2276 topSizer->Add(itemScrollWin, 1, wxEXPAND | wxALL, 0);
2277 itemScrollWin->SetScrollRate(2, 2);
2279 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
2280 itemScrollWin->SetSizer(itemBoxSizer2);
2282 wxStaticBoxSizer* sbSizer9;
2283 sbSizer9 =
new wxStaticBoxSizer(
2284 new wxStaticBox(itemScrollWin, wxID_ANY, _(
"General Options")),
2286 itemBoxSizer2->Add(sbSizer9, 1, wxEXPAND, 5);
2289 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Use High Definition Graphics"),
2290 wxDefaultPosition, wxDefaultSize, 0);
2291 sbSizer9->Add(m_cbUseHiDef, 0, wxALL, 5);
2293 m_cbUseGradualColors =
2294 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Use Gradual Colors"),
2295 wxDefaultPosition, wxDefaultSize, 0);
2296 sbSizer9->Add(m_cbUseGradualColors, 0, wxALL, 5);
2298 m_cbCopyFirstCumulativeRecord =
new wxCheckBox(
2299 itemScrollWin, wxID_ANY, _(
"Copy First Cumulative Missing Record"),
2300 wxDefaultPosition, wxDefaultSize, 0);
2301 sbSizer9->Add(m_cbCopyFirstCumulativeRecord, 0, wxALL, 5);
2303 m_cbCopyMissingWaveRecord =
2304 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Copy Missing Wave Records"),
2305 wxDefaultPosition, wxDefaultSize, 0);
2306 sbSizer9->Add(m_cbCopyMissingWaveRecord, 0, wxALL, 5);
2308 m_cbDrawBarbedArrowHead =
2309 new wxCheckBox(itemScrollWin, wxID_ANY, _(
"Draw Barbed Arrows Head"),
2310 wxDefaultPosition, wxDefaultSize, 0);
2311 sbSizer9->Add(m_cbDrawBarbedArrowHead, 0, wxALL, 5);
2313 m_cZoomToCenterAtInit =
new wxCheckBox(itemScrollWin, wxID_ANY,
2314 _(
"Zoom to file center when opened"),
2315 wxDefaultPosition, wxDefaultSize, 0);
2316 sbSizer9->Add(m_cZoomToCenterAtInit, 0, wxALL, 5);
2318 wxString m_rbLoadOptionsChoices[] = {
2319 _(
"Load the More Recent File in Directory"),
2320 _(
"Load the Last Opened File")};
2321 int m_rbLoadOptionsNChoices =
2322 sizeof(m_rbLoadOptionsChoices) /
sizeof(wxString);
2324 new wxRadioBox(itemScrollWin, wxID_ANY, _(
"Load File Options"),
2325 wxDefaultPosition, wxDefaultSize, m_rbLoadOptionsNChoices,
2326 m_rbLoadOptionsChoices, 1, wxRA_SPECIFY_COLS);
2327 m_rbLoadOptions->SetSelection(0);
2328 sbSizer9->Add(m_rbLoadOptions, 0, wxALL | wxEXPAND, 5);
2330 wxString m_rbStartOptionsChoices[] = {
2331 _(
"Start at the first forecast in GRIB file"),
2332 _(
"Start at the nearest forecast to current time"),
2333 _(
"Authorize Interpolation to start at current time")};
2334 int m_rbStartOptionsNChoices =
2335 sizeof(m_rbStartOptionsChoices) /
sizeof(wxString);
2337 new wxRadioBox(itemScrollWin, wxID_ANY, _(
"Start Options"),
2338 wxDefaultPosition, wxDefaultSize, m_rbStartOptionsNChoices,
2339 m_rbStartOptionsChoices, 1, wxRA_SPECIFY_COLS);
2340 m_rbStartOptions->SetSelection(0);
2341 sbSizer9->Add(m_rbStartOptions, 0, wxALL | wxEXPAND, 5);
2343 wxBoxSizer* m_sdbButtonSizer =
new wxBoxSizer(wxHORIZONTAL);
2344 topSizer->Add(m_sdbButtonSizer, 0, wxEXPAND, 5);
2346 wxButton* m_sdbButtonSizerOK =
new wxButton(
this, wxID_OK);
2347 m_sdbButtonSizer->Add(m_sdbButtonSizerOK, 0, wxALL | wxALIGN_RIGHT, 15);
2349 wxButton* m_sdbButtonSizerCancel =
new wxButton(
this, wxID_CANCEL);
2350 m_sdbButtonSizer->Add(m_sdbButtonSizerCancel, 0, wxALL | wxALIGN_RIGHT, 15);
2353 m_rbStartOptions->Connect(
2354 wxEVT_COMMAND_RADIOBOX_SELECTED,
2355 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2357 m_sdbButtonSizerOK->Connect(
2358 wxEVT_COMMAND_BUTTON_CLICKED,
2359 wxCommandEventHandler(GribPreferencesDialogBase::OnOKClick),
nullptr,
2365GribPreferencesDialogBase::~GribPreferencesDialogBase() {
2367 m_rbStartOptions->Disconnect(
2368 wxEVT_COMMAND_RADIOBOX_SELECTED,
2369 wxCommandEventHandler(GribPreferencesDialogBase::OnStartOptionChange),
2373void GribPreferencesDialogBase::OnDirSelClick(wxCommandEvent& event) {
2376 this, &dir_spec, _(
"Choose GRIB File Directory"), m_grib_dir_sel);
2378 if (response == wxID_OK) {
2379 m_grib_dir_sel = dir_spec;
2380 m_textDirectory->ChangeValue(dir_spec);
2384wxStaticBoxSizer* GribRequestSettingBase::createAreaSelectionSection(
2386 wxStaticBoxSizer* sbSizer81;
2387 sbSizer81 =
new wxStaticBoxSizer(
2388 new wxStaticBox(parent, wxID_ANY, _(
"Area Selection")), wxVERTICAL);
2390 wxFlexGridSizer* fgSizer36;
2391 fgSizer36 =
new wxFlexGridSizer(0, 2, 0, 0);
2392 fgSizer36->SetFlexibleDirection(wxBOTH);
2393 fgSizer36->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2395 wxFlexGridSizer* fgSizer37;
2396 fgSizer37 =
new wxFlexGridSizer(0, 1, 0, 0);
2397 fgSizer37->SetFlexibleDirection(wxBOTH);
2398 fgSizer37->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2400 wxBoxSizer* zoneSelBoxSizer =
new wxBoxSizer(wxVERTICAL);
2402 new wxRadioButton(parent,
AUTOSELECT, _(
"Current View"),
2403 wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
2405 wxDefaultPosition, wxDefaultSize);
2410 fgSizer37->Add(zoneSelBoxSizer, 0, wxLEFT | wxBOTTOM, 5);
2412 m_bpManualSelection =
2414 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
2415 m_bpManualSelection->SetBitmapLabel(GRIBUICtrlBarBase::GetScaledBitmap(
2416 wxBitmap(selzone), _T(
"selzone"), ctrlBar->GetScaleFactor()));
2419 wxBitmap pressedBitmap = GRIBUICtrlBarBase::GetScaledBitmap(
2420 wxBitmap(selzone), _T(
"selzone"), ctrlBar->GetScaleFactor());
2422 pressedBitmap.ConvertToDisabled();
2423 m_bpManualSelection->SetBitmapPressed(pressedBitmap);
2425 m_bpManualSelection->SetToolTip(
2426 _(
"Click to select the download area, or Shift + Click + Drag on the "
2428 fgSizer37->Add(m_bpManualSelection, 0, wxLEFT, 5);
2430 fgSizer36->Add(fgSizer37, 1, wxEXPAND | wxLEFT, 5);
2432 fgZoneCoordinatesSizer =
new wxFlexGridSizer(0, 6, 0, 0);
2433 fgZoneCoordinatesSizer->SetFlexibleDirection(wxBOTH);
2434 fgZoneCoordinatesSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2436 wxStaticText* m_staticText34;
2437 m_staticText34 =
new wxStaticText(parent, wxID_ANY, _(
"Max Lat"),
2438 wxDefaultPosition, wxDefaultSize, 0);
2439 m_staticText34->Wrap(-1);
2440 fgZoneCoordinatesSizer->Add(m_staticText34, 0, wxLEFT | wxRIGHT, 5);
2442 m_spMaxLat =
new wxSpinCtrl(parent, MAXLAT, wxEmptyString, wxDefaultPosition,
2443 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2444 fgZoneCoordinatesSizer->Add(
m_spMaxLat, 0, wxLEFT | wxRIGHT, 5);
2446 m_stMaxLatNS =
new wxStaticText(parent, wxID_ANY, _(
"N"), wxDefaultPosition,
2448 m_stMaxLatNS->Wrap(-1);
2449 fgZoneCoordinatesSizer->Add(m_stMaxLatNS, 0, wxRIGHT, 20);
2451 m_staticText36 =
new wxStaticText(parent, wxID_ANY, _(
"Max Long"),
2452 wxDefaultPosition, wxDefaultSize, 0);
2453 m_staticText36->Wrap(-1);
2454 fgZoneCoordinatesSizer->Add(m_staticText36, 0, wxLEFT | wxRIGHT, 5);
2456 m_spMaxLon =
new wxSpinCtrl(parent, MAXLON, wxEmptyString, wxDefaultPosition,
2457 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2458 fgZoneCoordinatesSizer->Add(
m_spMaxLon, 0, wxLEFT | wxRIGHT, 5);
2460 m_stMaxLonEW =
new wxStaticText(parent, wxID_ANY, _(
"E"), wxDefaultPosition,
2462 m_stMaxLonEW->Wrap(-1);
2463 fgZoneCoordinatesSizer->Add(m_stMaxLonEW, 0, wxRIGHT, 5);
2465 wxStaticText* m_staticText38;
2466 m_staticText38 =
new wxStaticText(parent, wxID_ANY, _(
"Min Lat"),
2467 wxDefaultPosition, wxDefaultSize, 0);
2468 m_staticText38->Wrap(-1);
2469 fgZoneCoordinatesSizer->Add(m_staticText38, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2471 m_spMinLat =
new wxSpinCtrl(parent, MINLAT, wxEmptyString, wxDefaultPosition,
2472 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2473 fgZoneCoordinatesSizer->Add(
m_spMinLat, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2475 m_stMinLatNS =
new wxStaticText(parent, wxID_ANY, _(
"S"), wxDefaultPosition,
2477 m_stMinLatNS->Wrap(-1);
2478 fgZoneCoordinatesSizer->Add(m_stMinLatNS, 0, wxRIGHT | wxTOP, 5);
2480 wxStaticText* m_staticText40;
2481 m_staticText40 =
new wxStaticText(parent, wxID_ANY, _(
"Min Long"),
2482 wxDefaultPosition, wxDefaultSize, 0);
2483 m_staticText40->Wrap(-1);
2484 fgZoneCoordinatesSizer->Add(m_staticText40, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2486 m_spMinLon =
new wxSpinCtrl(parent, MINLON, wxEmptyString, wxDefaultPosition,
2487 wxDefaultSize, wxSP_ARROW_KEYS, -180, 180, 0);
2488 fgZoneCoordinatesSizer->Add(
m_spMinLon, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2490 m_stMinLonEW =
new wxStaticText(parent, wxID_ANY, _(
"W"), wxDefaultPosition,
2492 m_stMinLonEW->Wrap(-1);
2493 fgZoneCoordinatesSizer->Add(m_stMinLonEW, 0, wxRIGHT | wxTOP, 5);
2495 wxFlexGridSizer* fgSizer38;
2496 fgSizer38 =
new wxFlexGridSizer(0, 1, 0, 0);
2497 fgSizer38->Add(fgZoneCoordinatesSizer, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2499 m_cUseSavedZone =
new wxCheckBox(parent,
SAVEDZONE, _(
"Use Always this Area"),
2500 wxDefaultPosition, wxDefaultSize, 0);
2501 fgSizer38->Add(m_cUseSavedZone, 0, wxLEFT | wxRIGHT | wxTOP, 5);
2503 fgSizer36->Add(fgSizer38, 1, wxEXPAND | wxLEFT | wxTOP, 5);
2505 sbSizer81->Add(fgSizer36, 1, wxBOTTOM | wxEXPAND | wxTOP, 5);
2510void GribRequestSettingBase::createWorldPanel() {
2511 m_panelWorld =
new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2512 wxDefaultSize, wxTAB_TRAVERSAL);
2513 wxBoxSizer* bSizerWorldDownload;
2514 bSizerWorldDownload =
new wxBoxSizer(wxVERTICAL);
2517 new wxHtmlWindow(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2518 wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2519 bSizerWorldDownload->Add(m_htmlWinWorld, 1, wxALL | wxEXPAND, 5);
2522 new wxStaticText(m_panelWorld, wxID_ANY, _(
"Download grib..."),
2523 wxDefaultPosition, wxDefaultSize, 0);
2524 m_staticTextInfo->Wrap(-1);
2525 bSizerWorldDownload->Add(m_staticTextInfo, 0, wxALL, 5);
2527 wxBoxSizer* bSizerWorld;
2528 bSizerWorld =
new wxBoxSizer(wxHORIZONTAL);
2530 m_stForecastLength =
2531 new wxStaticText(m_panelWorld, wxID_ANY, _(
"Forecast length"),
2532 wxDefaultPosition, wxDefaultSize, 0);
2533 m_stForecastLength->Wrap(-1);
2534 bSizerWorld->Add(m_stForecastLength, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2536 wxString m_chForecastLengthChoices[] = {_(
"24 hours"), _(
"3 days"),
2538 int m_chForecastLengthNChoices =
2539 sizeof(m_chForecastLengthChoices) /
sizeof(wxString);
2540 m_chForecastLength =
2541 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2542 m_chForecastLengthNChoices, m_chForecastLengthChoices, 0);
2543 m_chForecastLength->SetSelection(0);
2544 bSizerWorld->Add(m_chForecastLength, 0, wxALL, 5);
2546 m_stECMWFResolution =
new wxStaticText(m_panelWorld, wxID_ANY, _(
"Model"),
2547 wxDefaultPosition, wxDefaultSize, 0);
2548 m_stECMWFResolution->Wrap(-1);
2549 bSizerWorld->Add(m_stECMWFResolution, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2551 wxString m_chECMWFResolutionChoices[] = {
2552 wxString::Format(
"0.25%c IFS", 0x00B0),
2553 wxString::Format(
"0.25%c AIFS", 0x00B0)};
2554 int m_chECMWFResolutionNChoices =
2555 sizeof(m_chECMWFResolutionChoices) /
sizeof(wxString);
2556 m_chECMWFResolution =
2557 new wxChoice(m_panelWorld, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2558 m_chECMWFResolutionNChoices, m_chECMWFResolutionChoices, 0);
2559 m_chECMWFResolution->SetSelection(0);
2560 bSizerWorld->Add(m_chECMWFResolution, 0, wxALL, 5);
2562 bSizerWorld->Add(0, 0, 1, wxEXPAND, 5);
2564 m_btnDownloadWorld =
new wxButton(m_panelWorld, wxID_ANY, _(
"Download"),
2565 wxDefaultPosition, wxDefaultSize, 0);
2566 bSizerWorld->Add(m_btnDownloadWorld, 0, wxALL, 5);
2568 bSizerWorldDownload->Add(bSizerWorld, 0, wxEXPAND, 5);
2570 m_panelWorld->SetSizer(bSizerWorldDownload);
2571 m_panelWorld->Layout();
2572 bSizerWorldDownload->Fit(m_panelWorld);
2575void GribRequestSettingBase::createLocalModelsPanel() {
2576 m_panelLocalModels =
2577 new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2579 wxBoxSizer* bMainSizer;
2580 bMainSizer =
new wxBoxSizer(wxVERTICAL);
2582 wxBoxSizer* bSizerSource;
2583 bSizerSource =
new wxBoxSizer(wxHORIZONTAL);
2585 m_SourcesTreeCtrl1 =
new wxTreeCtrl(
2586 m_panelLocalModels, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2587 wxTR_DEFAULT_STYLE | wxTR_FULL_ROW_HIGHLIGHT | wxTR_SINGLE);
2588 bSizerSource->Add(m_SourcesTreeCtrl1, 1, wxALL | wxEXPAND, 5);
2591 new wxHtmlWindow(m_panelLocalModels, wxID_ANY, wxDefaultPosition,
2592 wxDefaultSize, wxHW_NO_SELECTION | wxHW_SCROLLBAR_AUTO);
2593 bSizerSource->Add(m_htmlInfoWin, 1, wxALL | wxEXPAND, 5);
2595 bMainSizer->Add(bSizerSource, 1, wxEXPAND, 5);
2597 m_stLocalDownloadInfo =
2598 new wxStaticText(m_panelLocalModels, wxID_ANY, _(
"Download grib..."),
2599 wxDefaultPosition, wxDefaultSize, 0);
2600 m_stLocalDownloadInfo->Wrap(-1);
2601 bMainSizer->Add(m_stLocalDownloadInfo, 0, wxALL, 5);
2603 wxBoxSizer* bSizerLocalButtons;
2604 bSizerLocalButtons =
new wxBoxSizer(wxHORIZONTAL);
2606 m_buttonUpdateCatalog =
2607 new wxButton(m_panelLocalModels, wxID_ANY, _(
"Update Catalog"),
2608 wxDefaultPosition, wxDefaultSize, 0);
2609 bSizerLocalButtons->Add(m_buttonUpdateCatalog, 0, wxALL, 5);
2611 bSizerLocalButtons->Add(0, 0, 1, wxEXPAND, 5);
2613 m_btnDownloadLocal =
new wxButton(m_panelLocalModels, wxID_ANY, _(
"Download"),
2614 wxDefaultPosition, wxDefaultSize, 0);
2615 bSizerLocalButtons->Add(m_btnDownloadLocal, 0, wxALL, 5);
2617 bMainSizer->Add(bSizerLocalButtons, 0, wxEXPAND, 5);
2619 m_panelLocalModels->SetSizer(bMainSizer);
2620 m_panelLocalModels->Layout();
2621 bMainSizer->Fit(m_panelLocalModels);
2624void GribRequestSettingBase::createEmailPanel() {
2625 m_panelEmail =
new wxPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
2626 wxDefaultSize, wxTAB_TRAVERSAL);
2628 wxFlexGridSizer* fgSizer101;
2629 fgSizer101 =
new wxFlexGridSizer(0, 1, 0, 0);
2630 fgSizer101->SetFlexibleDirection(wxBOTH);
2631 fgSizer101->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2633 m_sScrolledDialog =
new wxScrolledWindow(
2634 m_panelEmail, wxID_ANY, wxDefaultPosition, wxDefaultSize,
2635 wxHSCROLL | wxTAB_TRAVERSAL | wxVSCROLL);
2636 m_sScrolledDialog->SetScrollRate(0, 5);
2637 m_fgScrollSizer =
new wxFlexGridSizer(0, 1, 0, 0);
2638 m_fgScrollSizer->SetFlexibleDirection(wxBOTH);
2639 m_fgScrollSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2641 wxStaticBoxSizer* sbSizer7;
2642 sbSizer7 =
new wxStaticBoxSizer(
2643 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Profile")), wxVERTICAL);
2645 wxFlexGridSizer* fgSizer17;
2646 fgSizer17 =
new wxFlexGridSizer(0, 1, 0, 0);
2647 fgSizer17->SetFlexibleDirection(wxBOTH);
2648 fgSizer17->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2650 m_pSenderSizer =
new wxFlexGridSizer(0, 2, 0, 0);
2651 m_pSenderSizer->AddGrowableCol(1);
2652 m_pSenderSizer->SetFlexibleDirection(wxBOTH);
2653 m_pSenderSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2655 wxStaticText* m_staticText25;
2657 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Sender eMail Address"),
2658 wxDefaultPosition, wxDefaultSize, 0);
2659 m_staticText25->Wrap(-1);
2660 m_pSenderSizer->Add(m_staticText25, 0, wxALL, 5);
2662 m_pSenderAddress =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2663 wxDefaultPosition, wxDefaultSize, 0);
2664 m_pSenderSizer->Add(m_pSenderAddress, 0, wxALL | wxEXPAND, 5);
2666 wxStaticLine* m_staticline4;
2668 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2669 wxDefaultSize, wxLI_HORIZONTAL);
2670 m_pSenderSizer->Add(m_staticline4, 0, wxEXPAND | wxALL, 5);
2672 wxStaticLine* m_staticline5;
2674 new wxStaticLine(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2675 wxDefaultSize, wxLI_HORIZONTAL);
2676 m_pSenderSizer->Add(m_staticline5, 0, wxEXPAND | wxALL, 5);
2678 fgSizer17->Add(m_pSenderSizer, 1, wxEXPAND, 5);
2680 wxFlexGridSizer* fgSizer9;
2681 fgSizer9 =
new wxFlexGridSizer(0, 3, 0, 0);
2682 fgSizer9->SetFlexibleDirection(wxBOTH);
2683 fgSizer9->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2685 wxFlexGridSizer* fgSizer33;
2686 fgSizer33 =
new wxFlexGridSizer(0, 2, 0, 0);
2687 fgSizer33->SetFlexibleDirection(wxBOTH);
2688 fgSizer33->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2690 wxStaticText* m_staticText15;
2691 m_staticText15 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Mail To "),
2692 wxDefaultPosition, wxDefaultSize, 0);
2693 m_staticText15->Wrap(-1);
2694 fgSizer33->Add(m_staticText15, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, 5);
2696 wxArrayString m_pMailToChoices;
2697 m_pMailTo =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2698 wxDefaultSize, m_pMailToChoices, 0);
2699 m_pMailTo->SetSelection(0);
2700 fgSizer33->Add(m_pMailTo, 0, wxALL, 5);
2702 wxStaticText* m_staticText16;
2704 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Forecast Model "),
2705 wxDefaultPosition, wxDefaultSize, 0);
2706 m_staticText16->Wrap(-1);
2707 fgSizer33->Add(m_staticText16, 0, wxALL | wxEXPAND | wxLEFT | wxRIGHT | wxTOP,
2710 wxArrayString m_pModelChoices;
2711 m_pModel =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2712 wxDefaultSize, m_pModelChoices, 0);
2713 m_pModel->SetSelection(0);
2714 fgSizer33->Add(m_pModel, 0, wxALL, 5);
2716 fgSizer9->Add(fgSizer33, 1, wxEXPAND, 5);
2718 wxFlexGridSizer* fgSizer32;
2719 fgSizer32 =
new wxFlexGridSizer(0, 2, 0, 0);
2720 fgSizer32->SetFlexibleDirection(wxBOTH);
2721 fgSizer32->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2723 m_cMovingGribEnabled =
2724 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Moving Grib"),
2725 wxDefaultPosition, wxDefaultSize, 0);
2726 fgSizer32->Add(m_cMovingGribEnabled, 0, wxALL, 5);
2728 m_fgMovingParams =
new wxFlexGridSizer(0, 3, 0, 0);
2729 m_fgMovingParams->SetFlexibleDirection(wxBOTH);
2730 m_fgMovingParams->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2732 wxStaticText* m_staticText27;
2733 m_staticText27 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Speed"),
2734 wxDefaultPosition, wxDefaultSize, 0);
2735 m_staticText27->Wrap(-1);
2736 m_fgMovingParams->Add(m_staticText27, 0, wxALL, 5);
2738 m_sMovingSpeed =
new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2739 wxDefaultPosition, wxDefaultSize,
2740 wxSP_ARROW_KEYS, 1, 30, 1);
2741 m_fgMovingParams->Add(m_sMovingSpeed, 0, wxALL, 5);
2743 wxStaticText* m_sSpeedUnit;
2744 m_sSpeedUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Kts"),
2745 wxDefaultPosition, wxDefaultSize, 0);
2746 m_sSpeedUnit->Wrap(-1);
2747 m_fgMovingParams->Add(m_sSpeedUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2750 wxStaticText* m_staticText29;
2751 m_staticText29 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Course"),
2752 wxDefaultPosition, wxDefaultSize, 0);
2753 m_staticText29->Wrap(-1);
2754 m_fgMovingParams->Add(m_staticText29, 0, wxALL, 5);
2756 m_sMovingCourse =
new wxSpinCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2757 wxDefaultPosition, wxDefaultSize,
2758 wxSP_ARROW_KEYS, 1, 360, 1);
2759 m_fgMovingParams->Add(m_sMovingCourse, 0, wxALL, 5);
2761 m_sCourseUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Deg"),
2762 wxDefaultPosition, wxDefaultSize, 0);
2763 m_sCourseUnit->Wrap(-1);
2764 m_fgMovingParams->Add(m_sCourseUnit, 0, wxBOTTOM | wxEXPAND | wxRIGHT | wxTOP,
2767 fgSizer32->Add(m_fgMovingParams, 1, wxEXPAND, 5);
2769 fgSizer9->Add(fgSizer32, 1, wxEXPAND, 5);
2771 m_fgLog =
new wxFlexGridSizer(0, 2, 0, 0);
2772 m_fgLog->SetFlexibleDirection(wxBOTH);
2773 m_fgLog->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2775 wxStaticText* m_tLogin;
2776 m_tLogin =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"zyGrib Login"),
2777 wxDefaultPosition, wxDefaultSize, 0);
2779 m_fgLog->Add(m_tLogin, 0, wxALL, 5);
2781 m_pLogin =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2782 wxDefaultPosition, wxDefaultSize, 0);
2783 m_fgLog->Add(m_pLogin, 0, wxALL, 5);
2785 wxStaticText* m_tCode;
2786 m_tCode =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"zyGrib Code"),
2787 wxDefaultPosition, wxDefaultSize, 0);
2789 m_fgLog->Add(m_tCode, 0, wxALL, 5);
2791 m_pCode =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2792 wxDefaultPosition, wxDefaultSize, 0);
2793 m_fgLog->Add(m_pCode, 0, wxALL, 5);
2795 fgSizer9->Add(m_fgLog, 1, wxEXPAND, 5);
2797 fgSizer17->Add(fgSizer9, 1, wxEXPAND, 10);
2799 wxFlexGridSizer* fgSizer13;
2800 fgSizer13 =
new wxFlexGridSizer(0, 9, 0, 0);
2801 fgSizer13->SetFlexibleDirection(wxBOTH);
2802 fgSizer13->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2804 wxStaticText* m_staticText17;
2806 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Resolution"),
2807 wxDefaultPosition, wxDefaultSize, 0);
2808 m_staticText17->Wrap(-1);
2809 fgSizer13->Add(m_staticText17, 0, wxALL, 5);
2811 wxArrayString m_pResolutionChoices;
2812 m_pResolution =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2813 wxDefaultSize, m_pResolutionChoices, 0);
2814 m_pResolution->SetSelection(0);
2815 fgSizer13->Add(m_pResolution, 0, wxALL, 1);
2817 m_tResUnit =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Deg"),
2818 wxDefaultPosition, wxDefaultSize, 0);
2819 m_tResUnit->Wrap(-1);
2820 fgSizer13->Add(m_tResUnit, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2822 wxStaticText* m_staticText18;
2823 m_staticText18 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Interval"),
2824 wxDefaultPosition, wxDefaultSize, 0);
2825 m_staticText18->Wrap(-1);
2826 fgSizer13->Add(m_staticText18, 0, wxALL, 5);
2828 wxArrayString m_pIntervalChoices;
2829 m_pInterval =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2830 wxDefaultSize, m_pIntervalChoices, 0);
2831 m_pInterval->SetSelection(0);
2832 fgSizer13->Add(m_pInterval, 0, wxALL, 1);
2834 wxStaticText* m_staticText20;
2835 m_staticText20 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Hours"),
2836 wxDefaultPosition, wxDefaultSize, 0);
2837 m_staticText20->Wrap(-1);
2838 fgSizer13->Add(m_staticText20, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2840 wxStaticText* m_staticText19;
2842 new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Time Range"),
2843 wxDefaultPosition, wxDefaultSize, 0);
2844 m_staticText19->Wrap(-1);
2845 fgSizer13->Add(m_staticText19, 0, wxALL, 5);
2847 wxArrayString m_pTimeRangeChoices;
2848 m_pTimeRange =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2849 wxDefaultSize, m_pTimeRangeChoices, 0);
2850 m_pTimeRange->SetSelection(0);
2851 fgSizer13->Add(m_pTimeRange, 0, wxALL, 1);
2853 m_staticText21 =
new wxStaticText(m_sScrolledDialog, wxID_ANY, _(
"Days"),
2854 wxDefaultPosition, wxDefaultSize, 0);
2855 m_staticText21->Wrap(-1);
2856 fgSizer13->Add(m_staticText21, 0, wxTOP | wxBOTTOM | wxRIGHT, 5);
2858 fgSizer17->Add(fgSizer13, 1, wxEXPAND, 5);
2860 sbSizer7->Add(fgSizer17, 1, wxEXPAND, 5);
2862 m_fgScrollSizer->Add(sbSizer7, 1, wxEXPAND, 5);
2868 wxStaticBoxSizer* sbSizer8;
2869 sbSizer8 =
new wxStaticBoxSizer(
2870 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Data Selection")),
2873 wxFlexGridSizer* fgSizer10;
2874 fgSizer10 =
new wxFlexGridSizer(0, 3, 0, 0);
2875 fgSizer10->SetFlexibleDirection(wxBOTH);
2876 fgSizer10->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2878 m_pWind =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Wind"),
2879 wxDefaultPosition, wxDefaultSize, 0);
2880 fgSizer10->Add(m_pWind, 0, wxALL | wxEXPAND, 5);
2882 m_pPress =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Pressure"),
2883 wxDefaultPosition, wxDefaultSize, 0);
2884 fgSizer10->Add(m_pPress, 0, wxALL | wxEXPAND, 5);
2886 m_pWindGust =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Wind Gust"),
2887 wxDefaultPosition, wxDefaultSize, 0);
2888 fgSizer10->Add(m_pWindGust, 0, wxALL | wxEXPAND, 5);
2890 m_pRainfall =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Rainfall"),
2891 wxDefaultPosition, wxDefaultSize, 0);
2892 fgSizer10->Add(m_pRainfall, 0, wxALL | wxEXPAND, 5);
2894 m_pCloudCover =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Cloud Cover"),
2895 wxDefaultPosition, wxDefaultSize, 0);
2896 fgSizer10->Add(m_pCloudCover, 0, wxALL | wxEXPAND, 5);
2899 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Air Temperature(2m)"),
2900 wxDefaultPosition, wxDefaultSize, 0);
2901 m_pAirTemp->SetValue(
true);
2902 fgSizer10->Add(m_pAirTemp, 0, wxALL | wxEXPAND, 5);
2904 m_pCAPE =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"CAPE"),
2905 wxDefaultPosition, wxDefaultSize, 0);
2906 fgSizer10->Add(m_pCAPE, 0, wxALL | wxEXPAND, 5);
2909 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Comp. Reflect."),
2910 wxDefaultPosition, wxDefaultSize, 0);
2911 fgSizer10->Add(m_pReflectivity, 0, wxALL | wxEXPAND, 5);
2914 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Sea Temperature(surf.)"),
2915 wxDefaultPosition, wxDefaultSize, 0);
2916 fgSizer10->Add(m_pSeaTemp, 0, wxALL | wxEXPAND, 5);
2918 m_pCurrent =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Current"),
2919 wxDefaultPosition, wxDefaultSize, 0);
2920 fgSizer10->Add(m_pCurrent, 0, wxALL | wxEXPAND, 5);
2922 wxFlexGridSizer* fgSizer28;
2923 fgSizer28 =
new wxFlexGridSizer(0, 2, 0, 0);
2924 fgSizer28->SetFlexibleDirection(wxBOTH);
2925 fgSizer28->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2927 m_pWaves =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Waves"),
2928 wxDefaultPosition, wxDefaultSize, 0);
2929 fgSizer28->Add(m_pWaves, 0, wxALL, 5);
2931 wxArrayString m_pWModelChoices;
2932 m_pWModel =
new wxChoice(m_sScrolledDialog, wxID_ANY, wxDefaultPosition,
2933 wxDefaultSize, m_pWModelChoices, 0);
2934 m_pWModel->SetSelection(0);
2935 fgSizer28->Add(m_pWModel, 0, wxALL | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 1);
2937 fgSizer10->Add(fgSizer28, 1, wxEXPAND, 5);
2939 wxFlexGridSizer* fgSizer331;
2940 fgSizer331 =
new wxFlexGridSizer(0, 2, 0, 0);
2941 fgSizer331->SetFlexibleDirection(wxBOTH);
2942 fgSizer331->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2945 new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"Geopotential Height"),
2946 wxDefaultPosition, wxDefaultSize, 0);
2947 fgSizer331->Add(m_pAltitudeData, 0, wxALL | wxEXPAND, 5);
2949 fgSizer10->Add(fgSizer331, 1, wxEXPAND, 5);
2951 m_fgAltitudeData =
new wxFlexGridSizer(0, 2, 0, 0);
2952 m_fgAltitudeData->SetFlexibleDirection(wxBOTH);
2953 m_fgAltitudeData->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2955 m_p850hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"850 hPa"),
2956 wxDefaultPosition, wxDefaultSize, 0);
2957 m_fgAltitudeData->Add(m_p850hpa, 0,
2958 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2960 m_p700hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"700 hPa"),
2961 wxDefaultPosition, wxDefaultSize, 0);
2962 m_fgAltitudeData->Add(m_p700hpa, 0,
2963 wxALL | wxEXPAND | wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
2965 m_p500hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"500 hPa"),
2966 wxDefaultPosition, wxDefaultSize, 0);
2967 m_fgAltitudeData->Add(m_p500hpa, 0, wxALL | wxEXPAND, 5);
2969 m_p300hpa =
new wxCheckBox(m_sScrolledDialog, wxID_ANY, _(
"300 hPa"),
2970 wxDefaultPosition, wxDefaultSize, 0);
2971 m_fgAltitudeData->Add(m_p300hpa, 0, wxALL | wxEXPAND, 5);
2973 fgSizer10->Add(m_fgAltitudeData, 1, wxEXPAND, 5);
2975 sbSizer8->Add(fgSizer10, 1, wxEXPAND, 5);
2977 m_fgScrollSizer->Add(sbSizer8, 1, wxEXPAND | wxTOP, 5);
2979 wxStaticBoxSizer* sbSizer6;
2980 sbSizer6 =
new wxStaticBoxSizer(
2981 new wxStaticBox(m_sScrolledDialog, wxID_ANY, _(
"Mail")), wxVERTICAL);
2983 wxFlexGridSizer* fgSizer11;
2984 fgSizer11 =
new wxFlexGridSizer(0, 1, 0, 0);
2985 fgSizer11->AddGrowableCol(0);
2986 fgSizer11->SetFlexibleDirection(wxBOTH);
2987 fgSizer11->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
2989 m_MailImage =
new wxTextCtrl(m_sScrolledDialog, wxID_ANY, wxEmptyString,
2990 wxDefaultPosition, wxDefaultSize,
2991 wxTE_MULTILINE | wxTE_READONLY);
2992 fgSizer11->Add(m_MailImage, 0, wxALL | wxEXPAND, 5);
2994 sbSizer6->Add(fgSizer11, 1, wxEXPAND, 5);
2996 m_fgScrollSizer->Add(sbSizer6, 1, wxEXPAND, 5);
2998 m_sScrolledDialog->SetSizer(m_fgScrollSizer);
2999 m_sScrolledDialog->Layout();
3000 m_fgScrollSizer->Fit(m_sScrolledDialog);
3001 fgSizer101->Add(m_sScrolledDialog, 1, 0, 5);
3003 m_fgFixedSizer =
new wxFlexGridSizer(0, 3, 0, 0);
3004 m_fgFixedSizer->SetFlexibleDirection(wxBOTH);
3005 m_fgFixedSizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
3007 wxStaticText* m_staticText181;
3009 new wxStaticText(m_panelEmail, wxID_ANY, _(
"Estimated File Size"),
3010 wxDefaultPosition, wxDefaultSize, 0);
3011 m_staticText181->Wrap(-1);
3012 m_fgFixedSizer->Add(m_staticText181, 0, wxALL, 5);
3014 m_tFileSize =
new wxStaticText(m_panelEmail, wxID_ANY, wxEmptyString,
3015 wxDefaultPosition, wxDefaultSize, 0);
3016 m_tFileSize->Wrap(-1);
3017 m_fgFixedSizer->Add(m_tFileSize, 0, wxTOP | wxBOTTOM, 5);
3019 m_tLimit =
new wxStaticText(m_panelEmail, wxID_ANY, _(
" (Max size )"),
3020 wxDefaultPosition, wxDefaultSize, 0);
3022 m_fgFixedSizer->Add(m_tLimit, 0, wxALL, 5);
3024 fgSizer101->Add(m_fgFixedSizer, 1, wxEXPAND, 5);
3026 wxBoxSizer* buttonSizer =
new wxBoxSizer(wxHORIZONTAL);
3030 fgSizer101->Add(buttonSizer, 0, wxEXPAND | wxALL, 5);
3032 m_panelEmail->SetSizer(fgSizer101);
3033 m_panelEmail->Layout();
3034 fgSizer101->Fit(m_panelEmail);
3039 const wxString& title,
3041 const wxSize& size,
long style)
3042 : wxDialog(parent, id, title, pos, size, style) {
3043 this->SetSizeHints(wxDefaultSize, wxDefaultSize);
3045 wxBoxSizer* bSizerMain;
3046 bSizerMain =
new wxBoxSizer(wxVERTICAL);
3049 new wxNotebook(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);
3053 m_notebookGetGrib->AddPage(m_panelWorld, _(
"World"),
true);
3056 createLocalModelsPanel();
3057 m_notebookGetGrib->AddPage(m_panelLocalModels, _(
"Local models"),
false);
3061 m_notebookGetGrib->AddPage(m_panelEmail, _(
"e-mail"),
false);
3065 new XyGribPanel(m_notebookGetGrib, wxID_ANY, wxDefaultPosition,
3066 wxDefaultSize, wxTAB_TRAVERSAL);
3068 m_notebookGetGrib->AddPage(m_xygribPanel, _(
"XyGrib"),
false);
3071 wxStaticBoxSizer* sbSizer81 = createAreaSelectionSection(
this, parent);
3072 bSizerMain->Add(sbSizer81, 0, wxEXPAND | wxALL, 5);
3076 bSizerMain->Add(m_notebookGetGrib, 1, wxEXPAND | wxALL, 5);
3079 wxBoxSizer* bottomButtonSizer =
new wxBoxSizer(wxHORIZONTAL);
3080 m_rButtonCancel =
new wxButton(
this, wxID_CANCEL, _(
"Cancel"));
3081 bottomButtonSizer->Add(m_rButtonCancel, 0, wxALL, 5);
3083 bottomButtonSizer->AddStretchSpacer();
3085 m_rButtonApply =
new wxButton(
this, wxID_APPLY);
3086 bottomButtonSizer->Add(m_rButtonApply, 0, wxALL, 5);
3088 bSizerMain->Add(bottomButtonSizer, 0, wxEXPAND | wxALL, 5);
3090 this->SetSizer(bSizerMain);
3093 bSizerMain->Fit(
this);
3095 this->Centre(wxBOTH);
3098 this->Connect(wxEVT_CLOSE_WINDOW,
3099 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3100 m_chForecastLength->Connect(
3101 wxEVT_COMMAND_CHOICE_SELECTED,
3102 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3104 m_btnDownloadWorld->Connect(
3105 wxEVT_COMMAND_BUTTON_CLICKED,
3106 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload),
nullptr,
3108 m_SourcesTreeCtrl1->Connect(
3109 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3110 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3112 m_SourcesTreeCtrl1->Connect(
3113 wxEVT_COMMAND_TREE_SEL_CHANGED,
3114 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3116 m_buttonUpdateCatalog->Connect(
3117 wxEVT_COMMAND_BUTTON_CLICKED,
3118 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3120 m_btnDownloadLocal->Connect(
3121 wxEVT_COMMAND_BUTTON_CLICKED,
3122 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal),
nullptr,
3124 m_pMailTo->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3125 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3127 m_pModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3128 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
3130 m_cMovingGribEnabled->Connect(
3131 wxEVT_COMMAND_CHECKBOX_CLICKED,
3132 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick),
nullptr,
3134 m_sMovingSpeed->Connect(
3135 wxEVT_COMMAND_SPINCTRL_UPDATED,
3136 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3138 m_sMovingCourse->Connect(
3139 wxEVT_COMMAND_SPINCTRL_UPDATED,
3140 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3142 m_pLogin->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3143 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3145 m_pCode->Connect(wxEVT_COMMAND_TEXT_UPDATED,
3146 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3148 m_pResolution->Connect(
3149 wxEVT_COMMAND_CHOICE_SELECTED,
3150 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3152 m_pInterval->Connect(
3153 wxEVT_COMMAND_CHOICE_SELECTED,
3154 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3156 m_pTimeRange->Connect(
3157 wxEVT_COMMAND_CHOICE_SELECTED,
3158 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange),
nullptr,
3160 m_rbCurrentView->Connect(
3161 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3162 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3164 m_rbManualSelect->Connect(
3165 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3166 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3168 m_cUseSavedZone->Connect(
3169 wxEVT_COMMAND_CHECKBOX_CLICKED,
3170 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3172 m_spMaxLat->Connect(
3173 wxEVT_COMMAND_SPINCTRL_UPDATED,
3174 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3176 m_spMaxLon->Connect(
3177 wxEVT_COMMAND_SPINCTRL_UPDATED,
3178 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3180 m_spMinLat->Connect(
3181 wxEVT_COMMAND_SPINCTRL_UPDATED,
3182 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3184 m_spMinLon->Connect(
3185 wxEVT_COMMAND_SPINCTRL_UPDATED,
3186 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3188 m_pWind->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3189 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3191 m_pPress->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3192 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3194 m_pWindGust->Connect(
3195 wxEVT_COMMAND_CHECKBOX_CLICKED,
3196 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3198 m_pRainfall->Connect(
3199 wxEVT_COMMAND_CHECKBOX_CLICKED,
3200 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3202 m_pCloudCover->Connect(
3203 wxEVT_COMMAND_CHECKBOX_CLICKED,
3204 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3206 m_pAirTemp->Connect(
3207 wxEVT_COMMAND_CHECKBOX_CLICKED,
3208 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3210 m_pCAPE->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3211 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3213 m_pReflectivity->Connect(
3214 wxEVT_COMMAND_CHECKBOX_CLICKED,
3215 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3217 m_pSeaTemp->Connect(
3218 wxEVT_COMMAND_CHECKBOX_CLICKED,
3219 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3221 m_pCurrent->Connect(
3222 wxEVT_COMMAND_CHECKBOX_CLICKED,
3223 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3225 m_pWaves->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3226 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3228 m_pWModel->Connect(wxEVT_COMMAND_CHOICE_SELECTED,
3229 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3231 m_pAltitudeData->Connect(
3232 wxEVT_COMMAND_CHECKBOX_CLICKED,
3233 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3235 m_p850hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3236 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3238 m_p700hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3239 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3241 m_p500hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3242 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3244 m_p300hpa->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED,
3245 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
3247 m_rButtonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3250 m_rButtonCancel->Connect(
3251 wxEVT_COMMAND_BUTTON_CLICKED,
3253 m_rButtonYes->Connect(
3254 wxEVT_COMMAND_BUTTON_CLICKED,
3258 m_xygribPanel->m_download_button->Connect(
3259 wxEVT_COMMAND_BUTTON_CLICKED,
3260 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3262 m_xygribPanel->m_atmmodel_choice->Connect(
3263 wxEVT_COMMAND_CHOICE_SELECTED,
3264 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3266 m_xygribPanel->m_wavemodel_choice->Connect(
3267 wxEVT_COMMAND_CHOICE_SELECTED,
3268 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3270 m_xygribPanel->m_wind_cbox->Connect(
3271 wxEVT_COMMAND_CHECKBOX_CLICKED,
3272 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3274 m_xygribPanel->m_gust_cbox->Connect(
3275 wxEVT_COMMAND_CHECKBOX_CLICKED,
3276 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3278 m_xygribPanel->m_reflectivity_cbox->Connect(
3279 wxEVT_COMMAND_CHECKBOX_CLICKED,
3280 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3282 m_xygribPanel->m_precipitation_cbox->Connect(
3283 wxEVT_COMMAND_CHECKBOX_CLICKED,
3284 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3286 m_xygribPanel->m_cape_cbox->Connect(
3287 wxEVT_COMMAND_CHECKBOX_CLICKED,
3288 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3290 m_xygribPanel->m_pressure_cbox->Connect(
3291 wxEVT_COMMAND_CHECKBOX_CLICKED,
3292 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3294 m_xygribPanel->m_cloudcover_cbox->Connect(
3295 wxEVT_COMMAND_CHECKBOX_CLICKED,
3296 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3298 m_xygribPanel->m_temperature_cbox->Connect(
3299 wxEVT_COMMAND_CHECKBOX_CLICKED,
3300 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3302 m_xygribPanel->m_waveheight_cbox->Connect(
3303 wxEVT_COMMAND_CHECKBOX_CLICKED,
3304 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3306 m_xygribPanel->m_windwave_cbox->Connect(
3307 wxEVT_COMMAND_CHECKBOX_CLICKED,
3308 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3310 m_xygribPanel->m_resolution_choice->Connect(
3311 wxEVT_COMMAND_CHOICE_SELECTED,
3312 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3314 m_xygribPanel->m_duration_choice->Connect(
3315 wxEVT_COMMAND_CHOICE_SELECTED,
3316 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3318 m_xygribPanel->m_interval_choice->Connect(
3319 wxEVT_COMMAND_CHOICE_SELECTED,
3320 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3324GribRequestSettingBase::~GribRequestSettingBase() {
3326 this->Disconnect(wxEVT_CLOSE_WINDOW,
3327 wxCloseEventHandler(GribRequestSettingBase::OnClose));
3328 m_chForecastLength->Disconnect(
3329 wxEVT_COMMAND_CHOICE_SELECTED,
3330 wxCommandEventHandler(GribRequestSettingBase::OnWorldLengthChoice),
3332 m_btnDownloadWorld->Disconnect(
3333 wxEVT_COMMAND_BUTTON_CLICKED,
3334 wxCommandEventHandler(GribRequestSettingBase::OnWorldDownload),
nullptr,
3336 m_SourcesTreeCtrl1->Disconnect(
3337 wxEVT_COMMAND_TREE_ITEM_EXPANDED,
3338 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeItemExpanded),
3340 m_SourcesTreeCtrl1->Disconnect(
3341 wxEVT_COMMAND_TREE_SEL_CHANGED,
3342 wxTreeEventHandler(GribRequestSettingBase::OnLocalTreeSelChanged),
3344 m_buttonUpdateCatalog->Disconnect(
3345 wxEVT_COMMAND_BUTTON_CLICKED,
3346 wxCommandEventHandler(GribRequestSettingBase::OnUpdateLocalCatalog),
3348 m_btnDownloadLocal->Disconnect(
3349 wxEVT_COMMAND_BUTTON_CLICKED,
3350 wxCommandEventHandler(GribRequestSettingBase::OnDownloadLocal),
nullptr,
3352 m_pMailTo->Disconnect(
3353 wxEVT_COMMAND_CHOICE_SELECTED,
3354 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
nullptr,
3356 m_pModel->Disconnect(
3357 wxEVT_COMMAND_CHOICE_SELECTED,
3358 wxCommandEventHandler(GribRequestSettingBase::OnTopChange),
nullptr,
3360 m_cMovingGribEnabled->Disconnect(
3361 wxEVT_COMMAND_CHECKBOX_CLICKED,
3362 wxCommandEventHandler(GribRequestSettingBase::OnMovingClick),
nullptr,
3364 m_sMovingSpeed->Disconnect(
3365 wxEVT_COMMAND_SPINCTRL_UPDATED,
3366 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3368 m_sMovingCourse->Disconnect(
3369 wxEVT_COMMAND_SPINCTRL_UPDATED,
3370 wxSpinEventHandler(GribRequestSettingBase::OnAnySpinChange),
nullptr,
3372 m_pLogin->Disconnect(
3373 wxEVT_COMMAND_TEXT_UPDATED,
3374 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3376 m_pCode->Disconnect(
3377 wxEVT_COMMAND_TEXT_UPDATED,
3378 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3380 m_pResolution->Disconnect(
3381 wxEVT_COMMAND_CHOICE_SELECTED,
3382 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3384 m_pInterval->Disconnect(
3385 wxEVT_COMMAND_CHOICE_SELECTED,
3386 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3388 m_pTimeRange->Disconnect(
3389 wxEVT_COMMAND_CHOICE_SELECTED,
3390 wxCommandEventHandler(GribRequestSettingBase::OnTimeRangeChange),
nullptr,
3393 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3394 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3397 wxEVT_COMMAND_RADIOBUTTON_SELECTED,
3398 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3400 m_cUseSavedZone->Disconnect(
3401 wxEVT_COMMAND_CHECKBOX_CLICKED,
3402 wxCommandEventHandler(GribRequestSettingBase::OnZoneSelectionModeChange),
3405 wxEVT_COMMAND_SPINCTRL_UPDATED,
3406 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3409 wxEVT_COMMAND_SPINCTRL_UPDATED,
3410 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3413 wxEVT_COMMAND_SPINCTRL_UPDATED,
3414 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3417 wxEVT_COMMAND_SPINCTRL_UPDATED,
3418 wxSpinEventHandler(GribRequestSettingBase::OnCoordinatesChange),
nullptr,
3420 m_pWind->Disconnect(
3421 wxEVT_COMMAND_CHECKBOX_CLICKED,
3422 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3424 m_pPress->Disconnect(
3425 wxEVT_COMMAND_CHECKBOX_CLICKED,
3426 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3428 m_pWindGust->Disconnect(
3429 wxEVT_COMMAND_CHECKBOX_CLICKED,
3430 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3432 m_pRainfall->Disconnect(
3433 wxEVT_COMMAND_CHECKBOX_CLICKED,
3434 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3436 m_pCloudCover->Disconnect(
3437 wxEVT_COMMAND_CHECKBOX_CLICKED,
3438 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3440 m_pAirTemp->Disconnect(
3441 wxEVT_COMMAND_CHECKBOX_CLICKED,
3442 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3444 m_pCAPE->Disconnect(
3445 wxEVT_COMMAND_CHECKBOX_CLICKED,
3446 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3448 m_pReflectivity->Disconnect(
3449 wxEVT_COMMAND_CHECKBOX_CLICKED,
3450 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3452 m_pSeaTemp->Disconnect(
3453 wxEVT_COMMAND_CHECKBOX_CLICKED,
3454 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3456 m_pCurrent->Disconnect(
3457 wxEVT_COMMAND_CHECKBOX_CLICKED,
3458 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3460 m_pWaves->Disconnect(
3461 wxEVT_COMMAND_CHECKBOX_CLICKED,
3462 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3464 m_pWModel->Disconnect(
3465 wxEVT_COMMAND_CHOICE_SELECTED,
3466 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3468 m_pAltitudeData->Disconnect(
3469 wxEVT_COMMAND_CHECKBOX_CLICKED,
3470 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3472 m_p850hpa->Disconnect(
3473 wxEVT_COMMAND_CHECKBOX_CLICKED,
3474 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3476 m_p700hpa->Disconnect(
3477 wxEVT_COMMAND_CHECKBOX_CLICKED,
3478 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3480 m_p500hpa->Disconnect(
3481 wxEVT_COMMAND_CHECKBOX_CLICKED,
3482 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3484 m_p300hpa->Disconnect(
3485 wxEVT_COMMAND_CHECKBOX_CLICKED,
3486 wxCommandEventHandler(GribRequestSettingBase::OnAnyChange),
nullptr,
3489 wxEVT_COMMAND_BUTTON_CLICKED,
3492 wxEVT_COMMAND_BUTTON_CLICKED,
3495 wxEVT_COMMAND_BUTTON_CLICKED,
3499 m_xygribPanel->m_download_button->Disconnect(
3500 wxEVT_COMMAND_BUTTON_CLICKED,
3501 wxCommandEventHandler(GribRequestSettingBase::OnXyGribDownloadButton),
3503 m_xygribPanel->m_atmmodel_choice->Disconnect(
3504 wxEVT_COMMAND_CHOICE_SELECTED,
3505 wxCommandEventHandler(GribRequestSettingBase::OnXyGribAtmModelChoice),
3507 m_xygribPanel->m_wavemodel_choice->Disconnect(
3508 wxEVT_COMMAND_CHOICE_SELECTED,
3509 wxCommandEventHandler(GribRequestSettingBase::OnXyGribWaveModelChoice),
3511 m_xygribPanel->m_wind_cbox->Disconnect(
3512 wxEVT_COMMAND_CHECKBOX_CLICKED,
3513 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3515 m_xygribPanel->m_gust_cbox->Disconnect(
3516 wxEVT_COMMAND_CHECKBOX_CLICKED,
3517 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3519 m_xygribPanel->m_reflectivity_cbox->Disconnect(
3520 wxEVT_COMMAND_CHECKBOX_CLICKED,
3521 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3523 m_xygribPanel->m_precipitation_cbox->Disconnect(
3524 wxEVT_COMMAND_CHECKBOX_CLICKED,
3525 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3527 m_xygribPanel->m_cape_cbox->Disconnect(
3528 wxEVT_COMMAND_CHECKBOX_CLICKED,
3529 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3531 m_xygribPanel->m_pressure_cbox->Disconnect(
3532 wxEVT_COMMAND_CHECKBOX_CLICKED,
3533 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3535 m_xygribPanel->m_cloudcover_cbox->Disconnect(
3536 wxEVT_COMMAND_CHECKBOX_CLICKED,
3537 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3539 m_xygribPanel->m_temperature_cbox->Disconnect(
3540 wxEVT_COMMAND_CHECKBOX_CLICKED,
3541 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3543 m_xygribPanel->m_waveheight_cbox->Disconnect(
3544 wxEVT_COMMAND_CHECKBOX_CLICKED,
3545 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3547 m_xygribPanel->m_windwave_cbox->Disconnect(
3548 wxEVT_COMMAND_CHECKBOX_CLICKED,
3549 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3551 m_xygribPanel->m_resolution_choice->Disconnect(
3552 wxEVT_COMMAND_CHOICE_SELECTED,
3553 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3555 m_xygribPanel->m_duration_choice->Disconnect(
3556 wxEVT_COMMAND_CHOICE_SELECTED,
3557 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3559 m_xygribPanel->m_interval_choice->Disconnect(
3560 wxEVT_COMMAND_CHOICE_SELECTED,
3561 wxCommandEventHandler(GribRequestSettingBase::OnXyGribConfigChange),
3565GRIBTableBase::GRIBTableBase(wxWindow* parent, wxWindowID
id,
3566 const wxString& title,
const wxPoint& pos,
3567 const wxSize& size,
long style)
3568 : wxDialog(parent, id, title, pos, size, style) {
3569 this->SetSizeHints(wxSize(-1, -1), wxSize(-1, -1));
3571 wxBoxSizer* bSizer1;
3572 bSizer1 =
new wxBoxSizer(wxVERTICAL);
3574 wxFlexGridSizer* fgSizer18;
3575 fgSizer18 =
new wxFlexGridSizer(0, 1, 0, 0);
3576 fgSizer18->AddGrowableRow(1);
3577 fgSizer18->SetFlexibleDirection(wxBOTH);
3578 fgSizer18->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3580 wxFlexGridSizer* fgSizer19;
3581 fgSizer19 =
new wxFlexGridSizer(0, 2, 0, 0);
3582 fgSizer19->SetFlexibleDirection(wxBOTH);
3583 fgSizer19->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_NONE);
3585 m_pPositionText =
new wxStaticText(
this, wxID_ANY, _(
"Data at Position:"),
3586 wxDefaultPosition, wxDefaultSize, 0);
3587 m_pPositionText->Wrap(-1);
3588 fgSizer19->Add(m_pPositionText, 0, wxALL | wxEXPAND, 5);
3590 m_pCursorPosition =
new wxStaticText(
this, wxID_ANY, wxEmptyString,
3591 wxDefaultPosition, wxDefaultSize, 0);
3592 m_pCursorPosition->Wrap(-1);
3593 fgSizer19->Add(m_pCursorPosition, 0, wxALL | wxEXPAND, 5);
3595 fgSizer18->Add(fgSizer19, 1, wxEXPAND, 10);
3597 wxFlexGridSizer* fgSizer20;
3598 fgSizer20 =
new wxFlexGridSizer(0, 1, 0, 0);
3599 fgSizer20->AddGrowableRow(0);
3600 fgSizer20->SetFlexibleDirection(wxBOTH);
3601 fgSizer20->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_ALL);
3603 m_pGribTable =
new CustomGrid(
this, wxID_ANY, wxDefaultPosition,
3604 wxSize(-1, 50), 0, _T(
" "));
3607 m_pGribTable->SetDefaultCellFont(
3608 wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT,
3609 wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString));
3610 m_pGribTable->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_TOP);
3611 fgSizer20->Add(m_pGribTable, 0, wxALL | wxEXPAND, 5);
3613 fgSizer18->Add(fgSizer20, 1, wxEXPAND, 5);
3615 wxStdDialogButtonSizer* m_pButtonTable =
new wxStdDialogButtonSizer();
3616 m_pButtonTableOK =
new wxButton(
this, wxID_OK, _(
"Close"));
3618 m_pButtonTable->AddButton(m_pButtonTableOK);
3619 m_pButtonTable->Realize();
3621 fgSizer18->Add(m_pButtonTable, 1, wxEXPAND, 5);
3623 bSizer1->Add(fgSizer18, 1, wxEXPAND, 5);
3625 this->SetSizer(bSizer1);
3629 this->Centre(wxBOTH);
3632 this->Connect(wxEVT_CLOSE_WINDOW,
3633 wxCloseEventHandler(GRIBTableBase::OnClose));
3634 m_pButtonTableOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED,
3635 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3639GRIBTableBase::~GRIBTableBase() {
3641 this->Disconnect(wxEVT_CLOSE_WINDOW,
3642 wxCloseEventHandler(GRIBTableBase::OnClose));
3643 m_pButtonTableOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED,
3644 wxCommandEventHandler(GRIBTableBase::OnOKButton),
3648ProjectBoatPanel::ProjectBoatPanel(wxWindow* parent, wxWindowID
id,
3649 const wxPoint& pos,
const wxSize& size,
3650 long style,
const wxString& name)
3651 : wxPanel(parent, id, pos, size, style, name) {
3654 SetMinSize(wxSize(-1, GetCharHeight()) * 2);
3656 wxBoxSizer* bSizerProjectBoat =
new wxBoxSizer(wxHORIZONTAL);
3657 SetSizer(bSizerProjectBoat);
3659 m_cbProjectPosition =
new wxCheckBox(
this, wxID_ANY, _(
"Project position"),
3660 wxDefaultPosition, wxDefaultSize);
3661 bSizerProjectBoat->Add(m_cbProjectPosition, 0,
3662 wxALIGN_CENTER_VERTICAL | wxALL, 5);
3664 m_stCourse =
new wxStaticText(
this, wxID_ANY, _(
"Course"), wxDefaultPosition,
3666 m_stCourse->Wrap(-1);
3667 bSizerProjectBoat->Add(m_stCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3669 m_tCourse =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3671 bSizerProjectBoat->Add(m_tCourse, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3673 m_stSpeed =
new wxStaticText(
this, wxID_ANY, _(
"Speed"), wxDefaultPosition,
3675 m_stSpeed->Wrap(-1);
3676 bSizerProjectBoat->Add(m_stSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3678 m_tSpeed =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition,
3680 bSizerProjectBoat->Add(m_tSpeed, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3682 m_stSpeedUnit =
new wxStaticText(
this, wxID_ANY, wxT(
"kt"), wxDefaultPosition,
3684 m_stSpeedUnit->Wrap(-1);
3685 bSizerProjectBoat->Add(m_stSpeedUnit, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
3690ProjectBoatPanel::~ProjectBoatPanel() {}
3692double ProjectBoatPanel::GetCourse() {
3694 if (m_tCourse->GetValue().ToDouble(&val)) {
3700double ProjectBoatPanel::GetSpeed() {
3702 if (m_tSpeed->GetValue().ToDouble(&val)) {
3708bool ProjectBoatPanel::ProjectionEnabled() {
3709 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.
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.
wxString * GetpSharedDataLocation()
Gets shared application data location.