DockManager.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef DOCKMANAGER_H
  2. #define DOCKMANAGER_H
  3. #include "DockableWidgetLayout.h"
  4. #include <QList>
  5. #include <QMap>
  6. class QRect;
  7. class QPoint;
  8. class DockableWidget;
  9. class DockableWidgetArea;
  10. class DockManager
  11. {
  12. public:
  13. void addDockArea(DockableWidgetArea* area);
  14. int dockAreaIndex(DockableWidgetArea* area) const;
  15. void insertWidget(DockableWidget* widget, int index,
  16. DockableWidgetLayout::DockSide side, int distance,
  17. int w = -1, int h = -1);
  18. void dockWidget(DockableWidget* widget, const QPoint& p, const QRect& r);
  19. void undockWidget(DockableWidget* widget);
  20. bool insertLocation(QRect& r, const QSizePolicy& sizePol);
  21. void visibilityChanged(DockableWidget* widget);
  22. void getConfig(int index, QStringList& list) const;
  23. void attachWidget(DockableWidget* widget);
  24. void detachWidget(DockableWidget* widget);
  25. const QList<DockableWidget*>& managedWidgets() const;
  26. DockableWidget* findDockableWidget(const QString& id) const;
  27. private:
  28. typedef QMap<DockableWidget*, DockableWidgetArea*> AreaMap;
  29. AreaMap areaMap;
  30. QList<DockableWidgetArea*> areas;
  31. QList<DockableWidget*> dockWidgets;
  32. };
  33. #endif // DOCKMANAGER_H