X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fc641aff97d5f100b94cabb0288d3c4261e5328..b4d9758e1cdb956c3a1ec88998cfe00f260a05e2:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index 6a9fb50ef1..3d0ab6b202 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -211,25 +211,25 @@ static pascal OSStatus KeyboardEventHandler( EventHandlerCallRef handler , Event { event.m_keyCode = WXK_CONTROL ; event.SetEventType( ( modifiers & controlKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ; - focus->GetEventHandler()->ProcessEvent( event ) ; + focus->HandleWindowEvent( event ) ; } if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & shiftKey ) { event.m_keyCode = WXK_SHIFT ; event.SetEventType( ( modifiers & shiftKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ; - focus->GetEventHandler()->ProcessEvent( event ) ; + focus->HandleWindowEvent( event ) ; } if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & optionKey ) { event.m_keyCode = WXK_ALT ; event.SetEventType( ( modifiers & optionKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ; - focus->GetEventHandler()->ProcessEvent( event ) ; + focus->HandleWindowEvent( event ) ; } if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & cmdKey ) { event.m_keyCode = WXK_COMMAND ; event.SetEventType( ( modifiers & cmdKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ; - focus->GetEventHandler()->ProcessEvent( event ) ; + focus->HandleWindowEvent( event ) ; } wxApp::s_lastModifiers = modifiers ; @@ -390,59 +390,6 @@ void SetupMouseEvent( wxMouseEvent &wxevent , wxMacCarbonEvent &cEvent ) } } -ControlRef wxMacFindSubControl( wxTopLevelWindowMac* toplevelWindow, const Point& location , ControlRef superControl , ControlPartCode *outPart ) -{ - if ( superControl ) - { - UInt16 childrenCount = 0 ; - ControlHandle sibling ; - Rect r ; - OSStatus err = CountSubControls( superControl , &childrenCount ) ; - if ( err == errControlIsNotEmbedder ) - return NULL ; - - wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ; - - for ( UInt16 i = childrenCount ; i >=1 ; --i ) - { - err = GetIndexedSubControl( superControl , i , & sibling ) ; - if ( err == errControlIsNotEmbedder ) - return NULL ; - - wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ; - if ( IsControlVisible( sibling ) ) - { - UMAGetControlBoundsInWindowCoords( sibling , &r ) ; - if ( MacPtInRect( location , &r ) ) - { - ControlHandle child = wxMacFindSubControl( toplevelWindow , location , sibling , outPart ) ; - if ( child ) - { - return child ; - } - else - { - Point testLocation = location ; - - if ( toplevelWindow ) - { - testLocation.h -= r.left ; - testLocation.v -= r.top ; - } - - *outPart = TestControl( sibling , testLocation ) ; - - return sibling ; - } - } - } - } - } - - return NULL ; -} - - #define NEW_CAPTURE_HANDLING 1 pascal OSStatus @@ -538,7 +485,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxToolTip::RelayEvent( g_MacLastWindow , eventleave); #endif - g_MacLastWindow->GetEventHandler()->ProcessEvent(eventleave); + g_MacLastWindow->HandleWindowEvent(eventleave); } if ( currentMouseWindow ) @@ -553,7 +500,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxToolTip::RelayEvent( currentMouseWindow , evententer ); #endif - currentMouseWindow->GetEventHandler()->ProcessEvent(evententer); + currentMouseWindow->HandleWindowEvent(evententer); } g_MacLastWindow = currentMouseWindow ; @@ -585,7 +532,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxToolTip::RelayEvent( currentMouseWindow , wxevent ); #endif - if ( currentMouseWindow->GetEventHandler()->ProcessEvent(wxevent) ) + if ( currentMouseWindow->HandleWindowEvent(wxevent) ) { if ((currentMouseWindowParent != NULL) && (currentMouseWindowParent->GetChildren().Find(currentMouseWindow) == NULL)) @@ -603,31 +550,6 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), if (currentMouseWindow->CanAcceptFocus() && wxWindow::FindFocus()!=currentMouseWindow) currentMouseWindow->SetFocus(); } - - // if built-in find control is finding the wrong control (ie static box instead of overlaid - // button, we cannot let the standard handler do its job, but must handle manually - - if ( cEvent.GetKind() == kEventMouseDown ) - { - if ( currentMouseWindow->MacIsReallyEnabled() ) - { - EventModifiers modifiers = cEvent.GetParameter(kEventParamKeyModifiers, typeUInt32) ; - Point clickLocation = windowMouseLocation ; - - currentMouseWindow->MacRootWindowToWindow( &clickLocation.h , &clickLocation.v ) ; - - HandleControlClick( (ControlRef) currentMouseWindow->GetHandle() , clickLocation , - modifiers , (ControlActionUPP ) -1 ) ; - - if ((currentMouseWindowParent != NULL) && - (currentMouseWindowParent->GetChildren().Find(currentMouseWindow) == NULL)) - { - currentMouseWindow = NULL; - } - } - - result = noErr ; - } } if ( cEvent.GetKind() == kEventMouseUp && wxApp::s_captureWindow ) @@ -694,7 +616,7 @@ wxMacTopLevelWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), wxActivateEvent wxevent(wxEVT_ACTIVATE, true , toplevelWindow->GetId()); wxevent.SetTimestamp( cEvent.GetTicks() ) ; wxevent.SetEventObject(toplevelWindow); - toplevelWindow->GetEventHandler()->ProcessEvent(wxevent); + toplevelWindow->HandleWindowEvent(wxevent); // we still sending an eventNotHandledErr in order to allow for default processing } break ; @@ -705,7 +627,7 @@ wxMacTopLevelWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), wxActivateEvent wxevent(wxEVT_ACTIVATE, false , toplevelWindow->GetId()); wxevent.SetTimestamp( cEvent.GetTicks() ) ; wxevent.SetEventObject(toplevelWindow); - toplevelWindow->GetEventHandler()->ProcessEvent(wxevent); + toplevelWindow->HandleWindowEvent(wxevent); // we still sending an eventNotHandledErr in order to allow for default processing } break ; @@ -739,7 +661,7 @@ wxMacTopLevelWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), wxSizeEvent event( r.GetSize() , toplevelWindow->GetId() ) ; event.SetEventObject( toplevelWindow ) ; - toplevelWindow->GetEventHandler()->ProcessEvent(event) ; + toplevelWindow->HandleWindowEvent(event) ; toplevelWindow->wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified } @@ -747,7 +669,7 @@ wxMacTopLevelWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), { wxMoveEvent event( r.GetLeftTop() , toplevelWindow->GetId() ) ; event.SetEventObject( toplevelWindow ) ; - toplevelWindow->GetEventHandler()->ProcessEvent(event) ; + toplevelWindow->HandleWindowEvent(event) ; } result = noErr ; @@ -775,7 +697,7 @@ wxMacTopLevelWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), wxSizeEvent wxevent( r , toplevelWindow->GetId() ) ; wxevent.SetEventObject( toplevelWindow ) ; wxRect adjustR = r ; - if ( toplevelWindow->GetEventHandler()->ProcessEvent(wxevent) ) + if ( toplevelWindow->HandleWindowEvent(wxevent) ) adjustR = wxevent.GetRect() ; if ( toplevelWindow->GetMaxWidth() != -1 && adjustR.GetWidth() > toplevelWindow->GetMaxWidth() ) @@ -961,7 +883,7 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, DoMacCreateRealWindow( parent, title, pos , size , style , name ) ; - SetBackgroundColour(wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive))); + SetBackgroundColour(wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE )); if (GetExtraStyle() & wxFRAME_EX_METAL) MacSetMetalAppearance(true); @@ -1068,11 +990,16 @@ bool wxTopLevelWindowMac::SetBackgroundColour(const wxColour& col ) if ( !wxTopLevelWindowBase::SetBackgroundColour(col) && m_hasBgCol ) return false ; - if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ) + if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) || col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDocumentWindowBackground)) ) + { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDocumentWindowBackground, false ) ; - else if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) ) + SetBackgroundStyle(wxBG_STYLE_CUSTOM); + } + else if ( col == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) || col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive)) ) + { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDialogBackgroundActive, false ) ; - // TODO BETTER THEME SUPPORT + SetBackgroundStyle(wxBG_STYLE_CUSTOM); + } return true; } @@ -1329,7 +1256,7 @@ void wxTopLevelWindowMac::DoMacCreateRealWindow( } wxWindowCreateEvent event(this); - GetEventHandler()->ProcessEvent(event); + HandleWindowEvent(event); } void wxTopLevelWindowMac::ClearBackground() @@ -1406,7 +1333,7 @@ bool wxTopLevelWindowMac::Show(bool show) // because apps expect a size event to occur at this moment wxSizeEvent event(GetSize() , m_windowId); event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); + HandleWindowEvent(event); } else { @@ -1489,7 +1416,7 @@ bool wxTopLevelWindowMac::ShowWithEffect(wxShowEffect effect, // because apps expect a size event to occur at this moment wxSizeEvent event(GetSize() , m_windowId); event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); + HandleWindowEvent(event); return true; }