1 ///////////////////////////////////////////////////////////////////////////
2 // C++ code generated with wxFormBuilder (version Oct 26 2018)
3 // http://www.wxformbuilder.org/
4 //
5 // PLEASE DO *NOT* EDIT THIS FILE!
6 ///////////////////////////////////////////////////////////////////////////
7
8 #include "RoutePropDlg.h"
9 #include "chart1.h"
10
11 #if wxCHECK_VERSION(3, 1, 2)
12 #define CELL_EDITABLE wxDATAVIEW_CELL_EDITABLE
13 #else
14 #define CELL_EDITABLE wxDATAVIEW_CELL_INERT
15 #endif
16
17 ///////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE(RoutePropDlg,wxFrame)18 BEGIN_EVENT_TABLE ( RoutePropDlg, wxFrame )
19 #ifdef __OCPN__ANDROID__
20 EVT_CHAR(RoutePropDlg::OnKeyChar)
21 #endif
22 END_EVENT_TABLE()
23
24 RoutePropDlg::RoutePropDlg( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
25 {
26 wxFont *qFont = GetOCPNScaledFont(_("Dialog"));
27 SetFont( *qFont );
28
29 this->SetSizeHints( wxSize( 300,300 ), wxDefaultSize );
30
31 wxBoxSizer* bSizerMain;
32 bSizerMain = new wxBoxSizer( wxVERTICAL );
33
34 m_ntbRteProp = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
35 m_pnlBasic = new wxPanel( m_ntbRteProp, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
36 wxBoxSizer* bSizerData;
37 bSizerData = new wxBoxSizer( wxVERTICAL );
38
39 wxBoxSizer* bSizerName;
40 bSizerName = new wxBoxSizer( wxHORIZONTAL );
41
42 m_stName = new wxStaticText( m_pnlBasic, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 );
43 m_stName->Wrap( -1 );
44 bSizerName->Add( m_stName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
45
46 m_tcName = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
47 bSizerName->Add( m_tcName, 1, wxALL, 5 );
48
49
50 bSizerData->Add( bSizerName, 0, wxEXPAND, 5 );
51
52 wxBoxSizer* bSizerFromTo;
53 bSizerFromTo = new wxBoxSizer( wxHORIZONTAL );
54
55 m_stFrom = new wxStaticText( m_pnlBasic, wxID_ANY, _("From"), wxDefaultPosition, wxDefaultSize, 0 );
56 m_stFrom->Wrap( -1 );
57 bSizerFromTo->Add( m_stFrom, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
58
59 m_tcFrom = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
60 bSizerFromTo->Add( m_tcFrom, 1, wxALL, 5 );
61
62 m_stTo = new wxStaticText( m_pnlBasic, wxID_ANY, _("To"), wxDefaultPosition, wxDefaultSize, 0 );
63 m_stTo->Wrap( -1 );
64 bSizerFromTo->Add( m_stTo, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
65
66 m_tcTo = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
67 bSizerFromTo->Add( m_tcTo, 1, wxALL, 5 );
68
69
70 bSizerData->Add( bSizerFromTo, 0, wxEXPAND, 5 );
71
72 wxWrapSizer* wSizerParams;
73 wSizerParams = new wxWrapSizer( wxHORIZONTAL, wxEXTEND_LAST_ON_EACH_LINE|wxREMOVE_LEADING_SPACES|wxWRAPSIZER_DEFAULT_FLAGS );
74
75 int maxFieldSize = GetCharWidth() * 10;
76
77 wxBoxSizer* bSizerDistance;
78 bSizerDistance = new wxBoxSizer( wxVERTICAL );
79
80 m_stDistTotal = new wxStaticText( m_pnlBasic, wxID_ANY, _("Distance"), wxDefaultPosition, wxDefaultSize, 0 );
81 m_stDistTotal->Wrap( -1 );
82 bSizerDistance->Add( m_stDistTotal, 0, wxALL, 5 );
83
84 m_tcDistance = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
85 m_tcDistance->SetMaxSize( wxSize( maxFieldSize,-1 ) );
86
87 bSizerDistance->Add( m_tcDistance, 0, wxALL|wxEXPAND, 5 );
88
89
90 wSizerParams->Add( bSizerDistance, 1, wxEXPAND, 0 );
91
92 wxBoxSizer* bSizerSpeed;
93 bSizerSpeed = new wxBoxSizer( wxVERTICAL );
94
95 m_stPlanSpeed = new wxStaticText( m_pnlBasic, wxID_ANY, _("Plan speed"), wxDefaultPosition, wxDefaultSize, 0 );
96 m_stPlanSpeed->Wrap( -1 );
97 bSizerSpeed->Add( m_stPlanSpeed, 0, wxALL, 5 );
98
99 m_tcPlanSpeed = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
100 m_tcPlanSpeed->SetMaxSize( wxSize( maxFieldSize,-1 ) );
101
102 bSizerSpeed->Add( m_tcPlanSpeed, 0, wxALL, 5 );
103
104
105 wSizerParams->Add( bSizerSpeed, 1, wxEXPAND, 0 );
106
107 wxBoxSizer* bSizerEnroute;
108 bSizerEnroute = new wxBoxSizer( wxVERTICAL );
109
110 m_stEnroute = new wxStaticText( m_pnlBasic, wxID_ANY, _("Enroute"), wxDefaultPosition, wxDefaultSize, 0 );
111 m_stEnroute->Wrap( -1 );
112 bSizerEnroute->Add( m_stEnroute, 0, wxALL, 5 );
113
114 m_tcEnroute = new wxTextCtrl( m_pnlBasic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
115 m_tcEnroute->SetMaxSize( wxSize( maxFieldSize,-1 ) );
116
117 bSizerEnroute->Add( m_tcEnroute, 0, wxALL, 5 );
118
119
120 wSizerParams->Add( bSizerEnroute, 1, wxEXPAND, 0 );
121
122 wxBoxSizer* bSizerDeparture;
123 bSizerDeparture = new wxBoxSizer( wxVERTICAL );
124
125 m_stDeparture = new wxStaticText( m_pnlBasic, wxID_ANY, _("Departure"), wxDefaultPosition, wxDefaultSize, 0 );
126 m_stDeparture->Wrap( -1 );
127 bSizerDeparture->Add( m_stDeparture, 0, wxALL, 5 );
128
129 wxBoxSizer* bSizerDepartureTS;
130 bSizerDepartureTS = new wxBoxSizer( wxHORIZONTAL );
131 bSizerDeparture->Add( bSizerDepartureTS, 0, 0, 5 );
132
133 #ifndef __OCPN__ANDROID__
134 m_dpDepartureDate = new wxDatePickerCtrl( m_pnlBasic, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT );
135 bSizerDepartureTS->Add( m_dpDepartureDate, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
136
137 #ifdef __WXGTK__
138 m_tpDepartureTime = new TimeCtrl( m_pnlBasic, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize );
139 #else
140 m_tpDepartureTime = new wxTimePickerCtrl( m_pnlBasic, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT );
141 #endif
142 bSizerDepartureTS->Add( m_tpDepartureTime, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
143
144 wSizerParams->Add( bSizerDeparture, 1, wxEXPAND, 0 );
145 #endif
146
147 wxBoxSizer* bSizerTime;
148 bSizerTime = new wxBoxSizer( wxVERTICAL );
149
150 m_stTimeZone = new wxStaticText( m_pnlBasic, wxID_ANY, _("Time"), wxDefaultPosition, wxDefaultSize, 0 );
151 m_stTimeZone->Wrap( -1 );
152 bSizerTime->Add( m_stTimeZone, 0, wxALL, 5 );
153
154 wxString m_choiceTimezoneChoices[] = { _("UTC"), _("Local@PC"), _("LMT@Location") };
155 int m_choiceTimezoneNChoices = sizeof( m_choiceTimezoneChoices ) / sizeof( wxString );
156 m_choiceTimezone = new wxChoice( m_pnlBasic, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceTimezoneNChoices, m_choiceTimezoneChoices, 0 );
157 m_choiceTimezone->SetSelection( 0 );
158 m_choiceTimezone->SetMaxSize( wxSize( GetCharWidth() * 12, -1 ) );
159
160 bSizerTime->Add( m_choiceTimezone, 0, wxALL, 5 );
161
162
163 wSizerParams->Add( bSizerTime, 1, wxEXPAND, 0 );
164
165 wxBoxSizer* bSizerColor;
166 bSizerColor = new wxBoxSizer( wxVERTICAL );
167
168 m_staticTextColor = new wxStaticText( m_pnlBasic, wxID_ANY, _("Color"), wxDefaultPosition, wxDefaultSize, 0 );
169 m_staticTextColor->Wrap( -1 );
170 bSizerColor->Add( m_staticTextColor, 0, wxALL, 5 );
171
172 wxString m_choiceColorChoices[] = { _("Default color"), _("Black"), _("Dark Red"), _("Dark Green"), _("Dark Yellow"), _("Dark Blue"), _("Dark Magenta"), _("Dark Cyan"), _("Light Gray"), _("Dark Gray"), _("Red"), _("Green"), _("Yellow"), _("Blue"), _("Magenta"), _("Cyan"), _("White") };
173 int m_choiceColorNChoices = sizeof( m_choiceColorChoices ) / sizeof( wxString );
174 m_choiceColor = new wxChoice( m_pnlBasic, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceColorNChoices, m_choiceColorChoices, 0 );
175 m_choiceColor->SetSelection( 0 );
176 bSizerColor->Add( m_choiceColor, 0, wxALL, 5 );
177
178
179 wSizerParams->Add( bSizerColor, 1, wxEXPAND, 5 );
180
181 wxBoxSizer* bSizerStyle;
182 bSizerStyle = new wxBoxSizer( wxVERTICAL );
183
184 m_stStyle = new wxStaticText( m_pnlBasic, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, 0 );
185 m_stStyle->Wrap( -1 );
186 bSizerStyle->Add( m_stStyle, 0, wxALL, 5 );
187
188 wxString m_choiceStyleChoices[] = { _("Default"), _("Solid"), _("Dot"), _("Long dash"), _("Short dash"), _("Dot dash") };
189 int m_choiceStyleNChoices = sizeof( m_choiceStyleChoices ) / sizeof( wxString );
190 m_choiceStyle = new wxChoice( m_pnlBasic, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceStyleNChoices, m_choiceStyleChoices, 0 );
191 m_choiceStyle->SetSelection( 0 );
192 bSizerStyle->Add( m_choiceStyle, 0, wxALL, 5 );
193
194
195 wSizerParams->Add( bSizerStyle, 1, wxEXPAND, 5 );
196
197 wxBoxSizer* bSizerWidth;
198 bSizerWidth = new wxBoxSizer( wxVERTICAL );
199
200 m_stWidth = new wxStaticText( m_pnlBasic, wxID_ANY, _("Width"), wxDefaultPosition, wxDefaultSize, 0 );
201 m_stWidth->Wrap( -1 );
202 bSizerWidth->Add( m_stWidth, 0, wxALL, 5 );
203
204 wxString m_choiceWidthChoices[] = { _("Default"), _("1 px"), _("2px"), _("3 px"), _("4 px"), _("5 px"), _("6 px"), _("7 px"), _("8 px"), _("9 px"), _("10 px") };
205 int m_choiceWidthNChoices = sizeof( m_choiceWidthChoices ) / sizeof( wxString );
206 m_choiceWidth = new wxChoice( m_pnlBasic, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceWidthNChoices, m_choiceWidthChoices, 0 );
207 m_choiceWidth->SetSelection( 0 );
208 bSizerWidth->Add( m_choiceWidth, 0, wxALL, 5 );
209
210
211 wSizerParams->Add( bSizerWidth, 1, wxEXPAND, 5 );
212
213 // wxDataViewListCtrl has some platform dependent variability
214 // We account for this here...
215
216 wxString toLabel = _("To waypoint");
217
218 #ifdef __WXQT__ // includes Android
219 int columWidths[] = {
220 wxCOL_WIDTH_AUTOSIZE,
221 wxCOL_WIDTH_AUTOSIZE,
222 wxCOL_WIDTH_AUTOSIZE,
223 wxCOL_WIDTH_AUTOSIZE,
224 wxCOL_WIDTH_AUTOSIZE,
225 wxCOL_WIDTH_AUTOSIZE,
226 wxCOL_WIDTH_AUTOSIZE,
227 wxCOL_WIDTH_AUTOSIZE,
228 wxCOL_WIDTH_AUTOSIZE,
229 wxCOL_WIDTH_AUTOSIZE,
230 wxCOL_WIDTH_AUTOSIZE,
231 wxCOL_WIDTH_AUTOSIZE,
232 wxCOL_WIDTH_AUTOSIZE,
233 wxCOL_WIDTH_AUTOSIZE
234 };
235 int colFlags = 0;
236 toLabel = _("To WP");
237
238 #else
239 int columWidths[] = {
240 30,
241 80,
242 70,
243 60,
244 90,
245 90,
246 80,
247 120,
248 60, // Speed
249 100, // Next tide event
250 -1,
251 80,
252 120,
253 -1
254 };
255 int colFlags = wxDATAVIEW_COL_RESIZABLE;
256
257 #endif
258
259 bSizerData->Add( wSizerParams, 0, wxEXPAND, 0 );
260
261 m_dvlcWaypoints = new wxDataViewListCtrl( m_pnlBasic, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_VERT_RULES | wxDV_HORIZ_RULES );
262 m_dataViewListColumnLeg = m_dvlcWaypoints->AppendTextColumn( _("Leg"), wxDATAVIEW_CELL_INERT, columWidths[0], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
263 m_dataViewListColumnLeg->GetRenderer()->EnableEllipsize( wxELLIPSIZE_NONE );
264 m_dataViewListColumnToWpt = m_dvlcWaypoints->AppendTextColumn( toLabel, wxDATAVIEW_CELL_INERT, columWidths[1], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
265 m_dataViewListColumnToWpt->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
266 m_dataViewListColumnDistance = m_dvlcWaypoints->AppendTextColumn( _("Distance"), wxDATAVIEW_CELL_INERT, columWidths[2], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
267 m_dataViewListColumnDistance->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
268 m_dataViewListColumnBearing = m_dvlcWaypoints->AppendTextColumn( _("Bearing"), wxDATAVIEW_CELL_INERT, columWidths[3], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
269 m_dataViewListColumnBearing->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
270 m_dataViewListColumnLat = m_dvlcWaypoints->AppendTextColumn( _("Latitude"), wxDATAVIEW_CELL_INERT, columWidths[4], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
271 m_dataViewListColumnLat->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
272 m_dataViewListColumnLon = m_dvlcWaypoints->AppendTextColumn( _("Longitude"), wxDATAVIEW_CELL_INERT, columWidths[5], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
273 m_dataViewListColumnLon->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
274 m_dataViewListColumnETE = m_dvlcWaypoints->AppendTextColumn( _("ETE"), wxDATAVIEW_CELL_INERT, columWidths[6], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
275 m_dataViewListColumnETE->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
276 m_dataViewListColumnETA = m_dvlcWaypoints->AppendTextColumn( _("ETA"), wxDATAVIEW_CELL_INERT, columWidths[7], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
277 m_dataViewListColumnETA->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
278 m_dataViewListColumnSpeed = m_dvlcWaypoints->AppendTextColumn( _("Speed"), CELL_EDITABLE, columWidths[8], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
279 m_dataViewListColumnSpeed->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
280 m_dataViewListColumnNTE = m_dvlcWaypoints->AppendTextColumn( _("Next tide event"), wxDATAVIEW_CELL_INERT, columWidths[9], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
281 m_dataViewListColumnNTE->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
282 m_dataViewListColumnDesc = m_dvlcWaypoints->AppendTextColumn( _("Description"), wxDATAVIEW_CELL_INERT, columWidths[10], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
283 m_dataViewListColumnDesc->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
284 m_dataViewListColumnCourse = m_dvlcWaypoints->AppendTextColumn( _("Course"), wxDATAVIEW_CELL_INERT, columWidths[11], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
285 m_dataViewListColumnCourse->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
286 m_dataViewListColumnETD = m_dvlcWaypoints->AppendTextColumn( _("ETD"), CELL_EDITABLE, columWidths[12], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
287 m_dataViewListColumnETD->GetRenderer()->EnableEllipsize( wxELLIPSIZE_END );
288 m_dataViewListColumnEmpty = m_dvlcWaypoints->AppendTextColumn( wxEmptyString, wxDATAVIEW_CELL_INERT, columWidths[13], static_cast<wxAlignment>(wxALIGN_LEFT), colFlags );
289 bSizerData->Add( m_dvlcWaypoints, 1, wxALL|wxEXPAND, 5 );
290
291
292 m_pnlBasic->SetSizer( bSizerData );
293 m_pnlBasic->Layout();
294 bSizerData->Fit( m_pnlBasic );
295 m_ntbRteProp->AddPage( m_pnlBasic, _("Basic"), false );
296 m_pnlAdvanced = new wxPanel( m_ntbRteProp, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
297 wxBoxSizer* bSizerAdvanced;
298 bSizerAdvanced = new wxBoxSizer( wxVERTICAL );
299
300 m_stDescription = new wxStaticText( m_pnlAdvanced, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, 0 );
301 m_stDescription->Wrap( -1 );
302 bSizerAdvanced->Add( m_stDescription, 0, wxALL, 5 );
303
304 m_tcDescription = new wxTextCtrl( m_pnlAdvanced, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
305 bSizerAdvanced->Add( m_tcDescription, 0, wxALL|wxEXPAND, 5 );
306
307 wxStaticBoxSizer* sbSizerLinks;
308 sbSizerLinks = new wxStaticBoxSizer( new wxStaticBox( m_pnlAdvanced, wxID_ANY, _("Links") ), wxVERTICAL );
309
310 m_scrolledWindowLinks = new wxScrolledWindow( sbSizerLinks->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
311 m_scrolledWindowLinks->SetScrollRate( 5, 5 );
312 wxBoxSizer* bSizerLinksWnd;
313 bSizerLinksWnd = new wxBoxSizer( wxVERTICAL );
314
315 bSizerLinks = new wxBoxSizer( wxVERTICAL );
316
317 m_hyperlink1 = new wxHyperlinkCtrl( m_scrolledWindowLinks, wxID_ANY, _("wxFB Website"), wxT("http://www.wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
318 m_hyperlink1->Enable( false );
319 m_hyperlink1->Hide();
320
321 m_menuLink = new wxMenu();
322 wxMenuItem* m_menuItemEdit;
323 m_menuItemEdit = new wxMenuItem( m_menuLink, wxID_ANY, wxString( _("Edit") ) , wxEmptyString, wxITEM_NORMAL );
324 m_menuLink->Append( m_menuItemEdit );
325
326 wxMenuItem* m_menuItemAdd;
327 m_menuItemAdd = new wxMenuItem( m_menuLink, wxID_ANY, wxString( _("Add new") ) , wxEmptyString, wxITEM_NORMAL );
328 m_menuLink->Append( m_menuItemAdd );
329
330 wxMenuItem* m_menuItemDelete;
331 m_menuItemDelete = new wxMenuItem( m_menuLink, wxID_ANY, wxString( _("Delete") ) , wxEmptyString, wxITEM_NORMAL );
332 m_menuLink->Append( m_menuItemDelete );
333
334 m_hyperlink1->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( RoutePropDlg::m_hyperlink1OnContextMenu ), NULL, this );
335
336 bSizerLinks->Add( m_hyperlink1, 0, wxALL, 5 );
337
338
339 bSizerLinksWnd->Add( bSizerLinks, 1, wxEXPAND, 5 );
340
341 wxBoxSizer* bSizerLinkBtns;
342 bSizerLinkBtns = new wxBoxSizer( wxHORIZONTAL );
343
344 m_btnAddLink = new wxButton( m_scrolledWindowLinks, wxID_ANY, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
345 bSizerLinkBtns->Add( m_btnAddLink, 0, wxALL, 5 );
346
347 m_toggleBtnEdit = new wxToggleButton( m_scrolledWindowLinks, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, 0 );
348 bSizerLinkBtns->Add( m_toggleBtnEdit, 0, wxALL, 5 );
349
350 m_stEditEnabled = new wxStaticText( m_scrolledWindowLinks, wxID_ANY, _("Links are opened in the default browser."), wxDefaultPosition, wxDefaultSize, 0 );
351 m_stEditEnabled->Wrap( -1 );
352 bSizerLinkBtns->Add( m_stEditEnabled, 0, wxALL, 5 );
353
354
355 bSizerLinksWnd->Add( bSizerLinkBtns, 0, wxEXPAND, 5 );
356
357
358 m_scrolledWindowLinks->SetSizer( bSizerLinksWnd );
359 m_scrolledWindowLinks->Layout();
360 bSizerLinksWnd->Fit( m_scrolledWindowLinks );
361 m_menuLinks = new wxMenu();
362 wxMenuItem* m_menuItemAddLink;
363 m_menuItemAddLink = new wxMenuItem( m_menuLinks, wxID_ANY, wxString( _("Add new") ) , wxEmptyString, wxITEM_NORMAL );
364 m_menuLinks->Append( m_menuItemAddLink );
365
366 m_scrolledWindowLinks->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( RoutePropDlg::m_scrolledWindowLinksOnContextMenu ), NULL, this );
367
368 sbSizerLinks->Add( m_scrolledWindowLinks, 1, wxEXPAND | wxALL, 5 );
369
370
371 bSizerAdvanced->Add( sbSizerLinks, 1, wxEXPAND, 5 );
372
373
374 m_pnlAdvanced->SetSizer( bSizerAdvanced );
375 m_pnlAdvanced->Layout();
376 bSizerAdvanced->Fit( m_pnlAdvanced );
377 m_ntbRteProp->AddPage( m_pnlAdvanced, _("Advanced"), false );
378
379 bSizerMain->Add( m_ntbRteProp, 1, wxEXPAND | wxALL, 5 );
380
381 wxWrapSizer* wSizerCustomBtns;
382 wSizerCustomBtns = new wxWrapSizer( wxHORIZONTAL, wxWRAPSIZER_DEFAULT_FLAGS );
383
384 m_btnPrint = new wxButton( this, wxID_ANY, _("Print"), wxDefaultPosition, wxDefaultSize, 0 );
385 wSizerCustomBtns->Add( m_btnPrint, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
386
387 m_btnExtend = new wxButton( this, wxID_ANY, _("Extend"), wxDefaultPosition, wxDefaultSize, 0 );
388 wSizerCustomBtns->Add( m_btnExtend, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
389
390 m_btnSplit = new wxButton( this, wxID_ANY, _("Split"), wxDefaultPosition, wxDefaultSize, 0 );
391 wSizerCustomBtns->Add( m_btnSplit, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
392
393
394 wSizerCustomBtns->Add( 0, 0, 1, wxEXPAND, 5 );
395
396 m_sdbSizerBtns = new wxStdDialogButtonSizer();
397 m_sdbSizerBtnsOK = new wxButton( this, wxID_OK );
398 m_sdbSizerBtns->AddButton( m_sdbSizerBtnsOK );
399 m_sdbSizerBtnsCancel = new wxButton( this, wxID_CANCEL, _("Cancel") );
400 m_sdbSizerBtns->AddButton( m_sdbSizerBtnsCancel );
401 m_sdbSizerBtns->Realize();
402
403 wSizerCustomBtns->Add( m_sdbSizerBtns, 1, wxEXPAND, 5 );
404
405
406 bSizerMain->Add( wSizerCustomBtns, 0, wxEXPAND, 0 );
407
408
409 this->SetSizer( bSizerMain );
410 this->Layout();
411
412 this->Centre( wxBOTH );
413
414 // Connect Events
415 this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( RoutePropDlg::RoutePropDlgOnClose ) );
416 this->Connect( wxEVT_SIZE, wxSizeEventHandler( RoutePropDlg::RoutePropDlgOnSize ) );
417 m_ntbRteProp->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( RoutePropDlg::RoutePropDlgOnNotebookPageChanged ), NULL, this );
418 m_tcPlanSpeed->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( RoutePropDlg::PlanSpeedOnKillFocus ), NULL, this );
419 m_tcPlanSpeed->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( RoutePropDlg::PlanSpeedOnTextEnter ), NULL, this );
420 m_tcPlanSpeed->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( RoutePropDlg::PlanSpeedOnTextEnter ), NULL, this );
421 #ifndef __OCPN__ANDROID__
422 m_dpDepartureDate->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( RoutePropDlg::DepartureDateOnDateChanged ), NULL, this );
423 m_tpDepartureTime->Connect( wxEVT_TIME_CHANGED, wxDateEventHandler( RoutePropDlg::DepartureTimeOnTimeChanged ), NULL, this );
424 #endif
425 m_choiceTimezone->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( RoutePropDlg::TimezoneOnChoice ), NULL, this );
426 m_dvlcWaypoints->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemContextMenu ), NULL, this );
427 m_dvlcWaypoints->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemEditingDone ), NULL, this );
428 m_dvlcWaypoints->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemValueChanged ), NULL, this );
429 m_dvlcWaypoints->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlSelectionChanged ), NULL, this );
430 m_menuLink->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( RoutePropDlg::ItemEditOnMenuSelection ), this, m_menuItemEdit->GetId());
431 m_menuLink->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( RoutePropDlg::ItemAddOnMenuSelection ), this, m_menuItemAdd->GetId());
432 m_menuLink->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( RoutePropDlg::ItemDeleteOnMenuSelection ), this, m_menuItemDelete->GetId());
433 m_btnAddLink->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::AddLinkOnButtonClick ), NULL, this );
434 m_toggleBtnEdit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnEditOnToggleButton ), NULL, this );
435 m_menuLinks->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( RoutePropDlg::ItemAddOnMenuSelection ), this, m_menuItemAddLink->GetId());
436 m_btnPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::PrintOnButtonClick ), NULL, this );
437 m_btnExtend->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::ExtendOnButtonClick ), NULL, this );
438 m_btnSplit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::SplitOnButtonClick ), NULL, this );
439 m_sdbSizerBtnsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnsOnCancelButtonClick ), NULL, this );
440 m_sdbSizerBtnsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnsOnOKButtonClick ), NULL, this );
441 }
442
~RoutePropDlg()443 RoutePropDlg::~RoutePropDlg()
444 {
445 // Disconnect Events
446 this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( RoutePropDlg::RoutePropDlgOnClose ) );
447 this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( RoutePropDlg::RoutePropDlgOnSize ) );
448 m_ntbRteProp->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( RoutePropDlg::RoutePropDlgOnNotebookPageChanged ), NULL, this );
449 m_tcPlanSpeed->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( RoutePropDlg::PlanSpeedOnKillFocus ), NULL, this );
450 m_tcPlanSpeed->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( RoutePropDlg::PlanSpeedOnTextEnter ), NULL, this );
451 m_tcPlanSpeed->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( RoutePropDlg::PlanSpeedOnTextEnter ), NULL, this );
452 #ifndef __OCPN__ANDROID__
453 m_dpDepartureDate->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( RoutePropDlg::DepartureDateOnDateChanged ), NULL, this );
454 m_tpDepartureTime->Disconnect( wxEVT_TIME_CHANGED, wxDateEventHandler( RoutePropDlg::DepartureTimeOnTimeChanged ), NULL, this );
455 #endif
456 m_choiceTimezone->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( RoutePropDlg::TimezoneOnChoice ), NULL, this );
457 m_dvlcWaypoints->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemContextMenu ), NULL, this );
458 m_dvlcWaypoints->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemEditingDone ), NULL, this );
459 m_dvlcWaypoints->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlItemValueChanged ), NULL, this );
460 m_dvlcWaypoints->Disconnect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( RoutePropDlg::WaypointsOnDataViewListCtrlSelectionChanged ), NULL, this );
461 m_btnAddLink->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::AddLinkOnButtonClick ), NULL, this );
462 m_toggleBtnEdit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnEditOnToggleButton ), NULL, this );
463 m_btnPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::PrintOnButtonClick ), NULL, this );
464 m_btnExtend->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::ExtendOnButtonClick ), NULL, this );
465 m_btnSplit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::SplitOnButtonClick ), NULL, this );
466 m_sdbSizerBtnsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnsOnCancelButtonClick ), NULL, this );
467 m_sdbSizerBtnsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( RoutePropDlg::BtnsOnOKButtonClick ), NULL, this );
468
469 delete m_menuLink;
470 delete m_menuLinks;
471 }
472
OnKeyChar(wxKeyEvent & event)473 void RoutePropDlg::OnKeyChar( wxKeyEvent &event )
474 {
475 int key_char = event.GetKeyCode();
476 int yyp = 4;
477 }
478