1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#pragma once
#include "filter-combo-box.hpp"
#include <obs.hpp>
#include <optional>
#include <string>
#include <vector>
#include <QWidget>
#include <QLabel>
namespace advss {
class TransformSetting {
public:
TransformSetting() = default;
TransformSetting(const std::string &id, const std::string &nestedId);
bool Save(obs_data_t *obj) const;
bool Load(obs_data_t *obj);
std::string GetID() const { return _id; }
std::string GetNestedID() const { return _nestedId; }
EXPORT bool operator==(const TransformSetting &other) const;
private:
std::string _id = "";
std::string _nestedId = "";
friend class TransformSettingSelection;
};
std::vector<TransformSetting>
GetSoruceTransformSettings(obs_scene_item *source);
std::optional<std::string>
GetTransformSettingValue(obs_scene_item *source,
const TransformSetting &setting);
void SetTransformSetting(obs_scene_item *source,
const TransformSetting &setting,
const std::string &value);
class TransformSettingSelection : public QWidget {
Q_OBJECT
public:
TransformSettingSelection(QWidget *parent = nullptr);
void SetSource(obs_scene_item *);
void SetSetting(const TransformSetting &);
private slots:
void SelectionIdxChanged(int);
signals:
void SelectionChanged(const TransformSetting &);
private:
void Populate(obs_scene_item *);
FilterComboBox *_settings;
};
} // namespace advss
|