Use NSColor from wxColour and wxBrush

#if 0 the bounding box drawn around all text (which was for testing)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2003-07-07 18:56:27 +00:00
parent f162a33801
commit c3b0c2c3dc

View File

@@ -64,16 +64,31 @@ wxDC::~wxDC(void)
void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{ {
NSGraphicsContext *context = [NSGraphicsContext currentContext];
[context saveGraphicsState];
NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(x,y,width,height)]; NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(x,y,width,height)];
[m_textForegroundColour.GetNSColor() set];
[bezpath stroke]; [bezpath stroke];
[m_brush.GetNSColor() set];
[bezpath fill];
[context restoreGraphicsState];
} }
void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
{ {
NSGraphicsContext *context = [NSGraphicsContext currentContext];
[context saveGraphicsState];
NSBezierPath *bezpath = [NSBezierPath bezierPath]; NSBezierPath *bezpath = [NSBezierPath bezierPath];
[bezpath moveToPoint:NSMakePoint(x1,y1)]; [bezpath moveToPoint:NSMakePoint(x1,y1)];
[bezpath lineToPoint:NSMakePoint(x2,y2)]; [bezpath lineToPoint:NSMakePoint(x2,y2)];
[m_textForegroundColour.GetNSColor() set];
[bezpath stroke]; [bezpath stroke];
[context restoreGraphicsState];
} }
void wxDC::DoGetTextExtent(const wxString& text, wxCoord *x, wxCoord *y, wxCoord *descent, wxCoord *externalLeading, wxFont *theFont) const void wxDC::DoGetTextExtent(const wxString& text, wxCoord *x, wxCoord *y, wxCoord *descent, wxCoord *externalLeading, wxFont *theFont) const
@@ -131,6 +146,7 @@ void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
[context saveGraphicsState]; [context saveGraphicsState];
[transform concat]; [transform concat];
[flipTransform concat]; [flipTransform concat];
#if 0
// Draw+fill a rectangle so we can see where the shit is supposed to be. // Draw+fill a rectangle so we can see where the shit is supposed to be.
wxLogDebug("(%f,%f) (%fx%f)",usedRect.origin.x,usedRect.origin.y,usedRect.size.width,usedRect.size.height); wxLogDebug("(%f,%f) (%fx%f)",usedRect.origin.x,usedRect.origin.y,usedRect.size.width,usedRect.size.height);
NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(0,0,usedRect.size.width,usedRect.size.height)]; NSBezierPath *bezpath = [NSBezierPath bezierPathWithRect:NSMakeRect(0,0,usedRect.size.width,usedRect.size.height)];
@@ -138,12 +154,14 @@ void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
[bezpath stroke]; [bezpath stroke];
[[NSColor blueColor] set]; [[NSColor blueColor] set];
[bezpath fill]; [bezpath fill];
#endif
NSPoint layoutLocation = [sm_cocoaNSLayoutManager locationForGlyphAtIndex:0]; NSPoint layoutLocation = [sm_cocoaNSLayoutManager locationForGlyphAtIndex:0];
layoutLocation.x = 0.0; layoutLocation.x = 0.0;
layoutLocation.y *= -1.0; layoutLocation.y *= -1.0;
layoutLocation.y += [[sm_cocoaNSLayoutManager typesetter] baselineOffsetInLayoutManager:sm_cocoaNSLayoutManager glyphIndex:0]; layoutLocation.y += [[sm_cocoaNSLayoutManager typesetter] baselineOffsetInLayoutManager:sm_cocoaNSLayoutManager glyphIndex:0];
// NOTE: That's NSMakePoint, not NSMakePint (working on that though) // NOTE: That's NSMakePoint, not NSMakePint (working on that though)
[m_textForegroundColour.GetNSColor() set];
[sm_cocoaNSLayoutManager drawGlyphsForGlyphRange:glyphRange atPoint:layoutLocation]; [sm_cocoaNSLayoutManager drawGlyphsForGlyphRange:glyphRange atPoint:layoutLocation];
[context restoreGraphicsState]; [context restoreGraphicsState];
@@ -250,6 +268,7 @@ void wxDC::SetPen(const wxPen& pen)
void wxDC::SetBrush(const wxBrush& brush) void wxDC::SetBrush(const wxBrush& brush)
{ {
m_brush = brush;
} }
void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region) void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)