15PANEL_PREVIEW_3D_MODEL_BASE::PANEL_PREVIEW_3D_MODEL_BASE( wxWindow* parent, wxWindowID
id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString&
name ) : wxPanel( parent, id, pos, size, style,
name )
17 wxBoxSizer* bSizermain;
18 bSizermain =
new wxBoxSizer( wxHORIZONTAL );
20 wxBoxSizer* bSizerLeft;
21 bSizerLeft =
new wxBoxSizer( wxVERTICAL );
23 wxStaticBoxSizer* sbSizerScale;
24 sbSizerScale =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Scale") ), wxVERTICAL );
26 wxFlexGridSizer* fgSizerScale;
27 fgSizerScale =
new wxFlexGridSizer( 0, 3, 3, 3 );
28 fgSizerScale->AddGrowableCol( 1 );
29 fgSizerScale->SetFlexibleDirection( wxBOTH );
30 fgSizerScale->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
32 m_staticText1 =
new wxStaticText( sbSizerScale->GetStaticBox(), wxID_ANY,
_(
"X:"), wxDefaultPosition, wxDefaultSize, 0 );
34 fgSizerScale->Add(
m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
36 xscale =
new TEXT_CTRL_EVAL( sbSizerScale->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
37 fgSizerScale->Add(
xscale, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
39 m_spinXscale =
new wxSpinButton( sbSizerScale->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
40 fgSizerScale->Add(
m_spinXscale, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
42 m_staticText2 =
new wxStaticText( sbSizerScale->GetStaticBox(), wxID_ANY,
_(
"Y:"), wxDefaultPosition, wxDefaultSize, 0 );
44 fgSizerScale->Add(
m_staticText2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
46 yscale =
new TEXT_CTRL_EVAL( sbSizerScale->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
47 fgSizerScale->Add(
yscale, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
49 m_spinYscale =
new wxSpinButton( sbSizerScale->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
50 fgSizerScale->Add(
m_spinYscale, 0, wxALIGN_CENTER_VERTICAL, 5 );
52 m_staticText3 =
new wxStaticText( sbSizerScale->GetStaticBox(), wxID_ANY,
_(
"Z:"), wxDefaultPosition, wxDefaultSize, 0 );
54 fgSizerScale->Add(
m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
56 zscale =
new TEXT_CTRL_EVAL( sbSizerScale->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
57 fgSizerScale->Add(
zscale, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
59 m_spinZscale =
new wxSpinButton( sbSizerScale->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
60 fgSizerScale->Add(
m_spinZscale, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
63 sbSizerScale->Add( fgSizerScale, 0, wxBOTTOM|wxEXPAND|wxRIGHT, 2 );
66 bSizerLeft->Add( sbSizerScale, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
68 wxStaticBoxSizer* sbSizerRotation;
69 sbSizerRotation =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Rotation") ), wxVERTICAL );
71 wxFlexGridSizer* fgSizerRotate;
72 fgSizerRotate =
new wxFlexGridSizer( 0, 3, 1, 3 );
73 fgSizerRotate->AddGrowableCol( 1 );
74 fgSizerRotate->SetFlexibleDirection( wxBOTH );
75 fgSizerRotate->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
77 m_staticText11 =
new wxStaticText( sbSizerRotation->GetStaticBox(), wxID_ANY,
_(
"X:"), wxDefaultPosition, wxDefaultSize, 0 );
79 fgSizerRotate->Add(
m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
81 xrot =
new TEXT_CTRL_EVAL( sbSizerRotation->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
82 fgSizerRotate->Add(
xrot, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
84 m_spinXrot =
new wxSpinButton( sbSizerRotation->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
85 fgSizerRotate->Add(
m_spinXrot, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
87 m_staticText21 =
new wxStaticText( sbSizerRotation->GetStaticBox(), wxID_ANY,
_(
"Y:"), wxDefaultPosition, wxDefaultSize, 0 );
89 fgSizerRotate->Add(
m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
91 yrot =
new TEXT_CTRL_EVAL( sbSizerRotation->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
92 fgSizerRotate->Add(
yrot, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
94 m_spinYrot =
new wxSpinButton( sbSizerRotation->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
95 fgSizerRotate->Add(
m_spinYrot, 0, wxALIGN_CENTER_VERTICAL, 5 );
97 m_staticText31 =
new wxStaticText( sbSizerRotation->GetStaticBox(), wxID_ANY,
_(
"Z:"), wxDefaultPosition, wxDefaultSize, 0 );
99 fgSizerRotate->Add(
m_staticText31, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
101 zrot =
new TEXT_CTRL_EVAL( sbSizerRotation->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
102 fgSizerRotate->Add(
zrot, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
104 m_spinZrot =
new wxSpinButton( sbSizerRotation->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
105 fgSizerRotate->Add(
m_spinZrot, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
108 sbSizerRotation->Add( fgSizerRotate, 0, wxBOTTOM|wxRIGHT|wxEXPAND, 2 );
111 bSizerLeft->Add( sbSizerRotation, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
113 wxStaticBoxSizer* sbSizerOffset;
114 sbSizerOffset =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Offset") ), wxVERTICAL );
116 wxFlexGridSizer* fgSizerOffset;
117 fgSizerOffset =
new wxFlexGridSizer( 0, 3, 1, 3 );
118 fgSizerOffset->AddGrowableCol( 1 );
119 fgSizerOffset->SetFlexibleDirection( wxBOTH );
120 fgSizerOffset->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
122 m_staticText12 =
new wxStaticText( sbSizerOffset->GetStaticBox(), wxID_ANY,
_(
"X:"), wxDefaultPosition, wxDefaultSize, 0 );
124 fgSizerOffset->Add(
m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
126 xoff =
new TEXT_CTRL_EVAL( sbSizerOffset->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
127 fgSizerOffset->Add(
xoff, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
129 m_spinXoffset =
new wxSpinButton( sbSizerOffset->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
130 fgSizerOffset->Add(
m_spinXoffset, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
132 m_staticText22 =
new wxStaticText( sbSizerOffset->GetStaticBox(), wxID_ANY,
_(
"Y:"), wxDefaultPosition, wxDefaultSize, 0 );
134 fgSizerOffset->Add(
m_staticText22, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
136 yoff =
new TEXT_CTRL_EVAL( sbSizerOffset->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
137 fgSizerOffset->Add(
yoff, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
139 m_spinYoffset =
new wxSpinButton( sbSizerOffset->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
140 fgSizerOffset->Add(
m_spinYoffset, 0, wxALIGN_CENTER_VERTICAL, 5 );
142 m_staticText32 =
new wxStaticText( sbSizerOffset->GetStaticBox(), wxID_ANY,
_(
"Z:"), wxDefaultPosition, wxDefaultSize, 0 );
144 fgSizerOffset->Add(
m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
146 zoff =
new TEXT_CTRL_EVAL( sbSizerOffset->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
147 fgSizerOffset->Add(
zoff, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
149 m_spinZoffset =
new wxSpinButton( sbSizerOffset->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_VERTICAL );
150 fgSizerOffset->Add(
m_spinZoffset, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
153 sbSizerOffset->Add( fgSizerOffset, 0, wxBOTTOM|wxRIGHT|wxEXPAND, 2 );
156 bSizerLeft->Add( sbSizerOffset, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
158 wxStaticBoxSizer* sbSizer4;
159 sbSizer4 =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Opacity") ), wxVERTICAL );
161 m_opacity =
new wxSlider( sbSizer4->GetStaticBox(), wxID_ANY, 50, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL );
162 sbSizer4->Add(
m_opacity, 0, wxRIGHT|wxLEFT|wxEXPAND, 2 );
165 bSizerLeft->Add( sbSizer4, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
168 bSizerLeft->Add( 0, 0, 1, wxEXPAND, 5 );
171 bSizermain->Add( bSizerLeft, 0, wxEXPAND, 5 );
173 wxBoxSizer* bSizerRight;
174 bSizerRight =
new wxBoxSizer( wxVERTICAL );
177 bSizer6 =
new wxBoxSizer( wxHORIZONTAL );
179 m_previewLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Preview"), wxDefaultPosition, wxDefaultSize, 0 );
181 m_previewLabel->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
183 bSizer6->Add(
m_previewLabel, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
186 bSizerRight->Add( bSizer6, 0, wxEXPAND, 5 );
194 bSizermain->Add( bSizerRight, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
196 wxBoxSizer* bSizer3DButtons;
197 bSizer3DButtons =
new wxBoxSizer( wxVERTICAL );
200 bSizer3DButtons->Add( 0, 14, 0, wxEXPAND, 5 );
203 m_bpvISO->SetToolTip(
_(
"Enable/disable orthographic projection") );
205 bSizer3DButtons->Add(
m_bpvISO, 0, wxTOP, 5 );
208 m_bpvBodyStyle->SetToolTip(
_(
"Show or hide the board body\nIf hidden, show only copper and silkscreen layers.") );
213 bSizer3DButtons->Add( 0, 20, 0, wxEXPAND, 5 );
218 bSizer3DButtons->Add(
m_bpvLeft, 0, wxBOTTOM, 5 );
223 bSizer3DButtons->Add(
m_bpvRight, 0, wxBOTTOM, 5 );
228 bSizer3DButtons->Add(
m_bpvFront, 0, wxBOTTOM, 5 );
233 bSizer3DButtons->Add(
m_bpvBack, 0, wxBOTTOM, 5 );
238 bSizer3DButtons->Add(
m_bpvTop, 0, wxBOTTOM, 5 );
246 bSizer3DButtons->Add( 0, 20, 0, wxEXPAND, 5 );
249 m_bpUpdate->SetToolTip(
_(
"Reload board and 3D models") );
251 bSizer3DButtons->Add(
m_bpUpdate, 0, wxTOP, 5 );
254 bSizer3DButtons->Add(
m_bpSettings, 0, wxTOP|wxBOTTOM, 5 );
257 bSizermain->Add( bSizer3DButtons, 0, wxEXPAND|wxRIGHT, 5 );
260 this->SetSizer( bSizermain );
262 bSizermain->Fit(
this );