void RectTestCase::InflateDeflate() { // This is the rectangle from the example in the documentation of wxRect::Inflate(). const wxRect r1(10, 10, 20, 40); CPPUNIT_ASSERT(r1.Inflate( 10, 10)==wxRect( 0, 0, 40, 60)); CPPUNIT_ASSERT(r1.Inflate( 20, 30)==wxRect(-10, -20, 60, 100)); CPPUNIT_ASSERT(r1.Inflate(-10, -10)==wxRect( 20, 20, 0, 20)); CPPUNIT_ASSERT(r1.Inflate(-15, -15)==wxRect( 20, 25, 0, 10)); CPPUNIT_ASSERT(r1.Inflate( 10, 10)==r1.Deflate(-10, -10)); CPPUNIT_ASSERT(r1.Inflate( 20, 30)==r1.Deflate(-20, -30)); CPPUNIT_ASSERT(r1.Inflate(-10, -10)==r1.Deflate( 10, 10)); CPPUNIT_ASSERT(r1.Inflate(-15, -15)==r1.Deflate( 15, 15)); }
void wxPDFViewPage::DrawThumbnail(wxPDFViewPagesClient* client, wxDC& dc, const wxRect& rect) { dc.SetBackground(*wxTRANSPARENT_BRUSH); dc.SetPen(*wxLIGHT_GREY_PEN); dc.DrawRectangle(rect.Inflate(1, 1)); wxBitmap bmp = client->GetCachedBitmap(m_index, rect.GetSize()); if (bmp.Ok()) { dc.DrawBitmap(bmp, rect.GetPosition()); } }
void SkinRegion::Stroke(wxDC& dc, wxGraphicsContext* gc, const wxRect& rect, int /*n*/) { if (!has_border) return; int penw = border.GetWidth() / 2.0f; wxRect r(rect); r.Deflate(penw, penw); //border.SetCap(wxCAP_PROJECTING); if (rounded) { bool needsDelete = false; if (!gc) { gc = wxGraphicsContext::Create((wxWindowDC&)dc); needsDelete = true; } gc->SetBrush(*wxTRANSPARENT_BRUSH); gc->SetPen(border); gc->DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, rounded * .97); rect.Inflate(penw, penw); if (needsDelete) delete gc; } else { dc.SetPen(border); int offset = (int)(border.GetWidth() % 2 == 0); wxPoint x(offset, 0); wxPoint y(0, offset); dc.DrawLine(rect.GetTopLeft(), rect.GetBottomLeft() + y); dc.DrawLine(rect.GetBottomLeft() + y, rect.GetBottomRight() + y + x); dc.DrawLine(rect.GetBottomRight() + y + x, rect.GetTopRight() + x); dc.DrawLine(rect.GetTopRight() + x, rect.GetTopLeft()); } }