File indexing completed on 2024-04-28 16:44:33

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 #pragma once
0007 #include "decoration.h"
0008 
0009 //
0010 //  W A R N I N G
0011 //  -------------
0012 //
0013 // This file is not part of the KDecoration2 API.  It exists purely as an
0014 // implementation detail.  This header file may change from version to
0015 // version without notice, or even be removed.
0016 //
0017 // We mean it.
0018 //
0019 
0020 namespace KDecoration2
0021 {
0022 class Decoration;
0023 class DecorationBridge;
0024 class DecorationButton;
0025 class DecoratedClient;
0026 class DecorationSettings;
0027 class DecorationShadow;
0028 
0029 class Q_DECL_HIDDEN Decoration::Private
0030 {
0031 public:
0032     Private(Decoration *decoration, const QVariantList &args);
0033 
0034     QMargins borders;
0035     QMargins resizeOnlyBorders;
0036 
0037     Qt::WindowFrameSection sectionUnderMouse;
0038     void setSectionUnderMouse(Qt::WindowFrameSection section);
0039     void updateSectionUnderMouse(const QPoint &mousePosition);
0040 
0041     QRect titleBar;
0042     QRegion blurRegion;
0043 
0044     void addButton(DecorationButton *button);
0045 
0046     QSharedPointer<DecorationSettings> settings;
0047     DecorationBridge *bridge;
0048     QSharedPointer<DecoratedClient> client;
0049     bool opaque;
0050     QVector<DecorationButton *> buttons;
0051     QSharedPointer<DecorationShadow> shadow;
0052 
0053 private:
0054     Decoration *q;
0055 };
0056 
0057 } // namespace