#pragma once
#include "WindowAppItemRefLine.h"
///
/// 管理UI界面中的参考线的类
///
class WindowAppItemRefLine;
class WindowAppUiScene;
class WindowAppRefLineManager
{
public:
WindowAppRefLineManager();
// 绑定Scene指针,用于添加参考线
void bindScene(WindowAppUiScene* uiScene)
{
this->m_pScene = uiScene;
}
// 根据两个Widget控件的关系,处理对应的参考线效果
void check(QWidget* srcWidget, QWidget* dstWidget);
// 清空所有的参考线
void clear();
protected:
// 更新参考线(是否新建、位置、长度等)
void updateRefLine(const UI_REFLINE_INFO& info);
// 查找对应的参考线是否存在
bool isRefLineExist(const UI_REFLINE_INFO& info);
// 移除一条对应的参考线
void removeRefLine(const UI_REFLINE_INFO& info);
protected:
// 当前界面中的所有控件参考线
QVector m_RefLines;
WindowAppUiScene* m_pScene;
};