summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorRick Stockton <rickstockton@reno-computerhelp.com>2012-02-16 19:20:35 -0800
committerQt by Nokia <qt-info@nokia.com>2012-02-23 01:31:59 +0100
commiteec25d44e43e80d200f4bfaa7b78e094e6a01df6 (patch)
tree3bf82432823729775d481f8956e857d136c80397 /src/plugins/platforms
parent949127264d16050113aff0932d2e0197921952d2 (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/plugins/platforms')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbconvenience.cpp62
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;
}