Files
HPPA/HPPA/CustomDockWidgetBase.h
2026-04-02 10:34:57 +08:00

54 lines
1.1 KiB
C++

#pragma once
#include <QDockWidget>
#include <QToolButton>
#include <QStyle>
#include <QHBoxLayout>
#include <QMainWindow>
#include <QMap>
#include <QSize>
#include <QLabel>
class CustomDockWidgetBase :
public QDockWidget
{
Q_OBJECT
public:
explicit CustomDockWidgetBase(QString title, QMainWindow* parent = nullptr);
explicit CustomDockWidgetBase(QMainWindow* parent = nullptr);
void setTile(QString title);
void hideMaxButton();
public slots:
virtual void toggleMaximize();
signals:
void maximizeStateChanged(bool isMaximized);
protected:
QMainWindow* m_mainWindow = nullptr;
QToolButton* m_maxButton = nullptr;
bool m_isMaximized = false;
QList<QDockWidget*> m_hiddenDocks;
QByteArray m_savedState;
QMap<QDockWidget*, QSize> m_originalSizes;
QLabel* title_label;
void initialize();
};
class CustomDockWidgetHideAbove :
public CustomDockWidgetBase
{
Q_OBJECT
public:
explicit CustomDockWidgetHideAbove(QString title, QMainWindow* parent = nullptr);
explicit CustomDockWidgetHideAbove(QMainWindow* parent = nullptr);
private slots:
void toggleMaximize();
private:
};