dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
switchwidget.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 "widgets/settingsitem.h"
8#include <dtkwidget_global.h>
9#include <QLabel>
10
11DWIDGET_BEGIN_NAMESPACE
12class DSwitchButton;
13DWIDGET_END_NAMESPACE
14
15QT_BEGIN_NAMESPACE
16class QHBoxLayout;
17QT_END_NAMESPACE
18
19namespace DCC_NAMESPACE {
20
21class SwitchLabel : public QLabel
22{
23 Q_OBJECT
24
25public:
26 explicit SwitchLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
27 inline QSize actualSize() { return m_actualSize; }
28
29protected:
30 void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
31
32private:
33 QSize m_actualSize;
34 QString m_sourceText;
35};
36
38{
39 Q_OBJECT
40
41public:
42 // explicit SwitchWidget(QWidget *parent = nullptr);
43 explicit SwitchWidget(const QString &title, QWidget *parent = nullptr);
44 explicit SwitchWidget(QWidget *parent = nullptr, QWidget *widget = nullptr);
45
46 void setChecked(const bool checked = true);
47 QString title() const;
48 void setTitle(const QString &title);
49 bool checked() const;
50
51 void setLeftWidget(QWidget *widget);
52 QWidget *leftWidget() const { return m_leftWidget; }
53 QHBoxLayout* getMainLayout() { return m_mainLayout; }
54
55public:
56 inline DTK_WIDGET_NAMESPACE::DSwitchButton *switchButton() const { return m_switchBtn; }
57
58Q_SIGNALS:
59 void checkedChanged(const bool checked) const;
60 void clicked();
61
62protected:
63 void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
64
65private:
66 void init();
67
68 QWidget *m_leftWidget;
69 Dtk::Widget::DSwitchButton *m_switchBtn;
70 QHBoxLayout *m_mainLayout;
71};
72
73}
Definition settingsitem.h:11
Definition switchwidget.h:22
Definition switchwidget.h:38