diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2020-06-13 00:01:53 -0300 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2020-06-13 00:01:53 -0300 |
commit | 6c0e98a2727d07e1fbb38b78c27d68e98ad09465 (patch) | |
tree | 12764ca986c9a1943bc2012b0cc751471773f6ee /Project/RateLimiter.cpp | |
parent | 196389a70ef3a03aa8764b9532812a17dd55014b (diff) | |
download | PSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.tar.gz PSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.tar.xz PSP.git-6c0e98a2727d07e1fbb38b78c27d68e98ad09465.zip |
Device context implemented
Diffstat (limited to 'Project/RateLimiter.cpp')
-rw-r--r-- | Project/RateLimiter.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Project/RateLimiter.cpp b/Project/RateLimiter.cpp index 94b61ac..929c95d 100644 --- a/Project/RateLimiter.cpp +++ b/Project/RateLimiter.cpp @@ -17,6 +17,7 @@ #include "RateLimiter.h" #include "RateLimiterForm.h" +#include <wx/pen.h> RateLimiter::RateLimiter(int id) : ControlElement(id) { @@ -63,6 +64,39 @@ void RateLimiter::Draw(wxPoint2DDouble translation, double scale) const DrawNodes(); } +void RateLimiter::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(*wxBLACK_PEN); + gc->SetBrush(*wxWHITE_BRUSH); + gc->DrawRectangle(m_position.m_x - m_width / 2, m_position.m_y - m_height / 2, m_width, m_height); + + // Plot symbol. + gc->SetBrush(*wxTRANSPARENT_BRUSH); + wxPoint2DDouble axis[4]; + axis[0] = m_position + wxPoint2DDouble(-13, 0); + axis[1] = m_position + wxPoint2DDouble(13, 0); + axis[2] = m_position + wxPoint2DDouble(0, -13); + axis[3] = m_position + wxPoint2DDouble(0, 13); + gc->DrawLines(2, &axis[0]); + gc->DrawLines(2, &axis[2]); + + gc->SetPen(wxPen(wxColour(0, 77, 255, 255), 2)); + wxPoint2DDouble limSymbol[2]; + limSymbol[0] = m_position + wxPoint2DDouble(10, -10); + limSymbol[1] = m_position + wxPoint2DDouble(-10, 10); + gc->DrawLines(2, limSymbol); + + gc->SetPen(*wxTRANSPARENT_PEN); + gc->SetBrush(*wxBLACK_BRUSH); + DrawDCNodes(gc); +} + bool RateLimiter::ShowForm(wxWindow* parent, Element* element) { RateLimiterForm* form = new RateLimiterForm(parent, this); |