#pragma once
#include "WindowAppItemIsometricLine.h"
///
/// 管理UI界面中的等宽线线条的类
///
class WindowAppItemIsometricLine;
class WindowAppUiScene;
class WindowAppIsometricLineManager
{
public:
WindowAppIsometricLineManager();
// 绑定Scene指针,用于添加等宽线
void bindScene(WindowAppUiScene* uiScene)
{
this->m_pScene = uiScene;
}
// 根据主控件和其他控件的关系进行等宽线的判断
void check(QWidget* srcWidget, QList dstWidgets, STRETCH_DIRECTION dir);
// 清空所有的等宽线
void clear();
protected:
// 生成新的等宽线
void newIsoLine(const UI_ISOLINE_INFO& info);
// 比较高度
bool checkHeight(QWidget* srcWidget, QWidget* dstWidget, STRETCH_DIRECTION dir);
// 比较宽度
bool checkWidth(QWidget* srcWidget, QWidget* dstWidget, STRETCH_DIRECTION dir);;
// 检查是否需要绘制源控件的等宽线
bool checkSourceWidget(QWidget* srcWidget, bool bSameHeight, bool bSameWidth, STRETCH_DIRECTION dir);
protected:
// 当前界面中的所有控件等宽线
QVector m_IsoLines;
// Scene的指针,用于与Scene进行交互
WindowAppUiScene* m_pScene;
};