AlmondMenuWidget.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef ALMONDMENUWIDGET_H
  2. #define ALMONDMENUWIDGET_H
  3. #include <QFrame>
  4. #include <QList>
  5. #include <QStackedWidget>
  6. #include <QPushButton>
  7. #include <QStateMachine>
  8. class AlmondMenuWidget : public QFrame
  9. {
  10. Q_OBJECT
  11. QWidget* mainMenu;
  12. QWidget* rightWidget;
  13. QWidget* leftWidget;
  14. QPushButton* rightOK;
  15. QPushButton* rightCancel;
  16. QStackedWidget* subMenuContainer;
  17. QList<QWidget*> subMenus;
  18. QStateMachine* states;
  19. public:
  20. AlmondMenuWidget(QWidget* parent = nullptr);
  21. void setMainMenu(QWidget* mainMenu);
  22. void addSubMenu(QWidget* subMenu);
  23. virtual QSize sizeHint(void) const override;
  24. virtual QSize minimumSizeHint(void) const override;
  25. protected:
  26. virtual void resizeEvent(QResizeEvent* event) override;
  27. protected slots:
  28. void clickedRightOK(void);
  29. void clickedRightCancel(void);
  30. public slots:
  31. void showMainMenu(void);
  32. void showSubMenu(int index);
  33. void showSubMenu(void);
  34. signals:
  35. void submenuOK(int index);
  36. void submenuCancel(int index);
  37. void showLeft();
  38. void showRight();
  39. };
  40. #endif // ALMONDMENUWIDGET_H