#pragma once #include #include #include #include class DockWidgetTitleBar : public QWidget { Q_OBJECT public: DockWidgetTitleBar(QWidget* parent); ~DockWidgetTitleBar() override; virtual void SetTitle(const QString& title) {} QSize sizeHint() const override { return minimumSizeHint(); } QSize minimumSizeHint() const override; }; class DockWidget : public QDockWidget { Q_OBJECT public: DockWidget(const QString& title, QWidget* parent = nullptr); DockWidget(QWidget* parent = 0); ~DockWidget() override; void setWindowTitle(const QString& text); void SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar); protected: void showEvent(QShowEvent* e) override; void resizeEvent(QResizeEvent* e) override; private: DockWidgetTitleBar* titleBar_{ nullptr }; };