diff options
Diffstat (limited to 'navit/graphics/qt5/QNavitWidget.cpp')
| -rw-r--r-- | navit/graphics/qt5/QNavitWidget.cpp | 355 |
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(); } |
