File indexing completed on 2024-04-28 07:38:02
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