diff options
Diffstat (limited to 'src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm')
-rw-r--r-- | src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm | 123 |
1 files changed, 2 insertions, 121 deletions
diff --git a/src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm b/src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm index d1620b1489..20bb6bffbb 100644 --- a/src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm +++ b/src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm @@ -93,11 +93,9 @@ QT_BEGIN_NAMESPACE -#ifdef QT_MAC_USE_COCOA // Cmd + left mousebutton should produce a right button // press (mainly for mac users with one-button mice): static bool qt_leftButtonIsRightButton = false; -#endif Q_GLOBAL_STATIC(QMacWindowFader, macwindowFader); @@ -120,27 +118,17 @@ void QMacWindowFader::performFade() { const QWidgetList myWidgetsToFade = m_windowsToFade; const int widgetCount = myWidgetsToFade.count(); -#if QT_MAC_USE_COCOA QMacCocoaAutoReleasePool pool; [NSAnimationContext beginGrouping]; [[NSAnimationContext currentContext] setDuration:NSTimeInterval(m_duration)]; -#endif for (int i = 0; i < widgetCount; ++i) { QWidget *widget = m_windowsToFade.at(i); OSWindowRef window = qt_mac_window_for(widget); -#if QT_MAC_USE_COCOA [[window animator] setAlphaValue:0.0]; QTimer::singleShot(qRound(m_duration * 1000), widget, SLOT(hide())); -#else - TransitionWindowOptions options = {0, m_duration, 0, 0}; - TransitionWindowWithOptions(window, kWindowFadeTransitionEffect, kWindowHideTransitionAction, - 0, 1, &options); -#endif } -#if QT_MAC_USE_COCOA [NSAnimationContext endGrouping]; -#endif m_duration = 0.250; m_windowsToFade.clear(); } @@ -154,22 +142,11 @@ extern void qt_mac_updateCursorWithWidgetUnderMouse(QWidget *widgetUnderMouse); void macWindowFade(void * /*OSWindowRef*/ window, float durationSeconds) { -#ifdef QT_MAC_USE_COCOA QMacCocoaAutoReleasePool pool; -#endif OSWindowRef wnd = static_cast<OSWindowRef>(window); if (wnd) { QWidget *widget; -#if QT_MAC_USE_COCOA widget = [wnd QT_MANGLE_NAMESPACE(qt_qwidget)]; -#else - const UInt32 kWidgetCreatorQt = kEventClassQt; - enum { - kWidgetPropertyQWidget = 'QWId' //QWidget * - }; - if (GetWindowProperty(static_cast<WindowRef>(window), kWidgetCreatorQt, kWidgetPropertyQWidget, sizeof(widget), 0, &widget) != noErr) - widget = 0; -#endif if (widget) { QMacWindowFader::currentFader()->setFadeDuration(durationSeconds); QMacWindowFader::currentFader()->registerWindowToFade(widget); @@ -184,7 +161,7 @@ struct dndenum_mapper bool Qt2Mac; }; -#if defined(QT_MAC_USE_COCOA) && defined(__OBJC__) +#ifdef __OBJC__ static dndenum_mapper dnd_enums[] = { { NSDragOperationLink, Qt::LinkAction, true }, @@ -245,19 +222,12 @@ DnDParams *macCurrentDnDParameters() bool macWindowIsTextured( void * /*OSWindowRef*/ window ) { OSWindowRef wnd = static_cast<OSWindowRef>(window); -#if QT_MAC_USE_COCOA return ( [wnd styleMask] & NSTexturedBackgroundWindowMask ) ? true : false; -#else - WindowAttributes currentAttributes; - GetWindowAttributes(wnd, ¤tAttributes); - return (currentAttributes & kWindowMetalAttribute) ? true : false; -#endif } void macWindowToolbarShow(const QWidget *widget, bool show ) { OSWindowRef wnd = qt_mac_window_for(widget); -#if QT_MAC_USE_COCOA if (NSToolbar *toolbar = [wnd toolbar]) { QMacCocoaAutoReleasePool pool; if (show != [toolbar isVisible]) { @@ -267,65 +237,38 @@ void macWindowToolbarShow(const QWidget *widget, bool show ) qt_widget_private(const_cast<QWidget *>(widget))->updateFrameStrut(); } } -#else - qt_widget_private(const_cast<QWidget *>(widget))->updateFrameStrut(); - ShowHideWindowToolbar(wnd, show, false); -#endif } void macWindowToolbarSet( void * /*OSWindowRef*/ window, void *toolbarRef ) { OSWindowRef wnd = static_cast<OSWindowRef>(window); -#if QT_MAC_USE_COCOA [wnd setToolbar:static_cast<NSToolbar *>(toolbarRef)]; -#else - SetWindowToolbar(wnd, static_cast<HIToolbarRef>(toolbarRef)); -#endif } bool macWindowToolbarIsVisible( void * /*OSWindowRef*/ window ) { OSWindowRef wnd = static_cast<OSWindowRef>(window); -#if QT_MAC_USE_COCOA if (NSToolbar *toolbar = [wnd toolbar]) return [toolbar isVisible]; return false; -#else - return IsWindowToolbarVisible(wnd); -#endif } void macWindowSetHasShadow( void * /*OSWindowRef*/ window, bool hasShadow ) { OSWindowRef wnd = static_cast<OSWindowRef>(window); -#if QT_MAC_USE_COCOA [wnd setHasShadow:BOOL(hasShadow)]; -#else - if (hasShadow) - ChangeWindowAttributes(wnd, 0, kWindowNoShadowAttribute); - else - ChangeWindowAttributes(wnd, kWindowNoShadowAttribute, 0); -#endif } void macWindowFlush(void * /*OSWindowRef*/ window) { OSWindowRef wnd = static_cast<OSWindowRef>(window); -#if QT_MAC_USE_COCOA [wnd flushWindowIfNeeded]; -#else - HIWindowFlush(wnd); -#endif } void qt_mac_update_mouseTracking(QWidget *widget) { -#ifdef QT_MAC_USE_COCOA [qt_mac_nativeview_for(widget) updateTrackingAreas]; -#else - Q_UNUSED(widget); -#endif } OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage) @@ -352,13 +295,7 @@ InvalidContext: bool qt_mac_checkForNativeSizeGrip(const QWidget *widget) { -#ifndef QT_MAC_USE_COCOA - OSViewRef nativeSizeGrip = 0; - HIViewFindByID(HIViewGetRoot(HIViewGetWindow(HIViewRef(widget->winId()))), kHIViewWindowGrowBoxID, &nativeSizeGrip); - return (nativeSizeGrip != 0); -#else return [[reinterpret_cast<NSView *>(widget->effectiveWinId()) window] showsResizeIndicator]; -#endif } struct qt_mac_enum_mapper { @@ -426,7 +363,6 @@ QMacTabletHash *qt_mac_tablet_hash() return tablet_hash(); } -#ifdef QT_MAC_USE_COCOA // Clears the QWidget pointer that each QCocoaView holds. void qt_mac_clearCocoaViewQWidgetPointers(QWidget *widget) @@ -454,7 +390,6 @@ void qt_dispatchTabletProximityEvent(void * /*NSEvent * */ tabletEvent) [proximityEvent isEnteringProximity] }; qt_dispatchTabletProximityEvent(carbonProximityRec); } -#endif // QT_MAC_USE_COCOA void qt_dispatchTabletProximityEvent(const ::TabletProximityRec &proxRec) { @@ -527,7 +462,6 @@ void qt_dispatchTabletProximityEvent(const ::TabletProximityRec &proxRec) qt_sendSpontaneousEvent(qApp, &qtabletProximity); } -#ifdef QT_MAC_USE_COCOA Qt::KeyboardModifiers qt_cocoaModifiers2QtModifiers(ulong modifierFlags) { @@ -621,7 +555,6 @@ bool qt_dispatchKeyEventWithCocoa(void * /*NSEvent * */ keyEvent, QWidget *widge macScanCode, [event keyCode], [event modifierFlags]); return qt_sendSpontaneousEvent(widgetToGetEvent, &ke) && ke.isAccepted(); } -#endif Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum) { @@ -640,11 +573,6 @@ Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum) bool qt_dispatchKeyEvent(void * /*NSEvent * */ keyEvent, QWidget *widgetToGetEvent) { -#ifndef QT_MAC_USE_COCOA - Q_UNUSED(keyEvent); - Q_UNUSED(widgetToGetEvent); - return false; -#else NSEvent *event = static_cast<NSEvent *>(keyEvent); EventRef key_event = static_cast<EventRef>(const_cast<void *>([event eventRef])); Q_ASSERT(key_event); @@ -667,15 +595,10 @@ bool qt_dispatchKeyEvent(void * /*NSEvent * */ keyEvent, QWidget *widgetToGetEve bool consumed = qt_keymapper_private()->translateKeyEvent(widgetToGetEvent, 0, key_event, &info, true); return consumed && (info != 0); -#endif } void qt_dispatchModifiersChanged(void * /*NSEvent * */flagsChangedEvent, QWidget *widgetToGetEvent) { -#ifndef QT_MAC_USE_COCOA - Q_UNUSED(flagsChangedEvent); - Q_UNUSED(widgetToGetEvent); -#else UInt32 modifiers = 0; // Sync modifiers with Qt NSEvent *event = static_cast<NSEvent *>(flagsChangedEvent); @@ -685,7 +608,6 @@ void qt_dispatchModifiersChanged(void * /*NSEvent * */flagsChangedEvent, QWidget sizeof(modifiers), 0, &modifiers); extern void qt_mac_send_modifiers_changed(quint32 modifiers, QObject *object); qt_mac_send_modifiers_changed(modifiers, widgetToGetEvent); -#endif } QPointF flipPoint(const NSPoint &p) @@ -703,7 +625,7 @@ NSPoint flipPoint(const QPointF &p) return NSMakePoint(p.x(), flipYCoordinate(p.y())); } -#if QT_MAC_USE_COCOA && __OBJC__ +#ifdef __OBJC__ void qt_mac_handleNonClientAreaMouseEvent(NSWindow *window, NSEvent *event) { @@ -1116,11 +1038,6 @@ bool qt_mac_handleMouseEvent(NSEvent *event, QEvent::Type eventType, Qt::MouseBu bool qt_mac_handleTabletEvent(void * /*QCocoaView * */view, void * /*NSEvent * */tabletEvent) { -#ifndef QT_MAC_USE_COCOA - Q_UNUSED(view); - Q_UNUSED(tabletEvent); - return false; -#else QT_MANGLE_NAMESPACE(QCocoaView) *theView = static_cast<QT_MANGLE_NAMESPACE(QCocoaView) *>(view); NSView *theNSView = static_cast<NSView *>(view); NSEvent *theTabletEvent = static_cast<NSEvent *>(tabletEvent); @@ -1209,29 +1126,16 @@ bool qt_mac_handleTabletEvent(void * /*QCocoaView * */view, void * /*NSEvent * * qt_sendSpontaneousEvent(widgetToGetMouse, &qtabletEvent); return qtabletEvent.isAccepted(); -#endif } void qt_mac_updateContentBorderMetricts(void * /*OSWindowRef */window, const ::HIContentBorderMetrics &metrics) { OSWindowRef theWindow = static_cast<OSWindowRef>(window); -#if !defined(QT_MAC_USE_COCOA) -# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) { - ::HIWindowSetContentBorderThickness(theWindow, &metrics); - } -# else - Q_UNUSED(window); - Q_UNUSED(metrics); -# endif -#else if ([theWindow styleMask] & NSTexturedBackgroundWindowMask) [theWindow setContentBorderThickness:metrics.top forEdge:NSMaxYEdge]; [theWindow setContentBorderThickness:metrics.bottom forEdge:NSMinYEdge]; -#endif } -#if QT_MAC_USE_COCOA void qt_mac_replaceDrawRect(void * /*OSWindowRef */window, QWidgetPrivate *widget) { QMacCocoaAutoReleasePool pool; @@ -1294,9 +1198,7 @@ void qt_mac_replaceDrawRectOriginal(void * /*OSWindowRef */window, QWidgetPrivat widget->originalDrawMethod = true; [theWindow display]; } -#endif // QT_MAC_USE_COCOA -#if QT_MAC_USE_COCOA void qt_mac_showBaseLineSeparator(void * /*OSWindowRef */window, bool show) { if(!window) @@ -1306,7 +1208,6 @@ void qt_mac_showBaseLineSeparator(void * /*OSWindowRef */window, bool show) NSToolbar *macToolbar = [theWindow toolbar]; [macToolbar setShowsBaselineSeparator:show]; } -#endif // QT_MAC_USE_COCOA QStringList qt_mac_NSArrayToQStringList(void *nsarray) { @@ -1326,7 +1227,6 @@ void *qt_mac_QStringListToNSMutableArrayVoid(const QStringList &list) return result; } -#if QT_MAC_USE_COCOA void qt_syncCocoaTitleBarButtons(OSWindowRef window, QWidget *widgetForWindow) { if (!widgetForWindow) @@ -1351,7 +1251,6 @@ void qt_syncCocoaTitleBarButtons(OSWindowRef window, QWidget *widgetForWindow) [window setShowsToolbarButton:uint(flags & Qt::MacWindowToolBarButtonHint) != 0]; } -#endif // QT_MAC_USE_COCOA // Carbon: Make sure you call QDEndContext on the context when done with it. CGContextRef qt_mac_graphicsContextFor(QWidget *widget) @@ -1359,13 +1258,7 @@ CGContextRef qt_mac_graphicsContextFor(QWidget *widget) if (!widget) return 0; -#ifndef QT_MAC_USE_COCOA - CGContextRef context; - CGrafPtr port = GetWindowPort(qt_mac_window_for(widget)); - QDBeginCGContext(port, &context); -#else CGContextRef context = (CGContextRef)[[NSGraphicsContext graphicsContextWithWindow:qt_mac_window_for(widget)] graphicsPort]; -#endif return context; } @@ -1373,20 +1266,12 @@ void qt_mac_dispatchPendingUpdateRequests(QWidget *widget) { if (!widget) return; -#ifndef QT_MAC_USE_COCOA - HIViewRender(qt_mac_nativeview_for(widget)); -#else [qt_mac_nativeview_for(widget) displayIfNeeded]; -#endif } CGFloat qt_mac_get_scalefactor() { -#ifndef QT_MAC_USE_COCOA - return HIGetScaleFactor(); -#else return [[NSScreen mainScreen] userSpaceScaleFactor]; -#endif } QString qt_mac_get_pasteboardString(OSPasteboardRef paste) @@ -1455,10 +1340,8 @@ void qt_mac_constructQIconFromIconRef(const IconRef icon, const IconRef overlayI void qt_mac_post_retranslateAppMenu() { -#ifdef QT_MAC_USE_COCOA QMacCocoaAutoReleasePool pool; qt_cocoaPostMessage([NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)], @selector(qtTranslateApplicationMenu)); -#endif } QWidgetPrivate *QMacScrollOptimization::_target = 0; @@ -1467,7 +1350,6 @@ int QMacScrollOptimization::_dx = 0; int QMacScrollOptimization::_dy = 0; QRect QMacScrollOptimization::_scrollRect = QRect(0, 0, -1, -1); -#ifdef QT_MAC_USE_COCOA // This method implements the magic for the drawRectSpecial method. // We draw a line at the upper edge of the content view in order to // override the title baseline. @@ -1558,6 +1440,5 @@ void qt_mac_setNeedsDisplayInRect(QWidget *widget, QRegion region) } -#endif // QT_MAC_USE_COCOA QT_END_NAMESPACE |