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 {
22 Util(QObject* parent =
nullptr);
32 Q_INVOKABLE
void track(QVariant, Track);
34 Q_INVOKABLE
bool hasIcon(
const QJSValue& v) {
35 auto name = v.property(
"name");
36 auto source = v.property(
"source");
37 if (name.isString() && source.toVariant().isValid()) {
38 return ! name.toString().isEmpty() || ! source.toString().isEmpty();
43 Q_INVOKABLE QColor transparent(QColor in,
float alpha) {
48 Q_INVOKABLE
void closePopup(QObject* obj) {
50 auto meta = obj->metaObject();
52 if (meta->className() == std::string(
"QQuickPopup")) {
53 QMetaObject::invokeMethod(obj,
"close");
56 }
while (meta = meta->superClass(), meta);
57 }
while (obj = obj->parent(), obj);
60 Q_INVOKABLE QColor hoverColor(QColor in) {
65 Q_INVOKABLE QColor pressColor(QColor in) {
70 Q_INVOKABLE qreal devicePixelRatio(QQuickItem* in) {
71 return in ? in->window() ? in->window()->devicePixelRatio() : 1.0 : 1.0;
75 Q_INVOKABLE CornersGroup cornerArray(QVariant in);
76 Q_INVOKABLE CornersGroup corner(qreal in);
77 Q_INVOKABLE CornersGroup corner(qreal, qreal);
78 Q_INVOKABLE CornersGroup corner(qreal tl, qreal tr, qreal bl, qreal br);
80 QString type_str(
const QJSValue&);
81 Q_INVOKABLE
void print_parents(
const QJSValue&);
83 Q_INVOKABLE qreal lightness(QColor color);
85 Q_INVOKABLE token::Elevation token_elevation();
86 Q_INVOKABLE token::Shape token_shape();
87 Q_INVOKABLE token::State token_state();
88 Q_INVOKABLE QObject* create_item(
const QJSValue& url_or_comp,
const QVariantMap& props,
89 QObject* parent =
nullptr);
91 Q_INVOKABLE QObject* show_popup(
const QJSValue& url_or_comp,
const QVariantMap& props,
92 QObject* parent =
nullptr,
bool open_and_destry =
true);
94 Q_INVOKABLE QString params_string(
const QVariantMap& props);
97 Q_SLOT
void on_popup_closed();
100 usize m_tracked { 0 };
106auto qml_dyn_count() -> std::atomic<i32>&;
107auto create_item(QQmlEngine* engine,
const QJSValue& url_or_comp,
const QVariantMap& props,
108 QObject* parent) -> QObject*;