16DIALOG_DIMENSION_PROPERTIES_BASE::DIALOG_DIMENSION_PROPERTIES_BASE( wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style ) :
DIALOG_SHIM( parent, id, title, pos, size, style )
18 this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
22 m_sizerLeader =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Leader Format") ), wxVERTICAL );
24 wxGridBagSizer* gbSizerLeader;
25 gbSizerLeader =
new wxGridBagSizer( 0, 0 );
26 gbSizerLeader->SetFlexibleDirection( wxBOTH );
27 gbSizerLeader->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
31 gbSizerLeader->Add(
m_lblLeaderValue, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
34 gbSizerLeader->Add(
m_txtLeaderValue, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
37 gbSizerLeader->Add( 60, 0, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
43 gbSizerLeader->Add(
m_lblTextFrame, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
45 wxString m_cbTextFrameChoices[] = {
_(
"None"),
_(
"Rectangle"),
_(
"Circle") };
46 int m_cbTextFrameNChoices =
sizeof( m_cbTextFrameChoices ) /
sizeof( wxString );
47 m_cbTextFrame =
new wxChoice(
m_sizerLeader->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbTextFrameNChoices, m_cbTextFrameChoices, 0 );
49 m_cbTextFrame->SetToolTip(
_(
"Draw a shape around the leader text") );
51 gbSizerLeader->Add(
m_cbTextFrame, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
55 gbSizerLeader->Add(
m_lblLeaderLayer, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
58 gbSizerLeader->Add(
m_cbLeaderLayer, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
61 gbSizerLeader->AddGrowableCol( 1 );
62 gbSizerLeader->AddGrowableCol( 4 );
69 m_sizerCenter =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Dimension Format") ), wxVERTICAL );
71 wxGridBagSizer* gbSizerCenter;
72 gbSizerCenter =
new wxGridBagSizer( 0, 0 );
73 gbSizerCenter->SetFlexibleDirection( wxBOTH );
74 gbSizerCenter->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
78 gbSizerCenter->Add(
m_lblCenterLayer, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
81 gbSizerCenter->Add(
m_cbCenterLayer, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
89 m_sizerFormat =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Dimension Format") ), wxVERTICAL );
91 wxGridBagSizer* gbSizerFormat;
92 gbSizerFormat =
new wxGridBagSizer( 3, 0 );
93 gbSizerFormat->SetFlexibleDirection( wxBOTH );
94 gbSizerFormat->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
96 m_lblValue =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Value:"), wxDefaultPosition, wxDefaultSize, 0 );
98 m_lblValue->SetToolTip(
_(
"Measured value of this dimension") );
100 gbSizerFormat->Add(
m_lblValue, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
102 m_txtValue =
new wxTextCtrl(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
104 m_txtValue->SetToolTip(
_(
"Measured value of this dimension") );
106 gbSizerFormat->Add(
m_txtValue, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
108 wxBoxSizer* bSizerValueMode;
109 bSizerValueMode =
new wxBoxSizer( wxHORIZONTAL );
111 wxString m_choiceValueModeChoices[] = {
_(
"Driven"),
_(
"Driving"),
_(
"Arbitrary") };
112 int m_choiceValueModeNChoices =
sizeof( m_choiceValueModeChoices ) /
sizeof( wxString );
113 m_choiceValueMode =
new wxChoice(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceValueModeNChoices, m_choiceValueModeChoices, 0 );
115 m_choiceValueMode->SetToolTip(
_(
"Driven follows the measured geometry; Driving forces the geometry to the entered length; Arbitrary shows custom text") );
120 gbSizerFormat->Add( bSizerValueMode, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
123 gbSizerFormat->Add( 40, 0, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), 0, 5 );
125 m_lblUnits =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Units:"), wxDefaultPosition, wxDefaultSize, 0 );
127 m_lblUnits->SetToolTip(
_(
"Units of this dimension (\"automatic\" to follow the units selected in the editor)") );
129 gbSizerFormat->Add(
m_lblUnits, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
131 wxString m_cbUnitsChoices[] = {
_(
"Inches"),
_(
"Mils"),
_(
"Millimeters"),
_(
"Automatic") };
132 int m_cbUnitsNChoices =
sizeof( m_cbUnitsChoices ) /
sizeof( wxString );
133 m_cbUnits =
new wxChoice(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbUnitsNChoices, m_cbUnitsChoices, 0 );
135 m_cbUnits->SetToolTip(
_(
"Units of this dimension (\"automatic\" to follow the units selected in the editor)") );
137 gbSizerFormat->Add(
m_cbUnits, wxGBPosition( 0, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
139 m_lblPrefix =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Prefix:"), wxDefaultPosition, wxDefaultSize, 0 );
141 m_lblPrefix->SetToolTip(
_(
"Text to print before the dimension value") );
143 gbSizerFormat->Add(
m_lblPrefix, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
145 m_txtPrefix =
new wxTextCtrl(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
146 m_txtPrefix->SetToolTip(
_(
"Text to print before the dimension value") );
148 gbSizerFormat->Add(
m_txtPrefix, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
154 gbSizerFormat->Add(
m_txtUnitsFormat, wxGBPosition( 1, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
156 wxString m_cbUnitsFormatChoices[] = {
_(
"1234"),
_(
"1234 mm"),
_(
"1234 (mm)") };
157 int m_cbUnitsFormatNChoices =
sizeof( m_cbUnitsFormatChoices ) /
sizeof( wxString );
158 m_cbUnitsFormat =
new wxChoice(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbUnitsFormatNChoices, m_cbUnitsFormatChoices, 0 );
162 gbSizerFormat->Add(
m_cbUnitsFormat, wxGBPosition( 1, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
164 m_lblSuffix =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Suffix:"), wxDefaultPosition, wxDefaultSize, 0 );
166 m_lblSuffix->SetToolTip(
_(
"Text to print after the dimension value") );
168 gbSizerFormat->Add(
m_lblSuffix, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
170 m_txtSuffix =
new wxTextCtrl(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
171 m_txtSuffix->SetToolTip(
_(
"Text to print after the dimension value") );
173 gbSizerFormat->Add(
m_txtSuffix, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
177 m_lblPrecision->SetToolTip(
_(
"Choose how many digits of precision to display") );
179 gbSizerFormat->Add(
m_lblPrecision, wxGBPosition( 2, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
181 wxString m_cbPrecisionChoices[] = {
_(
"0"),
_(
"0.0"),
_(
"0.00"),
_(
"0.000"),
_(
"0.0000"),
_(
"0.00000"),
_(
"0.00 in / 0 mils / 0.0 mm"),
_(
"0.000 / 0 / 0.00"),
_(
"0.0000 / 0.0 / 0.000"),
_(
"0.00000 / 0.00 / 0.0000") };
182 int m_cbPrecisionNChoices =
sizeof( m_cbPrecisionChoices ) /
sizeof( wxString );
183 m_cbPrecision =
new wxChoice(
m_sizerFormat->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbPrecisionNChoices, m_cbPrecisionChoices, 0 );
185 m_cbPrecision->SetToolTip(
_(
"Choose how many digits of precision to display") );
187 gbSizerFormat->Add(
m_cbPrecision, wxGBPosition( 2, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
190 gbSizerFormat->Add(
m_cbLayer, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
192 m_lblLayer =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Layer:"), wxDefaultPosition, wxDefaultSize, 0 );
194 gbSizerFormat->Add(
m_lblLayer, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
197 m_cbSuppressZeroes->SetToolTip(
_(
"When checked, \"0.100\" will be shown as \"0.1\" even if the precision setting is higher") );
199 gbSizerFormat->Add(
m_cbSuppressZeroes, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
201 m_lblPreview =
new wxStaticText(
m_sizerFormat->GetStaticBox(), wxID_ANY,
_(
"Preview:"), wxDefaultPosition, wxDefaultSize, 0 );
203 gbSizerFormat->Add(
m_lblPreview, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
207 gbSizerFormat->Add(
m_staticTextPreview, wxGBPosition( 4, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxEXPAND, 5 );
210 gbSizerFormat->AddGrowableCol( 1 );
211 gbSizerFormat->AddGrowableCol( 5 );
213 m_sizerFormat->Add( gbSizerFormat, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
218 m_sizerText =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Dimension Text") ), wxVERTICAL );
220 wxGridBagSizer* gbSizerText;
221 gbSizerText =
new wxGridBagSizer( 3, 0 );
222 gbSizerText->SetFlexibleDirection( wxBOTH );
223 gbSizerText->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
225 m_fontLabel =
new wxStaticText(
m_sizerText->GetStaticBox(), wxID_ANY,
_(
"Font:"), wxDefaultPosition, wxDefaultSize, 0 );
227 gbSizerText->Add(
m_fontLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
229 wxString m_fontCtrlChoices[] = {
_(
"KiCad Font") };
230 int m_fontCtrlNChoices =
sizeof( m_fontCtrlChoices ) /
sizeof( wxString );
233 gbSizerText->Add(
m_fontCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND, 5 );
235 wxBoxSizer* bSizerButtonBar;
236 bSizerButtonBar =
new wxBoxSizer( wxHORIZONTAL );
241 bSizerButtonBar->Add(
m_separator0, 0, wxALIGN_CENTER_VERTICAL, 5 );
244 bSizerButtonBar->Add(
m_bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
247 bSizerButtonBar->Add(
m_italic, 0, wxALIGN_CENTER_VERTICAL, 5 );
252 bSizerButtonBar->Add(
m_separator1, 0, wxALIGN_CENTER_VERTICAL, 5 );
255 bSizerButtonBar->Add(
m_alignLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
258 bSizerButtonBar->Add(
m_alignCenter, 0, wxALIGN_CENTER_VERTICAL, 5 );
261 bSizerButtonBar->Add(
m_alignRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
266 bSizerButtonBar->Add(
m_separator2, 0, wxALIGN_CENTER_VERTICAL, 5 );
269 bSizerButtonBar->Add(
m_mirrored, 0, wxALIGN_CENTER_VERTICAL, 5 );
274 bSizerButtonBar->Add(
m_separator3, 0, wxALIGN_CENTER_VERTICAL, 5 );
277 gbSizerText->Add( bSizerButtonBar, wxGBPosition( 0, 4 ), wxGBSpan( 1, 3 ), wxEXPAND|wxBOTTOM|wxALIGN_CENTER_VERTICAL, 5 );
283 gbSizerText->Add(
m_lblTextWidth, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
285 m_txtTextWidth =
new wxTextCtrl(
m_sizerText->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
286 gbSizerText->Add(
m_txtTextWidth, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
290 gbSizerText->Add(
m_lblTextWidthUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
293 gbSizerText->Add( 40, 0, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
295 m_lblTextPosX =
new wxStaticText(
m_sizerText->GetStaticBox(), wxID_ANY,
_(
"Position X:"), wxDefaultPosition, wxDefaultSize, 0 );
299 gbSizerText->Add(
m_lblTextPosX, wxGBPosition( 1, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
301 m_txtTextPosX =
new wxTextCtrl(
m_sizerText->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
302 gbSizerText->Add(
m_txtTextPosX, wxGBPosition( 1, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
306 gbSizerText->Add(
m_lblTextPosXUnits, wxGBPosition( 1, 6 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT|wxRIGHT, 5 );
312 gbSizerText->Add(
m_lblTextHeight, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
314 m_txtTextHeight =
new wxTextCtrl(
m_sizerText->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
315 gbSizerText->Add(
m_txtTextHeight, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
319 gbSizerText->Add(
m_lblTextHeightUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
321 m_lblTextPosY =
new wxStaticText(
m_sizerText->GetStaticBox(), wxID_ANY,
_(
"Position Y:"), wxDefaultPosition, wxDefaultSize, 0 );
325 gbSizerText->Add(
m_lblTextPosY, wxGBPosition( 2, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
327 m_txtTextPosY =
new wxTextCtrl(
m_sizerText->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
328 gbSizerText->Add(
m_txtTextPosY, wxGBPosition( 2, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
332 gbSizerText->Add(
m_lblTextPosYUnits, wxGBPosition( 2, 6 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
338 gbSizerText->Add(
m_lblTextThickness, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
340 m_txtTextThickness =
new wxTextCtrl(
m_sizerText->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
341 gbSizerText->Add(
m_txtTextThickness, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
345 gbSizerText->Add(
m_lblTextThicknessUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
351 gbSizerText->Add(
m_lblTextOrientation, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
358 gbSizerText->Add(
m_cbTextOrientation, wxGBPosition( 3, 5 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
362 gbSizerText->Add(
m_lblTextPositionMode, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
364 wxString m_cbTextPositionModeChoices[] = {
_(
"Outside"),
_(
"Inline"),
_(
"Manual") };
365 int m_cbTextPositionModeNChoices =
sizeof( m_cbTextPositionModeChoices ) /
sizeof( wxString );
366 m_cbTextPositionMode =
new wxChoice(
m_sizerText->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbTextPositionModeNChoices, m_cbTextPositionModeChoices, 0 );
368 m_cbTextPositionMode->SetToolTip(
_(
"Choose how to position the text relative to the dimension line") );
370 gbSizerText->Add(
m_cbTextPositionMode, wxGBPosition( 4, 1 ), wxGBSpan( 1, 2 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
372 m_cbKeepAligned =
new wxCheckBox(
m_sizerText->GetStaticBox(), wxID_ANY,
_(
"Keep aligned with dimension"), wxDefaultPosition, wxDefaultSize, 0 );
373 m_cbKeepAligned->SetToolTip(
_(
"Automatically set the text orientation to match the dimension lines") );
375 gbSizerText->Add(
m_cbKeepAligned, wxGBPosition( 4, 4 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
378 gbSizerText->AddGrowableCol( 1 );
379 gbSizerText->AddGrowableCol( 5 );
381 m_sizerText->Add( gbSizerText, 0, wxBOTTOM|wxEXPAND|wxLEFT, 5 );
386 wxStaticBoxSizer* sbSizerLine;
387 sbSizerLine =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Dimension Line") ), wxVERTICAL );
389 wxGridBagSizer* gbSizerLine;
390 gbSizerLine =
new wxGridBagSizer( 3, 0 );
391 gbSizerLine->SetFlexibleDirection( wxBOTH );
392 gbSizerLine->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
394 m_lblLineThickness =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"Line thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
398 gbSizerLine->Add(
m_lblLineThickness, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
400 m_txtLineThickness =
new wxTextCtrl( sbSizerLine->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
401 gbSizerLine->Add(
m_txtLineThickness, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
403 m_lblLineThicknessUnits =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"unit"), wxDefaultPosition, wxDefaultSize, 0 );
405 gbSizerLine->Add(
m_lblLineThicknessUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
408 gbSizerLine->Add( 40, 0, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
410 m_lblArrowLength =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"Arrow length:"), wxDefaultPosition, wxDefaultSize, 0 );
412 gbSizerLine->Add(
m_lblArrowLength, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
414 m_txtArrowLength =
new wxTextCtrl( sbSizerLine->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
415 gbSizerLine->Add(
m_txtArrowLength, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
417 m_lblArrowLengthUnits =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"unit"), wxDefaultPosition, wxDefaultSize, 0 );
419 gbSizerLine->Add(
m_lblArrowLengthUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
421 m_lblExtensionOffset =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"Extension line offset:"), wxDefaultPosition, wxDefaultSize, 0 );
423 m_lblExtensionOffset->SetToolTip(
_(
"Gap between the measured points and the start of the extension lines") );
425 gbSizerLine->Add(
m_lblExtensionOffset, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
427 m_txtExtensionOffset =
new wxTextCtrl( sbSizerLine->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
428 m_txtExtensionOffset->SetToolTip(
_(
"Gap between the measured points and the start of the extension lines") );
430 gbSizerLine->Add(
m_txtExtensionOffset, wxGBPosition( 0, 5 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
432 m_lblExtensionOffsetUnits =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"unit"), wxDefaultPosition, wxDefaultSize, 0 );
434 gbSizerLine->Add(
m_lblExtensionOffsetUnits, wxGBPosition( 0, 6 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
436 m_lblExtensionOvershoot =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"Extension line overshoot:"), wxDefaultPosition, wxDefaultSize, 0 );
438 gbSizerLine->Add(
m_lblExtensionOvershoot, wxGBPosition( 1, 4 ), wxGBSpan( 1, 1 ), wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
440 m_txtExtensionOvershoot =
new wxTextCtrl( sbSizerLine->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
441 gbSizerLine->Add(
m_txtExtensionOvershoot, wxGBPosition( 1, 5 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
447 m_lblArrowDirection =
new wxStaticText( sbSizerLine->GetStaticBox(), wxID_ANY,
_(
"Arrow direction:"), wxDefaultPosition, wxDefaultSize, 0 );
449 gbSizerLine->Add(
m_lblArrowDirection, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
451 wxString m_cbArrowDirectionChoices[] = {
_(
"Inward"),
_(
"Outward") };
452 int m_cbArrowDirectionNChoices =
sizeof( m_cbArrowDirectionChoices ) /
sizeof( wxString );
453 m_cbArrowDirection =
new wxChoice( sbSizerLine->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbArrowDirectionNChoices, m_cbArrowDirectionChoices, 0 );
455 m_cbArrowDirection->SetToolTip(
_(
"Chose Dimension Arrow Direction\nAutomatic: Determined based on text position.\nInward: >-----<\nOutward: <----->") );
457 gbSizerLine->Add(
m_cbArrowDirection, wxGBPosition( 2, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 );
460 gbSizerLine->AddGrowableCol( 1 );
461 gbSizerLine->AddGrowableCol( 5 );
463 sbSizerLine->Add( gbSizerLine, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
466 m_mainSizer->Add( sbSizerLine, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 );
482 this->Centre( wxBOTH );