2021-02-08 11:37:51 +08:00
|
|
|
#ifndef DORICVIEWNODE_H
|
|
|
|
#define DORICVIEWNODE_H
|
|
|
|
|
2021-02-19 10:04:54 +08:00
|
|
|
#include <QQuickItem>
|
2021-02-09 15:54:22 +08:00
|
|
|
|
2021-02-08 11:37:51 +08:00
|
|
|
#include "../utils/DoricContextHolder.h"
|
|
|
|
|
2021-02-19 15:43:09 +08:00
|
|
|
class DoricSuperNode;
|
|
|
|
|
2021-02-08 11:37:51 +08:00
|
|
|
class DoricViewNode : public DoricContextHolder {
|
2021-02-09 15:54:22 +08:00
|
|
|
|
|
|
|
protected:
|
2021-02-19 10:04:54 +08:00
|
|
|
QQuickItem *mView;
|
2021-02-09 15:54:22 +08:00
|
|
|
|
2021-02-19 15:43:09 +08:00
|
|
|
DoricSuperNode *mSuperNode;
|
|
|
|
|
2021-02-19 10:04:54 +08:00
|
|
|
virtual QQuickItem *build() = 0;
|
2021-02-09 15:54:22 +08:00
|
|
|
|
2021-02-19 15:43:09 +08:00
|
|
|
void setLayoutConfig(QJSValue layoutConfig);
|
|
|
|
|
2021-02-09 15:54:22 +08:00
|
|
|
private:
|
|
|
|
QString mId;
|
|
|
|
QString mType;
|
|
|
|
|
2021-02-08 11:37:51 +08:00
|
|
|
public:
|
|
|
|
using DoricContextHolder::DoricContextHolder;
|
2021-02-19 15:43:09 +08:00
|
|
|
|
|
|
|
void init(DoricSuperNode *superNode);
|
|
|
|
|
2021-02-22 16:42:19 +08:00
|
|
|
static DoricViewNode *create(DoricContext *context, QString type) {
|
|
|
|
bool classRegistered =
|
|
|
|
context->getDriver()->getRegistry()->acquireNodeInfo(type);
|
|
|
|
if (classRegistered) {
|
|
|
|
QObject *node =
|
|
|
|
context->getDriver()->getRegistry()->nodes.createObject(type);
|
|
|
|
DoricViewNode *castNode = dynamic_cast<DoricViewNode *>(node);
|
|
|
|
castNode->setContext(context);
|
|
|
|
castNode->mType = type;
|
|
|
|
return castNode;
|
|
|
|
} else {
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-19 15:43:09 +08:00
|
|
|
QString getId();
|
|
|
|
|
|
|
|
void setId(QString id);
|
|
|
|
|
2021-02-22 16:42:19 +08:00
|
|
|
QString getType();
|
|
|
|
|
|
|
|
QQuickItem *getNodeView();
|
|
|
|
|
2021-02-19 19:01:31 +08:00
|
|
|
virtual void blend(QJSValue jsValue);
|
|
|
|
|
|
|
|
virtual void blend(QQuickItem *view, QString name, QJSValue prop);
|
2021-03-02 17:18:23 +08:00
|
|
|
|
|
|
|
virtual void blendLayoutConfig(QJSValue jsObject);
|
2021-02-08 11:37:51 +08:00
|
|
|
};
|
|
|
|
#endif // DORICVIEWNODE_H
|