40 lines
1.0 KiB
C++
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);
|
|
}
|