KWin
Loading...
Searching...
No Matches
netinfo.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 SPDX-FileCopyrightText: 2009 Lucas Murray <lmurray@undefinedfire.com>
8 SPDX-FileCopyrightText: 2013 Martin Gräßlin <mgraesslin@kde.org>
9
10 SPDX-License-Identifier: GPL-2.0-or-later
11*/
12#pragma once
13
14#include <NETWM>
15
16#include <memory>
17#include <xcb/xcb.h>
18
19namespace KWin
20{
21
22class Window;
23class RootInfoFilter;
24class X11Window;
25
29class RootInfo : public NETRootInfo
30{
31public:
32 static RootInfo *create();
33 static void destroy();
34 RootInfo(xcb_window_t w, const char *name, NET::Properties properties, NET::WindowTypes types,
35 NET::States states, NET::Properties2 properties2, NET::Actions actions, int scr = -1);
36
37 void setActiveClient(Window *client);
38
39protected:
40 void changeNumberOfDesktops(int n) override;
41 void changeCurrentDesktop(int d) override;
42 void changeActiveWindow(xcb_window_t w, NET::RequestSource src, xcb_timestamp_t timestamp, xcb_window_t active_window) override;
43 void closeWindow(xcb_window_t w) override;
44 void moveResize(xcb_window_t w, int x_root, int y_root, unsigned long direction, xcb_button_t button, RequestSource source) override;
45 void moveResizeWindow(xcb_window_t w, int flags, int x, int y, int width, int height) override;
46 void showWindowMenu(xcb_window_t w, int device_id, int x_root, int y_root) override;
47 void gotPing(xcb_window_t w, xcb_timestamp_t timestamp) override;
48 void restackWindow(xcb_window_t w, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp) override;
49 void changeShowingDesktop(bool showing) override;
50
51private:
52 static std::unique_ptr<RootInfo> s_self;
53 friend RootInfo *rootInfo();
54
55 xcb_window_t m_activeWindow;
56 std::unique_ptr<RootInfoFilter> m_eventFilter;
57};
58
60{
61 return RootInfo::s_self.get();
62}
63
67class WinInfo : public NETWinInfo
68{
69public:
70 WinInfo(X11Window *c, xcb_window_t window,
71 xcb_window_t rwin, NET::Properties properties, NET::Properties2 properties2);
72 void changeDesktop(int desktop) override;
73 void changeFullscreenMonitors(NETFullscreenMonitors topology) override;
74 void changeState(NET::States state, NET::States mask) override;
75 void disable();
76
77private:
78 X11Window *m_client;
79};
80
81} // KWin
void restackWindow(xcb_window_t w, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp) override
Definition netinfo.cpp:180
RootInfo(xcb_window_t w, const char *name, NET::Properties properties, NET::WindowTypes types, NET::States states, NET::Properties2 properties2, NET::Actions actions, int scr=-1)
Definition netinfo.cpp:132
friend RootInfo * rootInfo()
Definition netinfo.h:59
void showWindowMenu(xcb_window_t w, int device_id, int x_root, int y_root) override
Definition netinfo.cpp:218
void moveResizeWindow(xcb_window_t w, int flags, int x, int y, int width, int height) override
Definition netinfo.cpp:210
void changeCurrentDesktop(int d) override
Definition netinfo.cpp:145
static RootInfo * create()
Definition netinfo.cpp:26
void setActiveClient(Window *client)
Definition netinfo.cpp:237
void gotPing(xcb_window_t w, xcb_timestamp_t timestamp) override
Definition netinfo.cpp:225
void moveResize(xcb_window_t w, int x_root, int y_root, unsigned long direction, xcb_button_t button, RequestSource source) override
Definition netinfo.cpp:201
void changeNumberOfDesktops(int n) override
Definition netinfo.cpp:140
void changeShowingDesktop(bool showing) override
Definition netinfo.cpp:232
void closeWindow(xcb_window_t w) override
Definition netinfo.cpp:193
void changeActiveWindow(xcb_window_t w, NET::RequestSource src, xcb_timestamp_t timestamp, xcb_window_t active_window) override
Definition netinfo.cpp:150
static void destroy()
Definition netinfo.cpp:122
void changeFullscreenMonitors(NETFullscreenMonitors topology) override
Definition netinfo.cpp:268
WinInfo(X11Window *c, xcb_window_t window, xcb_window_t rwin, NET::Properties properties, NET::Properties2 properties2)
Definition netinfo.cpp:254
void changeState(NET::States state, NET::States mask) override
Definition netinfo.cpp:273
void changeDesktop(int desktop) override
Definition netinfo.cpp:261
void disable()
Definition netinfo.cpp:320
RootInfo * rootInfo()
Definition netinfo.h:59