SimsWorld/SimsWorld/BehaviorConfigurationPanel.h

43 lines
968 B
C++

#pragma once
#include <QWidget>
#include <QFrame>
#include <BehaviorPerform.h>
#include <QLineEdit>
#include <QTableView>
#include <QStandardItemModel>
#include <QDialog>
#include <QComboBox>
class VariableAdd : public QDialog {
private:
std::shared_ptr<BehaviorMapNode> _bind_node = nullptr;
QComboBox *const _io_type;
QComboBox *const _data_type;
QLineEdit *const _var_name;
public:
VariableAdd(std::shared_ptr<BehaviorMapNode> node, QWidget *parent = nullptr);
void appendVariable();
};
class NodePresent;
class BehaviorMapConfigurationPanel : public QFrame
{
Q_OBJECT
private:
QLineEdit *const _root_name;
QTableView *const _variable_table;
QStandardItemModel *const _variable_model;
std::shared_ptr<BehaviorMapNode> _bind_node; // 绑定内容结点
NodePresent *_bind_graph = nullptr; // 绑定图形显示结点
public:
BehaviorMapConfigurationPanel(QWidget *p = nullptr);
void setTarget(std::shared_ptr<LogicalNode> map_root, NodePresent *ins);
};