Use wxPen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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)
|
||||||
|
Reference in New Issue
Block a user