mirror-chatterino2/src/widgets/helper/SettingsDialogTab.hpp

53 lines
915 B
C++
Raw Normal View History

#pragma once
2017-01-01 18:43:52 +01:00
2018-06-26 14:09:39 +02:00
#include "widgets/BaseWidget.hpp"
2018-01-12 23:09:05 +01:00
#include <QIcon>
2017-01-18 04:52:47 +01:00
#include <QPaintEvent>
2017-01-01 18:43:52 +01:00
#include <QWidget>
2017-01-18 21:30:23 +01:00
namespace chatterino {
2018-06-26 16:37:59 +02:00
class SettingsPage;
2017-01-02 03:02:32 +01:00
class SettingsDialog;
2020-02-21 01:17:22 +01:00
enum SettingsTabId {
None,
Accounts,
Moderation,
};
2018-01-27 21:51:08 +01:00
class SettingsDialogTab : public BaseWidget
2017-01-01 18:43:52 +01:00
{
Q_OBJECT
2017-01-02 03:02:32 +01:00
2017-01-01 18:43:52 +01:00
public:
2018-08-06 21:17:03 +02:00
SettingsDialogTab(SettingsDialog *dialog_, SettingsPage *page_,
2020-02-21 01:17:22 +01:00
QString imageFileName, SettingsTabId id = {});
2017-01-02 03:02:32 +01:00
2018-07-06 19:23:47 +02:00
void setSelected(bool selected_);
2020-02-21 00:46:19 +01:00
SettingsPage *page();
2020-02-21 01:17:22 +01:00
SettingsTabId id() const;
2017-01-02 03:02:32 +01:00
signals:
void selectedChanged(bool);
2017-01-01 18:43:52 +01:00
private:
void paintEvent(QPaintEvent *);
2017-04-14 17:47:28 +02:00
void mousePressEvent(QMouseEvent *event);
2017-01-02 03:02:32 +01:00
2017-07-02 12:36:50 +02:00
struct {
QString labelText;
QIcon icon;
2018-07-06 19:23:47 +02:00
} ui_;
2017-01-02 03:02:32 +01:00
2017-07-02 12:36:50 +02:00
// Parent settings dialog
2018-07-06 19:23:47 +02:00
SettingsDialog *dialog_;
SettingsPage *page_;
2020-02-21 01:17:22 +01:00
SettingsTabId id_;
2017-01-02 03:02:32 +01:00
2018-07-06 19:23:47 +02:00
bool selected_ = false;
2017-01-01 18:43:52 +01:00
};
2017-04-14 17:52:22 +02:00
} // namespace chatterino