diff options
Diffstat (limited to 'src/plugins/platforms/directfb')
-rw-r--r-- | src/plugins/platforms/directfb/directfb.json | 3 | ||||
-rw-r--r-- | src/plugins/platforms/directfb/directfb.pro | 2 | ||||
-rw-r--r-- | src/plugins/platforms/directfb/main.cpp | 6 | ||||
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbconvenience.cpp | 62 |
4 files changed, 66 insertions, 7 deletions
diff --git a/src/plugins/platforms/directfb/directfb.json b/src/plugins/platforms/directfb/directfb.json new file mode 100644 index 0000000000..5c74095fe6 --- /dev/null +++ b/src/plugins/platforms/directfb/directfb.json @@ -0,0 +1,3 @@ +{ + "Keys": [ "directfb", "directfbegl" ] +} diff --git a/src/plugins/platforms/directfb/directfb.pro b/src/plugins/platforms/directfb/directfb.pro index 0585777889..ae47ec397b 100644 --- a/src/plugins/platforms/directfb/directfb.pro +++ b/src/plugins/platforms/directfb/directfb.pro @@ -43,3 +43,5 @@ directfbegl: { CONFIG += qpa/genericunixfontdatabase target.path += $$[QT_INSTALL_PLUGINS]/platforms INSTALLS += target + +OTHER_FILES += directfb.json diff --git a/src/plugins/platforms/directfb/main.cpp b/src/plugins/platforms/directfb/main.cpp index 048e9ed611..26bdd719ca 100644 --- a/src/plugins/platforms/directfb/main.cpp +++ b/src/plugins/platforms/directfb/main.cpp @@ -57,6 +57,8 @@ QT_BEGIN_NAMESPACE class QDirectFbIntegrationPlugin : public QPlatformIntegrationPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformIntegrationFactoryInterface" FILE "directfb.json") public: QStringList keys() const; QPlatformIntegration *create(const QString&, const QStringList&); @@ -86,6 +88,6 @@ QPlatformIntegration * QDirectFbIntegrationPlugin::create(const QString& system, return integration; } -Q_EXPORT_PLUGIN2(directfb, QDirectFbIntegrationPlugin) - QT_END_NAMESPACE + +#include "main.moc" 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; } |