KWin
Loading...
Searching...
No Matches
kwinscreenedge.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 Lucas Murray <lmurray@undefinedfire.com>
6 SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10#pragma once
11
12#include <QWidget>
13
14#include "effect/globals.h"
15
16namespace KWin
17{
18
19class Monitor;
20
21class KWinScreenEdge : public QWidget
22{
23 Q_OBJECT
24
25public:
26 explicit KWinScreenEdge(QWidget *parent = nullptr);
27 ~KWinScreenEdge() override;
28
29 void monitorHideEdge(ElectricBorder border, bool hidden);
30 void monitorEnableEdge(ElectricBorder border, bool enabled);
31
32 void monitorAddItem(const QString &item);
33 void monitorItemSetEnabled(int index, bool enabled);
34
35 QList<int> monitorCheckEffectHasEdge(int index) const;
36 int selectedEdgeItem(ElectricBorder border) const;
37
38 void monitorChangeEdge(ElectricBorder border, int index);
39 void monitorChangeEdge(const QList<int> &borderList, int index);
40
41 void monitorChangeDefaultEdge(ElectricBorder border, int index);
42 void monitorChangeDefaultEdge(const QList<int> &borderList, int index);
43
44 // revert to reference settings and assess for saveNeeded and default changed
45 virtual void reload();
46 // reset to default settings and assess for saveNeeded and default changed
47 virtual void setDefaults();
48
49public Q_SLOTS:
50 void onChanged();
51 void createConnection();
52
53Q_SIGNALS:
54 void saveNeededChanged(bool isNeeded);
55 void defaultChanged(bool isDefault);
56
57private:
58 virtual Monitor *monitor() const = 0;
59 virtual bool isSaveNeeded() const;
60 virtual bool isDefault() const;
61
62 // internal use, return Monitor::None if border equals ELECTRIC_COUNT or ElectricNone
63 static int electricBorderToMonitorEdge(ElectricBorder border);
64 static ElectricBorder monitorEdgeToElectricBorder(int edge);
65
66private:
67 QHash<ElectricBorder, int> m_reference; // reference settings
68 QHash<ElectricBorder, int> m_default; // default settings
69};
70
71} // namespace
virtual void setDefaults()
void monitorItemSetEnabled(int index, bool enabled)
KWinScreenEdge(QWidget *parent=nullptr)
void defaultChanged(bool isDefault)
int selectedEdgeItem(ElectricBorder border) const
void saveNeededChanged(bool isNeeded)
void monitorAddItem(const QString &item)
void monitorChangeEdge(ElectricBorder border, int index)
void monitorChangeDefaultEdge(ElectricBorder border, int index)
void monitorHideEdge(ElectricBorder border, bool hidden)
QList< int > monitorCheckEffectHasEdge(int index) const
void monitorEnableEdge(ElectricBorder border, bool enabled)
ElectricBorder
Definition globals.h:60