1 #ifndef __libquark_util_EnumTraits_hxx 2 #define __libquark_util_EnumTraits_hxx 41 template<
typename E>
class EnumMap
51 EnumMap(E defaultValue, E invalidValue, QList<E> values, QStringList labels)
52 : _defaultValue(defaultValue)
53 , _invalidValue(invalidValue)
57 Q_ASSERT(values.size() == labels.size());
64 E defaultValue()
const 65 {
return(_defaultValue); }
68 E invalidValue()
const 69 {
return(_invalidValue); }
75 E fromLabel(
const QString &label)
const;
80 QString toLabel(E value)
const;
87 E fromInt(
int value)
const;
92 int toInt(E value)
const;
95 const QList<E> values()
const 99 const QStringList labels()
const 103 int ordinal(E value)
const;
109 E valueAt(
int ordinal)
const;
134 {
return(_map.defaultValue()); }
138 {
return(_map.invalidValue()); }
142 {
return(_map.values()); }
146 {
return(_map.labels()); }
153 {
return(_map.fromLabel(label)); }
159 {
return(_map.toLabel(value)); }
167 {
return(_map.fromInt(value)); }
173 {
return(_map.toInt(value)); }
177 {
return(_map.ordinal(value)); }
184 {
return(_map.valueAt(ordinal)); }
190 static EnumMap<E> _map;
193 #include <quark/EnumTraitsImpl.h++> 223 #define QUARK_DECLARE_ENUM_TRAITS(TYPE, DEFAULT_VALUE, INVALID_VALUE, \ 224 VALUE_LIST, LABEL_LIST) \ 225 namespace quark { namespace util { \ 226 template<> EnumMap<TYPE> EnumTraits<TYPE>::_map(DEFAULT_VALUE, \ 227 INVALID_VALUE, VALUE_LIST, LABEL_LIST); \ 230 #endif // __libquark_util_EnumTraits_hxx static int ordinal(E value)
Returns the ordinal for the given enum value.
Definition: EnumTraits.h++:176
static E valueAt(int ordinal)
Returns the enum value for the given ordinal, or the "invalid" value if the ordinal is invalid for th...
Definition: EnumTraits.h++:183
static E fromLabel(const QString &label)
Converts a label to an enum value.
Definition: EnumTraits.h++:152
static QString toLabel(E value)
Converts an enum value to its corresponding string label.
Definition: EnumTraits.h++:158
static E defaultValue()
Returns the enumeration's "default" value.
Definition: EnumTraits.h++:133
Definition: BarChartView.h++:6
static E fromInt(int value)
Converts an integer to an enum value.
Definition: EnumTraits.h++:166
static E invalidValue()
Returns the enumeration's "invalid" value.
Definition: EnumTraits.h++:137
static int toInt(E value)
Converts an enum value to the corresponding integer value.
Definition: EnumTraits.h++:172
static const QList< E > values()
Returns the list of valid enum values for this enum type.
Definition: EnumTraits.h++:141
static const QStringList labels()
Returns the list of string labels for this enum type.
Definition: EnumTraits.h++:145
A collection of static methods for accessing enum type metadata.
Definition: EnumTraits.h++:128