CmQtEditor.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include "CmEditorPrerequisites.h"
  3. #include <QtWidgets/QMainWindow>
  4. #include <boost/function.hpp>
  5. namespace CamelotEditor
  6. {
  7. class QtEditor : public QMainWindow
  8. {
  9. Q_OBJECT
  10. public:
  11. QtEditor(QWidget *parent = nullptr);
  12. ~QtEditor();
  13. QtDockOverlayWidget* getDockOverlayWidget() const { return mDockOverlayWidget; }
  14. QWidget* getCentralWidget() const { return mCentralWidget; }
  15. void setProjectName(const QString& name);
  16. QAction* addMenuItemCallback(const QString& menuCategory, const QString& itemName, boost::function<void()> callback);
  17. void addMenuItemSeparator(const QString& menuCategory);
  18. private:
  19. QMenuBar* mMenuBar;
  20. QWidget* mCentralWidget;
  21. QStatusBar* mStatusBar;
  22. QtDockOverlayWidget* mDockOverlayWidget;
  23. Map<QString, QMenu*>::type mMenus;
  24. void setupUi();
  25. void retranslateUi();
  26. void setObjectNames();
  27. QMenu* findOrCreateMenu(const QString& name);
  28. void changeEvent(QEvent* event);
  29. void moveEvent(QMoveEvent* event);
  30. void resizeEvent(QResizeEvent* event);
  31. bool eventFilter(QObject* object, QEvent* event);
  32. void openProject();
  33. void saveProject();
  34. void exitEditor();
  35. };
  36. }