#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include namespace Ui { class MainWindow; } class MenuEntry; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void mouseMoveEvent(QMouseEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void resizeEvent(QResizeEvent *event) override; private slots: void on_menuentry_1_clicked(); void on_menuentry_2_clicked(); void on_menuentry_3_clicked(); void on_menuentry_4_clicked(); void on_menuentry_5_clicked(); void on_menuentry_6_clicked(); void onHoverMenuentry(); void on_closeButton_clicked(); void on_minimizeButton_clicked(); private: void setupWindowBackgroundAndMask(int bg_id); void setupMenuHoverWidget(); void moveMenuHoverWidget(MenuEntry* target); void checkMenuIsHovered(); private: Ui::MainWindow *ui; QWidget* menuHoverWidget; QPropertyAnimation* menuHoverWidgetAnimation; QPropertyAnimation* menuHoverWidgetScaleAnimation; QTimer menu_hover_checker_timer; QPoint dragPosition; }; #endif // MAINWINDOW_H