KWin
Loading...
Searching...
No Matches
tabboxhandler.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: 2009 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#pragma once
11
12#include "tabboxconfig.h"
13
14#include <QModelIndex>
15#include <QPixmap>
16#include <QString>
17
26class QKeyEvent;
27
28namespace KWin
29{
30
31class Window;
32
61namespace TabBox
62{
63class ClientModel;
64class TabBoxConfig;
65class TabBoxHandlerPrivate;
66
74class TabBoxHandler : public QObject
75{
76 Q_OBJECT
77public:
78 TabBoxHandler(QObject *parent);
79 ~TabBoxHandler() override;
80
84 virtual int activeScreen() const = 0;
89 virtual Window *activeClient() const = 0;
102 virtual Window *firstClientFocusChain() const = 0;
116 virtual bool isInFocusChain(Window *client) const = 0;
122 virtual QString desktopName(Window *client) const = 0;
123
127 virtual bool isKWinCompositing() const = 0;
128
132 virtual void elevateClient(Window *c, QWindow *tabbox, bool elevate) const = 0;
133
137 virtual void raiseClient(Window *c) const = 0;
138
143 virtual void restack(Window *c, Window *under) = 0;
144
150 virtual void shadeClient(Window *c, bool b) const = 0;
151
152 virtual void highlightWindows(Window *window = nullptr, QWindow *controller = nullptr) = 0;
153
157 virtual QList<Window *> stackingOrder() const = 0;
172 virtual Window *clientToAddToList(Window *client) const = 0;
176 virtual Window *desktopClient() const = 0;
180 virtual void activateAndClose() = 0;
181
185 const TabBoxConfig &config() const;
191 void setConfig(const TabBoxConfig &config);
192
200 void show();
206 void hide(bool abort = false);
207
213 void setCurrentIndex(const QModelIndex &index);
217 const QModelIndex &currentIndex() const;
218
225 QModelIndex nextPrev(bool forward) const;
226
235 void createModel(bool partialReset = false);
236
241 virtual void grabbedKeyEvent(QKeyEvent *event) const;
246 bool containsPos(const QPoint &pos) const;
253 QModelIndex index(Window *client) const;
258 QList<Window *> clientList() const;
265 Window *client(const QModelIndex &index) const;
271 QModelIndex first() const;
272
273 bool eventFilter(QObject *watcher, QEvent *event) override;
274
279 virtual bool noModifierGrab() const = 0;
280
281Q_SIGNALS:
288
289private Q_SLOTS:
290 void initHighlightWindows();
291
292private:
295};
296
300extern TabBoxHandler *tabBox;
301
302} // namespace TabBox
303} // namespace KWin
void createModel(bool partialReset=false)
virtual void raiseClient(Window *c) const =0
virtual Window * desktopClient() const =0
const QModelIndex & currentIndex() const
virtual Window * nextClientFocusChain(Window *client) const =0
bool containsPos(const QPoint &pos) const
virtual void highlightWindows(Window *window=nullptr, QWindow *controller=nullptr)=0
virtual void shadeClient(Window *c, bool b) const =0
void setConfig(const TabBoxConfig &config)
void hide(bool abort=false)
QList< Window * > clientList() const
virtual bool isInFocusChain(Window *client) const =0
virtual Window * firstClientFocusChain() const =0
virtual void grabbedKeyEvent(QKeyEvent *event) const
QModelIndex nextPrev(bool forward) const
virtual int activeScreen() const =0
virtual Window * clientToAddToList(Window *client) const =0
bool eventFilter(QObject *watcher, QEvent *event) override
Window * client(const QModelIndex &index) const
virtual QString desktopName(Window *client) const =0
virtual bool noModifierGrab() const =0
virtual QList< Window * > stackingOrder() const =0
QModelIndex index(Window *client) const
const TabBoxConfig & config() const
virtual Window * activeClient() const =0
void setCurrentIndex(const QModelIndex &index)
virtual void restack(Window *c, Window *under)=0
virtual void elevateClient(Window *c, QWindow *tabbox, bool elevate) const =0
virtual void activateAndClose()=0
virtual bool isKWinCompositing() const =0
TabBoxHandler * tabBox