File indexing completed on 2024-05-12 16:58:26

0001 #ifndef breezeblurhelper_h
0002 #define breezeblurhelper_h
0003 
0004 //////////////////////////////////////////////////////////////////////////////
0005 // breezeblurhelper.h
0006 // handle regions passed to kwin for blurring
0007 // -------------------
0008 //
0009 // SPDX-FileCopyrightText: 2018 Alex Nemeth <alex.nemeth329@gmail.com>
0010 //
0011 // Largely rewritten from Oxygen widget style
0012 // SPDX-FileCopyrightText: 2007 Thomas Luebking <thomas.luebking@web.de>
0013 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0014 //
0015 // SPDX-License-Identifier: MIT
0016 //////////////////////////////////////////////////////////////////////////////
0017 
0018 #include "breeze.h"
0019 #include "breezehelper.h"
0020 
0021 #include <QHash>
0022 #include <QObject>
0023 
0024 namespace Breeze
0025 {
0026 class BlurHelper : public QObject
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     //! constructor
0032     BlurHelper(QObject *);
0033 
0034     //! register widget
0035     void registerWidget(QWidget *);
0036 
0037     //! register widget
0038     void unregisterWidget(QWidget *);
0039 
0040     //! event filter
0041     bool eventFilter(QObject *, QEvent *) override;
0042 
0043 protected:
0044     //! install event filter to object, in a unique way
0045     void addEventFilter(QObject *object)
0046     {
0047         object->removeEventFilter(this);
0048         object->installEventFilter(this);
0049     }
0050 
0051     //! update blur regions for given widget
0052     void update(QWidget *) const;
0053 };
0054 
0055 }
0056 
0057 #endif