223{
224 wxPaintDC dc(this);
225 dc.Clear();
226 wxSize clientSize = GetClientSize();
227 int width = clientSize.GetWidth();
228 int height = clientSize.GetHeight() - FromDIP(90);
229
231 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
232 dc.DrawRectangle(wxRect(0, 0, width, height + FromDIP(90)));
233
235 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
236 dc.DrawRoundedRectangle(wxRect(0, 0, width, height),
m_radius);
237
238 wxPen borderPen;
240 {
241 borderPen = wxPen(wxColour(
"#ACACAC"),
m_borderWidth, wxPENSTYLE_SHORT_DASH);
242 }
243 else
244 {
245 borderPen = wxPen(wxColour(
"#ACACAC"),
m_borderWidth, wxPENSTYLE_SOLID);
246 }
247 dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH));
248 dc.SetPen(borderPen);
249
250 dc.DrawRoundedRectangle(wxRect(FromDIP(1), FromDIP(1), width - FromDIP(1), height),
m_radius);
251
255 labelX += FromDIP(1);
256 labelY += FromDIP(1);
257
258 wxRect labelRoundRect(labelX, labelY, width - 2 *
offset - FromDIP(2), FromDIP(
labelHeight));
261 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
262 dc.DrawRoundedRectangle(labelRoundRect,
m_radius);
263 dc.DrawRectangle(labelRect);
264
265
266 dc.SetPen(wxPen(wxColour(
"#ACACAC"),
m_borderWidth, wxPENSTYLE_SHORT_DASH));
267 dc.SetBrush(*wxTRANSPARENT_BRUSH);
268 dc.DrawLine(width / 2,
offset, width / 2, height -
offset);
269
270 wxFont font12(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
271 dc.SetTextForeground(wxColour("#000000"));
272
274 wxCoord textWidth, textHeight;
275 dc.GetTextExtent(
_L(
"Filament Inlet A"), &textWidth, &textHeight);
276
277 int aTextPosX = labelX + 4 *
offset;
278 int aTextPosY = labelY + (
labelHeight - textHeight ) / 2;
279 dc.DrawText(
_L(
"Filament Inlet A"), aTextPosX, aTextPosY);
280
282 int bTextPosY = aTextPosY;
283 dc.DrawText(
_L(
"Filament Inlet B"), bTextPosX, bTextPosY);
284
286
289 wxCoord selTextWidth, selTextHeight;
290 dc.GetTextExtent(
_L(
"Filament Track Switch"), &selTextWidth, &selTextHeight);
291
292 int selWidth = selTextWidth + FromDIP(20);
293 int selHeight = FromDIP(44);
294 int selBaseX = (
width - selWidth) / 2;
295 int selBaseY =
height - FromDIP(56);
296 dc.DrawRoundedRectangle(wxRect(selBaseX, selBaseY, selWidth, selHeight), FromDIP(4));
297
298 dc.SetTextForeground(wxColour("#262E30"));
299
300 int selTextPosX = selBaseX + (selWidth - selTextWidth) / 2;
301 int selTextPosY = selBaseY + (selHeight - selTextHeight) / 2;
302 dc.DrawText(
_L(
"Filament Track Switch"), selTextPosX, selTextPosY);
303
304
305 int hLBaseX = (
width - FromDIP(184)) / 2;
306 int hLBaseY = selBaseY - FromDIP(17);
307 int hWidth = FromDIP(76);
308 int hHeight = FromDIP(5);
309 int hGap = FromDIP(32);
310 wxRect HL(hLBaseX, hLBaseY + FromDIP(1), hWidth, hHeight);
311 wxRect HR(hLBaseX + hWidth + hGap, hLBaseY + FromDIP(1), hWidth, hHeight);
312 dc.SetBrush(wxBrush(wxColour("#D9D9D9")));
313 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
314 dc.DrawRectangle(HL);
315 dc.DrawRectangle(HR);
316
317 int vLTopBaseX = hLBaseX;
318 int vLTopBaseY =
height - FromDIP(90);
319 int vWidht = FromDIP(5);
320 int vHeight = FromDIP(23);
321
322 dc.DrawRectangle(wxRect(vLTopBaseX, vLTopBaseY, vWidht, vHeight));
323 dc.DrawRectangle(wxRect(vLTopBaseX + FromDIP(184) - vWidht, vLTopBaseY, vWidht, vHeight));
324
325
326 dc.DrawRectangle(wxRect(vLTopBaseX + hWidth - vWidht, vLTopBaseY + vHeight - vWidht, vWidht, FromDIP(17)));
327 dc.DrawRectangle(wxRect(vLTopBaseX + hWidth + hGap, vLTopBaseY + vHeight - vWidht, vWidht, FromDIP(17)));
328
329
330 dc.DrawRectangle(wxRect(vLTopBaseX + hWidth - vWidht, height - FromDIP(12), vWidht, FromDIP(12)));
331 dc.DrawRectangle(wxRect(vLTopBaseX + hWidth + hGap, height - FromDIP(12), vWidht, FromDIP(12)));
332
333}
#define _L(s)
Definition OBJ.cpp:34
static wxFont Body_14
Definition Label.hpp:53
coord_t width(const BoundingBox &box)
Definition Arrange.cpp:1184
coord_t height(const BoundingBox &box)
Definition Arrange.cpp:1185
Slic3r::Polygons offset(const Slic3r::Polygon &polygon, const float delta, JoinType joinType, double miterLimit)
Definition ClipperUtils.cpp:582