#pragma once

#include <QDockWidget>
#include <QPushButton>
#include <QLabel>
#include <QTimer>

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;

Q_SIGNALS:
    void signalClose();
};

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 };
};