summaryrefslogtreecommitdiffstats
path: root/Project/Limiter.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2020-06-13 00:01:53 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2020-06-13 00:01:53 -0300
commit6c0e98a2727d07e1fbb38b78c27d68e98ad09465 (patch)
tree12764ca986c9a1943bc2012b0cc751471773f6ee /Project/Limiter.cpp
parent196389a70ef3a03aa8764b9532812a17dd55014b (diff)
downloadPSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.tar.gz
PSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.tar.xz
PSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.zip
Device context implemented
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);