summaryrefslogtreecommitdiffstats
path: root/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2010-09-06 11:19:30 (GMT)
committerSamuel Rødal <samuel.rodal@nokia.com>2010-09-10 10:44:55 (GMT)
commitca1a8a7f4ad1fb249f47085e6ad0cf133122c0f0 (patch)
tree7cde8470048b312befa1c7934e470a111509a0d3 /tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
parent34c08ff7048419713464b28679ac15a250bd7dd1 (diff)
downloadQt-ca1a8a7f4ad1fb249f47085e6ad0cf133122c0f0.zip
Qt-ca1a8a7f4ad1fb249f47085e6ad0cf133122c0f0.tar.gz
Qt-ca1a8a7f4ad1fb249f47085e6ad0cf133122c0f0.tar.bz2
Renamed meego graphics system helper files.
Diffstat (limited to 'tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp')
-rw-r--r--tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
new file mode 100644
index 0000000..8f64b3f
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
@@ -0,0 +1,72 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QEvent>
+#include <QMouseEvent>
+#include <QCoreApplication>
+#include "moverlaywidget.h"
+#include "mgraphicssystemhelper.h"
+#include "mruntime.h"
+
+MOverlayWidget::MOverlayWidget(int surfaceWidth, int surfaceHeight, QWidget *parent) : QWidget(parent, 0),
+ sw(surfaceWidth),
+ sh(surfaceHeight)
+{
+ if (! MGraphicsSystemHelper::isRunningMeeGo())
+ qFatal("MOverlayWidget can only be used when running with 'meego' graphics system!");
+
+ MRuntime::setSurfaceFixedSize(surfaceWidth, surfaceHeight);
+
+ scaleW = sw / 864.0;
+ scaleH = sh / 480.0;
+ installEventFilter(this);
+}
+
+QPoint MOverlayWidget::convertPoint(const QPoint &p)
+{
+ int x = p.x() * scaleW;
+ int y = p.y() * scaleH;
+ return QPoint(x, y);
+}
+
+void MOverlayWidget::showEvent(QShowEvent *event)
+{
+ MRuntime::setSurfaceScaling(0, 0, width(), height());
+}
+
+bool MOverlayWidget::eventFilter(QObject *obj, QEvent *event)
+{
+ if (event->spontaneous() == false)
+ return false;
+
+ switch(event->type()) {
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ {
+ QMouseEvent *e = static_cast <QMouseEvent *>(event);
+ QMouseEvent newEvent = QMouseEvent(e->type(),
+ convertPoint(e->pos()),
+ convertPoint(e->globalPos()),
+ e->button(),
+ e->buttons(),
+ e->modifiers());
+ QCoreApplication::sendEvent(this, &newEvent);
+ return true;
+ }
+
+ default:
+ return false;
+ }
+}