summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
ab67e88)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73264
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#define wxOSX_USE_NATIVE_TOOLBAR 1
#endif
#define wxOSX_USE_NATIVE_TOOLBAR 1
#endif
+/*
+ * leave is isFlipped and don't override
+ */
+#ifndef wxOSX_USE_NATIVE_FLIPPED
+ #define wxOSX_USE_NATIVE_FLIPPED 1
+#endif
+
/*
* text rendering system
*/
/*
* text rendering system
*/
virtual void SetupMouseEvent(wxMouseEvent &wxevent, NSEvent * nsEvent);
virtual void SetupMouseEvent(wxMouseEvent &wxevent, NSEvent * nsEvent);
+#if !wxOSX_USE_NATIVE_FLIPPED
void SetFlipped(bool flipped);
virtual bool IsFlipped() const { return m_isFlipped; }
void SetFlipped(bool flipped);
virtual bool IsFlipped() const { return m_isFlipped; }
// cocoa thunk connected calls
// cocoa thunk connected calls
virtual bool acceptsFirstResponder(WXWidget slf, void* _cmd);
virtual bool becomeFirstResponder(WXWidget slf, void* _cmd);
virtual bool resignFirstResponder(WXWidget slf, void* _cmd);
virtual bool acceptsFirstResponder(WXWidget slf, void* _cmd);
virtual bool becomeFirstResponder(WXWidget slf, void* _cmd);
virtual bool resignFirstResponder(WXWidget slf, void* _cmd);
+#if !wxOSX_USE_NATIVE_FLIPPED
virtual bool isFlipped(WXWidget slf, void* _cmd);
virtual bool isFlipped(WXWidget slf, void* _cmd);
virtual void drawRect(void* rect, WXWidget slf, void* _cmd);
virtual void controlAction(WXWidget slf, void* _cmd, void* sender);
virtual void drawRect(void* rect, WXWidget slf, void* _cmd);
virtual void controlAction(WXWidget slf, void* _cmd, void* sender);
protected:
WXWidget m_osxView;
NSEvent* m_lastKeyDownEvent;
protected:
WXWidget m_osxView;
NSEvent* m_lastKeyDownEvent;
+#if !wxOSX_USE_NATIVE_FLIPPED
// if it the control has an editor, that editor will already send some
// events, don't resend them
bool m_hasEditor;
// if it the control has an editor, that editor will already send some
// events, don't resend them
bool m_hasEditor;
}
wxDateTimeWidgetImpl* c = new wxDateTimeWidgetCocoaImpl(wxpeer, v);
}
wxDateTimeWidgetImpl* c = new wxDateTimeWidgetCocoaImpl(wxpeer, v);
+#if !wxOSX_USE_NATIVE_FLIPPED
NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
wxNSBox* v = [[wxNSBox alloc] initWithFrame:r];
wxStaticBoxCocoaImpl* c = new wxStaticBoxCocoaImpl( wxpeer, v );
NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
wxNSBox* v = [[wxNSBox alloc] initWithFrame:r];
wxStaticBoxCocoaImpl* c = new wxStaticBoxCocoaImpl( wxpeer, v );
+#if !wxOSX_USE_NATIVE_FLIPPED
return impl->resignFirstResponder(self, _cmd);
}
return impl->resignFirstResponder(self, _cmd);
}
+#if !wxOSX_USE_NATIVE_FLIPPED
+
BOOL wxOSX_isFlipped(NSView* self, SEL _cmd)
{
wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
BOOL wxOSX_isFlipped(NSView* self, SEL _cmd)
{
wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
return impl->isFlipped(self, _cmd) ? YES:NO;
}
return impl->isFlipped(self, _cmd) ? YES:NO;
}
typedef void (*wxOSX_DrawRectHandlerPtr)(NSView* self, SEL _cmd, NSRect rect);
void wxOSX_drawRect(NSView* self, SEL _cmd, NSRect rect)
typedef void (*wxOSX_DrawRectHandlerPtr)(NSView* self, SEL _cmd, NSRect rect);
void wxOSX_drawRect(NSView* self, SEL _cmd, NSRect rect)
-bool wxWidgetCocoaImpl::isFlipped(WXWidget WXUNUSED(slf), void *WXUNUSED(_cmd))
+#if !wxOSX_USE_NATIVE_FLIPPED
+
+bool wxWidgetCocoaImpl::isFlipped(WXWidget slf, void *WXUNUSED(_cmd))
#define OSX_DEBUG_DRAWING 0
#define OSX_DEBUG_DRAWING 0
// preparing the update region
wxRegion updateRgn;
// preparing the update region
wxRegion updateRgn;
+
+ // since adding many rects to a region is a costly process, by default use the bounding rect
+#if 0
const NSRect *rects;
NSInteger count;
const NSRect *rects;
NSInteger count;
[slf getRectsBeingDrawn:&rects count:&count];
for ( int i = 0 ; i < count ; ++i )
{
updateRgn.Union(wxFromNSRect(slf, rects[i]));
}
[slf getRectsBeingDrawn:&rects count:&count];
for ( int i = 0 ; i < count ; ++i )
{
updateRgn.Union(wxFromNSRect(slf, rects[i]));
}
+#else
+ updateRgn.Union(wxFromNSRect(slf,*(NSRect*)rect));
+#endif
+
wxWindow* wxpeer = GetWXPeer();
if ( wxpeer->MacGetLeftBorderSize() != 0 || wxpeer->MacGetTopBorderSize() != 0 )
wxWindow* wxpeer = GetWXPeer();
if ( wxpeer->MacGetLeftBorderSize() != 0 || wxpeer->MacGetTopBorderSize() != 0 )
CGContextStrokePath(context);
#endif
CGContextStrokePath(context);
#endif
+ if ( ![slf isFlipped] )
{
CGContextTranslateCTM( context, 0, [m_osxView bounds].size.height );
CGContextScaleCTM( context, 1, -1 );
{
CGContextTranslateCTM( context, 0, [m_osxView bounds].size.height );
CGContextScaleCTM( context, 1, -1 );
CGContextSaveGState( context );
}
// as we called restore above, we have to flip again if necessary
CGContextSaveGState( context );
}
// as we called restore above, we have to flip again if necessary
+ if ( ![slf isFlipped] )
{
CGContextTranslateCTM( context, 0, [m_osxView bounds].size.height );
CGContextScaleCTM( context, 1, -1 );
{
CGContextTranslateCTM( context, 0, [m_osxView bounds].size.height );
CGContextScaleCTM( context, 1, -1 );
wxOSX_CLASS_ADD_METHOD(c, @selector(becomeFirstResponder), (IMP) wxOSX_becomeFirstResponder, "c@:" )
wxOSX_CLASS_ADD_METHOD(c, @selector(resignFirstResponder), (IMP) wxOSX_resignFirstResponder, "c@:" )
wxOSX_CLASS_ADD_METHOD(c, @selector(becomeFirstResponder), (IMP) wxOSX_becomeFirstResponder, "c@:" )
wxOSX_CLASS_ADD_METHOD(c, @selector(resignFirstResponder), (IMP) wxOSX_resignFirstResponder, "c@:" )
+#if !wxOSX_USE_NATIVE_FLIPPED
wxOSX_CLASS_ADD_METHOD(c, @selector(isFlipped), (IMP) wxOSX_isFlipped, "c@:" )
wxOSX_CLASS_ADD_METHOD(c, @selector(isFlipped), (IMP) wxOSX_isFlipped, "c@:" )
wxOSX_CLASS_ADD_METHOD(c, @selector(drawRect:), (IMP) wxOSX_drawRect, "v@:{_NSRect={_NSPoint=ff}{_NSSize=ff}}" )
wxOSX_CLASS_ADD_METHOD(c, @selector(controlAction:), (IMP) wxOSX_controlAction, "v@:@" )
wxOSX_CLASS_ADD_METHOD(c, @selector(drawRect:), (IMP) wxOSX_drawRect, "v@:{_NSRect={_NSPoint=ff}{_NSSize=ff}}" )
wxOSX_CLASS_ADD_METHOD(c, @selector(controlAction:), (IMP) wxOSX_controlAction, "v@:@" )
void wxWidgetCocoaImpl::Init()
{
m_osxView = NULL;
void wxWidgetCocoaImpl::Init()
{
m_osxView = NULL;
+#if !wxOSX_USE_NATIVE_FLIPPED
m_lastKeyDownEvent = NULL;
m_hasEditor = false;
}
m_lastKeyDownEvent = NULL;
m_hasEditor = false;
}
// [[m_osxView window] enableCursorRects];
}
// [[m_osxView window] enableCursorRects];
}
+#if !wxOSX_USE_NATIVE_FLIPPED
+
void wxWidgetCocoaImpl::SetFlipped(bool flipped)
{
m_isFlipped = flipped;
}
void wxWidgetCocoaImpl::SetFlipped(bool flipped)
{
m_isFlipped = flipped;
}
void wxWidgetCocoaImpl::SetDrawingEnabled(bool enabled)
{
if ( enabled )
void wxWidgetCocoaImpl::SetDrawingEnabled(bool enabled)
{
if ( enabled )