#pragma once
#include "configobject.hpp"
#include <qqmlintegration.h>

namespace ZShell::config {

class OsdSizes : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(int, sliderHeight, 150)
	CFG_PROPERTY(int, sliderWidth, 30)

	public:
	explicit OsdSizes(QObject* parent = nullptr) : ConfigObject(parent) {}
};

class Osd : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(bool, allMonBrightness, true)
	CFG_PROPERTY(bool, enableBrightness, true)
	CFG_PROPERTY(bool, enableMicrophone, true)
	CFG_PROPERTY(bool, enabled, true)
	CFG_PROPERTY(int, hideDelay, 3000)
	CONFIG_SUBOBJECT(OsdSizes, sizes)

	public:
	explicit Osd(QObject* parent = nullptr)
		: ConfigObject(parent), m_sizes(new OsdSizes(this)) {}
};

} // namespace ZShell::config
