This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/example/doric/DoricContext.h

64 lines
1.3 KiB
C
Raw Normal View History

2021-02-04 16:59:58 +08:00
#ifndef CONTEXT_H
#define CONTEXT_H
2021-02-23 14:28:08 +08:00
#include <QQmlEngine>
2021-02-04 16:59:58 +08:00
#include <QVariant>
#include "DoricInterfaceDriver.h"
2021-02-09 17:42:11 +08:00
class DoricViewNode;
2021-02-09 17:42:11 +08:00
class DoricRootNode;
2021-02-04 16:59:58 +08:00
class DoricContext {
private:
QString mContextId;
QMap<QString, QObject *> mPluginMap;
DoricRootNode *mRootNode;
QString source;
QString script;
QString extra;
QVariant initParams;
DoricInterfaceDriver *driver = NULL;
2021-02-23 14:28:08 +08:00
QQmlEngine *mQmlEngine;
2021-02-04 16:59:58 +08:00
2021-04-22 20:46:00 +08:00
QMap<QString, QMap<QString, DoricViewNode *>> mHeadNodes;
2021-02-04 16:59:58 +08:00
public:
DoricContext(QString contextId, QString source, QString extra);
2021-04-09 16:39:43 +08:00
~DoricContext();
2021-02-04 16:59:58 +08:00
static DoricContext *create(QString script, QString source, QString extra);
void init(QString initData);
void build(int width, int height);
2021-05-12 11:08:40 +08:00
std::shared_ptr<DoricAsyncResult> callEntity(QString methodName,
QVariantList args);
2021-02-04 16:59:58 +08:00
DoricInterfaceDriver *getDriver();
2021-02-09 10:38:27 +08:00
DoricRootNode *getRootNode();
2021-02-04 16:59:58 +08:00
QObject *obtainPlugin(QString name);
2021-02-23 14:28:08 +08:00
void setQmlEngine(QQmlEngine *engine);
QQmlEngine *getQmlEngine();
DoricViewNode *targetViewNode(QString id);
2021-04-09 16:39:43 +08:00
QString getContextId();
2021-04-22 20:46:00 +08:00
QList<DoricViewNode *> allHeadNodes(QString type);
void addHeadNode(QString type, DoricViewNode *viewNode);
void removeHeadNode(QString type, DoricViewNode *viewNode);
void clearHeadNodes(QString type);
2021-02-04 16:59:58 +08:00
};
#endif // CONTEXT_H