2021-08-22 20:41:52 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QLabel>
|
|
|
|
|
#include <QSize>
|
|
|
|
|
|
|
|
|
|
namespace Bloom::Widgets
|
|
|
|
|
{
|
|
|
|
|
class RotatableLabel: public QLabel
|
|
|
|
|
{
|
2021-10-06 21:12:31 +01:00
|
|
|
Q_OBJECT
|
2021-08-22 20:41:52 +01:00
|
|
|
|
2021-10-06 21:12:31 +01:00
|
|
|
public:
|
|
|
|
|
RotatableLabel(const QString& text, QWidget* parent): QLabel(text, parent) {};
|
|
|
|
|
RotatableLabel(int angleDegrees, const QString& text, QWidget* parent)
|
|
|
|
|
: QLabel(text, parent), angle(angleDegrees) {};
|
|
|
|
|
|
|
|
|
|
void setAngle(int angleDegrees) {
|
|
|
|
|
this->angle = angleDegrees;
|
|
|
|
|
}
|
2021-08-22 20:41:52 +01:00
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
void paintEvent(QPaintEvent* event) override;
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] QSize sizeHint() const override {
|
|
|
|
|
return this->getContainerSize();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] QSize minimumSizeHint() const override {
|
|
|
|
|
return this->getContainerSize();
|
|
|
|
|
};
|
|
|
|
|
|
2021-10-06 21:12:31 +01:00
|
|
|
private:
|
|
|
|
|
int angle = 90;
|
2021-08-22 20:41:52 +01:00
|
|
|
|
2021-10-06 21:12:31 +01:00
|
|
|
[[nodiscard]] QSize getContainerSize() const;
|
2021-08-22 20:41:52 +01:00
|
|
|
};
|
|
|
|
|
}
|