You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

293 lines
12 KiB

  1. === modified file 'Makefile.in'
  2. --- Makefile.in 2014-06-11 15:08:00 +0000
  3. +++ Makefile.in 2014-06-11 15:10:36 +0000
  4. @@ -14601,7 +14601,7 @@
  5. monodll_carbon_frame.o \
  6. monodll_carbon_mdi.o \
  7. monodll_carbon_metafile.o \
  8. - monodll_carbon_overlay.o \
  9. + monodll_osx_cocoa_overlay.o \
  10. monodll_carbon_popupwin.o \
  11. monodll_carbon_renderer.o \
  12. monodll_carbon_settings.o \
  13. @@ -14748,7 +14748,7 @@
  14. monolib_carbon_frame.o \
  15. monolib_carbon_mdi.o \
  16. monolib_carbon_metafile.o \
  17. - monolib_carbon_overlay.o \
  18. + monolib_osx_cocoa_overlay.o \
  19. monolib_carbon_popupwin.o \
  20. monolib_carbon_renderer.o \
  21. monolib_carbon_settings.o \
  22. @@ -14895,7 +14895,7 @@
  23. coredll_carbon_frame.o \
  24. coredll_carbon_mdi.o \
  25. coredll_carbon_metafile.o \
  26. - coredll_carbon_overlay.o \
  27. + coredll_osx_cocoa_overlay.o \
  28. coredll_carbon_popupwin.o \
  29. coredll_carbon_renderer.o \
  30. coredll_carbon_settings.o \
  31. @@ -15027,7 +15027,7 @@
  32. corelib_carbon_frame.o \
  33. corelib_carbon_mdi.o \
  34. corelib_carbon_metafile.o \
  35. - corelib_carbon_overlay.o \
  36. + corelib_osx_cocoa_overlay.o \
  37. corelib_carbon_popupwin.o \
  38. corelib_carbon_renderer.o \
  39. corelib_carbon_settings.o \
  40. @@ -17774,6 +17774,9 @@
  41. monodll_osx_cocoa_notebook.o: $(srcdir)/src/osx/cocoa/notebook.mm $(MONODLL_ODEP)
  42. $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/notebook.mm
  43. +monodll_osx_cocoa_overla.o: $(srcdir)/src/osx/cocoa/overlay.mm $(MONODLL_ODEP)
  44. + $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
  45. +
  46. monodll_osx_cocoa_radiobut.o: $(srcdir)/src/osx/cocoa/radiobut.mm $(MONODLL_ODEP)
  47. $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/radiobut.mm
  48. @@ -21683,8 +21686,8 @@
  49. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@monodll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(MONODLL_ODEP)
  50. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  51. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monodll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(MONODLL_ODEP)
  52. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  53. +@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monodll_osx_cocoa_overlay.o: $(srcdir)/src/osx/cocoa/overlay.mm $(MONODLL_ODEP)
  54. +@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
  55. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@monodll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(MONODLL_ODEP)
  56. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  57. @@ -23642,6 +23645,9 @@
  58. monolib_osx_cocoa_notebook.o: $(srcdir)/src/osx/cocoa/notebook.mm $(MONOLIB_ODEP)
  59. $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/notebook.mm
  60. +monolib_osx_cocoa_overlay.o: $(srcdir)/src/osx/cocoa/overlay.mm $(MONOLIB_ODEP)
  61. + $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
  62. +
  63. monolib_osx_cocoa_radiobut.o: $(srcdir)/src/osx/cocoa/radiobut.mm $(MONOLIB_ODEP)
  64. $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/radiobut.mm
  65. @@ -33584,8 +33590,8 @@
  66. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
  67. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  68. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
  69. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  70. +@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)
  71. +@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
  72. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@coredll_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(COREDLL_ODEP)
  73. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  74. @@ -37961,8 +37967,8 @@
  75. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
  76. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_CARBON_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  77. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
  78. -@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  79. +@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)
  80. +@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/cocoa/overlay.mm
  81. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@corelib_carbon_overlay.o: $(srcdir)/src/osx/carbon/overlay.cpp $(CORELIB_ODEP)
  82. @COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/overlay.cpp
  83. === modified file 'include/wx/overlay.h'
  84. --- include/wx/overlay.h 2014-06-11 15:08:00 +0000
  85. +++ include/wx/overlay.h 2014-06-11 15:10:36 +0000
  86. @@ -13,7 +13,7 @@
  87. #include "wx/defs.h"
  88. -#if defined(__WXMAC__) && wxOSX_USE_CARBON
  89. +#if defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON
  90. #define wxHAS_NATIVE_OVERLAY 1
  91. #elif defined(__WXDFB__)
  92. #define wxHAS_NATIVE_OVERLAY 1
  93. === modified file 'include/wx/private/overlay.h'
  94. --- include/wx/private/overlay.h 2014-06-11 15:08:00 +0000
  95. +++ include/wx/private/overlay.h 2014-06-11 15:10:36 +0000
  96. @@ -16,7 +16,11 @@
  97. #ifdef wxHAS_NATIVE_OVERLAY
  98. #if defined(__WXMAC__)
  99. +#if wxOSX_USE_CARBON
  100. #include "wx/osx/carbon/private/overlay.h"
  101. +#else
  102. + #include "wx/osx/cocoa/private/overlay.h"
  103. +#endif
  104. #elif defined(__WXDFB__)
  105. #include "wx/dfb/private/overlay.h"
  106. #else
  107. === modified file 'src/osx/cocoa/overlay.mm'
  108. --- src/osx/cocoa/overlay.mm 2014-06-11 15:08:00 +0000
  109. +++ src/osx/cocoa/overlay.mm 2014-06-11 15:12:45 +0000
  110. @@ -34,6 +34,7 @@
  111. #include "wx/private/overlay.h"
  112. #ifdef wxHAS_NATIVE_OVERLAY
  113. +#import <Foundation/NSGeometry.h>
  114. // ============================================================================
  115. // implementation
  116. @@ -58,48 +59,6 @@
  117. void wxOverlayImpl::CreateOverlayWindow()
  118. {
  119. - if ( m_window )
  120. - {
  121. - m_overlayParentWindow = m_window->MacGetTopLevelWindowRef();
  122. - [m_overlayParentWindow makeKeyAndOrderFront:nil];
  123. -
  124. - NSView* view = m_window->GetHandle();
  125. -
  126. - NSPoint viewOriginBase, viewOriginScreen;
  127. - viewOriginBase = [view convertPoint:NSMakePoint(0, 0) toView:nil];
  128. - viewOriginScreen = [m_overlayParentWindow convertBaseToScreen:viewOriginBase];
  129. -
  130. - NSSize viewSize = [view frame].size;
  131. - if ( [view isFlipped] )
  132. - viewOriginScreen.y -= viewSize.height;
  133. -
  134. - m_overlayWindow=[[NSWindow alloc] initWithContentRect:NSMakeRect(viewOriginScreen.x,viewOriginScreen.y,
  135. - viewSize.width,
  136. - viewSize.height)
  137. - styleMask:NSBorderlessWindowMask
  138. - backing:NSBackingStoreBuffered
  139. - defer:YES];
  140. -
  141. - [m_overlayParentWindow addChildWindow:m_overlayWindow ordered:NSWindowAbove];
  142. - }
  143. - else
  144. - {
  145. - m_overlayParentWindow = NULL ;
  146. - CGRect cgbounds ;
  147. - cgbounds = CGDisplayBounds(CGMainDisplayID());
  148. -
  149. - m_overlayWindow=[[NSWindow alloc] initWithContentRect:NSMakeRect(cgbounds.origin.x,cgbounds.origin.y,
  150. - cgbounds.size.width,
  151. - cgbounds.size.height)
  152. - styleMask:NSBorderlessWindowMask
  153. - backing:NSBackingStoreBuffered
  154. - defer:YES];
  155. - }
  156. - [m_overlayWindow setOpaque:NO];
  157. - [m_overlayWindow setIgnoresMouseEvents:YES];
  158. - [m_overlayWindow setAlphaValue:1.0];
  159. -
  160. - [m_overlayWindow orderFront:nil];
  161. }
  162. void wxOverlayImpl::Init( wxDC* dc, int x , int y , int width , int height )
  163. @@ -107,84 +66,54 @@
  164. wxASSERT_MSG( !IsOk() , _("You cannot Init an overlay twice") );
  165. m_window = dc->GetWindow();
  166. - m_x = x ;
  167. - m_y = y ;
  168. - if ( dc->IsKindOf( CLASSINFO( wxClientDC ) ))
  169. - {
  170. - wxPoint origin = m_window->GetClientAreaOrigin();
  171. - m_x += origin.x;
  172. - m_y += origin.y;
  173. - }
  174. - m_width = width ;
  175. - m_height = height ;
  176. -
  177. - CreateOverlayWindow();
  178. - wxASSERT_MSG( m_overlayWindow != NULL , _("Couldn't create the overlay window") );
  179. - m_overlayContext = (CGContextRef) [[m_overlayWindow graphicsContext] graphicsPort];
  180. - wxASSERT_MSG( m_overlayContext != NULL , _("Couldn't init the context on the overlay window") );
  181. -
  182. - int ySize = 0;
  183. - if ( m_window )
  184. - {
  185. - NSView* view = m_window->GetHandle();
  186. - NSSize viewSize = [view frame].size;
  187. - ySize = viewSize.height;
  188. - }
  189. - else
  190. - {
  191. - CGRect cgbounds ;
  192. - cgbounds = CGDisplayBounds(CGMainDisplayID());
  193. - ySize = cgbounds.size.height;
  194. -
  195. -
  196. -
  197. - }
  198. - CGContextTranslateCTM( m_overlayContext, 0, ySize );
  199. - CGContextScaleCTM( m_overlayContext, 1, -1 );
  200. - CGContextTranslateCTM( m_overlayContext, -m_x , -m_y );
  201. + m_overlayWindow = m_window->MacGetTopLevelWindowRef();
  202. +
  203. + NSRect box = [m_overlayWindow frame];
  204. + box.origin.x = 0;
  205. + box.origin.y = 0;
  206. +
  207. + if( [m_overlayWindow isVisible] )
  208. + {
  209. + [m_overlayWindow discardCachedImage];
  210. + [m_overlayWindow cacheImageInRect:box];
  211. + }
  212. }
  213. void wxOverlayImpl::BeginDrawing( wxDC* dc)
  214. {
  215. - wxDCImpl *impl = dc->GetImpl();
  216. - wxGCDCImpl *win_impl = wxDynamicCast(impl,wxGCDCImpl);
  217. - if (win_impl)
  218. - {
  219. - win_impl->SetGraphicsContext( wxGraphicsContext::CreateFromNative( m_overlayContext ) );
  220. - dc->SetClippingRegion( m_x , m_y , m_width , m_height ) ;
  221. - }
  222. +
  223. }
  224. void wxOverlayImpl::EndDrawing( wxDC* dc)
  225. {
  226. - wxDCImpl *impl = dc->GetImpl();
  227. - wxGCDCImpl *win_impl = wxDynamicCast(impl,wxGCDCImpl);
  228. - if (win_impl)
  229. - win_impl->SetGraphicsContext(NULL);
  230. -
  231. - CGContextFlush( m_overlayContext );
  232. }
  233. void wxOverlayImpl::Clear(wxDC* WXUNUSED(dc))
  234. {
  235. wxASSERT_MSG( IsOk() , _("You cannot Clear an overlay that is not inited") );
  236. - CGRect box = CGRectMake( m_x - 1, m_y - 1 , m_width + 2 , m_height + 2 );
  237. - CGContextClearRect( m_overlayContext, box );
  238. + if( [m_overlayWindow isVisible] )
  239. + {
  240. + [m_overlayWindow restoreCachedImage];
  241. +// [m_overlayWindow flushWindow];
  242. + }
  243. }
  244. void wxOverlayImpl::Reset()
  245. {
  246. - if ( m_overlayContext )
  247. + if ( m_overlayContext)
  248. {
  249. m_overlayContext = NULL ;
  250. }
  251. // todo : don't dispose, only hide and reposition on next run
  252. - if (m_overlayWindow)
  253. + if (m_overlayWindow && [m_overlayWindow isVisible])
  254. {
  255. - [m_overlayParentWindow removeChildWindow:m_overlayWindow];
  256. - [m_overlayWindow release];
  257. - m_overlayWindow = NULL ;
  258. + NSRect box = [m_overlayWindow frame];
  259. + box.origin.x = 0;
  260. + box.origin.y = 0;
  261. +
  262. + [m_overlayWindow discardCachedImage];
  263. + [m_overlayWindow cacheImageInRect:box];
  264. }
  265. }