summaryrefslogtreecommitdiffstats
path: root/src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm')
-rw-r--r--src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm123
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, &currentAttributes);
- 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