CmQtDynamicTabBar.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "CmEditorPrerequisites.h"
  3. #include <QtWidgets/QWidget>
  4. #include <QtWidgets/QPushButton>
  5. #include <boost/signal.hpp>
  6. namespace CamelotEditor
  7. {
  8. class QtDynamicTabBar : public QWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. QtDynamicTabBar(QWidget* parent);
  13. virtual ~QtDynamicTabBar() { }
  14. void addTab(const QString& name);
  15. void insertTab(UINT32 idx, const QString& name);
  16. void removeTab(UINT32 idx);
  17. Vector<QPolygon>::type getDropLocations();
  18. void enterEvent(QEvent *e);
  19. void leaveEvent(QEvent *e);
  20. void mousePressEvent(QMouseEvent* event);
  21. void mouseReleaseEvent(QMouseEvent* event);
  22. void mouseMoveEvent(QMouseEvent* event);
  23. void paintEvent(QPaintEvent *event);
  24. boost::signal<void(UINT32)> onTabSelected;
  25. boost::signal<void(UINT32)> onTabDraggedOff;
  26. private:
  27. QHBoxLayout* mHLayout;
  28. Vector<QtTabButton*>::type mTabs;
  29. bool dbg;
  30. void setupUi();
  31. void updateTabs();
  32. void tabSelected(UINT32 idx);
  33. void tabDraggedOff(UINT32 idx);
  34. };
  35. }