DYTSrouce/src/ui/FramelessWindow.cpp
2025-11-17 00:07:24 +08:00

40 lines
1.0 KiB
C++

#include "FramelessWindow.h"
#include "FrameTitleBar.h"
#include "FramelessDelegate.h"
FramelessWindow::FramelessWindow(QWidget* parent)
: QFrame(parent) {
setWindowFlags(windowFlags()
| Qt::Window
| Qt::FramelessWindowHint
| Qt::WindowSystemMenuHint
| Qt::WindowMaximizeButtonHint
| Qt::WindowMinimizeButtonHint
);
delegate_ = FramelessDelegate::Create(this);
}
FramelessWindow::~FramelessWindow() {
}
void FramelessWindow::SetTitleBar(FrameTitleBar* titleBar) {
titleBar->SetMainWidget(this);
if (delegate_) {
delegate_->SetTitleBar(titleBar);
}
}
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
bool FramelessWindow::nativeEvent(const QByteArray& eventType, void* message, qintptr* result) {
#else
bool FramelessWindow::nativeEvent(const QByteArray & eventType, void* message, long* result) {
#endif
if (delegate_ && delegate_->nativeEvent(eventType, message, result)) {
return true;
}
return QFrame::nativeEvent(eventType, message, result);
}