blob: 191dc5ef96ceb8d6067ebd2dbb84db1267c8dc20 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#pragma once
#include <QCheckBox>
#include <QFile>
#include <QObject>
#include <QSvgRenderer>
/*
* The ToggleSwitch class represents Toggle Switch widget based on QCheckBox and toggles svg with colorscheme support
*/
class ToggleSwitch : public QCheckBox {
Q_OBJECT
public:
explicit ToggleSwitch(QWidget* parent = nullptr);
private:
QSvgRenderer m_svgr;
static const QByteArray s_toggleOnSvgContent;
static const QByteArray s_toggleOffSvgContent;
static const int s_colorPosInToggleOn;
QByteArray m_toggleOnSvgContentColored;
/* QWidget interface */
protected:
void paintEvent(QPaintEvent *event) override;
/* QAbstractButton interface */
protected:
bool hitButton(const QPoint &pos) const override
{
/* needs to be clickable on */
return rect().contains(pos);
}
};