PCH support.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,8 +25,12 @@
|
||||
#endif
|
||||
|
||||
#include "wx/overlay.h"
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/dcclient.h"
|
||||
#endif
|
||||
|
||||
#include "wx/private/overlay.h"
|
||||
#include "wx/dcclient.h"
|
||||
|
||||
#if wxHAS_NATIVE_OVERLAY
|
||||
|
||||
@@ -46,7 +50,7 @@ wxOverlayImpl::~wxOverlayImpl()
|
||||
Reset();
|
||||
}
|
||||
|
||||
bool wxOverlayImpl::IsOk()
|
||||
bool wxOverlayImpl::IsOk()
|
||||
{
|
||||
return m_overlayWindow != NULL ;
|
||||
}
|
||||
@@ -66,45 +70,45 @@ OSStatus wxOverlayImpl::CreateOverlayWindow()
|
||||
OSStatus err;
|
||||
|
||||
WindowAttributes overlayAttributes = kWindowIgnoreClicksAttribute;
|
||||
|
||||
if ( m_window )
|
||||
{
|
||||
m_overlayParentWindow =(WindowRef) m_window->MacGetTopLevelWindowRef();
|
||||
|
||||
Rect bounds ;
|
||||
MacGetBounds(&bounds);
|
||||
err = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );
|
||||
if ( err == noErr )
|
||||
{
|
||||
SetWindowGroup( m_overlayWindow, GetWindowGroup(m_overlayParentWindow)); // Put them in the same group so that their window layers are consistent
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_overlayParentWindow = NULL ;
|
||||
CGRect cgbounds ;
|
||||
cgbounds = CGDisplayBounds(CGMainDisplayID());
|
||||
Rect bounds;
|
||||
bounds.top = cgbounds.origin.y;
|
||||
bounds.left = cgbounds.origin.x;
|
||||
bounds.bottom = bounds.top + cgbounds.size.height;
|
||||
bounds.right = bounds.left + cgbounds.size.width;
|
||||
err = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );
|
||||
}
|
||||
ShowWindow(m_overlayWindow);
|
||||
return err;
|
||||
|
||||
if ( m_window )
|
||||
{
|
||||
m_overlayParentWindow =(WindowRef) m_window->MacGetTopLevelWindowRef();
|
||||
|
||||
Rect bounds ;
|
||||
MacGetBounds(&bounds);
|
||||
err = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );
|
||||
if ( err == noErr )
|
||||
{
|
||||
SetWindowGroup( m_overlayWindow, GetWindowGroup(m_overlayParentWindow)); // Put them in the same group so that their window layers are consistent
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_overlayParentWindow = NULL ;
|
||||
CGRect cgbounds ;
|
||||
cgbounds = CGDisplayBounds(CGMainDisplayID());
|
||||
Rect bounds;
|
||||
bounds.top = cgbounds.origin.y;
|
||||
bounds.left = cgbounds.origin.x;
|
||||
bounds.bottom = bounds.top + cgbounds.size.height;
|
||||
bounds.right = bounds.left + cgbounds.size.width;
|
||||
err = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );
|
||||
}
|
||||
ShowWindow(m_overlayWindow);
|
||||
return err;
|
||||
}
|
||||
|
||||
void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height )
|
||||
{
|
||||
wxASSERT_MSG( !IsOk() , _("You cannot Init an overlay twice") );
|
||||
|
||||
m_window = dc->GetWindow();
|
||||
m_window = dc->GetWindow();
|
||||
m_x = x ;
|
||||
m_y = y ;
|
||||
m_width = width ;
|
||||
m_height = height ;
|
||||
|
||||
|
||||
OSStatus err = CreateOverlayWindow();
|
||||
wxASSERT_MSG( err == noErr , _("Couldn't create the overlay window") );
|
||||
#ifndef __LP64__
|
||||
@@ -118,26 +122,26 @@ void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height
|
||||
void wxOverlayImpl::BeginDrawing( wxWindowDC* dc)
|
||||
{
|
||||
// TODO CS
|
||||
dc->SetGraphicsContext( wxGraphicsContext::CreateFromNative( m_overlayContext ) );
|
||||
dc->SetGraphicsContext( wxGraphicsContext::CreateFromNative( m_overlayContext ) );
|
||||
/*
|
||||
delete dc->m_graphicContext ;
|
||||
dc->m_graphicContext = new wxMacCGContext( m_overlayContext );
|
||||
// we are right now startin at 0,0 not at the wxWindow's origin, so most of the calculations
|
||||
// we are right now startin at 0,0 not at the wxWindow's origin, so most of the calculations
|
||||
// int dc are already corect
|
||||
// just to make sure :
|
||||
dc->m_macLocalOrigin.x = 0 ;
|
||||
dc->m_macLocalOrigin.y = 0 ;
|
||||
*/
|
||||
*/
|
||||
wxSize size = dc->GetSize() ;
|
||||
dc->SetClippingRegion( 0 , 0 , size.x , size.y ) ;
|
||||
}
|
||||
|
||||
void wxOverlayImpl::EndDrawing( wxWindowDC* dc)
|
||||
{
|
||||
dc->SetGraphicsContext(NULL);
|
||||
dc->SetGraphicsContext(NULL);
|
||||
}
|
||||
|
||||
void wxOverlayImpl::Clear(wxWindowDC* dc)
|
||||
void wxOverlayImpl::Clear(wxWindowDC* dc)
|
||||
{
|
||||
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 );
|
||||
@@ -153,8 +157,8 @@ void wxOverlayImpl::Reset()
|
||||
wxASSERT_MSG( err == noErr , _("Couldn't end the context on the overlay window") );
|
||||
#endif
|
||||
m_overlayContext = NULL ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// todo : don't dispose, only hide and reposition on next run
|
||||
if (m_overlayWindow)
|
||||
{
|
||||
|
Reference in New Issue
Block a user