dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
settingsgroup.h
1//SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
2//
3//SPDX-License-Identifier: GPL-3.0-or-later
4#pragma once
5
6#include "interface/namespace.h"
7#include <dtkwidget_global.h>
8
9#include <QFrame>
10
11DWIDGET_BEGIN_NAMESPACE
12class DBackgroundGroup;
13DWIDGET_END_NAMESPACE
14
15class QVBoxLayout;
16
17namespace DCC_NAMESPACE {
18
19class SettingsItem;
20class SettingsHeaderItem;
21
22class SettingsGroup : public QFrame
23{
24 Q_OBJECT
25
26public:
27 enum BackgroundStyle {
28 ItemBackground = 0,
29 GroupBackground,
30 NoneBackground
31 };
32
33 explicit SettingsGroup(QFrame *parent = nullptr, BackgroundStyle bgStyle = ItemBackground);
34 explicit SettingsGroup(const QString &title, QFrame *parent = nullptr);
36
37 SettingsHeaderItem *headerItem() const { return m_headerItem; }
38 void setHeaderVisible(const bool visible);
39
40 SettingsItem *getItem(int index);
41 void insertWidget(QWidget *widget);
42 void insertItem(const int index, SettingsItem *item);
43 void appendItem(SettingsItem *item);
44 void appendItem(SettingsItem *item, BackgroundStyle bgStyle);
45 void removeItem(SettingsItem *item);
46 void moveItem(SettingsItem *item, const int index);
47 void setSpacing(const int spacing);
48
49 int itemCount() const;
50 void clear();
51 QVBoxLayout *getLayout() const { return m_layout; }
52
53 void setBackgroundStyle(BackgroundStyle bgStyle);
54 BackgroundStyle backgroundStyle() const { return m_bgStyle; }
55
56protected:
57 void resizeEvent(QResizeEvent *event) override;
58private:
59 BackgroundStyle m_bgStyle{ItemBackground};
60 QVBoxLayout *m_layout;
61 SettingsHeaderItem *m_headerItem;
62 DTK_WIDGET_NAMESPACE::DBackgroundGroup *m_bggroup{nullptr};
63};
64
65}
Definition settingsgroup.h:23
Definition settingsheaderitem.h:15
Definition settingsitem.h:11