| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | 
							- #pragma once
 
- #include <memory>
 
- #include <obs.hpp>
 
- #include <QWidget>
 
- class Ui_BrowserSourceToolbar;
 
- class Ui_DeviceSelectToolbar;
 
- class Ui_GameCaptureToolbar;
 
- class Ui_ImageSourceToolbar;
 
- class Ui_ColorSourceToolbar;
 
- class Ui_TextSourceToolbar;
 
- class SourceToolbar : public QWidget {
 
- 	Q_OBJECT
 
- 	OBSWeakSource weakSource;
 
- protected:
 
- 	using properties_delete_t = decltype(&obs_properties_destroy);
 
- 	using properties_t =
 
- 		std::unique_ptr<obs_properties_t, properties_delete_t>;
 
- 	properties_t props;
 
- 	OBSDataAutoRelease oldData;
 
- 	void SaveOldProperties(obs_source_t *source);
 
- 	void SetUndoProperties(obs_source_t *source, bool repeatable = false);
 
- public:
 
- 	SourceToolbar(QWidget *parent, OBSSource source);
 
- 	OBSSource GetSource() { return OBSGetStrongRef(weakSource); }
 
- public slots:
 
- 	virtual void Update() {}
 
- };
 
- class BrowserToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- 	Ui_BrowserSourceToolbar *ui;
 
- public:
 
- 	BrowserToolbar(QWidget *parent, OBSSource source);
 
- 	~BrowserToolbar();
 
- public slots:
 
- 	void on_refresh_clicked();
 
- };
 
- class ComboSelectToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- protected:
 
- 	Ui_DeviceSelectToolbar *ui;
 
- 	const char *prop_name;
 
- 	bool is_int = false;
 
- public:
 
- 	ComboSelectToolbar(QWidget *parent, OBSSource source);
 
- 	~ComboSelectToolbar();
 
- 	virtual void Init();
 
- public slots:
 
- 	void on_device_currentIndexChanged(int idx);
 
- };
 
- class AudioCaptureToolbar : public ComboSelectToolbar {
 
- 	Q_OBJECT
 
- public:
 
- 	AudioCaptureToolbar(QWidget *parent, OBSSource source);
 
- 	void Init() override;
 
- };
 
- class WindowCaptureToolbar : public ComboSelectToolbar {
 
- 	Q_OBJECT
 
- public:
 
- 	WindowCaptureToolbar(QWidget *parent, OBSSource source);
 
- 	void Init() override;
 
- };
 
- class DisplayCaptureToolbar : public ComboSelectToolbar {
 
- 	Q_OBJECT
 
- public:
 
- 	DisplayCaptureToolbar(QWidget *parent, OBSSource source);
 
- 	void Init() override;
 
- };
 
- class DeviceCaptureToolbar : public QWidget {
 
- 	Q_OBJECT
 
- 	OBSWeakSource weakSource;
 
- 	Ui_DeviceSelectToolbar *ui;
 
- 	const char *activateText;
 
- 	const char *deactivateText;
 
- 	bool active;
 
- public:
 
- 	DeviceCaptureToolbar(QWidget *parent, OBSSource source);
 
- 	~DeviceCaptureToolbar();
 
- public slots:
 
- 	void on_activateButton_clicked();
 
- };
 
- class GameCaptureToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- 	Ui_GameCaptureToolbar *ui;
 
- 	void UpdateWindowVisibility();
 
- public:
 
- 	GameCaptureToolbar(QWidget *parent, OBSSource source);
 
- 	~GameCaptureToolbar();
 
- public slots:
 
- 	void on_mode_currentIndexChanged(int idx);
 
- 	void on_window_currentIndexChanged(int idx);
 
- };
 
- class ImageSourceToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- 	Ui_ImageSourceToolbar *ui;
 
- public:
 
- 	ImageSourceToolbar(QWidget *parent, OBSSource source);
 
- 	~ImageSourceToolbar();
 
- public slots:
 
- 	void on_browse_clicked();
 
- };
 
- class ColorSourceToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- 	Ui_ColorSourceToolbar *ui;
 
- 	QColor color;
 
- 	void UpdateColor();
 
- public:
 
- 	ColorSourceToolbar(QWidget *parent, OBSSource source);
 
- 	~ColorSourceToolbar();
 
- public slots:
 
- 	void on_choose_clicked();
 
- };
 
- class TextSourceToolbar : public SourceToolbar {
 
- 	Q_OBJECT
 
- 	Ui_TextSourceToolbar *ui;
 
- 	QFont font;
 
- 	QColor color;
 
- public:
 
- 	TextSourceToolbar(QWidget *parent, OBSSource source);
 
- 	~TextSourceToolbar();
 
- public slots:
 
- 	void on_selectFont_clicked();
 
- 	void on_selectColor_clicked();
 
- 	void on_text_textChanged();
 
- };
 
 
  |