summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/directfb')
-rw-r--r--src/plugins/platforms/directfb/directfb.json3
-rw-r--r--src/plugins/platforms/directfb/directfb.pro2
-rw-r--r--src/plugins/platforms/directfb/main.cpp6
-rw-r--r--src/plugins/platforms/directfb/qdirectfbconvenience.cpp62
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;
}