Files
BloomPatched/src/Insight/UserInterfaces/InsightWindow/Widgets/SvgToolButton.hpp

68 lines
2.1 KiB
C++

#pragma once
#include <QToolButton>
#include <QString>
#include "SvgWidget.hpp"
namespace Bloom::Widgets
{
class SvgToolButton: public QToolButton
{
Q_OBJECT
Q_PROPERTY(QString svgFilePath READ getSvgFilePath WRITE setSvgFilePath DESIGNABLE true)
Q_PROPERTY(QString disabledSvgFilePath READ getDisabledSvgFilePath WRITE setDisabledSvgFilePath DESIGNABLE true)
Q_PROPERTY(int buttonWidth READ getButtonWidth WRITE setButtonWidth DESIGNABLE true)
Q_PROPERTY(int buttonHeight READ getButtonHeight WRITE setButtonHeight DESIGNABLE true)
private:
SvgWidget* svgWidget = new SvgWidget(this);
SvgWidget* disabledSvgWidget = nullptr;
int buttonWidth = 0;
int buttonHeight = 0;
public:
explicit SvgToolButton(QWidget* parent): QToolButton(parent) {
this->setButtonWidth(10);
this->setButtonHeight(10);
};
void setSvgFilePath(const QString& svgFilePath) {
this->svgWidget->setSvgFilePath(svgFilePath);
}
[[nodiscard]] QString getSvgFilePath() const {
return this->svgWidget->getSvgFilePath();
}
void setDisabledSvgFilePath(const QString& disabledSvgFilePath) {
this->svgWidget->setDisabledSvgFilePath(disabledSvgFilePath);
}
[[nodiscard]] QString getDisabledSvgFilePath() const {
return this->svgWidget->getDisabledSvgFilePath();
}
void setButtonWidth(int buttonWidth) {
this->buttonWidth = buttonWidth;
this->setFixedWidth(buttonWidth);
this->svgWidget->setContainerWidth(buttonWidth);
}
[[nodiscard]] int getButtonWidth() const {
return this->buttonWidth;
}
void setButtonHeight(int buttonHeight) {
this->buttonHeight = buttonHeight;
this->setFixedHeight(buttonHeight);
this->svgWidget->setContainerHeight(buttonHeight);
}
[[nodiscard]] int getButtonHeight() const {
return this->buttonHeight;
}
};
}