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; WX_NSTextContainer wxDC::sm_cocoaNSTextContainer = nil;
wxCocoaDCStack wxDC::sm_cocoaDCStack; 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() void wxDC::CocoaInitializeTextSystem()
{ {
wxASSERT_MSG(!sm_cocoaNSTextStorage && !sm_cocoaNSLayoutManager && !sm_cocoaNSTextContainer,"Text system already initalized! BAD PROGRAMMER!"); 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_cocoaFlipped = false;
m_cocoaHeight = 0.0; m_cocoaHeight = 0.0;
m_pen = *wxBLACK_PEN;
} }
wxDC::~wxDC(void) wxDC::~wxDC(void)
@@ -148,7 +181,7 @@ void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{ {
if(!CocoaTakeFocus()) return; if(!CocoaTakeFocus()) return;
NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(x,y,width,height)]; NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(x,y,width,height)];
[m_textForegroundColour.GetNSColor() set]; CocoaSetPenForNSBezierPath(m_pen,bezpath);
[bezpath stroke]; [bezpath stroke];
[m_brush.GetNSColor() set]; [m_brush.GetNSColor() set];
[bezpath fill]; [bezpath fill];
@@ -161,7 +194,7 @@ void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
[bezpath moveToPoint:NSMakePoint(x1,y1)]; [bezpath moveToPoint:NSMakePoint(x1,y1)];
[bezpath lineToPoint:NSMakePoint(x2,y2)]; [bezpath lineToPoint:NSMakePoint(x2,y2)];
[m_textForegroundColour.GetNSColor() set]; CocoaSetPenForNSBezierPath(m_pen,bezpath);
[bezpath stroke]; [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) void wxDC::SetPen(const wxPen& pen)
{ {
m_pen = pen;
} }
void wxDC::SetBrush(const wxBrush& brush) void wxDC::SetBrush(const wxBrush& brush)