1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #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 DestroyDisplay() { display = nullptr; };
- void OnMove();
- void OnDisplayChange();
- };
|