Cocoa: QMenu refactor.
authorMorten Sorvig <morten.sorvig@nokia.com>
Tue, 6 Sep 2011 12:10:50 +0000 (14:10 +0200)
committerMorten Johan Sørvig <morten.sorvig@nokia.com>
Wed, 7 Sep 2011 09:00:36 +0000 (11:00 +0200)
commitcee63e2c17c8e83a4366741da0cbd5fc852e5835
tree75ccc2afe762a51984d6651d6ff6eb875b73cad6
parente2be53891fe218c9a1a63c2d385d149d2b1f982f
Cocoa: QMenu refactor.

This change prepares for enabling native menus
on OS X.

Move code from src/widgets to cocoa:
- qcocoaapplicaiton
- qcocoaapplicaitondelegate
- qcocoamenuloader
- qcocoamenu
- qmenu_mac
- misc helpers to qcocoahelpers

Create a QNSApplication and
QCocoaApplicationDelegate at application startup.

New Lighthouse API:
- class QPlatformMenu
- class QPlatformMenuBar
- QPlatformIntegration::createPlatformMenu()
- QPlatformIntegration::createPlatformMenuBar()

Platforms that wants a native menu integration
subclasses QPlatformMenu[|Bar] and implements the
create function. The default implementation returns
0, which causes QMenu to use the standard Qt
menus.

This API is based on the current native menu
abstraction that Mac, Wince and S60 uses in Qt 4.
The main difference is that the platform classes are
proper standalone classes and not #ifdeffed into
QMenuPrivate.

Change-Id: I3da41f80b0ae903a476937908b1f9b88014b7954
Reviewed-on: http://codereview.qt.nokia.com/4068
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
37 files changed:
src/corelib/kernel/qcoreapplication.cpp
src/gui/kernel/qplatformintegration_qpa.cpp
src/gui/kernel/qplatformintegration_qpa.h
src/plugins/platforms/cocoa/cocoa.pro
src/plugins/platforms/cocoa/qcocoaapplication.h [moved from src/widgets/platforms/mac/qcocoaapplication_mac_p.h with 97% similarity]
src/plugins/platforms/cocoa/qcocoaapplication.mm [moved from src/widgets/platforms/mac/qcocoaapplication_mac.mm with 96% similarity]
src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h [moved from src/widgets/platforms/mac/qcocoaapplicationdelegate_mac_p.h with 97% similarity]
src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm [moved from src/widgets/platforms/mac/qcocoaapplicationdelegate_mac.mm with 91% similarity]
src/plugins/platforms/cocoa/qcocoaeventdispatcher.h
src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
src/plugins/platforms/cocoa/qcocoahelpers.h
src/plugins/platforms/cocoa/qcocoahelpers.mm
src/plugins/platforms/cocoa/qcocoaintegration.h
src/plugins/platforms/cocoa/qcocoaintegration.mm
src/plugins/platforms/cocoa/qcocoamenu.h [moved from src/widgets/widgets/qcocoamenu_mac_p.h with 97% similarity]
src/plugins/platforms/cocoa/qcocoamenu.mm [moved from src/widgets/widgets/qcocoamenu_mac.mm with 92% similarity]
src/plugins/platforms/cocoa/qcocoamenuloader.mm
src/plugins/platforms/cocoa/qmenu_mac.h [new file with mode: 0644]
src/plugins/platforms/cocoa/qmenu_mac.mm [moved from src/widgets/widgets/qmenu_mac.mm with 78% similarity]
src/plugins/platforms/cocoa/qnsview.mm
src/widgets/kernel/kernel.pri
src/widgets/kernel/qplatformmenu_qpa.cpp [new file with mode: 0644]
src/widgets/kernel/qplatformmenu_qpa.h [moved from src/widgets/platforms/mac/qt_widget_helpers_mac_p.h with 62% similarity]
src/widgets/platforms/mac/qcocoamenuloader_mac.mm [deleted file]
src/widgets/platforms/mac/qcocoamenuloader_mac_p.h [deleted file]
src/widgets/platforms/mac/qpaintengine_mac.cpp
src/widgets/platforms/mac/qpixmap_mac.cpp
src/widgets/platforms/mac/qt_cocoa_helpers_mac.mm
src/widgets/platforms/mac/qt_cocoa_helpers_mac_p.h
src/widgets/platforms/mac/qt_widget_helpers_mac.mm [deleted file]
src/widgets/widgets/qmenu.cpp
src/widgets/widgets/qmenu.h
src/widgets/widgets/qmenu_p.h
src/widgets/widgets/qmenubar.cpp
src/widgets/widgets/qmenubar.h
src/widgets/widgets/qmenubar_p.h
src/widgets/widgets/widgets.pri