summaryrefslogtreecommitdiffstats
path: root/Project/Limiter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/Limiter.cpp')
-rw-r--r--Project/Limiter.cpp28
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);