File indexing completed on 2024-04-14 03:47:55

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2005-2007 Torsten Rahn <tackat@kde.org>
0004 // SPDX-FileCopyrightText: 2007 Inge Wallin <ingwa@kde.org>
0005 // SPDX-FileCopyrightText: 2014 Adam Dabrowski <adamdbrw@gmail.com>
0006 //
0007 
0008 #ifndef MARBLE_MARBLEWIDGETINPUTHANDLER_H
0009 #define MARBLE_MARBLEWIDGETINPUTHANDLER_H
0010 
0011 #include <QObject>
0012 #include <QSharedPointer>
0013 #include <QPinchGesture>
0014 #include "MarbleInputHandler.h"
0015 
0016 namespace Marble
0017 {
0018 
0019 class MarbleWidget;
0020 class RenderPlugin;
0021 class MarbleWidgetInputHandlerPrivate;
0022 
0023 class MARBLE_EXPORT MarbleWidgetInputHandler : public MarbleDefaultInputHandler
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     MarbleWidgetInputHandler(MarbleAbstractPresenter *marblePresenter, MarbleWidget *marbleWidget);
0029 
0030     void setDebugModeEnabled(bool enabled);
0031 
0032 private Q_SLOTS:
0033     void installPluginEventFilter(RenderPlugin *renderPlugin) override;
0034     void showLmbMenu(int x, int y) override;
0035     void showRmbMenu(int x, int y) override;
0036     void openItemToolTip() override;
0037     void setCursor(const QCursor &cursor) override;
0038 
0039 private:
0040     bool handleKeyPress(QKeyEvent* event) override;
0041     bool handleTouch(QTouchEvent *event) override;
0042     bool handleGesture(QGestureEvent *e) override;
0043     AbstractSelectionRubber *selectionRubber() override;
0044     bool layersEventFilter(QObject *o, QEvent *e) override;
0045 
0046     void handlePinchGesture(QPinchGesture *pinch);
0047 
0048     using MarbleWidgetInputHandlerPrivatePtr = QSharedPointer<MarbleWidgetInputHandlerPrivate>;
0049     MarbleWidgetInputHandlerPrivatePtr d;
0050     friend class MarbleWidgetInputHandlerPrivate;
0051 
0052     Q_DISABLE_COPY(MarbleWidgetInputHandler)
0053 };
0054 
0055 }
0056 
0057 #endif