OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::UiAMS Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp>

Inheritance diagram for Slic3r::GUI::UiAMS:
Collaboration diagram for Slic3r::GUI::UiAMS:

Public Member Functions

 UiAMS (wxWindow *parent, const std::vector< DataAmsSlotInfo > &amsInfo, wxWindowID id, const wxPoint &pos, const wxSize &minSize)

Protected Member Functions

void OnPaint (wxPaintEvent &event)

Private Member Functions

void init ()

Private Attributes

std::vector< DataAmsSlotInfo > m_amsInfo
wxString m_amsTitle
wxSize m_minSize
bool m_borderDashed
int m_borderWidth
int m_radius
wxColour m_borderColor
wxColour m_bgColor
wxString m_name
bool m_isTop

Detailed Description

Constructor & Destructor Documentation

◆ UiAMS()

Slic3r::GUI::UiAMS::UiAMS ( wxWindow * parent,
const std::vector< DataAmsSlotInfo > & amsInfo,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & minSize = wxDefaultSize )
567 : UiStyledAMSPanel(parent, id, pos, wxDefaultSize, wxColour("#dbdbdb"), wxColour("#ffffff"), false, amsInfo.front().amsName),
568
569 m_amsInfo(amsInfo), m_minSize(minSize)
570{
571 if (m_amsInfo.size() == 1)
572 {
573 wxSize size(FromDIP(92), FromDIP(134));
574 SetMinSize(size);
575 m_minSize = size;
576 }
577 else // 4 slot
578 {
579 wxSize size(FromDIP(262), FromDIP(134));
580 SetMinSize(size);
581 m_minSize = size;
582 }
583 init();
584}
wxSize m_minSize
Definition uiAMSBestPositionPopup.hpp:188
std::vector< DataAmsSlotInfo > m_amsInfo
Definition uiAMSBestPositionPopup.hpp:186
void init()
Definition uiAMSBestPositionPopup.cpp:586
UiStyledAMSPanel(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, const wxColour &borderColor=wxColour(200, 200, 200), const wxColour &bgColor=wxColour(255, 255, 255), bool borderDashed=true, wxString name="", bool isTop=false)
Definition uiAMSBestPositionPopup.cpp:50

References Slic3r::GUI::UiStyledAMSPanel::UiStyledAMSPanel(), init(), m_amsInfo, and m_minSize.

Here is the call graph for this function:

Member Function Documentation

◆ init()

void Slic3r::GUI::UiAMS::init ( )
private
587{
588 // int minW = m_minSize.GetWidth() * m_amsInfo.size();
589 int minW = m_minSize.GetWidth();
590 wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
591
592 //ams model
593 // wxPanel* amsPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition);
594
595 wxBoxSizer* amsPanelSizer = new wxBoxSizer(wxHORIZONTAL);
596 wxSize wxSlotSize = wxSize(FromDIP(58), FromDIP(90));
597 int allEmptySpacer = minW - m_amsInfo.size() * wxSlotSize.GetWidth();
598 int gap = (m_amsInfo.size() == 1 ? allEmptySpacer / 2 : allEmptySpacer / ( 2 * m_amsInfo.size() - 1));
599 for (const auto& slot : m_amsInfo)
600 {
601 amsPanelSizer->AddStretchSpacer(gap);
602 amsPanelSizer->Add(new UiAMSSlot(this, slot.colours, slot.name, slot.status, wxID_ANY, wxDefaultPosition, wxSlotSize, slot.colourFactor, slot.scaleFactor));
603 amsPanelSizer->AddStretchSpacer(gap);
604 }
605 // amsPanel->SetSizer(amsPanelSizer);
606 // mainSizer->AddStretchSpacer();
607 mainSizer->Add(amsPanelSizer, 0, wxALIGN_CENTER | wxEXPAND | wxALL, FromDIP(5));
608 // mainSizer->AddStretchSpacer();
609 SetSizer(mainSizer);
610}

References m_amsInfo, and m_minSize.

Referenced by UiAMS().

Here is the caller graph for this function:

◆ OnPaint()

void Slic3r::GUI::UiStyledAMSPanel::OnPaint ( wxPaintEvent & event)
protectedinherited
74{
75
76 wxPaintDC dc(this);
77 dc.Clear();
78 m_borderWidth = FromDIP(2);
79 m_radius = FromDIP(5);
80 wxSize clientSize = GetClientSize();
81 int width = clientSize.GetWidth();
82 int height = clientSize.GetHeight();
83
84
85 dc.SetBrush(wxBrush(m_bgColor));
86 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
87 dc.DrawRectangle(wxRect(0, 0, width, height));
88 // dc.DrawRoundedRectangle(wxRect(0, 0, width, height), m_radius);
89
90
91 wxPen borderPen;
93 {
94
95 borderPen = wxPen(m_borderColor, m_borderWidth, wxPENSTYLE_SHORT_DASH);
96 }
97 else
98 {
99
100 borderPen = wxPen(m_borderColor, m_borderWidth, wxPENSTYLE_SOLID);
101 }
102 dc.SetPen(borderPen);
103
104 int offset = m_borderWidth;
105 dc.DrawRoundedRectangle(wxRect(offset, offset, width - 2 * offset, height - 2 * offset), m_radius);
106
107
108 int labelX = offset;
109 int labelY = m_isTop ? offset : (height - offset - FromDIP(27)); // true=top, false=bottom
110
111
112 wxRect labelRect(labelX, labelY, width - 2 * offset, FromDIP(10));
113 wxRect labelRoundRect(labelX, labelY, width - 2 * offset, FromDIP(27));
114 dc.SetBrush(wxBrush(m_borderColor));
115 dc.SetPen(wxPen(*wxTRANSPARENT_PEN));
116 dc.DrawRoundedRectangle(labelRoundRect, m_radius);
117 dc.DrawRectangle(labelRect);
118
119
120 wxFont font12(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
121 dc.SetTextForeground(wxColour("#858585"));
122 // dc.SetFont(font12);
123 dc.SetFont(::Label::Body_12);
124 wxCoord textWidth, textHeight;
125 dc.GetTextExtent(m_name, &textWidth, &textHeight);
126
127 int textPosX = labelX + 4 * offset;
128 int textPosY = labelY + (FromDIP(27) -textHeight ) / 2;
129 dc.DrawText(m_name, textPosX, textPosY);
130
131
132 // event.Skip();
133}
static wxFont Body_12
Definition Label.hpp:55
wxColour m_bgColor
Definition uiAMSBestPositionPopup.hpp:57
int m_borderWidth
Definition uiAMSBestPositionPopup.hpp:54
bool m_borderDashed
Definition uiAMSBestPositionPopup.hpp:53
wxString m_name
Definition uiAMSBestPositionPopup.hpp:58
wxColour m_borderColor
Definition uiAMSBestPositionPopup.hpp:56
bool m_isTop
Definition uiAMSBestPositionPopup.hpp:59
int m_radius
Definition uiAMSBestPositionPopup.hpp:55
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

References Label::Body_12, m_bgColor, m_borderColor, m_borderDashed, m_borderWidth, m_isTop, m_name, m_radius, and Slic3r::offset().

Referenced by UiStyledAMSPanel().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_amsInfo

std::vector<DataAmsSlotInfo> Slic3r::GUI::UiAMS::m_amsInfo
private

Referenced by UiAMS(), and init().

◆ m_amsTitle

wxString Slic3r::GUI::UiAMS::m_amsTitle
private

◆ m_bgColor

wxColour Slic3r::GUI::UiStyledAMSPanel::m_bgColor
privateinherited

Referenced by UiStyledAMSPanel(), and OnPaint().

◆ m_borderColor

wxColour Slic3r::GUI::UiStyledAMSPanel::m_borderColor
privateinherited

Referenced by UiStyledAMSPanel(), and OnPaint().

◆ m_borderDashed

bool Slic3r::GUI::UiStyledAMSPanel::m_borderDashed
privateinherited

Referenced by UiStyledAMSPanel(), and OnPaint().

◆ m_borderWidth

int Slic3r::GUI::UiStyledAMSPanel::m_borderWidth
privateinherited

Referenced by OnPaint().

◆ m_isTop

bool Slic3r::GUI::UiStyledAMSPanel::m_isTop
privateinherited

Referenced by UiStyledAMSPanel(), and OnPaint().

◆ m_minSize

wxSize Slic3r::GUI::UiAMS::m_minSize
private

Referenced by UiAMS(), and init().

◆ m_name

wxString Slic3r::GUI::UiStyledAMSPanel::m_name
privateinherited

Referenced by UiStyledAMSPanel(), and OnPaint().

◆ m_radius

int Slic3r::GUI::UiStyledAMSPanel::m_radius
privateinherited

Referenced by OnPaint().


The documentation for this class was generated from the following files: