9#include "qml_material/util/corner.hpp"
10#include "qml_material/enum.hpp"
11#include "qml_material/token/token.hpp"
12#include "qml_material/core.hpp"
17class Util :
public QObject {
19 QML_NAMED_ELEMENT(UtilCpp)
21 Util(QObject* parent =
nullptr);
31 Q_INVOKABLE
void track(QVariant, Track);
33 Q_INVOKABLE
bool hasIcon(
const QJSValue& v)
const;
35 Q_INVOKABLE
static void closePopup(QObject* obj);
37 Q_INVOKABLE
static QColor transparent(QColor in,
float alpha)
noexcept;
38 Q_INVOKABLE
static QColor hoverColor(QColor in)
noexcept;
39 Q_INVOKABLE
static QColor pressColor(QColor in)
noexcept;
41 Q_INVOKABLE
static qreal devicePixelRatio(QQuickItem* in);
43 Q_INVOKABLE
static CornersGroup listCorners(qint32 idx, qint32 count, qint32 radius)
noexcept;
44 Q_INVOKABLE
static CornersGroup tableCorners(qint32 row, qint32 column, qint32 rows,
45 qint32 columns, qint32 radius)
noexcept;
46 Q_INVOKABLE
static CornersGroup tableWithHeaderCorners(qint32 row, qint32 column, qint32 rows,
47 qint32 columns, qint32 radius)
noexcept;
49 Q_INVOKABLE
static CornersGroup cornerArray(QVariant in)
noexcept;
50 Q_INVOKABLE
static CornersGroup corners(qreal in)
noexcept;
51 Q_INVOKABLE
static CornersGroup corners(qreal, qreal)
noexcept;
52 Q_INVOKABLE
static CornersGroup corners(qreal tl, qreal tr, qreal bl, qreal br)
noexcept;
54 QString type_str(
const QJSValue&);
56 Q_INVOKABLE
void print_parents(
const QJSValue&);
58 Q_INVOKABLE
static qreal lightness(QColor color)
noexcept;
60 Q_INVOKABLE
static token::Elevation tokenElevation() noexcept;
61 Q_INVOKABLE static token::Shape tokenShape() noexcept;
62 Q_INVOKABLE static token::State tokenState() noexcept;
64 Q_INVOKABLE QObject* createItem(const QJSValue& url_or_comp, const QVariantMap& props,
65 QObject* parent =
nullptr);
67 Q_INVOKABLE QObject* showPopup(const QJSValue& url_or_comp, const QVariantMap& props,
68 QObject* parent =
nullptr,
bool open_and_destry = true);
70 Q_INVOKABLE static QString paramsString(const QVariantMap& props);
71 Q_INVOKABLE static
void setCursor(QQuickItem* item, Qt::CursorShape shape);
73 Q_INVOKABLE static
double clamp(
double t,
double low,
double high);
74 Q_INVOKABLE static
double teleportCurve(
double t,
double left,
double right);
76 Q_INVOKABLE static
void forceSetImplicitHeight(QQuickItem* item, qreal height);
77 Q_INVOKABLE static
void forceSetImplicitWidth(QQuickItem* item, qreal width);
79 Q_INVOKABLE static
void cellHoveredOn(QQuickItem* item,
bool hovered, qint32 row,
81 Q_INVOKABLE static QObject* getParent(QObject* obj);
82 Q_INVOKABLE static
bool disconnectAll(QObject* obj, const QString&);
85 Q_SLOT
void onPopupClosed();
88 usize m_tracked { 0 };
91auto tryCreateComponent(
const QVariant& val, QQmlComponent::CompilationMode useAsync,
92 const std::function<QQmlComponent*()>& createComponent) -> QQmlComponent*;
97auto qml_dyn_count() -> std::atomic<i32>&;
98auto createItem(QQmlEngine* engine,
const QJSValue& url_or_comp,
const QVariantMap& props,
99 QObject* parent) -> QObject*;