2014-01-24 21:09:31 +00:00
|
|
|
=== modified file 'Makefile.in'
|
2014-06-16 16:32:23 +00:00
|
|
|
--- Makefile.in 2014-06-08 14:30:42 +0000
|
|
|
|
+++ Makefile.in 2014-06-08 14:30:57 +0000
|
|
|
|
@@ -14619,7 +14619,7 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
monodll_carbon_frame.o \
|
|
|
|
monodll_carbon_mdi.o \
|
|
|
|
monodll_carbon_metafile.o \
|
|
|
|
- monodll_carbon_overlay.o \
|
|
|
|
+ monodll_osx_cocoa_overlay.o \
|
|
|
|
monodll_carbon_popupwin.o \
|
|
|
|
monodll_carbon_renderer.o \
|
|
|
|
monodll_carbon_settings.o \
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -14766,7 +14766,7 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
monolib_carbon_frame.o \
|
|
|
|
monolib_carbon_mdi.o \
|
|
|
|
monolib_carbon_metafile.o \
|
|
|
|
- monolib_carbon_overlay.o \
|
|
|
|
+ monolib_osx_cocoa_overlay.o \
|
|
|
|
monolib_carbon_popupwin.o \
|
|
|
|
monolib_carbon_renderer.o \
|
|
|
|
monolib_carbon_settings.o \
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -14913,7 +14913,7 @@
|
2014-01-26 13:09:36 +00:00
|
|
|
coredll_carbon_frame.o \
|
|
|
|
coredll_carbon_mdi.o \
|
|
|
|
coredll_carbon_metafile.o \
|
|
|
|
- coredll_carbon_overlay.o \
|
|
|
|
+ coredll_osx_cocoa_overlay.o \
|
|
|
|
coredll_carbon_popupwin.o \
|
|
|
|
coredll_carbon_renderer.o \
|
|
|
|
coredll_carbon_settings.o \
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -15045,7 +15045,7 @@
|
2014-01-26 13:09:36 +00:00
|
|
|
corelib_carbon_frame.o \
|
|
|
|
corelib_carbon_mdi.o \
|
|
|
|
corelib_carbon_metafile.o \
|
|
|
|
- corelib_carbon_overlay.o \
|
|
|
|
+ corelib_osx_cocoa_overlay.o \
|
|
|
|
corelib_carbon_popupwin.o \
|
|
|
|
corelib_carbon_renderer.o \
|
|
|
|
corelib_carbon_settings.o \
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -17792,6 +17792,9 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
monodll_osx_cocoa_notebook.o: $(srcdir)/src/osx/cocoa/notebook.mm $(MONODLL_ODEP)
|
|
|
|
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/notebook.mm
|
|
|
|
|
|
|
|
+monodll_osx_cocoa_overla.o: $(srcdir)/src/osx/cocoa/overlay.mm $(MONODLL_ODEP)
|
|
|
|
+ $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
|
|
|
|
+
|
|
|
|
monodll_osx_cocoa_radiobut.o: $(srcdir)/src/osx/cocoa/radiobut.mm $(MONODLL_ODEP)
|
|
|
|
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/radiobut.mm
|
|
|
|
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -23666,6 +23669,9 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
monolib_osx_cocoa_notebook.o: $(srcdir)/src/osx/cocoa/notebook.mm $(MONOLIB_ODEP)
|
|
|
|
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/notebook.mm
|
|
|
|
|
|
|
|
+monolib_osx_cocoa_overlay.o: $(srcdir)/src/osx/cocoa/overlay.mm $(MONOLIB_ODEP)
|
|
|
|
+ $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
|
|
|
|
+
|
|
|
|
monolib_osx_cocoa_radiobut.o: $(srcdir)/src/osx/cocoa/radiobut.mm $(MONOLIB_ODEP)
|
|
|
|
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/radiobut.mm
|
|
|
|
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -33620,8 +33626,8 @@
|
2014-01-26 13:09:36 +00:00
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
|
|
|
|
|
|
|
-@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
|
|
|
|
-@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
|
|
|
+@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@coredll_osx_cocoa_overlay.o: $(srcdir)/src/osx/cocoa/overlay.mm $(COREDLL_ODEP)
|
|
|
|
+@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
|
|
|
|
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -38003,8 +38009,8 @@
|
2014-01-26 13:09:36 +00:00
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
|
|
|
|
|
|
|
-@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
|
|
|
|
-@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
|
|
|
+@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@corelib_osx_cocoa_overlay.o: $(srcdir)/src/osx/cocoa/overlay.mm $(CORELIB_ODEP)
|
|
|
|
+@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
|
|
|
|
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
|
|
|
|
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
|
|
|
|
|
2014-06-16 16:32:23 +00:00
|
|
|
=== modified file 'include/wx/osx/cocoa/private/overlay.h'
|
|
|
|
--- include/wx/osx/cocoa/private/overlay.h 2014-06-08 14:30:42 +0000
|
|
|
|
+++ include/wx/osx/cocoa/private/overlay.h 2014-06-11 12:07:05 +0000
|
|
|
|
@@ -41,15 +41,8 @@
|
|
|
|
void CreateOverlayWindow();
|
|
|
|
|
|
|
|
WXWindow m_overlayWindow;
|
|
|
|
- WXWindow m_overlayParentWindow;
|
|
|
|
- CGContextRef m_overlayContext ;
|
|
|
|
// we store the window in case we would have to issue a Refresh()
|
|
|
|
wxWindow* m_window ;
|
|
|
|
-
|
|
|
|
- int m_x ;
|
|
|
|
- int m_y ;
|
|
|
|
- int m_width ;
|
|
|
|
- int m_height ;
|
|
|
|
} ;
|
|
|
|
|
|
|
|
#endif // _WX_MAC_CARBON_PRIVATE_OVERLAY_H_
|
|
|
|
|
2014-01-26 13:09:36 +00:00
|
|
|
=== modified file 'include/wx/overlay.h'
|
2014-06-16 16:32:23 +00:00
|
|
|
--- include/wx/overlay.h 2014-06-08 14:30:42 +0000
|
|
|
|
+++ include/wx/overlay.h 2014-06-08 14:30:57 +0000
|
2014-01-26 13:09:36 +00:00
|
|
|
@@ -13,7 +13,7 @@
|
|
|
|
|
|
|
|
#include "wx/defs.h"
|
|
|
|
|
|
|
|
-#if defined(__WXMAC__) && wxOSX_USE_CARBON
|
|
|
|
+#if defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON
|
|
|
|
#define wxHAS_NATIVE_OVERLAY 1
|
|
|
|
#elif defined(__WXDFB__)
|
|
|
|
#define wxHAS_NATIVE_OVERLAY 1
|
2014-01-24 21:09:31 +00:00
|
|
|
|
|
|
|
=== modified file 'include/wx/private/overlay.h'
|
2014-06-16 16:32:23 +00:00
|
|
|
--- include/wx/private/overlay.h 2014-06-08 14:30:42 +0000
|
|
|
|
+++ include/wx/private/overlay.h 2014-06-08 14:30:57 +0000
|
2014-01-24 21:09:31 +00:00
|
|
|
@@ -16,7 +16,11 @@
|
|
|
|
#ifdef wxHAS_NATIVE_OVERLAY
|
|
|
|
|
|
|
|
#if defined(__WXMAC__)
|
|
|
|
+#if wxOSX_USE_CARBON
|
|
|
|
#include "wx/osx/carbon/private/overlay.h"
|
|
|
|
+#else
|
|
|
|
+ #include "wx/osx/cocoa/private/overlay.h"
|
|
|
|
+#endif
|
|
|
|
#elif defined(__WXDFB__)
|
|
|
|
#include "wx/dfb/private/overlay.h"
|
|
|
|
#else
|
|
|
|
|
|
|
|
=== modified file 'src/osx/cocoa/overlay.mm'
|
2014-06-16 16:32:23 +00:00
|
|
|
--- src/osx/cocoa/overlay.mm 2014-06-08 14:30:42 +0000
|
|
|
|
+++ src/osx/cocoa/overlay.mm 2014-06-11 12:06:53 +0000
|
2014-01-26 13:09:36 +00:00
|
|
|
@@ -34,6 +34,7 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
#include "wx/private/overlay.h"
|
|
|
|
|
|
|
|
#ifdef wxHAS_NATIVE_OVERLAY
|
|
|
|
+#import <Foundation/NSGeometry.h>
|
|
|
|
|
|
|
|
// ============================================================================
|
|
|
|
// implementation
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -42,7 +43,6 @@
|
|
|
|
wxOverlayImpl::wxOverlayImpl()
|
|
|
|
{
|
|
|
|
m_window = NULL ;
|
|
|
|
- m_overlayContext = NULL ;
|
|
|
|
m_overlayWindow = NULL ;
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -58,48 +58,6 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
|
|
|
|
void wxOverlayImpl::CreateOverlayWindow()
|
|
|
|
{
|
|
|
|
- if ( m_window )
|
|
|
|
- {
|
|
|
|
- m_overlayParentWindow = m_window->MacGetTopLevelWindowRef();
|
|
|
|
- [m_overlayParentWindow makeKeyAndOrderFront:nil];
|
|
|
|
-
|
|
|
|
- NSView* view = m_window->GetHandle();
|
|
|
|
-
|
|
|
|
- NSPoint viewOriginBase, viewOriginScreen;
|
|
|
|
- viewOriginBase = [view convertPoint:NSMakePoint(0, 0) toView:nil];
|
|
|
|
- viewOriginScreen = [m_overlayParentWindow convertBaseToScreen:viewOriginBase];
|
|
|
|
-
|
|
|
|
- NSSize viewSize = [view frame].size;
|
|
|
|
- if ( [view isFlipped] )
|
|
|
|
- viewOriginScreen.y -= viewSize.height;
|
|
|
|
-
|
|
|
|
- m_overlayWindow=[[NSWindow alloc] initWithContentRect:NSMakeRect(viewOriginScreen.x,viewOriginScreen.y,
|
|
|
|
- viewSize.width,
|
|
|
|
- viewSize.height)
|
|
|
|
- styleMask:NSBorderlessWindowMask
|
|
|
|
- backing:NSBackingStoreBuffered
|
|
|
|
- defer:YES];
|
|
|
|
-
|
|
|
|
- [m_overlayParentWindow addChildWindow:m_overlayWindow ordered:NSWindowAbove];
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- m_overlayParentWindow = NULL ;
|
|
|
|
- CGRect cgbounds ;
|
|
|
|
- cgbounds = CGDisplayBounds(CGMainDisplayID());
|
|
|
|
-
|
|
|
|
- m_overlayWindow=[[NSWindow alloc] initWithContentRect:NSMakeRect(cgbounds.origin.x,cgbounds.origin.y,
|
|
|
|
- cgbounds.size.width,
|
|
|
|
- cgbounds.size.height)
|
|
|
|
- styleMask:NSBorderlessWindowMask
|
|
|
|
- backing:NSBackingStoreBuffered
|
|
|
|
- defer:YES];
|
|
|
|
- }
|
|
|
|
- [m_overlayWindow setOpaque:NO];
|
|
|
|
- [m_overlayWindow setIgnoresMouseEvents:YES];
|
|
|
|
- [m_overlayWindow setAlphaValue:1.0];
|
|
|
|
-
|
|
|
|
- [m_overlayWindow orderFront:nil];
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxOverlayImpl::Init( wxDC* dc, int x , int y , int width , int height )
|
2014-06-16 16:32:23 +00:00
|
|
|
@@ -107,84 +65,49 @@
|
2014-01-24 21:09:31 +00:00
|
|
|
wxASSERT_MSG( !IsOk() , _("You cannot Init an overlay twice") );
|
|
|
|
|
|
|
|
m_window = dc->GetWindow();
|
|
|
|
- m_x = x ;
|
|
|
|
- m_y = y ;
|
|
|
|
- if ( dc->IsKindOf( CLASSINFO( wxClientDC ) ))
|
|
|
|
- {
|
|
|
|
- wxPoint origin = m_window->GetClientAreaOrigin();
|
|
|
|
- m_x += origin.x;
|
|
|
|
- m_y += origin.y;
|
|
|
|
- }
|
|
|
|
- m_width = width ;
|
|
|
|
- m_height = height ;
|
|
|
|
-
|
|
|
|
- CreateOverlayWindow();
|
|
|
|
- wxASSERT_MSG( m_overlayWindow != NULL , _("Couldn't create the overlay window") );
|
|
|
|
- m_overlayContext = (CGContextRef) [[m_overlayWindow graphicsContext] graphicsPort];
|
|
|
|
- wxASSERT_MSG( m_overlayContext != NULL , _("Couldn't init the context on the overlay window") );
|
|
|
|
-
|
|
|
|
- int ySize = 0;
|
|
|
|
- if ( m_window )
|
|
|
|
- {
|
|
|
|
- NSView* view = m_window->GetHandle();
|
|
|
|
- NSSize viewSize = [view frame].size;
|
|
|
|
- ySize = viewSize.height;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- CGRect cgbounds ;
|
|
|
|
- cgbounds = CGDisplayBounds(CGMainDisplayID());
|
|
|
|
- ySize = cgbounds.size.height;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- CGContextTranslateCTM( m_overlayContext, 0, ySize );
|
|
|
|
- CGContextScaleCTM( m_overlayContext, 1, -1 );
|
|
|
|
- CGContextTranslateCTM( m_overlayContext, -m_x , -m_y );
|
|
|
|
+ m_overlayWindow = m_window->MacGetTopLevelWindowRef();
|
|
|
|
+
|
|
|
|
+ NSRect box = [m_overlayWindow frame];
|
2014-06-16 16:32:23 +00:00
|
|
|
+ box.origin.x = 0;
|
|
|
|
+ box.origin.y = 0;
|
2014-01-24 21:09:31 +00:00
|
|
|
+
|
|
|
|
+ if( [m_overlayWindow isVisible] )
|
|
|
|
+ {
|
|
|
|
+ [m_overlayWindow discardCachedImage];
|
|
|
|
+ [m_overlayWindow cacheImageInRect:box];
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxOverlayImpl::BeginDrawing( wxDC* dc)
|
|
|
|
{
|
|
|
|
- wxDCImpl *impl = dc->GetImpl();
|
|
|
|
- wxGCDCImpl *win_impl = wxDynamicCast(impl,wxGCDCImpl);
|
|
|
|
- if (win_impl)
|
|
|
|
- {
|
|
|
|
- win_impl->SetGraphicsContext( wxGraphicsContext::CreateFromNative( m_overlayContext ) );
|
|
|
|
- dc->SetClippingRegion( m_x , m_y , m_width , m_height ) ;
|
|
|
|
- }
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxOverlayImpl::EndDrawing( wxDC* dc)
|
|
|
|
{
|
|
|
|
- wxDCImpl *impl = dc->GetImpl();
|
|
|
|
- wxGCDCImpl *win_impl = wxDynamicCast(impl,wxGCDCImpl);
|
|
|
|
- if (win_impl)
|
|
|
|
- win_impl->SetGraphicsContext(NULL);
|
|
|
|
-
|
|
|
|
- CGContextFlush( m_overlayContext );
|
|
|
|
}
|
|
|
|
|
2014-06-16 16:32:23 +00:00
|
|
|
-void wxOverlayImpl::Clear(wxDC* WXUNUSED(dc))
|
|
|
|
+void wxOverlayImpl::Clear( wxDC* WXUNUSED(dc) )
|
2014-01-24 21:09:31 +00:00
|
|
|
{
|
|
|
|
wxASSERT_MSG( IsOk() , _("You cannot Clear an overlay that is not inited") );
|
|
|
|
- CGRect box = CGRectMake( m_x - 1, m_y - 1 , m_width + 2 , m_height + 2 );
|
|
|
|
- CGContextClearRect( m_overlayContext, box );
|
2014-06-16 16:32:23 +00:00
|
|
|
+
|
2014-01-24 21:09:31 +00:00
|
|
|
+ if( [m_overlayWindow isVisible] )
|
|
|
|
+ {
|
|
|
|
+ [m_overlayWindow restoreCachedImage];
|
|
|
|
+// [m_overlayWindow flushWindow];
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxOverlayImpl::Reset()
|
|
|
|
{
|
|
|
|
- if ( m_overlayContext )
|
2014-06-16 16:32:23 +00:00
|
|
|
- {
|
|
|
|
- m_overlayContext = NULL ;
|
|
|
|
- }
|
|
|
|
-
|
2014-01-24 21:09:31 +00:00
|
|
|
// todo : don't dispose, only hide and reposition on next run
|
|
|
|
- if (m_overlayWindow)
|
|
|
|
+ if (m_overlayWindow && [m_overlayWindow isVisible])
|
|
|
|
{
|
|
|
|
- [m_overlayParentWindow removeChildWindow:m_overlayWindow];
|
|
|
|
- [m_overlayWindow release];
|
|
|
|
- m_overlayWindow = NULL ;
|
|
|
|
+ NSRect box = [m_overlayWindow frame];
|
2014-06-16 16:32:23 +00:00
|
|
|
+ box.origin.x = 0;
|
|
|
|
+ box.origin.y = 0;
|
2014-01-24 21:09:31 +00:00
|
|
|
+
|
|
|
|
+ [m_overlayWindow discardCachedImage];
|
|
|
|
+ [m_overlayWindow cacheImageInRect:box];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|