1fb9f6f13a
The main advantage of SPDX license identifiers over the traditional license headers is that it's more difficult to overlook inappropriate licenses for kwin, for example GPL 3. We also don't have to copy a lot of boilerplate text. In order to create this change, I ran licensedigger -r -c from the toplevel source directory.
65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
/********************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
SPDX-FileCopyrightText: 2007 Lubos Lunak <l.lunak@kde.org>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
*********************************************************************/
|
|
|
|
#ifndef KWIN_MOUSEMARK_H
|
|
#define KWIN_MOUSEMARK_H
|
|
|
|
#include <kwineffects.h>
|
|
#include <kwinglutils.h>
|
|
#include <kwinxrenderutils.h>
|
|
|
|
struct xcb_render_color_t;
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
class MouseMarkEffect
|
|
: public Effect
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(int width READ configuredWidth)
|
|
Q_PROPERTY(QColor color READ configuredColor)
|
|
public:
|
|
MouseMarkEffect();
|
|
~MouseMarkEffect() override;
|
|
void reconfigure(ReconfigureFlags) override;
|
|
void paintScreen(int mask, const QRegion ®ion, ScreenPaintData& data) override;
|
|
bool isActive() const override;
|
|
|
|
// for properties
|
|
int configuredWidth() const {
|
|
return width;
|
|
}
|
|
QColor configuredColor() const {
|
|
return color;
|
|
}
|
|
private Q_SLOTS:
|
|
void clear();
|
|
void clearLast();
|
|
void slotMouseChanged(const QPoint& pos, const QPoint& old,
|
|
Qt::MouseButtons buttons, Qt::MouseButtons oldbuttons,
|
|
Qt::KeyboardModifiers modifiers, Qt::KeyboardModifiers oldmodifiers);
|
|
void screenLockingChanged(bool locked);
|
|
private:
|
|
typedef QVector< QPoint > Mark;
|
|
void drawMark(QPainter *painter, const Mark &mark);
|
|
static Mark createArrow(QPoint arrow_start, QPoint arrow_end);
|
|
#ifdef KWIN_HAVE_XRENDER_COMPOSITING
|
|
void addRect(const QPoint &p1, const QPoint &p2, xcb_rectangle_t *r, xcb_render_color_t *c);
|
|
#endif
|
|
QVector< Mark > marks;
|
|
Mark drawing;
|
|
QPoint arrow_start;
|
|
int width;
|
|
QColor color;
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|