Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_abstract_input_action.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2012 Arjen Hiemstra <ahiemstra@heimr.nl>
3 * SPDX-FileCopyrightText: 2026 Ayanami Kaine <personal@ayanamikaine.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef KIS_ABSTRACT_INPUT_ACTION_H
9#define KIS_ABSTRACT_INPUT_ACTION_H
10
11#include "kritaui_export.h"
12#include <QHash>
13#include <QPoint>
14
15#include "KisInputActionGroup.h"
16
17class QPointF;
18class QEvent;
19class KisInputManager;
20
43class KRITAUI_EXPORT KisAbstractInputAction
44{
45public:
51 explicit KisAbstractInputAction(const QString &id);
56
64 virtual void activate(int shortcut);
65
73 virtual void deactivate(int shortcut);
74
84 virtual bool trySwitchShortcut(int oldShortcut, int newShortcut);
85
93 virtual void begin(int shortcut, QEvent *event);
100 virtual void end(QEvent *event);
109 virtual void inputEvent(QEvent *event);
110
118 virtual bool supportsHiResInputEvents(int shortcut) const;
119
123 virtual KisInputActionGroup inputActionGroup(int shortcut) const;
124
128 virtual QHash<QString, int> shortcutIndexes() const;
129
133 virtual QString id() const;
134
138 virtual QString name() const;
139
143 virtual QString description() const;
144
151 virtual int priority() const;
152
158 virtual bool canIgnoreModifiers() const;
159
168 virtual bool isShortcutRequired(int shortcut) const;
169
176 virtual bool isAvailable() const;
177
178protected:
188 void setName(const QString &name);
194 void setDescription(const QString &description);
200 void setShortcutIndexes(const QHash<QString, int> &indexes);
201
206 virtual void cursorMoved(const QPointF &lastPos, const QPointF &pos);
207 virtual void cursorMovedAbsolute(const QPointF &startPos, const QPointF &pos);
208
214 QPoint eventPos(const QEvent *event);
215
222 QPointF eventPosF(const QEvent *event);
223
224private:
225 friend class KisInputManager;
226 static void setInputManager(KisInputManager *manager);
227
228 class Private;
229 Private *const d;
230};
231
232#endif // KIS_ABSTRACT_INPUT_ACTION_H
KisInputActionGroup
Abstract base class for input actions.
virtual QString id() const
virtual QString name() const
KisInputManager * inputManager() const
virtual QString description() const
Central object to manage canvas input.