X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bdf895fdd93d3f33a4b12a2c4a8568b64badc1d3..4ff9366dc1332abc371902059b71ea7d59aa2055:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index 6903a408f8..f3f0878937 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -358,12 +358,14 @@ void SetupMouseEvent( wxMouseEvent &wxevent , wxMacCarbonEvent &cEvent ) { wxevent.SetEventType( wxEVT_MOUSEWHEEL ) ; - // EventMouseWheelAxis axis = cEvent.GetParameter(kEventParamMouseWheelAxis, typeMouseWheelAxis) ; + EventMouseWheelAxis axis = cEvent.GetParameter(kEventParamMouseWheelAxis, typeMouseWheelAxis) ; SInt32 delta = cEvent.GetParameter(kEventParamMouseWheelDelta, typeSInt32) ; wxevent.m_wheelRotation = delta; wxevent.m_wheelDelta = 1; wxevent.m_linesPerAction = 1; + if ( axis == kEventMouseWheelAxisX ) + wxevent.m_wheelAxis = 1; } break ; @@ -589,7 +591,7 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev if ( wxevent.GetEventType() == wxEVT_LEFT_DOWN ) { // ... that is set focus to this window - if (currentMouseWindow->AcceptsFocus() && wxWindow::FindFocus()!=currentMouseWindow) + if (currentMouseWindow->CanAcceptFocus() && wxWindow::FindFocus()!=currentMouseWindow) currentMouseWindow->SetFocus(); } @@ -929,7 +931,7 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, m_windowId = id == -1 ? NewControlId() : id; wxWindow::SetLabel( title ) ; - MacCreateRealWindow( title, pos , size , MacRemoveBordersFromStyle(style) , name ) ; + MacCreateRealWindow( title, pos , size , style , name ) ; SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); @@ -1029,12 +1031,6 @@ wxPoint wxTopLevelWindowMac::GetClientAreaOrigin() const return wxPoint(0, 0) ; } -void wxTopLevelWindowMac::SetIcon(const wxIcon& icon) -{ - // this sets m_icon - wxTopLevelWindowBase::SetIcon(icon); -} - void wxTopLevelWindowMac::MacSetBackgroundBrush( const wxBrush &brush ) { wxTopLevelWindowBase::MacSetBackgroundBrush( brush ) ; @@ -1110,6 +1106,20 @@ void wxTopLevelWindowMac::MacCreateRealWindow( wclass = kPlainWindowClass ; } } + else if ( HasFlag( wxPOPUP_WINDOW ) ) + { + // TEMPORARY HACK! + // Until we've got a real wxPopupWindow class on wxMac make it a + // little easier for wxFrame to be used to emulate it and workaround + // the lack of wxPopupWindow. + if ( HasFlag( wxBORDER_NONE ) ) + wclass = kHelpWindowClass ; // has no border + else + wclass = kPlainWindowClass ; // has a single line border, it will have to do for now + //attr |= kWindowNoShadowAttribute; // turn off the shadow Should we?? + group = GetWindowGroupOfClass( // float above other windows + kFloatingWindowClass) ; + } else if ( HasFlag( wxCAPTION ) ) { wclass = kDocumentWindowClass ; @@ -1156,6 +1166,9 @@ void wxTopLevelWindowMac::MacCreateRealWindow( if ( HasFlag(wxSTAY_ON_TOP) ) group = GetWindowGroupOfClass(kUtilityWindowClass) ; + if ( HasFlag( wxFRAME_FLOAT_ON_PARENT ) ) + group = GetWindowGroupOfClass(kFloatingWindowClass) ; + attr |= kWindowCompositingAttribute; #if 0 // wxMAC_USE_CORE_GRAPHICS ; TODO : decide on overall handling of high dpi screens (pixel vs userscale) attr |= kWindowFrameworkScaledAttribute;