#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // 功能块图相关参数 // 线条宽度 #define PEN_LINE_WIDTH 1 // 选中时的线条宽度 #define PEN_LINE_WIDTH_SEL 2 // 标准类型功能块的基础宽高(会随着Tool名字的长度增加) // TBD, Standard Tool Block Diagram #define TBD_BASIC_WIDTH 160 #define TBD_BASIC_HEIGHT 50 // 功能块图可以容纳的最大字符宽度(暂未加入限制) // PORT类型功能块的基础宽高(宽度会随着用户输入的内容增加) // PBD, Port Block Diagram #define PBD_BASIC_WIDTH 120 #define PBD_BASIC_HEIGHT 20 // 文字和边框之间的最小间隙距离 #define PBD_TEXT_GAP_WIDTH 10 // 功能块的背景及边框颜色(这么多颜色是为了实现底色的重影效果) #define COLOR_TBD_BG QColor(0,108,234) #define COLOR_TBD_FRAME1 QColor(28,64,114) // 边框阴影的数量及颜色 #define TBD_SHADOW_COUNT 3 #define COLOR_TBD_SHADOW1 QColor(85,108,146) #define COLOR_TBD_SHADOW2 QColor(140,156,181) #define COLOR_TBD_SHADOW3 QColor(198,205,219) // 阴影的交汇点 #define COLOR_TBD_SHADOW_CORNER1 QColor(39,75,122) #define COLOR_TBD_SHADOW_CORNER2 QColor(85,108,146) #define COLOR_TBD_SHADOW_CORNER3 QColor(154,168,190) // 接口线的首行偏移 #define TBD_INF_OFFSET TBD_BASIC_HEIGHT / 2 // PORT类型接口的首行偏移 #define PBD_INF_OFFSET PBD_BASIC_HEIGHT / 2 // 每个接口线之间的间距 #define TBD_INF_SPACING 15 // 接口线的长度 #define TBD_INF_LINE 15 // 接口的颜色 #define COLOR_INF_LINE QColor(231,114,55) #define COLOR_INF_DISCARDLINE QColor(0,0,0) // 工具的序号矩形 宽和高 #define TBD_INDEX_WIDTH 18 #define TBD_INDEX_HEIGHT 20 // 序号的颜色 #define COLOR_TBD_INDEX_BG QColor(229,241,223) #define COLOR_TBD_INDEX_BG_ERROR QColor(220,20,60) #define COLOR_TBD_INDEX_FRAME QColor(18,96,51) #define COLOR_TBD_INDEX_TEXT QColor(18,96,51) // 接口的字体颜色 #define COLOR_TEXT QColor(240,240,240) // 接口文字的字体 #define FONT_INF QFont("Courier New",7) // 功能块工具名字的字体 // #define FONT_TOOLNAME QFont("Arial Black",9, QFont::Bold) // #define FONT_TOOLNAME QFont("Arial",9) #define FONT_TOOLNAME QFont("Courier New",8, QFont::Bold) // 功能块实例名字的字体 // #define FONT_INSTANCENAME QFont("Courier New",9, QFont::Bold) #define FONT_INSTANCENAME QFont("Arial Black",8) // 功能块序号使用的字体 #define FONT_INDEX QFont("Arial",7) // Port类型功能块输入文字使用的字体 #define FONT_PBD QFont("Arial", 7) // 各种绘图元素的Type定义 #define ITEM_TYPE_STANDARD QGraphicsItem::UserType + 10 #define ITEM_TYPE_PORT QGraphicsItem::UserType + 11 #define ITEM_TYPE_INF QGraphicsItem::UserType + 12 #define ITEM_TYPE_LINK QGraphicsItem::UserType + 13 #define ITEM_TYPE_LINK_LINE QGraphicsItem::UserType + 14 #define ITEM_TYPE_COMMENT QGraphicsItem::UserType + 15 #define ITEM_TYPE_GOTO QGraphicsItem::UserType + 16 #define ITEM_TYPE_PARALLEL QGraphicsItem::UserType + 17 #define ITEM_TYPE_REF_LINE QGraphicsItem::UserType + 18 #define ITEM_TYPE_FORLOOP QGraphicsItem::UserType + 19 #define ITEM_TYPE_WAIT QGraphicsItem::UserType + 20 #define ITEM_TYPE_ISO_LINE QGraphicsItem::UserType + 21 // 自动连接时,Port块与Inf之间的理论距离 #define AUTOPORT_SPACING 15 //============================================================= // 注释控件相关宏定义 // 注释控件的边框主颜色 #define COLOR_FRAME_COMM QColor(71,159,18) // 注释控件的文字颜色 #define COLOR_COMM_TEXT QColor(71,159,18) // 默认尺寸(可随意拉伸大小) #define COMM_BASIC_WIDTH 160 #define COMM_BASIC_HEIGHT 50 // 边框线条宽度 #define PEN_WIDTH_FRAME 1 #define PEN_WIDTH_FRAME_BOLD 2 // 文字线条宽度 #define PEN_WIDTH_TEXT 2 // 注释文字的与边框的间隙距离 #define COMM_SIDE_X_SPACING 5 #define COMM_SIDE_Y_SPACING 5 // 默认的注释文字 #define COMM_DEFAULT_TEXT "注释\n双击进行编辑,可以输入多行" // 注释文字采用的字体 #define FONT_COMM QFont("Arial",8) //============================================================= // Goto控件相关宏定义 // Goto类型功能块的基础宽高(宽度会随着接口文字的长度自动增加) #define GBD_BASIC_WIDTH 120 #define GBD_BASIC_HEIGHT 20 // 三角箭头指示器的颜色 // 正常颜色 #define COLOR_ARROW_OUTPUT QColor(231,114,55) // 尚未执行Goto的颜色 #define COLOR_GOTO_OUTPUT_READY QColor(231,114,55) // 执行Goto后的颜色 #define COLOR_GOTO_OUTPUT_DONE QColor(71,159,18) // 三角形边长 #define GOTO_OUTPUT_TRIA_SIDE 18 //============================================================= // 标准工具的ToolStart接口相关宏定义 // ToolStart接口的起始高度位置 #define TBD_TOPINF_SPACING 10 // ToolStart接口线的长度 #define TBD_TOPINF_LINE TBD_INF_LINE / 2 //============================================================= // Link 相关宏定义 // 箭头线条的长度 #define LINE_ARROW_SIZE 8 // 连线的颜色 #define LINK_LINE_COLOR QColor(231,114,55) // 临时连线的颜色 #define LINK_TMPLINE_COLOR QColor(230,230,250) // 连线的宽度 #define LINK_LINE_WIDTH 1 // 接口Link连线起始线条的固定长度 #define LINK_START_LINE_SIZE 15 //============================================================= // Parallel 工具相关宏定义 // 并行工具的尺寸 #define PARA_BASIC_WIDTH 120 #define PARA_BASIC_HEIGHT 20 // Parallel边框的颜色 #define COLOR_FRAME_PARALLEL QColor(231,114,55) // 并行母线的高度 #define PARARREL_LINE_HEIGHT 5 // 并行母线的基础长度(会随着功能块的移动而动态缩减) #define PARARREL_LINE_BASE_LEN 200 // 并行母线的左右延长长度 #define PARARREL_LINE_EX_LEN 30 // 并行母线和功能块的下边距 #define PARARREL_LINE_SPACE 4 //============================================================= // Pou中各个元素的Z轴坐标(用于分层) // Block置于最顶层 #define Z_ORDER_BLOCK 0 // Link连线置于最底层 #define Z_ORDER_LINK - 100.0 //============================================================= // UI界面相关参数 // UI背景线条所用的画笔颜色 #define UI_POINT_BK_PEN QColor(100, 100, 120) #define UI_LINE_BK_PEN QColor(70, 70, 90) // UI背景栅格的默认尺寸 #define UI_DEFAULT_GRID_SIZE 10 // UI控件移动参考线的颜色 // #define COLOR_REFLINE QColor(34, 163, 168) #define COLOR_REFLINE QColor(90, 200, 90) // 参考线延长线的长度(超出控件顶点的部分) #define REFLINE_EXTENSION_LEN 10 // 等宽线的标尺长度 #define ISOLINE_MARK_LEN 15 // 等宽线和边的间隙 #define ISOLINE_SPACE 7 // 等宽线和边错开的差值,等宽线比原有的宽度要多一个像素 #define ISOLINE_FIX 1 // 等宽线箭头大小 #define ISOLINE_ARROW_SIZE 5 /// /// UI控件的边序号(为了方便标识参考线的对齐参数) /// enum class SIDE_DIRECTION : short { SIDE_LEFT, // 左边 SIDE_TOP, // 上边 SIDE_RIGHT, // 右边 SIDE_BOTTOM, // 下边 SIDE_COUNT, // 边的总数 SIDE_NONE // 无效数据 }; /// /// UI控件被拉伸的方向(用于计算等宽线) /// enum class STRETCH_DIRECTION : short { DIR_LEFT, // 拉伸左边 DIR_RIGHT, // 拉伸右边 DIR_TOP, // 拉伸上边 DIR_BOTTOM, // 拉伸下边 DIR_LEFTTOP, // 拉伸左上 DIR_RIGHTTOP, // 拉伸右上 DIR_LEFTBOTTOM, // 拉伸左下 DIR_RIGHTBOTTOM, // 拉伸右下 DIR_NONE // 未处于拉伸状态 }; //============================================================= // ForLoop 工具相关宏定义 // ForLoop工具的尺寸 #define FORLOOP_BASIC_WIDTH 120 #define FORLOOP_BASIC_HEIGHT 40 //============================================================= // Wait 工具相关宏定义 // Wait工具的尺寸(带2个输出接口) #define WAIT_BASIC_WIDTH 120 #define WAIT_BASIC_HEIGHT 60 /// /// Scene的运行模式 /// enum class SCENE_MODE : short { NORMAL_MODE, // 正常模式 LINK_MODE, // 连线模式 BATCHMOVE_MODE // 批量移动模式 };