WindowAppRefLineManager.h 870 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include "WindowAppItemRefLine.h"
  3. /// <summary>
  4. /// 管理UI界面中的参考线的类
  5. /// </summary>
  6. class WindowAppItemRefLine;
  7. class WindowAppUiScene;
  8. class WindowAppRefLineManager
  9. {
  10. public:
  11. WindowAppRefLineManager();
  12. // 绑定Scene指针,用于添加参考线
  13. void bindScene(WindowAppUiScene* uiScene)
  14. {
  15. this->m_pScene = uiScene;
  16. }
  17. // 根据两个Widget控件的关系,处理对应的参考线效果
  18. void check(QWidget* srcWidget, QWidget* dstWidget);
  19. // 清空所有的参考线
  20. void clear();
  21. protected:
  22. // 更新参考线(是否新建、位置、长度等)
  23. void updateRefLine(const UI_REFLINE_INFO& info);
  24. // 查找对应的参考线是否存在
  25. bool isRefLineExist(const UI_REFLINE_INFO& info);
  26. // 移除一条对应的参考线
  27. void removeRefLine(const UI_REFLINE_INFO& info);
  28. protected:
  29. // 当前界面中的所有控件参考线
  30. QVector<WindowAppItemRefLine*> m_RefLines;
  31. WindowAppUiScene* m_pScene;
  32. };