// Created: 2003/03/16
// RCS-ID: $Id$
// Copyright: (c) 2002 David Elliott
-// Licence: wxWidgets licence
+// Licence: wxWidgets licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
+
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/dcmemory.h"
#endif //WX_PRECOMP
+#include "wx/cocoa/autorelease.h"
+
#import <AppKit/NSImage.h>
#import <AppKit/NSAffineTransform.h>
#import <AppKit/NSGraphicsContext.h>
+#import <AppKit/NSColor.h>
+#import <AppKit/NSBezierPath.h>
//-----------------------------------------------------------------------------
// wxMemoryDC
{
[m_cocoaNSImage lockFocus];
sm_cocoaDCStack.Insert(this);
- m_cocoaFlipped = [m_cocoaNSImage isFlipped];
- m_cocoaHeight = [m_cocoaNSImage size].height;
+ NSAffineTransform *newTransform = CocoaGetWxToBoundsTransform([m_cocoaNSImage isFlipped], [m_cocoaNSImage size].height);
+ [newTransform retain];
+ [m_cocoaWxToBoundsTransform release];
+ m_cocoaWxToBoundsTransform = newTransform;
CocoaApplyTransformations();
return true;
}
// instead copy the data to an offscreen window, then copy it back
void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
{
+ wxAutoNSAutoreleasePool pool;
if(m_selectedBitmap.Ok())
{
CocoaTakeFocus();
operation: NSCompositeCopy
fraction: 1.0];
[m_cocoaNSImage unlockFocus];
-
+
[nsimage release];
}
}
width, height)
operation: NSCompositeCopy // FIXME: raster ops
fraction: 1.0];
-
+
[context restoreGraphicsState];
return false;
}
+bool wxMemoryDC::CocoaGetBounds(void *rectData)
+{
+ if(!rectData)
+ return false;
+ if(!m_cocoaNSImage)
+ return false;
+ NSRect *pRect = (NSRect*)rectData;
+ pRect->origin.x = 0.0;
+ pRect->origin.y = 0.0;
+ pRect->size = [m_cocoaNSImage size];
+ return true;
+}
+