kwin/src/input_event_spy.h
Vlad Zahorodnii 93e0265e4e Move source code to src/ directory
Once in a while, we receive complaints from other fellow KDE developers
about the file organization of kwin. This change addresses some of those
complaints by moving all of source code in a separate directory, src/,
thus making the project structure more traditional. Things such as tests
are kept in their own toplevel directories.

This change may wreak havoc on merge requests that add new files to kwin,
but if a patch modifies an already existing file, git should be smart
enough to figure out that the file has been relocated.

We may potentially split the src/ directory further to make navigating
the source code easier, but hopefully this is good enough already.
2021-02-10 15:31:43 +00:00

89 lines
2.8 KiB
C++

/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KWIN_INPUT_EVENT_SPY_H
#define KWIN_INPUT_EVENT_SPY_H
#include <kwin_export.h>
#include <QtGlobal>
class QPointF;
class QSizeF;
class QTabletEvent;
namespace KWin
{
class KeyEvent;
class MouseEvent;
class WheelEvent;
class SwitchEvent;
class TabletEvent;
class TabletToolId;
class TabletPadId;
/**
* Base class for spying on input events inside InputRedirection.
*
* This class is quite similar to InputEventFilter, except that it does not
* support event filtering. Each InputEventSpy gets to see all input events,
* the processing happens prior to sending events through the InputEventFilters.
*
* Deleting an instance of InputEventSpy automatically uninstalls it from
* InputRedirection.
*/
class KWIN_EXPORT InputEventSpy
{
public:
InputEventSpy();
virtual ~InputEventSpy();
/**
* Event spy for pointer events which can be described by a MouseEvent.
*
* @param event The event information about the move or button press/release
*/
virtual void pointerEvent(MouseEvent *event);
/**
* Event spy for pointer axis events.
*
* @param event The event information about the axis event
*/
virtual void wheelEvent(WheelEvent *event);
/**
* Event spy for keyboard events.
*
* @param event The event information about the key event
*/
virtual void keyEvent(KeyEvent *event);
virtual void touchDown(qint32 id, const QPointF &pos, quint32 time);
virtual void touchMotion(qint32 id, const QPointF &pos, quint32 time);
virtual void touchUp(qint32 id, quint32 time);
virtual void pinchGestureBegin(int fingerCount, quint32 time);
virtual void pinchGestureUpdate(qreal scale, qreal angleDelta, const QSizeF &delta, quint32 time);
virtual void pinchGestureEnd(quint32 time);
virtual void pinchGestureCancelled(quint32 time);
virtual void swipeGestureBegin(int fingerCount, quint32 time);
virtual void swipeGestureUpdate(const QSizeF &delta, quint32 time);
virtual void swipeGestureEnd(quint32 time);
virtual void swipeGestureCancelled(quint32 time);
virtual void switchEvent(SwitchEvent *event);
virtual void tabletToolEvent(TabletEvent *event);
virtual void tabletToolButtonEvent(uint button, bool pressed, const TabletToolId &tabletToolId);
virtual void tabletPadButtonEvent(uint button, bool pressed, const TabletPadId &tabletPadId);
virtual void tabletPadStripEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId);
virtual void tabletPadRingEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId);
};
} // namespace KWin
#endif