mainwindow.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QPropertyAnimation>
  5. #include <QTimer>
  6. namespace Ui {
  7. class MainWindow;
  8. }
  9. class MenuEntry;
  10. class MainWindow : public QMainWindow
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit MainWindow(QWidget *parent = 0);
  15. ~MainWindow();
  16. protected:
  17. void mouseMoveEvent(QMouseEvent *event) override;
  18. void mousePressEvent(QMouseEvent *event) override;
  19. void resizeEvent(QResizeEvent *event) override;
  20. private slots:
  21. void on_menuentry_1_clicked();
  22. void on_menuentry_2_clicked();
  23. void on_menuentry_3_clicked();
  24. void on_menuentry_4_clicked();
  25. void on_menuentry_5_clicked();
  26. void on_menuentry_6_clicked();
  27. void onHoverMenuentry();
  28. void on_closeButton_clicked();
  29. void on_minimizeButton_clicked();
  30. private:
  31. void setupWindowBackgroundAndMask(int bg_id);
  32. void setupMenuHoverWidget();
  33. void moveMenuHoverWidget(MenuEntry* target);
  34. void checkMenuIsHovered();
  35. private:
  36. Ui::MainWindow *ui;
  37. QWidget* menuHoverWidget;
  38. QPropertyAnimation* menuHoverWidgetAnimation;
  39. QPropertyAnimation* menuHoverWidgetScaleAnimation;
  40. QTimer menu_hover_checker_timer;
  41. QPoint dragPosition;
  42. };
  43. #endif // MAINWINDOW_H