mainwindow.h 1.4 KB

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