diff options
Diffstat (limited to 'Project/Limiter.cpp')
-rw-r--r-- | Project/Limiter.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Project/Limiter.cpp b/Project/Limiter.cpp index 33ecb66..499c05e 100644 --- a/Project/Limiter.cpp +++ b/Project/Limiter.cpp @@ -17,6 +17,7 @@ #include "Limiter.h" #include "LimiterForm.h" +#include <wx/pen.h> Limiter::Limiter(int id) : ControlElement(id) { @@ -58,6 +59,33 @@ void Limiter::Draw(wxPoint2DDouble translation, double scale) const DrawNodes(); } +void Limiter::DrawDC(wxPoint2DDouble translation, double scale, wxGraphicsContext* gc) const +{ + if (m_selected) { + gc->SetPen(*wxTRANSPARENT_PEN); + gc->SetBrush(wxBrush(m_selectionColour.GetDcRGBA())); + double borderSize = (m_borderSize * 2.0 + 1.0) / scale; + gc->DrawRectangle(m_position.m_x - m_width / 2 - borderSize / 2, m_position.m_y - m_height / 2 - borderSize / 2, m_width + borderSize, m_height + borderSize); + } + gc->SetPen(wxPen(wxColour(0, 0, 0, 255), 1)); + gc->SetBrush(wxBrush(wxColour(255, 255, 255, 255))); + gc->DrawRectangle(m_position.m_x - m_width / 2, m_position.m_y - m_height / 2, m_width, m_height); + + // Plot symbol. + gc->SetPen(wxPen(wxColour(0, 77, 255, 255), 2)); + gc->SetBrush(*wxTRANSPARENT_BRUSH); + wxPoint2DDouble limSymbol[4]; + limSymbol[0] = m_position + wxPoint2DDouble(10, -10); + limSymbol[1] = m_position + wxPoint2DDouble(2, -10); + limSymbol[2] = m_position + wxPoint2DDouble(-2, 10); + limSymbol[3] = m_position + wxPoint2DDouble(-10, 10); + gc->DrawLines(4, limSymbol); + + gc->SetPen(*wxTRANSPARENT_PEN); + gc->SetBrush(*wxBLACK_BRUSH); + DrawDCNodes(gc); +} + bool Limiter::ShowForm(wxWindow* parent, Element* element) { LimiterForm* limiter = new LimiterForm(parent, this); |