File indexing completed on 2025-02-02 05:02:43

0001 /*
0002     SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef BRIGHTNESSMANAGER_H
0008 #define BRIGHTNESSMANAGER_H
0009 
0010 #include "solidextras_export.h"
0011 
0012 #include <QObject>
0013 
0014 class BrightnessBackend : public QObject
0015 {
0016 public:
0017     explicit BrightnessBackend(QObject *parent = nullptr) : QObject(parent)
0018     , m_maximized()
0019     , m_previousValue()
0020     {}
0021     ~BrightnessBackend() override = default;
0022 
0023 public:
0024     virtual void toggleBrightness();
0025 
0026 protected:
0027     virtual void setBrightness(float brightness) = 0;
0028     virtual float brightness() const = 0;
0029     virtual float maxBrightness() const = 0;
0030 
0031 private:
0032     bool m_maximized;
0033     int m_previousValue;
0034 };
0035 
0036 class SOLIDEXTRAS_EXPORT BrightnessManager : public QObject
0037 {
0038     Q_OBJECT
0039 
0040 public:
0041     explicit BrightnessManager(QObject *parent = nullptr);
0042     ~BrightnessManager() override;
0043 
0044 public Q_SLOTS:
0045     void toggleBrightness();
0046 
0047 private:
0048     BrightnessBackend *m_backend;
0049 };
0050 
0051 #endif //  BRIGHTNESSMANAGER_H
0052