272 explicit options(wxWindow *parent, wxWindowID
id = SYMBOL_OPTIONS_IDNAME,
273 const wxString &caption = SYMBOL_OPTIONS_TITLE,
274 const wxPoint &pos = SYMBOL_OPTIONS_POSITION,
275 const wxSize &size = SYMBOL_OPTIONS_SIZE,
276 long style = SYMBOL_OPTIONS_STYLE);
281 bool SendIdleEvents(wxIdleEvent &event);
282 void SetInitialPage(
int page_sel,
int sub_page = -1);
285 void OnClose(wxCloseEvent &event);
287 void ShowOKButtons(
bool _show) { m_OK_Cancel_Apply_buttons->Show(_show); }
289 void CreateListbookIcons();
290 void CreateControls(
void);
291 size_t CreatePanel(
const wxString &title);
292 wxScrolledWindow *AddPage(
size_t parent,
const wxString &title);
293 bool DeletePluginPage(wxScrolledWindow *page);
294 void SetColorScheme(ColorScheme cs);
295 void RecalculateSize(
int hint_x,
int hint_y);
297 void SetInitChartDir(
const wxString &dir) { m_init_chart_dir = dir; }
298 void SetInitialSettings(
void);
299 void SetInitialVectorSettings(
void);
301 void SetCurrentDirList(ArrayOfCDI p) { m_CurrentDirList = p; }
302 void SetWorkDirListPtr(ArrayOfCDI *p) { m_pWorkDirList = p; }
303 ArrayOfCDI *GetWorkDirListPtr(
void) {
return m_pWorkDirList; }
305 void AddChartDir(
const wxString &dir);
307 void UpdateDisplayedChartDirList(ArrayOfCDI p);
308 void UpdateOptionsUnits(
void);
310 void SetConfigPtr(
MyConfig *p) { m_pConfig = p; }
311 void OnDebugcheckbox1Click(wxCommandEvent &event);
312 void OnDirctrlSelChanged(wxTreeEvent &event);
313 void OnButtonaddClick(wxCommandEvent &event);
314 void OnButtondeleteClick(wxCommandEvent &event);
315 void OnButtonParseENC(wxCommandEvent &event);
316 void OnButtoncompressClick(wxCommandEvent &event);
317 void OnButtonmigrateClick(wxCommandEvent &event);
318 void OnButtonEcdisHelp(wxCommandEvent &event);
319 void OnRadioboxSelected(wxCommandEvent &event);
320 void OnApplyClick(wxCommandEvent &event);
321 void OnXidOkClick(wxCommandEvent &event);
322 void OnCancelClick(wxCommandEvent &event);
323 void OnChooseFont(wxCommandEvent &event);
324 void OnFontChoice(wxCommandEvent &event);
325 void OnCPAWarnClick(wxCommandEvent &event);
326 void OnSyncCogPredClick(wxCommandEvent &event);
327 void OnSizeAutoButton(wxCommandEvent &event);
328 void OnSizeManualButton(wxCommandEvent &event);
330#if defined(__WXGTK__) || defined(__WXQT__)
331 void OnChooseFontColor(wxCommandEvent &event);
333 void OnGLClicked(wxCommandEvent &event);
334 void OnOpenGLOptions(wxCommandEvent &event);
335 void OnDisplayCategoryRadioButton(wxCommandEvent &event);
336 void OnButtonClearClick(wxCommandEvent &event);
337 void OnButtonSelectClick(wxCommandEvent &event);
338 void OnButtonSetStd(wxCommandEvent &event);
340 void OnPageChange(wxListbookEvent &event);
341 void OnTopNBPageChange(wxNotebookEvent &event);
342 void OnSubNBPageChange(wxNotebookEvent &event);
343 void DoOnPageChange(
size_t page);
345 wxString SelectSoundFile();
346 void OnButtonSelectSound(wxCommandEvent &event);
347 void OnButtonTestSound(wxCommandEvent &event);
349 void OnShowGpsWindowCheckboxClick(wxCommandEvent &event);
350 void OnZTCCheckboxClick(wxCommandEvent &event);
351 void OnRadarringSelect(wxCommandEvent &event);
352 void OnWaypointRangeRingSelect(wxCommandEvent &event);
353 void OnShipTypeSelect(wxCommandEvent &event);
354 void OnButtonGroups(wxCommandEvent &event);
355 void OnInsertTideDataLocation(wxCommandEvent &event);
356 void OnRemoveTideDataLocation(wxCommandEvent &event);
357 void OnCharHook(wxKeyEvent &event);
358 void OnChartsPageChange(wxListbookEvent &event);
359 void OnChartDirListSelect(wxCommandEvent &event);
360 void OnUnitsChoice(wxCommandEvent &event);
362 void UpdateWorkArrayFromDisplayPanel(
void);
363 ArrayOfCDI GetSelectedChartDirs();
364 ArrayOfCDI GetUnSelectedChartDirs();
365 void SetDirActionButtons();
367 void OnCreateConfig(wxCommandEvent &event);
368 void OnEditConfig(wxCommandEvent &event);
369 void OnDeleteConfig(wxCommandEvent &event);
370 void OnApplyConfig(wxCommandEvent &event);
371 void SetConfigButtonState();
372 void ClearConfigList();
373 void BuildConfigList();
374 void OnConfigMouseSelected(wxMouseEvent &event);
375 void OnDialogInit(wxInitDialogEvent &event);
377 bool GetNeedNew() {
return m_bneedNew; }
378 void SetNeedNew(
bool bnew) { m_bneedNew = bnew; }
379 int GetScrollRate() {
return m_scrollRate; }
380 void SetForceNewToolbarOnCancel(
bool val) {
381 m_bForceNewToolbaronCancel = val;
384 wxArrayString *GetSerialArray() {
return m_pSerialArray; }
387 static bool ShowToolTips(
void);
389#ifdef OCPN_OPTIONS_USE_LISTBOOK
390 wxListbook *m_pListbook;
392 wxNotebook *m_pListbook;
395 wxBoxSizer *m_OK_Cancel_Apply_buttons;
397 size_t m_pageDisplay, m_pageConnections, m_pageCharts, m_pageShips;
398 size_t m_pageUI, m_pagePlugins;
399 int lastPage, lastSubPage;
400 wxPoint lastWindowPos;
401 wxSize lastWindowSize;
402 wxButton *m_ApplyButton, *m_OKButton, *m_CancelButton;
404 ChartGroupArray *m_pGroupArray;
405 int m_groups_changed;
408 wxSizerFlags inputFlags, verticleInputFlags, labelFlags, groupInputFlags;
409 wxSizerFlags groupLabelFlags, groupLabelFlagsHoriz;
412 wxScrolledWindow *pDisplayPanel;
413 wxCheckBox *pShowStatusBar, *pShowMenuBar, *pShowChartBar, *pShowCompassWin;
414 wxCheckBox *pPrintShowIcon, *pCDOOutlines, *pSDepthUnits, *pSDisplayGrid;
415 wxCheckBox *pAutoAnchorMark, *pCDOQuilting, *pCBRaster, *pCBVector;
416 wxCheckBox *pCBCM93, *pCBLookAhead, *pSkewComp, *pOpenGL, *pSmoothPanZoom;
417 wxCheckBox *pFullScreenQuilt, *pMobile, *pResponsive, *pOverzoomEmphasis;
418 wxCheckBox *pOZScaleVector, *pToolbarAutoHideCB, *pInlandEcdis, *pRollover;
419 wxCheckBox *pZoomButtons, *pChartBarEX;
420 wxTextCtrl *pCOGUPUpdateSecs, *m_pText_OSCOG_Predictor, *pScreenMM;
421 wxTextCtrl *pToolbarHideSecs, *m_pText_OSHDT_Predictor, *m_pTxt_OwnMMSI;
432 wxTextCtrl *pCmdSoundString;
434 wxChoice *m_pShipIconType, *m_pcTCDatasets;
435 wxSlider *m_pSlider_Zoom_Raster, *m_pSlider_GUI_Factor,
436 *m_pSlider_Chart_Factor, *m_pSlider_Ship_Factor, *m_pSlider_Text_Factor,
437 *m_pSlider_ENCText_Factor;
438 wxSlider *m_pMouse_Zoom_Slider;
439 wxSlider *m_pSlider_Zoom_Vector;
440 wxSlider *m_pSlider_CM93_Zoom;
442 wxCheckBox *pSLiveETA;
443 wxTextCtrl *pSDefaultBoatSpeed;
445 wxRadioButton *pCBCourseUp, *pCBNorthUp, *pRBSizeAuto, *pRBSizeManual;
448 wxStaticText *itemStaticTextUserVar;
449 wxStaticText *itemStaticTextUserVar2;
450 wxButton *m_configDeleteButton, *m_configApplyButton;
452 void OnAISRolloverClick(wxCommandEvent &event);
453 void UpdateChartDirList();
455 void OnCanvasConfigSelectClick(
int ID,
bool selected);
462 wxBoxSizer *vectorPanel;
463 wxScrolledWindow *ps57Ctl;
467 wxChoice *pDispCat, *pPointStyle, *pBoundStyle, *p24Color;
468 wxButton *itemButtonClearList, *itemButtonSelectList, *itemButtonSetStd;
469 wxCheckBox *pCheck_SOUNDG, *pCheck_META, *pCheck_SHOWIMPTEXT;
470 wxCheckBox *pCheck_SCAMIN, *pCheck_SuperSCAMIN;
471 wxCheckBox *pCheck_ATONTEXT, *pCheck_LDISTEXT;
472 wxCheckBox *pCheck_XLSECTTEXT, *pCheck_DECLTEXT, *pCheck_NATIONALTEXT;
473 wxCheckBox *pSEnableCM93Offset;
474 wxTextCtrl *m_ShallowCtl, *m_SafetyCtl, *m_DeepCtl;
475 wxStaticText *m_depthUnitsShal, *m_depthUnitsSafe, *m_depthUnitsDeep;
479 wxChoice *pSDMMFormat, *pDistanceFormat, *pSpeedFormat, *pDepthUnitSelect,
480 *pTempFormat, *pWindSpeedFormat, *pHeightUnitSelect;
481 wxCheckBox *pCBTrueShow, *pCBMagShow;
485 wxStaticBoxSizer *activeSizer;
486 wxBoxSizer *chartPanel;
489 ArrayOfCDI ActiveChartArray;
491 wxStaticBox *itemActiveChartStaticBox;
492 wxCheckBox *pUpdateCheckBox, *pScanCheckBox;
493 wxButton *pParseENCButton;
494 wxButton *m_removeBtn, *m_compressBtn;
495 wxButton *m_migrateBtn;
498 wxBoxSizer *boxSizerCharts;
499 wxScrolledWindow *m_scrollWinChartList;
500 wxScrolledWindow *chartPanelWin;
501 wxBoxSizer *cmdButtonSizer;
502 wxStaticBox *loadedBox;
503 std::vector<OCPNChartDirPanel *> panelVector;
504 wxArrayString activeChartList;
507 wxScrolledWindow *m_ChartDisplayPage;
510 wxCheckBox *m_pCheck_CPA_Max, *m_pCheck_CPA_Warn, *m_pCheck_CPA_WarnT;
511 wxCheckBox *m_pCheck_Mark_Lost, *m_pCheck_Remove_Lost;
512 wxCheckBox *m_pCheck_Show_COG, *m_pCheck_Sync_OCOG_ACOG;
513 wxCheckBox *m_pCheck_Show_Tracks, *m_pCheck_Hide_Moored,
514 *m_pCheck_Scale_Priority;
515 wxCheckBox *m_pCheck_AlertDialog, *m_pCheck_AlertAudio;
516 wxCheckBox *m_pCheck_Alert_Moored, *m_pCheck_Rollover_Class;
517 wxCheckBox *m_pCheck_Rollover_COG, *m_pCheck_Rollover_CPA;
518 wxCheckBox *m_pCheck_Ack_Timout, *m_pCheck_Show_Area_Notices;
519 wxCheckBox *m_pCheck_Draw_Target_Size, *m_pCheck_Draw_Realtime_Prediction;
520 wxCheckBox *m_pCheck_Show_Target_Name;
521 wxChoice *m_pWplAction;
522 wxCheckBox *m_pCheck_use_Wpl, *m_pCheck_ShowAllCPA;
523 wxTextCtrl *m_pText_CPA_Max, *m_pText_CPA_Warn, *m_pText_CPA_WarnT;
524 wxTextCtrl *m_pText_Mark_Lost, *m_pText_Remove_Lost, *m_pText_COG_Predictor;
525 wxTextCtrl *m_pText_Track_Length, *m_pText_Moored_Speed,
526 *m_pText_Scale_Priority;
527 wxTextCtrl *m_pText_ACK_Timeout, *m_pText_Show_Target_Name_Scale;
528 wxTextCtrl *m_pText_RealtPred_Speed;
531 wxScrolledWindow *m_DisplayConfigsPage;
535 wxStaticText *m_Text_def_boat_speed;
538 wxScrolledWindow *m_scrollWinConfigList;
539 wxStaticText *m_templateTitleText;
540 wxStaticText *m_staticTextLastAppled;
541 wxStaticBoxSizer *m_templateStatusBoxSizer;
544 wxFlexGridSizer *realSizes;
545 wxTextCtrl *m_pOSLength, *m_pOSWidth, *m_pOSGPSOffsetX, *m_pOSGPSOffsetY;
546 wxTextCtrl *m_pOSMinSize, *m_pText_ACRadius;
547 wxStaticBoxSizer *dispOptions, *dispWaypointOptions;
548 wxScrolledWindow *itemPanelShip, *itemPanelRoutes;
549 wxBoxSizer *ownShip, *Routes;
550 wxCheckBox *pShowshipToActive;
551 wxChoice *m_shipToActiveStyle, *m_shipToActiveColor;
555 wxCheckBox *pScaMinChckB, *pScaMinOverruleChckB;
556 wxTextCtrl *m_pText_ScaMin;
559 wxBoxSizer *m_itemBoxSizerFontPanel;
560 wxChoice *m_itemFontElementListBox, *m_itemStyleListBox, *m_itemLangListBox;
561 wxStaticText *m_textSample;
563 bool m_bVisitPlugins;
566 wxComboBox *m_itemAISListBox;
572 wxScrolledWindow *itemPanelPlugins;
573 wxBoxSizer *itemBoxSizerPanelPlugins;
574 wxFlexGridSizer *radarGrid, *waypointradarGrid;
575 wxChoice *pNavAidRadarRingsNumberVisible, *pWaypointRangeRingsNumber;
577 wxChoice *m_itemRadarRingsUnits, *m_itemWaypointRangeRingsUnits;
580 wxChoice *pTrackPrecision;
581 wxTextCtrl *pNavAidRadarRingsStep, *pWaypointRangeRingsStep;
582 wxCheckBox *pSogCogFromLLCheckBox;
583 wxSpinCtrl *pSogCogFromLLDampInterval;
584 wxTextCtrl *m_pText_TP_Secs, *m_pText_TP_Dist;
585 wxCheckBox *pWayPointPreventDragging, *pConfirmObjectDeletion;
586 wxCheckBox *pEnableZoomToCursor, *pPreserveScale, *pPlayShipsBells;
587 wxCheckBox *pEnableTenHertz, *pTransparentToolbar;
588 wxCheckBox *pAdvanceRouteWaypointOnArrivalOnly, *pTrackShowIcon;
589 wxCheckBox *pTrackDaily, *pTrackHighlite;
590 wxStaticText *pStatic_CallSign;
592#if wxCHECK_VERSION(2, 9, 0)
593#if wxUSE_TIMEPICKCTRL
597 wxTimePickerCtrl *pTrackRotateTime;
601 wxRadioButton *pTrackRotateComputerTime, *pTrackRotateUTC, *pTrackRotateLMT;
603 wxChoice *pSoundDeviceIndex;
604 wxStaticText *stSoundDeviceIndex;
606 wxArrayPtrVoid OBJLBoxArray;
607 wxString m_init_chart_dir;
608 wxArrayString *m_pSerialArray;
610 ArrayOfCDI m_CurrentDirList, *m_pWorkDirList;
615 bool m_bForceNewToolbaronCancel;
623 void OnUXAudioEnableButtonClickAIS(wxCommandEvent &event);
624 void OnUXAudioEnableButtonClickSART(wxCommandEvent &event);
625 void OnUXAudioEnableButtonClickDSC(wxCommandEvent &event);
633 void CreatePanel_MMSI(
size_t parent,
int border_size,
int group_item_spacing);
634 void CreatePanel_AIS(
size_t parent,
int border_size,
int group_item_spacing);
635 void CreatePanel_Ownship(
size_t parent,
int border_size,
636 int group_item_spacing);
637 void CreatePanel_NMEA(
size_t parent,
int border_size,
int group_item_spacing);
638 void CreatePanel_ChartsLoad(
size_t parent,
int border_size,
639 int group_item_spacing);
640 void CreatePanel_VectorCharts(
size_t parent,
int border_size,
641 int group_item_spacing);
642 void CreatePanel_TidesCurrents(
size_t parent,
int border_size,
643 int group_item_spacing);
644 void CreatePanel_ChartGroups(
size_t parent,
int border_size,
645 int group_item_spacing);
646 void CreatePanel_Display(
size_t parent,
int border_size,
647 int group_item_spacing);
648 void CreatePanel_UI(
size_t parent,
int border_size,
int group_item_spacing);
649 void CreatePanel_Units(
size_t parent,
int border_size,
650 int group_item_spacing);
651 void CreatePanel_Sounds(
size_t parent,
int border_size,
652 int group_item_spacing);
653 void CreatePanel_Advanced(
size_t parent,
int border_size,
654 int group_item_spacing);
655 void CreatePanel_Configs(
size_t parent,
int border_size,
656 int group_item_spacing);
657 void CreatePanel_Routes(
size_t parent,
int border_size,
658 int group_item_spacing);
660 void OnAlertEnableButtonClick(wxCommandEvent &event);
661 void OnAlertAudioEnableButtonClick(wxCommandEvent &event);
662 void OnResetFont(wxCommandEvent &event);
664 void UpdateTemplateTitleText();
665 void CheckDeviceAccess(wxString &path);
667 wxListCtrl *tcDataSelected;
668 std::vector<int> marinersStdXref;
670 wxImageList *m_topImgList;
672 wxCheckBox *m_persist_active_route_chkbox;
673 wxScrolledWindow *m_pNMEAForm;
674 void resetMarStdList(
bool bsetConfig,
bool bsetStd);
677 void ApplyChanges(wxCommandEvent &event);
679 unsigned int m_screenConfig;
681 wxNotebookPage *m_groupsPage;
685 wxSize m_small_button_size;
688 int m_fontHeight, m_scrollRate;
690 wxArrayString m_font_element_array;
694 wxBoxSizer *m_boxSizerConfigs;
695 wxColour m_panelBackgroundUnselected;
696 wxString m_selectedConfigPanelGUID;
697 wxSize m_colourPickerDefaultSize;
702 std::shared_ptr<ConnectionsDlg> comm_dialog;
704 DECLARE_EVENT_TABLE()