#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include //#define USE_HIDE #define USE_SETMAXHEIGHT //#define USE_NOTHING //#define DEBUG_EVENTS class AutoHidingMenuBar : public QMenuBar { Q_OBJECT public: AutoHidingMenuBar(); bool isVisibleCustom(); void setVisibleCustom(bool visible); #if defined(DEBUG_EVENTS) protected: bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE; #endif private slots: void focusChanged(QWidget *from, QWidget *to); private: bool hasFocusedChild(); }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); #if defined(USE_HIDE) protected: void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE; void keyReleaseEvent(QKeyEvent *) Q_DECL_OVERRIDE; private: bool lastWasAltPress = false; #endif private: AutoHidingMenuBar * ahMenuBar; }; #endif // MAINWINDOW_H