File indexing completed on 2026-06-14 05:21:53

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2009 Martin Gräßlin <mgraesslin@kde.org>
0006     SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
0007     SPDX-FileCopyrightText: 2023 Ismael Asensio <isma.af@gmail.com>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #pragma once
0013 
0014 #include <kcmodule.h>
0015 #include <ksharedconfig.h>
0016 
0017 namespace KWin
0018 {
0019 class KWinTabBoxConfigForm;
0020 namespace TabBox
0021 {
0022 class KWinTabboxData;
0023 class TabBoxSettings;
0024 }
0025 
0026 class KWinTabBoxConfig : public KCModule
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit KWinTabBoxConfig(QObject *parent, const KPluginMetaData &data);
0032     ~KWinTabBoxConfig() override;
0033 
0034 public Q_SLOTS:
0035     void save() override;
0036     void load() override;
0037     void defaults() override;
0038 
0039 private Q_SLOTS:
0040     void updateUnmanagedState();
0041     void configureEffectClicked();
0042 
0043 private:
0044     void initLayoutLists();
0045     void createConnections(KWinTabBoxConfigForm *form);
0046 
0047 private:
0048     KWinTabBoxConfigForm *m_primaryTabBoxUi = nullptr;
0049     KWinTabBoxConfigForm *m_alternativeTabBoxUi = nullptr;
0050     KSharedConfigPtr m_config;
0051 
0052     TabBox::KWinTabboxData *m_data;
0053 };
0054 
0055 } // namespace