Use wxPen

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott 2003-08-04 06:19:30 +00:00
parent 1f631557e0
commit 5eb5a0ac96

View File

@ -33,6 +33,38 @@ WX_NSLayoutManager wxDC::sm_cocoaNSLayoutManager = nil;
WX_NSTextContainer wxDC::sm_cocoaNSTextContainer = nil;
wxCocoaDCStack wxDC::sm_cocoaDCStack;
inline void CocoaSetPenForNSBezierPath(wxPen &pen, NSBezierPath *bezpath)
{
[pen.GetNSColor() set];
const float *pattern;
[bezpath setLineDash:pattern count:pen.GetCocoaLineDash(&pattern) phase:0.0];
[bezpath setLineWidth:pen.GetWidth()];
switch(pen.GetJoin())
{
case wxJOIN_BEVEL:
[bezpath setLineJoinStyle:NSBevelLineJoinStyle];
break;
case wxJOIN_ROUND:
[bezpath setLineJoinStyle:NSRoundLineJoinStyle];
break;
case wxJOIN_MITER:
[bezpath setLineJoinStyle:NSMiterLineJoinStyle];
break;
}
switch(pen.GetCap())
{
case wxCAP_ROUND:
[bezpath setLineCapStyle:NSRoundLineCapStyle];
break;
case wxCAP_PROJECTING:
[bezpath setLineCapStyle:NSSquareLineCapStyle];
break;
case wxCAP_BUTT:
[bezpath setLineCapStyle:NSButtLineCapStyle];
break;
}
}
void wxDC::CocoaInitializeTextSystem()
{
wxASSERT_MSG(!sm_cocoaNSTextStorage && !sm_cocoaNSLayoutManager && !sm_cocoaNSTextContainer,"Text system already initalized! BAD PROGRAMMER!");
@ -106,6 +138,7 @@ wxDC::wxDC(void)
{
m_cocoaFlipped = false;
m_cocoaHeight = 0.0;
m_pen = *wxBLACK_PEN;
}
wxDC::~wxDC(void)
@ -148,7 +181,7 @@ void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{
if(!CocoaTakeFocus()) return;
NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(x,y,width,height)];
[m_textForegroundColour.GetNSColor() set];
CocoaSetPenForNSBezierPath(m_pen,bezpath);
[bezpath stroke];
[m_brush.GetNSColor() set];
[bezpath fill];
@ -161,7 +194,7 @@ void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
[bezpath moveToPoint:NSMakePoint(x1,y1)];
[bezpath lineToPoint:NSMakePoint(x2,y2)];
[m_textForegroundColour.GetNSColor() set];
CocoaSetPenForNSBezierPath(m_pen,bezpath);
[bezpath stroke];
}
@ -374,6 +407,7 @@ void wxDC::DoDrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord xc,
void wxDC::SetPen(const wxPen& pen)
{
m_pen = pen;
}
void wxDC::SetBrush(const wxBrush& brush)