41 lines
877 B
C
41 lines
877 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);
|
||
|
|
||
|
|
||
|
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 };
|
||
|
};
|