50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <QWidget>
|
|
#include <obs.hpp>
|
|
|
|
#define GREY_COLOR_BACKGROUND 0xFF4C4C4C
|
|
|
|
class OBSQTDisplay : public QWidget {
|
|
Q_OBJECT
|
|
Q_PROPERTY(QColor displayBackgroundColor MEMBER backgroundColor READ
|
|
GetDisplayBackgroundColor WRITE
|
|
SetDisplayBackgroundColor)
|
|
|
|
OBSDisplay display;
|
|
|
|
virtual void paintEvent(QPaintEvent *event) override;
|
|
virtual void moveEvent(QMoveEvent *event) override;
|
|
virtual void resizeEvent(QResizeEvent *event) override;
|
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
|
virtual bool nativeEvent(const QByteArray &eventType, void *message,
|
|
qintptr *result) override;
|
|
#else
|
|
virtual bool nativeEvent(const QByteArray &eventType, void *message,
|
|
long *result) override;
|
|
#endif
|
|
|
|
signals:
|
|
void DisplayCreated(OBSQTDisplay *window);
|
|
void DisplayResized();
|
|
|
|
public:
|
|
OBSQTDisplay(QWidget *parent = nullptr,
|
|
Qt::WindowFlags flags = Qt::WindowFlags());
|
|
~OBSQTDisplay() { display = nullptr; }
|
|
|
|
virtual QPaintEngine *paintEngine() const override;
|
|
|
|
inline obs_display_t *GetDisplay() const { return display; }
|
|
|
|
uint32_t backgroundColor = GREY_COLOR_BACKGROUND;
|
|
|
|
QColor GetDisplayBackgroundColor() const;
|
|
void SetDisplayBackgroundColor(const QColor &color);
|
|
void UpdateDisplayBackgroundColor();
|
|
void CreateDisplay(bool force = false);
|
|
|
|
void OnMove();
|
|
void OnDisplayChange();
|
|
};
|