1 #pragma once
2 
3 #include <QWidget>
4 #include <obs.hpp>
5 
6 #define GREY_COLOR_BACKGROUND 0xFF4C4C4C
7 
8 class OBSQTDisplay : public QWidget {
9 	Q_OBJECT
10 	Q_PROPERTY(QColor displayBackgroundColor MEMBER backgroundColor READ
11 			   GetDisplayBackgroundColor WRITE
12 				   SetDisplayBackgroundColor)
13 
14 	OBSDisplay display;
15 
16 	void resizeEvent(QResizeEvent *event) override;
17 	void paintEvent(QPaintEvent *event) override;
18 
19 signals:
20 	void DisplayCreated(OBSQTDisplay *window);
21 	void DisplayResized();
22 
23 public:
24 	OBSQTDisplay(QWidget *parent = nullptr,
25 		     Qt::WindowFlags flags = Qt::WindowFlags());
~OBSQTDisplay()26 	~OBSQTDisplay() { display = nullptr; }
27 
28 	virtual QPaintEngine *paintEngine() const override;
29 
GetDisplay() const30 	inline obs_display_t *GetDisplay() const { return display; }
31 
32 	uint32_t backgroundColor = GREY_COLOR_BACKGROUND;
33 
34 	QColor GetDisplayBackgroundColor() const;
35 	void SetDisplayBackgroundColor(const QColor &color);
36 	void UpdateDisplayBackgroundColor();
37 	void CreateDisplay(bool force = false);
38 };
39