9#include "qml_material/util/corner.hpp"
10#include "qml_material/core/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);
37 Q_INVOKABLE
void openUrlExternally(
const QString& url);
38 Q_INVOKABLE
void openFolderExternally(
const QString& url);
40 Q_INVOKABLE
bool hasIcon(
const QJSValue& v)
const;
42 Q_INVOKABLE
static void closePopup(QObject* obj);
44 Q_INVOKABLE
static QColor transparent(QColor in,
float alpha)
noexcept;
45 Q_INVOKABLE
static QColor hoverColor(QColor in)
noexcept;
46 Q_INVOKABLE
static QColor pressColor(QColor in)
noexcept;
48 Q_INVOKABLE
static qreal devicePixelRatio(QQuickItem* in);
50 Q_INVOKABLE
static CornersGroup listCorners(qint32 idx, qint32 count, qint32 radius)
noexcept;
51 Q_INVOKABLE
static CornersGroup tableCorners(qint32 row, qint32 column, qint32 rows,
52 qint32 columns, qint32 radius)
noexcept;
53 Q_INVOKABLE
static CornersGroup tableWithHeaderCorners(qint32 row, qint32 column, qint32 rows,
54 qint32 columns, qint32 radius)
noexcept;
56 Q_INVOKABLE
static CornersGroup cornerArray(QVariant in)
noexcept;
57 Q_INVOKABLE
static CornersGroup corners(qreal in)
noexcept;
58 Q_INVOKABLE
static CornersGroup corners(qreal, qreal)
noexcept;
59 Q_INVOKABLE
static CornersGroup corners(qreal tl, qreal tr, qreal bl, qreal br)
noexcept;
61 QString type_str(
const QJSValue&);
63 Q_INVOKABLE
void print_parents(
const QJSValue&);
65 Q_INVOKABLE
static qreal lightness(QColor color)
noexcept;
67 Q_INVOKABLE
static token::Elevation tokenElevation() noexcept;
68 Q_INVOKABLE static token::Shape tokenShape() noexcept;
69 Q_INVOKABLE static token::State tokenState() noexcept;
71 Q_INVOKABLE QObject* createItem(const QJSValue& url_or_comp, const QVariantMap& props,
72 QObject* parent =
nullptr);
74 Q_INVOKABLE QObject* showPopup(const QJSValue& url_or_comp, const QVariantMap& props,
75 QObject* parent =
nullptr,
bool open_and_destry = true);
77 Q_INVOKABLE static QString paramsString(const QVariantMap& props);
78 Q_INVOKABLE static
void setCursor(QQuickItem* item, Qt::CursorShape shape);
80 Q_INVOKABLE static
double clamp(
double t,
double low,
double high);
81 Q_INVOKABLE static
double teleportCurve(
double t,
double left,
double right);
86 Q_INVOKABLE static
double bezierY(
double t,
double p1x,
double p1y,
double p2x,
90 Q_INVOKABLE static
double segFrac(
double playtime,
double delay,
double duration,
double p1x,
91 double p1y,
double p2x,
double p2y) noexcept;
93 Q_INVOKABLE static QString stateText(
bool enabled,
bool pressed,
bool hovered,
94 bool focused) noexcept;
96 Q_INVOKABLE static
void forceSetImplicitHeight(QQuickItem* item, qreal height);
97 Q_INVOKABLE static
void forceSetImplicitWidth(QQuickItem* item, qreal width);
99 Q_INVOKABLE static
void cellHoveredOn(QQuickItem* item,
bool hovered, qint32 row,
101 Q_INVOKABLE static QObject* getParent(QObject* obj);
102 Q_INVOKABLE static
bool disconnectAll(QObject* obj, const QString&);
104 Q_INVOKABLE static quint32 poolObjectCount() noexcept;
105 Q_INVOKABLE static qint32 i32Max() noexcept;
107 Q_SLOT
void onPopupClosed();
110 usize m_tracked { 0 };
113auto tryCreateComponent(
const QVariant& val, QQmlComponent::CompilationMode useAsync,
114 const std::function<QQmlComponent*()>& createComponent) -> QQmlComponent*;
119void sysOpenUrl(
const QString& url);
120void sysOpenFolder(
const QString& url);
125auto qml_dyn_count() -> std::atomic<i32>&;
126auto createItem(QQmlEngine* engine,
const QJSValue& url_or_comp,
const QVariantMap& props,
127 QObject* parent) -> QObject*;