OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
enumsetting.hpp
Go to the documentation of this file.
1 #ifndef CSM_PREFS_ENUMSETTING_H
2 #define CSM_PREFS_ENUMSETTING_H
3 
4 #include <vector>
5 
6 #include "setting.hpp"
7 
8 class QComboBox;
9 
10 namespace CSMPrefs
11 {
12  struct EnumValue
13  {
14  std::string mValue;
15  std::string mTooltip;
16 
17  EnumValue (const std::string& value, const std::string& tooltip = "");
18 
19  EnumValue (const char *value);
20  };
21 
22  struct EnumValues
23  {
24  std::vector<EnumValue> mValues;
25 
26  EnumValues& add (const EnumValues& values);
27 
28  EnumValues& add (const EnumValue& value);
29 
30  EnumValues& add (const std::string& value, const std::string& tooltip);
31  };
32 
33  class EnumSetting : public Setting
34  {
35  Q_OBJECT
36 
37  std::string mTooltip;
40  QComboBox* mWidget;
41 
42  public:
43 
44  EnumSetting (Category *parent, Settings::Manager *values,
45  QMutex *mutex, const std::string& key, const std::string& label,
46  const EnumValue& default_);
47 
48  EnumSetting& setTooltip (const std::string& tooltip);
49 
50  EnumSetting& addValues (const EnumValues& values);
51 
52  EnumSetting& addValue (const EnumValue& value);
53 
54  EnumSetting& addValue (const std::string& value, const std::string& tooltip);
55 
57  virtual std::pair<QWidget *, QWidget *> makeWidgets (QWidget *parent);
58 
59  virtual void updateWidget();
60 
61  private slots:
62 
63  void valueChanged (int value);
64  };
65 }
66 
67 #endif
EnumValue mDefault
Definition: enumsetting.hpp:38
std::string mTooltip
Definition: enumsetting.hpp:37
EnumValues mValues
Definition: enumsetting.hpp:39
std::string mTooltip
Definition: enumsetting.hpp:15
virtual std::pair< QWidget *, QWidget * > makeWidgets(QWidget *parent)
Return label, input widget.
Definition: enumsetting.cpp:72
std::string mValue
Definition: enumsetting.hpp:14
virtual void updateWidget()
Definition: enumsetting.cpp:105
Definition: category.hpp:12
Definition: enumsetting.hpp:22
Definition: enumsetting.hpp:12
EnumSetting & addValues(const EnumValues &values)
Definition: enumsetting.cpp:54
QComboBox * mWidget
Definition: enumsetting.hpp:40
Definition: setting.hpp:22
void valueChanged(int value)
Definition: enumsetting.cpp:116
EnumSetting(Category *parent, Settings::Manager *values, QMutex *mutex, const std::string &key, const std::string &label, const EnumValue &default_)
Definition: enumsetting.cpp:43
EnumSetting & setTooltip(const std::string &tooltip)
Definition: enumsetting.cpp:48
Definition: enumsetting.hpp:33
EnumSetting & addValue(const EnumValue &value)
Definition: enumsetting.cpp:60
Settings management (can change during runtime)
Definition: settings.hpp:17
std::vector< EnumValue > mValues
Definition: enumsetting.hpp:24
EnumValues & add(const EnumValues &values)
Definition: enumsetting.cpp:24
EnumValue(const std::string &value, const std::string &tooltip="")
Definition: enumsetting.cpp:15