File indexing completed on 2024-04-28 05:26:20

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