DYTSrouce/src/ui/FramelessDelegate.h

46 lines
1.1 KiB
C
Raw Normal View History

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