42 lines
918 B
C++
42 lines
918 B
C++
#pragma once
|
|
|
|
#include <QDialog>
|
|
|
|
class FrameTitleBar;
|
|
class FramelessDelegate;
|
|
|
|
class Dialog : public QDialog {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
Dialog(QWidget* parent);
|
|
~Dialog() override = default;
|
|
|
|
void DeleteThisOnClose();
|
|
void SetTitleBar(FrameTitleBar* titleBar);
|
|
void SetTitle(const QString& title);
|
|
|
|
|
|
protected:
|
|
void hideEvent(QHideEvent*) override;
|
|
bool eventFilter(QObject*, QEvent*) override;
|
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
|
bool nativeEvent(const QByteArray& eventType, void* message, long* result) override;
|
|
#else
|
|
bool nativeEvent(const QByteArray& eventType, void* message, qintptr* result) override;
|
|
#endif
|
|
void paintEvent(QPaintEvent* event) override;
|
|
|
|
protected:
|
|
template<typename UI>
|
|
void SetupUI(UI* ui) {
|
|
ui->setupUi(mainDilag_);
|
|
}
|
|
|
|
private:
|
|
void InitFrame();
|
|
|
|
private:
|
|
FramelessDelegate* delegate_;
|
|
QWidget* mainDilag_{ nullptr };
|
|
}; |