X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/937013e0fd914d4c42f9f5ec98da665986b93dfa..947f3b358cae28b63c6f69af21c493cab355fb7e:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index 3d0ab6b202..b26e92f1ce 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -61,7 +61,7 @@ #define kWindowUnifiedTitleAndToolbarAttribute (1 << 7) // trace mask for activation tracing messages -static const wxChar *TRACE_ACTIVATE = _T("activation"); +#define TRACE_ACTIVATE "activation" // ---------------------------------------------------------------------------- // globals @@ -563,11 +563,16 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxWindow* cursorTarget = currentMouseWindow ; wxPoint cursorPoint( wxevent.m_x , wxevent.m_y ) ; - while ( cursorTarget && !cursorTarget->MacSetupCursor( cursorPoint ) ) + extern wxCursor gGlobalCursor; + + if (!gGlobalCursor.IsOk()) { - cursorTarget = cursorTarget->GetParent() ; - if ( cursorTarget ) - cursorPoint += cursorTarget->GetPosition(); + while ( cursorTarget && !cursorTarget->MacSetupCursor( cursorPoint ) ) + { + cursorTarget = cursorTarget->GetParent() ; + if ( cursorTarget ) + cursorPoint += cursorTarget->GetPosition(); + } } } @@ -985,17 +990,23 @@ wxPoint wxTopLevelWindowMac::GetClientAreaOrigin() const return wxPoint(0, 0) ; } -bool wxTopLevelWindowMac::SetBackgroundColour(const wxColour& col ) +bool wxTopLevelWindowMac::SetBackgroundColour(const wxColour& c ) { + wxColour col = c; + if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ) + col = wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDocumentWindowBackground)); + else if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) ) + col = wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive)); + if ( !wxTopLevelWindowBase::SetBackgroundColour(col) && m_hasBgCol ) return false ; - if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) || col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDocumentWindowBackground)) ) + if ( col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDocumentWindowBackground)) ) { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDocumentWindowBackground, false ) ; SetBackgroundStyle(wxBG_STYLE_CUSTOM); } - else if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) || col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive)) ) + else if ( col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive)) ) { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDialogBackgroundActive, false ) ; SetBackgroundStyle(wxBG_STYLE_CUSTOM); @@ -1204,7 +1215,7 @@ void wxTopLevelWindowMac::DoMacCreateRealWindow( SetWindowBounds( (WindowRef) m_macWindow , kWindowStructureRgn , &theBoundsRect ) ; wxAssociateWinWithMacWindow( (WindowRef) m_macWindow , this ) ; - SetWindowTitleWithCFString( (WindowRef) m_macWindow , wxMacCFStringHolder( title , m_font.GetEncoding() ) ); + SetWindowTitleWithCFString( (WindowRef) m_macWindow , wxCFStringRef( title , GetFont().GetEncoding() ) ); m_peer = new wxMacControl(this , true /*isRootControl*/) ; // There is a bug in 10.2.X for ::GetRootControl returning the window view instead of @@ -1301,7 +1312,7 @@ void wxTopLevelWindowMac::MacActivate( long timestamp , bool WXUNUSED(inIsActiva void wxTopLevelWindowMac::SetTitle(const wxString& title) { wxWindow::SetLabel( title ) ; - SetWindowTitleWithCFString( (WindowRef) m_macWindow , wxMacCFStringHolder( title , m_font.GetEncoding() ) ) ; + SetWindowTitleWithCFString( (WindowRef) m_macWindow , wxCFStringRef( title , GetFont().GetEncoding() ) ) ; } wxString wxTopLevelWindowMac::GetTitle() const @@ -1707,7 +1718,7 @@ void wxTopLevelWindowMac::MacSetUnifiedAppearance( bool set ) // for wx. // TODO: Determine if we need this on Leopard as well. (should be harmless either way, // though) - SetBackgroundColour( wxSYS_COLOUR_WINDOW ) ; + SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW) ) ; } bool wxTopLevelWindowMac::MacGetUnifiedAppearance() const @@ -1784,7 +1795,7 @@ bool wxTopLevelWindowMac::SetShape(const wxRegion& region) // Make a copy of the region RgnHandle shapeRegion = NewRgn(); - CopyRgn( (RgnHandle)region.GetWXHRGN(), shapeRegion ); + HIShapeGetAsQDRgn( region.GetWXHRGN(), shapeRegion ); // Dispose of any shape region we may already have RgnHandle oldRgn = (RgnHandle)GetWRefCon( (WindowRef)MacGetWindowRef() ); @@ -1825,7 +1836,7 @@ static SInt32 wxShapedMacWindowGetFeatures(WindowRef WXUNUSED(window), SInt32 pa *(OptionBits*)param = //kWindowCanGrow | //kWindowCanZoom | - //kWindowCanCollapse | + kWindowCanCollapse | //kWindowCanGetWindowRegion | //kWindowHasTitleBar | //kWindowSupportsDragHilite |