diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoatheme.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoatheme.mm | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm index cfb146ad45..2f630c7763 100644 --- a/src/plugins/platforms/cocoa/qcocoatheme.mm +++ b/src/plugins/platforms/cocoa/qcocoatheme.mm @@ -41,12 +41,19 @@ #include "qcocoatheme.h" -#include <QVariant> +#include <QtCore/QVariant> #include "qcocoacolordialoghelper.h" #include "qcocoafiledialoghelper.h" #include "qcocoafontdialoghelper.h" #include "qcocoasystemsettings.h" +#include "qcocoamenuitem.h" +#include "qcocoamenu.h" +#include "qcocoamenubar.h" + +#include <QtGui/private/qguiapplication_p.h> +#include <QtGui/QPlatformIntegration> +#include <QtGui/QPlatformNativeInterface> QT_BEGIN_NAMESPACE @@ -133,4 +140,27 @@ QVariant QCocoaTheme::themeHint(ThemeHint hint) const return QPlatformTheme::themeHint(hint); } +QPlatformMenuItem *QCocoaTheme::createPlatformMenuItem() const +{ + return new QCocoaMenuItem(); +} + +QPlatformMenu *QCocoaTheme::createPlatformMenu() const +{ + return new QCocoaMenu(); +} + +QPlatformMenuBar *QCocoaTheme::createPlatformMenuBar() const +{ + static bool haveMenubar = false; + if (!haveMenubar) { + haveMenubar = true; + QObject::connect(qGuiApp, SIGNAL(focusWindowChanged(QWindow*)), + QGuiApplicationPrivate::platformIntegration()->nativeInterface(), + SLOT(onAppFocusWindowChanged(QWindow*))); + } + + return new QCocoaMenuBar(); +} + QT_END_NAMESPACE |