vnote/libs/vtitlebar/src/vtoolbar.h
Le Tan 52702a32e9 hard days for VNoteX project
Never say "refactor" again!!!
2020-11-28 23:10:43 +08:00

55 lines
1.2 KiB
C++

#ifndef VTOOLBAR_H
#define VTOOLBAR_H
#include <QToolBar>
#include <QIcon>
namespace vnotex
{
class VToolBar : public QToolBar
{
Q_OBJECT
public:
explicit VToolBar(QWidget *p_parent = nullptr);
VToolBar(const QString &p_title, QWidget *p_parent = nullptr);
void addTitleBarIcons(const QIcon &p_minimizeIcon,
const QIcon &p_maximizeIcon,
const QIcon &p_restoreIcon,
const QIcon &p_closeIcon);
protected:
void mousePressEvent(QMouseEvent *p_event) Q_DECL_OVERRIDE;
void mouseReleaseEvent(QMouseEvent *p_event) Q_DECL_OVERRIDE;
void mouseMoveEvent(QMouseEvent *p_event) Q_DECL_OVERRIDE;
void mouseDoubleClickEvent(QMouseEvent *p_event) Q_DECL_OVERRIDE;
bool eventFilter(QObject *p_obj, QEvent *p_event) Q_DECL_OVERRIDE;
private:
void setupUI();
void maximizeRestoreWindow();
void updateMaximizeAct();
QPoint m_lastPos;
bool m_ignoreNextMove = false;
QWidget *m_window = nullptr;
QAction *m_maximizeAct = nullptr;
QIcon m_maximizeIcon;
QIcon m_restoreIcon;
};
}
#endif // VTOOLBAR_H