#pragma once
#include "WindowAppBlockStandardBase.h"
///
/// 标准类型的工具功能块图 (Standard Block Diagram)
///
class WindowAppBlockStandard : public WindowAppBlockStandardBase
{
Q_OBJECT
// 添加这一行,否则会出现警告:Warning: qobject_cast to QGraphicsItem will not work!
Q_INTERFACES(QGraphicsItem)
public:
// bShowOnly 是否仅供展示使用,展示使用的话不提供右键菜单以及其他互动功能
WindowAppBlockStandard(TOOL* pTool, POU* Pou, bool bShowOnly = false, QGraphicsObject* parent = nullptr);
// 设定本Item的自定义类型
enum { Type = ITEM_TYPE_STANDARD };
int type() const
{
// 针对该 item 启用 qgraphicsitem_cast
return Type;
}
public:
// 添加接口(Standard工具需要额外添加ToolStart接口)
virtual void addItemInterfaces();
//// 添加ToolStart接口
//void addItemTopInterface();
//
// 2022-3-10 根据Dll中的信息动态添加接口
bool addDynamicInterfacesFromDll(const QList& infList, QString& strReason);
// 2022-3-11 根据Dll中的信息动态删除接口
bool deleteDynamicInterfacesFromDll(const QList& infList, QString& strReason);
//
// // 更新Block的相关位置和尺寸
// void updatePosition();
//
protected:
// 双击弹出工具dll中的对话框
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
};