summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoatheme.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoatheme.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.mm32
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