42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <qfont.h>
|
|
#include <qqmlintegration.h>
|
|
#include <qvariant.h>
|
|
|
|
namespace ZShell::config {
|
|
|
|
class FontBuilder {
|
|
Q_GADGET
|
|
QML_ANONYMOUS
|
|
|
|
public:
|
|
FontBuilder() = default;
|
|
explicit FontBuilder(const QFont& font);
|
|
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder family(const QString& family);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder size(int pointSize);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder pixelSize(int pixelSize);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder weight(QFont::Weight weight);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder italic(bool on = true);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder stretch(int stretch);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder
|
|
letterSpacing(qreal spacing, bool absolute = true);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder
|
|
capitalisation(QFont::Capitalization cap);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder vaxis(const QString& tag, float value);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder vaxes(const QVariantMap& axes);
|
|
[[nodiscard]] Q_INVOKABLE QFont build() const;
|
|
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder fill(float value);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder grade(float value);
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder width(float value);
|
|
|
|
[[nodiscard]] Q_INVOKABLE FontBuilder scale(qreal factor);
|
|
|
|
private:
|
|
QFont m_font;
|
|
};
|
|
|
|
} // namespace ZShell::config
|