diff options
author | Rick Stockton <rickstockton@reno-computerhelp.com> | 2012-02-16 19:20:35 -0800 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-23 01:31:59 +0100 |
commit | eec25d44e43e80d200f4bfaa7b78e094e6a01df6 (patch) | |
tree | 3bf82432823729775d481f8956e857d136c80397 /src | |
parent | 949127264d16050113aff0932d2e0197921952d2 (diff) |
Suppport up to 27 mouse buttons from DirectFB Plugin.
Previous to this update, our plugin accepts only 3 moue buttons
(from DirectFB, to be translated into Qt::MouseButton values.)
This update changes our Plugin, so that it will successfully
translate up to 27 mouse button numbers. It is unclear, to the
author, which configurations of DirectFB on Linux might be
capable of actually sending high-numbered mouse button Events
to Qt. But, if/when a DirectFB configuration does so, this
change makes Qt ready to recognize and work with the button event.
Task-number: QTBUG-24335
Change-Id: I8839ed386eb3d261a187355a244e80d511399ea8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbconvenience.cpp | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbconvenience.cpp b/src/plugins/platforms/directfb/qdirectfbconvenience.cpp index 7b253b7220..e41a2e0440 100644 --- a/src/plugins/platforms/directfb/qdirectfbconvenience.cpp +++ b/src/plugins/platforms/directfb/qdirectfbconvenience.cpp @@ -128,13 +128,65 @@ IDirectFBSurface *QDirectFbConvenience::dfbSurfaceForPlatformPixmap(QPlatformPix Qt::MouseButton QDirectFbConvenience::mouseButton(DFBInputDeviceButtonIdentifier identifier) { - switch (identifier){ - case DIBI_LEFT: + // The Enum contains values for DIBI_FIRST (= DIBI_LEFT), DIBI_LAST (= 0x1f,) and + // just 3 enumerated Mouse Buttons. To convert into *ALL* possible Qt::MoueButton values, + // the parameter is cast as integer. + + switch (int(identifier)) { + case DIBI_LEFT: // value is 0x00 return Qt::LeftButton; - case DIBI_MIDDLE: - return Qt::MidButton; - case DIBI_RIGHT: + case DIBI_RIGHT: // value is 0x01 return Qt::RightButton; + case DIBI_MIDDLE: // value is 0x02 + return Qt::MidButton; + case 0x03: + return Qt::BackButton; + case 0x04: + return Qt::ForwardButton; + case 0x05: + return Qt::ExtraButton3; + case 0x06: + return Qt::ExtraButton4; + case 0x07: + return Qt::ExtraButton5; + case 0x08: + return Qt::ExtraButton6; + case 0x09: + return Qt::ExtraButton7; + case 0x0a: + return Qt::ExtraButton8; + case 0x0b: + return Qt::ExtraButton9; + case 0x0c: + return Qt::ExtraButton10; + case 0x0d: + return Qt::ExtraButton11; + case 0x0e: + return Qt::ExtraButton12; + case 0x0f: + return Qt::ExtraButton13; + case 0x10: + return Qt::ExtraButton14; + case 0x11: + return Qt::ExtraButton15; + case 0x12: + return Qt::ExtraButton16; + case 0x13: + return Qt::ExtraButton17; + case 0x14: + return Qt::ExtraButton18; + case 0x15: + return Qt::ExtraButton19; + case 0x16: + return Qt::ExtraButton20; + case 0x17: + return Qt::ExtraButton21; + case 0x18: + return Qt::ExtraButton22; + case 0x19: + return Qt::ExtraButton23; + case 0x1a: + return Qt::ExtraButton24; default: return Qt::NoButton; } |