#include "widgets/settingsdialogtab.h" #include "widgets/settingsdialog.h" #include #include namespace chatterino { namespace widgets { SettingsDialogTab::SettingsDialogTab(SettingsDialog *dialog, QString label, QString imageRes) : _label(label) , _image(QImage(imageRes)) , _dialog(dialog) , _selected(false) { setFixedHeight(32); setCursor(QCursor(Qt::PointingHandCursor)); setStyleSheet("color: #FFF"); } void SettingsDialogTab::setSelected(bool selected) { if (_selected == selected) return; _selected = selected; emit selectedChanged(selected); } bool SettingsDialogTab::getSelected() const { return _selected; } QWidget *SettingsDialogTab::getWidget() { return _widget; } void SettingsDialogTab::setWidget(QWidget *widget) { _widget = widget; } void SettingsDialogTab::paintEvent(QPaintEvent *) { QPainter painter(this); QStyleOption opt; opt.init(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); int a = (height() - _image.width()) / 2; painter.drawImage(a, a, _image); a = a + a + _image.width(); painter.drawText(QRect(a, 0, width() - a, height()), _label, QTextOption(Qt::AlignLeft | Qt::AlignVCenter)); } void SettingsDialogTab::mousePressEvent(QMouseEvent *event) { if (event->button() != Qt::LeftButton) { return; } _dialog->select(this); } } // namespace widgets } // namespace chatterino