123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- #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
- std::unique_ptr<Ui_BrowserSourceToolbar> ui;
- public:
- BrowserToolbar(QWidget *parent, OBSSource source);
- ~BrowserToolbar();
- public slots:
- void on_refresh_clicked();
- };
- class ComboSelectToolbar : public SourceToolbar {
- Q_OBJECT
- protected:
- std::unique_ptr<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 ApplicationAudioCaptureToolbar : public ComboSelectToolbar {
- Q_OBJECT
- public:
- ApplicationAudioCaptureToolbar(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;
- std::unique_ptr<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
- std::unique_ptr<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
- std::unique_ptr<Ui_ImageSourceToolbar> ui;
- public:
- ImageSourceToolbar(QWidget *parent, OBSSource source);
- ~ImageSourceToolbar();
- public slots:
- void on_browse_clicked();
- };
- class ColorSourceToolbar : public SourceToolbar {
- Q_OBJECT
- std::unique_ptr<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
- std::unique_ptr<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();
- };
|