46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QWidget>
|
|
|
|
class FrameTitleBar;
|
|
|
|
class FramelessDelegate : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
~FramelessDelegate() override;
|
|
|
|
static FramelessDelegate* Create(QWidget* paranet);
|
|
|
|
void SetTitleBar(FrameTitleBar* titleBar);
|
|
|
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
|
virtual bool nativeEvent(const QByteArray& eventType, void* message, long* result);
|
|
#else
|
|
virtual bool nativeEvent(const QByteArray& eventType, void* message, qintptr* result);
|
|
#endif
|
|
protected:
|
|
FramelessDelegate(QWidget* parent);
|
|
|
|
bool eventFilter(QObject* watched, QEvent* event) override;
|
|
|
|
virtual void OnShow() {}
|
|
virtual void OnHide() {}
|
|
virtual void OnClose() {}
|
|
virtual void OnScreenChangeInternaal() {}
|
|
|
|
virtual void AddMoveBar(QWidget* moveWidget) {}
|
|
virtual void RemoveMoveBar(QWidget* moveWidget);
|
|
|
|
protected:
|
|
QWidget* mainWidget_{ nullptr };
|
|
FrameTitleBar* titleBar_{ nullptr };
|
|
QWidgetList moveBars_;
|
|
|
|
QMargins margins_;
|
|
QMargins frames_;
|
|
|
|
bool justMaximized_{ false };
|
|
bool isFirstShow_{ true };
|
|
}; |