File indexing completed on 2024-05-12 16:59:29
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 0008 #include "../decorationdefines.h" 0009 #include <QFont> 0010 #include <QFontMetricsF> 0011 #include <QVector> 0012 #include <kdecoration2/private/kdecoration2_private_export.h> 0013 0014 // 0015 // W A R N I N G 0016 // ------------- 0017 // 0018 // This file is not part of the KDecoration2 API. It exists purely as an 0019 // implementation detail. This header file may change from version to 0020 // version without notice, or even be removed. 0021 // 0022 // We mean it. 0023 // 0024 0025 namespace KDecoration2 0026 { 0027 class DecorationSettings; 0028 0029 class KDECORATIONS_PRIVATE_EXPORT DecorationSettingsPrivate 0030 { 0031 public: 0032 virtual ~DecorationSettingsPrivate(); 0033 virtual bool isOnAllDesktopsAvailable() const = 0; 0034 virtual bool isAlphaChannelSupported() const = 0; 0035 virtual bool isCloseOnDoubleClickOnMenu() const = 0; 0036 virtual QVector<DecorationButtonType> decorationButtonsLeft() const = 0; 0037 virtual QVector<DecorationButtonType> decorationButtonsRight() const = 0; 0038 virtual BorderSize borderSize() const = 0; 0039 virtual QFont font() const; 0040 virtual QFontMetricsF fontMetrics() const; 0041 0042 DecorationSettings *decorationSettings(); 0043 const DecorationSettings *decorationSettings() const; 0044 0045 int gridUnit() const; 0046 int smallSpacing() const; 0047 int largeSpacing() const; 0048 void setGridUnit(int unit); 0049 void setLargeSpacing(int spacing); 0050 void setSmallSpacing(int spacing); 0051 0052 protected: 0053 explicit DecorationSettingsPrivate(DecorationSettings *parent); 0054 0055 private: 0056 class Private; 0057 const QScopedPointer<Private> d; 0058 }; 0059 }