summaryrefslogtreecommitdiff
path: root/navit/graphics/qt5/QNavitWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'navit/graphics/qt5/QNavitWidget.cpp')
-rw-r--r--navit/graphics/qt5/QNavitWidget.cpp355
1 files changed, 175 insertions, 180 deletions
diff --git a/navit/graphics/qt5/QNavitWidget.cpp b/navit/graphics/qt5/QNavitWidget.cpp
index 20b1d852f..09034ce22 100644
--- a/navit/graphics/qt5/QNavitWidget.cpp
+++ b/navit/graphics/qt5/QNavitWidget.cpp
@@ -16,6 +16,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
+// style with: clang-format -style=WebKit -i *
#include <glib.h>
#ifdef HAVE_UNISTD_H
@@ -23,230 +24,224 @@
#endif
extern "C" {
#include "config.h"
+#include "item.h" /* needs to be first, as attr.h depends on it */
-#include "item.h"
-#include "point.h"
-#include "graphics.h"
+#include "callback.h"
#include "color.h"
-#include "plugin.h"
-#include "event.h"
#include "debug.h"
-#include "window.h"
-#include "callback.h"
+#include "event.h"
+
+#include "point.h" /* needs to be before graphics.h */
+
+#include "graphics.h"
#include "keys.h"
+#include "plugin.h"
+#include "window.h"
}
-#if defined(WINDOWS) || defined(WIN32) || defined (HAVE_API_WIN32_CE)
+#if defined(WINDOWS) || defined(WIN32) || defined(HAVE_API_WIN32_CE)
#include <windows.h>
#endif
-#include "graphics_qt5.h"
#include "QNavitWidget.h"
#include "QNavitWidget.moc"
+#include "graphics_qt5.h"
-QNavitWidget :: QNavitWidget(struct graphics_priv *my_graphics_priv,
- QWidget * parent,
- Qt::WindowFlags flags): QWidget(parent, flags)
+QNavitWidget::QNavitWidget(struct graphics_priv* my_graphics_priv,
+ QWidget* parent,
+ Qt::WindowFlags flags)
+ : QWidget(parent, flags)
{
graphics_priv = my_graphics_priv;
}
-bool QNavitWidget::event(QEvent *event)
+bool QNavitWidget::event(QEvent* event)
{
if (event->type() == QEvent::Gesture)
dbg(lvl_debug, "Gesture event caught");
- //return gestureEvent(static_cast<QGestureEvent*>(event));
+ //return gestureEvent(static_cast<QGestureEvent*>(event));
return QWidget::event(event);
}
-static void paintOverlays(QPainter * painter, struct graphics_priv * gp, QPaintEvent * event)
+static void paintOverlays(QPainter* painter, struct graphics_priv* gp, QPaintEvent* event)
{
- GHashTableIter iter;
- struct graphics_priv * key, * value;
- g_hash_table_iter_init (&iter, gp->overlays);
- while (g_hash_table_iter_next (&iter, (void **)&key, (void **)&value))
- {
- if(! value->disable)
- {
- QRect rr(value->x, value->y, value->pixmap->width(), value->pixmap->height());
- if(event->rect().intersects(rr))
- {
- dbg(lvl_debug,"draw overlay (%d, %d, %d, %d)\n",value->x, value->y, value->pixmap->width(), value->pixmap->height());
- painter->drawPixmap(value->x, value->y, *value->pixmap);
- /* draw overlays of overlay if any by recursive calling */
- paintOverlays(painter, value, event);
- }
- }
+ GHashTableIter iter;
+ struct graphics_priv *key, *value;
+ g_hash_table_iter_init(&iter, gp->overlays);
+ while (g_hash_table_iter_next(&iter, (void**)&key, (void**)&value)) {
+ if (!value->disable) {
+ QRect rr(value->x, value->y, value->pixmap->width(), value->pixmap->height());
+ if (event->rect().intersects(rr)) {
+ dbg(lvl_debug, "draw overlay (%d, %d, %d, %d)\n", value->x, value->y, value->pixmap->width(), value->pixmap->height());
+ painter->drawPixmap(value->x, value->y, *value->pixmap);
+ /* draw overlays of overlay if any by recursive calling */
+ paintOverlays(painter, value, event);
+ }
}
-
+ }
}
-void QNavitWidget :: paintEvent(QPaintEvent * event)
+void QNavitWidget::paintEvent(QPaintEvent* event)
{
- dbg(lvl_debug,"enter (%d, %d, %d, %d)\n",event->rect().x(), event->rect().y(), event->rect().width(), event->rect().height());
- QPainter painter(this);
- /* color background if any */
- if (graphics_priv->background_graphics_gc_priv != NULL)
- {
- painter.setPen(*graphics_priv->background_graphics_gc_priv->pen);
- painter.fillRect(event->rect(),*graphics_priv->background_graphics_gc_priv->brush);
- }
- painter.drawPixmap(0,0,*graphics_priv->pixmap,
- event->rect().x(), event->rect().y(),
- event->rect().width(), event->rect().height());
- paintOverlays(&painter, graphics_priv, event);
+ dbg(lvl_debug, "enter (%d, %d, %d, %d)\n", event->rect().x(), event->rect().y(), event->rect().width(), event->rect().height());
+ QPainter painter(this);
+ /* color background if any */
+ if (graphics_priv->background_graphics_gc_priv != NULL) {
+ painter.setPen(*graphics_priv->background_graphics_gc_priv->pen);
+ painter.fillRect(event->rect(), *graphics_priv->background_graphics_gc_priv->brush);
+ }
+ painter.drawPixmap(0, 0, *graphics_priv->pixmap,
+ event->rect().x(), event->rect().y(),
+ event->rect().width(), event->rect().height());
+ paintOverlays(&painter, graphics_priv, event);
}
-void QNavitWidget::resizeEvent(QResizeEvent * event)
+void QNavitWidget::resizeEvent(QResizeEvent* event)
{
- QPainter * painter = NULL;
- if(graphics_priv->pixmap != NULL)
- {
- delete graphics_priv->pixmap;
- graphics_priv->pixmap = NULL;
- }
-
- graphics_priv->pixmap=new QPixmap(size());
- painter = new QPainter(graphics_priv->pixmap);
- if(painter != NULL)
- {
- QBrush brush;
- painter->fillRect(0, 0, width(), height(), brush);
- delete painter;
- }
- dbg(lvl_debug,"size %dx%d\n", width(), height());
- dbg(lvl_debug,"pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height());
- /* if the root window got resized, tell navit about it */
- if(graphics_priv->root)
- resize_callback(graphics_priv,width(),height());
+ QPainter* painter = NULL;
+ if (graphics_priv->pixmap != NULL) {
+ delete graphics_priv->pixmap;
+ graphics_priv->pixmap = NULL;
+ }
+
+ graphics_priv->pixmap = new QPixmap(size());
+ painter = new QPainter(graphics_priv->pixmap);
+ if (painter != NULL) {
+ QBrush brush;
+ painter->fillRect(0, 0, width(), height(), brush);
+ delete painter;
+ }
+ dbg(lvl_debug, "size %dx%d\n", width(), height());
+ dbg(lvl_debug, "pixmap %p %dx%d\n", graphics_priv->pixmap, graphics_priv->pixmap->width(), graphics_priv->pixmap->height());
+ /* if the root window got resized, tell navit about it */
+ if (graphics_priv->root)
+ resize_callback(graphics_priv, width(), height());
}
-void QNavitWidget::mouseEvent(int pressed, QMouseEvent *event)
+void QNavitWidget::mouseEvent(int pressed, QMouseEvent* event)
{
- struct point p;
-// dbg(lvl_debug,"enter\n");
- p.x=event->x();
- p.y=event->y();
- switch (event->button()) {
- case Qt::LeftButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(1), GINT_TO_POINTER(&p));
- break;
- case Qt::MidButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(2), GINT_TO_POINTER(&p));
- break;
- case Qt::RightButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(3), GINT_TO_POINTER(&p));
- break;
- default:
- break;
- }
+ struct point p;
+ // dbg(lvl_debug,"enter\n");
+ p.x = event->x();
+ p.y = event->y();
+ switch (event->button()) {
+ case Qt::LeftButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(1), GINT_TO_POINTER(&p));
+ break;
+ case Qt::MidButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(2), GINT_TO_POINTER(&p));
+ break;
+ case Qt::RightButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(3), GINT_TO_POINTER(&p));
+ break;
+ default:
+ break;
+ }
}
-void QNavitWidget::keyPressEvent(QKeyEvent *event)
+void QNavitWidget::keyPressEvent(QKeyEvent* event)
{
- dbg(lvl_debug,"enter\n");
- char key[2];
- int keycode;
- char * text = NULL;
-
- keycode = event->key();
- key[0] = '\0';
- key[1] = '\0';
- switch (keycode) {
- case Qt::Key_Up:
- key[0]=NAVIT_KEY_UP;
- break;
- case Qt::Key_Down:
- key[0]=NAVIT_KEY_DOWN;
- break;
- case Qt::Key_Left:
- key[0]=NAVIT_KEY_LEFT;
- break;
- case Qt::Key_Right:
- key[0]=NAVIT_KEY_RIGHT;
- break;
- case Qt::Key_Backspace:
- key[0]=NAVIT_KEY_BACKSPACE;
- break;
- case Qt::Key_Tab:
- key[0]=NAVIT_KEY_TAB;
- break;
- case Qt::Key_Delete:
- key[0]=NAVIT_KEY_DELETE;
- break;
- case Qt::Key_Escape:
- key[0]=NAVIT_KEY_BACK;
- break;
- case Qt::Key_Return:
- case Qt::Key_Enter:
- key[0]=NAVIT_KEY_RETURN;
- break;
- case Qt::Key_ZoomIn:
- key[0]=NAVIT_KEY_ZOOM_IN;
- break;
- case Qt::Key_ZoomOut:
- key[0]=NAVIT_KEY_ZOOM_OUT;
- break;
- case Qt::Key_PageUp:
- key[0]=NAVIT_KEY_PAGE_UP;
- break;
- case Qt::Key_PageDown:
- key[0]=NAVIT_KEY_PAGE_DOWN;
- break;
- default:
- QString str=event->text();
- if((str != NULL) && (str.size() != 0))
- {
- text=str.toUtf8().data();
- }
- }
- if(text != NULL)
- callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void *)text);
- else if (key[0])
- callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void *)key);
- else
- dbg(lvl_debug,"keyval 0x%x\n", keycode);
-}
+ dbg(lvl_debug, "enter\n");
+ char key[2];
+ int keycode;
+ char* text = NULL;
+ keycode = event->key();
+ key[0] = '\0';
+ key[1] = '\0';
+ switch (keycode) {
+ case Qt::Key_Up:
+ key[0] = NAVIT_KEY_UP;
+ break;
+ case Qt::Key_Down:
+ key[0] = NAVIT_KEY_DOWN;
+ break;
+ case Qt::Key_Left:
+ key[0] = NAVIT_KEY_LEFT;
+ break;
+ case Qt::Key_Right:
+ key[0] = NAVIT_KEY_RIGHT;
+ break;
+ case Qt::Key_Backspace:
+ key[0] = NAVIT_KEY_BACKSPACE;
+ break;
+ case Qt::Key_Tab:
+ key[0] = NAVIT_KEY_TAB;
+ break;
+ case Qt::Key_Delete:
+ key[0] = NAVIT_KEY_DELETE;
+ break;
+ case Qt::Key_Escape:
+ key[0] = NAVIT_KEY_BACK;
+ break;
+ case Qt::Key_Return:
+ case Qt::Key_Enter:
+ key[0] = NAVIT_KEY_RETURN;
+ break;
+ case Qt::Key_ZoomIn:
+ key[0] = NAVIT_KEY_ZOOM_IN;
+ break;
+ case Qt::Key_ZoomOut:
+ key[0] = NAVIT_KEY_ZOOM_OUT;
+ break;
+ case Qt::Key_PageUp:
+ key[0] = NAVIT_KEY_PAGE_UP;
+ break;
+ case Qt::Key_PageDown:
+ key[0] = NAVIT_KEY_PAGE_DOWN;
+ break;
+ default:
+ QString str = event->text();
+ if ((str != NULL) && (str.size() != 0)) {
+ text = str.toUtf8().data();
+ }
+ }
+ if (text != NULL)
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)text);
+ else if (key[0])
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)key);
+ else
+ dbg(lvl_debug, "keyval 0x%x\n", keycode);
+}
-void QNavitWidget::mousePressEvent(QMouseEvent *event)
+void QNavitWidget::mousePressEvent(QMouseEvent* event)
{
-// dbg(lvl_debug,"enter\n");
- mouseEvent(1, event);
+ // dbg(lvl_debug,"enter\n");
+ mouseEvent(1, event);
}
-void QNavitWidget::mouseReleaseEvent(QMouseEvent *event)
+void QNavitWidget::mouseReleaseEvent(QMouseEvent* event)
{
-// dbg(lvl_debug,"enter\n");
- mouseEvent(0, event);
+ // dbg(lvl_debug,"enter\n");
+ mouseEvent(0, event);
}
-void QNavitWidget::mouseMoveEvent(QMouseEvent *event)
+void QNavitWidget::mouseMoveEvent(QMouseEvent* event)
{
- struct point p;
-// dbg(lvl_debug,"enter\n");
- p.x=event->x();
- p.y=event->y();
- callback_list_call_attr_1(graphics_priv->callbacks, attr_motion, (void *)&p);
+ struct point p;
+ // dbg(lvl_debug,"enter\n");
+ p.x = event->x();
+ p.y = event->y();
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_motion, (void*)&p);
}
-void QNavitWidget::wheelEvent(QWheelEvent *event)
+void QNavitWidget::wheelEvent(QWheelEvent* event)
{
- struct point p;
- int button;
- dbg(lvl_debug,"enter\n");
- p.x=event->x(); // xy-coordinates of the mouse pointer
- p.y=event->y();
-
- if (event->delta() > 0) // wheel movement away from the person
- button=4;
- else if (event->delta() < 0) // wheel movement towards the person
- button=5;
- else
- button=-1;
-
- if (button != -1) {
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(button), GINT_TO_POINTER(&p));
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(button), GINT_TO_POINTER(&p));
- }
-
- event->accept();
+ struct point p;
+ int button;
+ dbg(lvl_debug, "enter\n");
+ p.x = event->x(); // xy-coordinates of the mouse pointer
+ p.y = event->y();
+
+ if (event->delta() > 0) // wheel movement away from the person
+ button = 4;
+ else if (event->delta() < 0) // wheel movement towards the person
+ button = 5;
+ else
+ button = -1;
+
+ if (button != -1) {
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(button), GINT_TO_POINTER(&p));
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(button), GINT_TO_POINTER(&p));
+ }
+
+ event->accept();
}