1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-30 03:32:36 +00:00
OpenMW/apps/opencs/model/prefs/enumsetting.hpp

66 lines
1.4 KiB
C++
Raw Normal View History

2015-12-10 17:33:14 +01:00
#ifndef CSM_PREFS_ENUMSETTING_H
#define CSM_PREFS_ENUMSETTING_H
#include <vector>
#include "setting.hpp"
class QComboBox;
2015-12-10 17:33:14 +01:00
namespace CSMPrefs
{
struct EnumValue
{
std::string mValue;
std::string mTooltip;
2022-09-22 21:26:05 +03:00
EnumValue(const std::string& value, const std::string& tooltip = "");
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumValue(const char* value);
2015-12-10 17:33:14 +01:00
};
struct EnumValues
{
std::vector<EnumValue> mValues;
2022-09-22 21:26:05 +03:00
EnumValues& add(const EnumValues& values);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumValues& add(const EnumValue& value);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumValues& add(const std::string& value, const std::string& tooltip);
2015-12-10 17:33:14 +01:00
};
class EnumSetting : public Setting
{
2022-09-22 21:26:05 +03:00
Q_OBJECT
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
std::string mTooltip;
EnumValue mDefault;
EnumValues mValues;
QComboBox* mWidget;
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
public:
EnumSetting(Category* parent, QMutex* mutex, const std::string& key, const std::string& label,
const EnumValue& default_);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumSetting& setTooltip(const std::string& tooltip);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumSetting& addValues(const EnumValues& values);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumSetting& addValue(const EnumValue& value);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
EnumSetting& addValue(const std::string& value, const std::string& tooltip);
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
/// Return label, input widget.
std::pair<QWidget*, QWidget*> makeWidgets(QWidget* parent) override;
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
void updateWidget() override;
2022-09-22 21:26:05 +03:00
private slots:
2015-12-10 17:33:14 +01:00
2022-09-22 21:26:05 +03:00
void valueChanged(int value);
2015-12-10 17:33:14 +01:00
};
}
#endif