DYTSrouce/src/ui/Dialog.h

41 lines
877 B
C
Raw Normal View History

2025-01-04 04:12:51 +00:00
#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 };
};