KWin
Loading...
Searching...
No Matches
common.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 1999, 2000 Matthias Ettrich <ettrich@kde.org>
6 SPDX-FileCopyrightText: 2003 Lubos Lunak <l.lunak@kde.org>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10
11#pragma once
12
13// cmake stuff
14#include "config-kwin.h"
15// kwin
16#include "effect/globals.h"
17#include "utils/version.h"
18// Qt
19#include <QList>
20#include <QLoggingCategory>
21#include <QMatrix4x4>
22#include <QPoint>
23#include <QRect>
24// system
25#include <climits>
26Q_DECLARE_LOGGING_CATEGORY(KWIN_CORE)
27Q_DECLARE_LOGGING_CATEGORY(KWIN_OPENGL)
28Q_DECLARE_LOGGING_CATEGORY(KWIN_QPAINTER)
29Q_DECLARE_LOGGING_CATEGORY(KWIN_VIRTUALKEYBOARD)
30namespace KWin
31{
32
33const QPoint invalidPoint(INT_MIN, INT_MIN);
34
43Q_DECLARE_FLAGS(StrutAreas, StrutArea)
44
45class KWIN_EXPORT StrutRect : public QRect
46{
47public:
48 explicit StrutRect(QRect rect = QRect(), StrutArea area = StrutAreaInvalid);
49 StrutRect(int x, int y, int width, int height, StrutArea area = StrutAreaInvalid);
50 StrutRect(const StrutRect &other);
51 StrutRect &operator=(const StrutRect &other);
52 inline StrutArea area() const
53 {
54 return m_area;
55 }
56
57private:
58 StrutArea m_area;
59};
60typedef QList<StrutRect> StrutRects;
61
63 ShadeNone, // not shaded
64 ShadeNormal, // normally shaded - isShade() is true only here
65 ShadeHover, // "shaded", but visible due to hover unshade
66 ShadeActivated // "shaded", but visible due to alt+tab to the window
67};
68
81
83{
84 return MaximizeMode(int(m1) ^ int(m2));
85}
86
87// converting between X11 mouse/keyboard state mask and Qt button/keyboard states
88Qt::MouseButton x11ToQtMouseButton(int button);
89Qt::MouseButton KWIN_EXPORT x11ToQtMouseButton(int button);
90Qt::MouseButtons KWIN_EXPORT x11ToQtMouseButtons(int state);
91Qt::KeyboardModifiers KWIN_EXPORT x11ToQtKeyboardModifiers(int state);
92
93KWIN_EXPORT QPointF popupOffset(const QRectF &anchorRect, const Qt::Edges anchorEdge, const Qt::Edges gravity, const QSizeF popupSize);
94KWIN_EXPORT QRectF gravitateGeometry(const QRectF &rect, const QRectF &bounds, Gravity gravity);
95
96} // namespace
97
98// Must be outside namespace
99Q_DECLARE_OPERATORS_FOR_FLAGS(KWin::StrutAreas)
100Q_DECLARE_OPERATORS_FOR_FLAGS(KWin::QuickTileMode)
StrutArea area() const
Definition common.h:52
Gravity
Definition globals.h:150
ShadeMode
Definition common.h:62
@ ShadeActivated
Definition common.h:66
@ ShadeNone
Definition common.h:63
@ ShadeHover
Definition common.h:65
@ ShadeNormal
Definition common.h:64
Qt::MouseButtons x11ToQtMouseButtons(int state)
Definition common.cpp:155
MaximizeMode operator^(MaximizeMode m1, MaximizeMode m2)
Definition common.h:82
const QPoint invalidPoint(INT_MIN, INT_MIN)
Qt::MouseButton x11ToQtMouseButton(int button)
Definition common.cpp:135
MaximizeMode
Definition common.h:74
@ MaximizeVertical
The window is maximized vertically.
Definition common.h:76
@ MaximizeRestore
The window is not maximized in any direction.
Definition common.h:75
@ MaximizeHorizontal
Definition common.h:77
@ MaximizeFull
Equal to MaximizeVertical | MaximizeHorizontal.
Definition common.h:79
StrutArea
Definition common.h:35
@ StrutAreaInvalid
Definition common.h:36
@ StrutAreaRight
Definition common.h:38
@ StrutAreaBottom
Definition common.h:39
@ StrutAreaTop
Definition common.h:37
@ StrutAreaLeft
Definition common.h:40
@ StrutAreaAll
Definition common.h:41
QPointF popupOffset(const QRectF &anchorRect, const Qt::Edges anchorEdge, const Qt::Edges gravity, const QSizeF popupSize)
Definition common.cpp:194
QList< StrutRect > StrutRects
Definition common.h:60
QRectF gravitateGeometry(const QRectF &rect, const QRectF &bounds, Gravity gravity)
Definition common.cpp:246
Qt::KeyboardModifiers x11ToQtKeyboardModifiers(int state)
Definition common.cpp:176