23 #ifndef MCR_EXTRAS_TRIGGER_FUNCTIONS_H_ 24 #define MCR_EXTRAS_TRIGGER_FUNCTIONS_H_ 35 class TriggerFunctionsPrivate;
40 friend class TriggerFunctionsPrivate;
48 Q_INVOKABLE QVariant id(
const QString &name)
const;
49 Q_INVOKABLE QString name(
const QVariant &
id)
const;
57 SerTrigger *serializer(
const QVariant &
id)
const 59 return serializer(
id.value<size_t>());
61 void setSerializer(
size_t id,
SerTrigger *(*serFnc)());
64 TriggerFunctionsPrivate *_private;
68 class SerTriggerPrivate;
71 friend class SerTriggerPrivate;
80 typedef void (*
set)(
SerTrigger &container,
const QVariant &value);
87 virtual size_t keyCount(
bool canonical)
const override;
88 virtual QString *keysArray(
bool canonical)
const override;
89 virtual QVariant value(
const QString &name)
const override;
90 virtual void setValue(
const QString &name,
const QVariant &val)
override;
92 virtual inline void setValueInterface(
mcr_ITrigger *itrigPt)
95 _valueInterface = itrigPt;
98 virtual void setMaps(
const QString &key,
get fnGet,
set fnSet);
100 virtual void setMapsCanonical(
const QString &key,
get fnGet,
set fnSet);
102 virtual void setMapsGeneric(
const QString &key,
get fnGet,
set fnSet)
104 setMaps(key, fnGet, fnSet);
105 setMapsCanonical(key, fnGet, fnSet);
110 SerTriggerPrivate *_private;
118 static QVariant modifiers(
const SerTrigger &container)
120 return container.empty() ? 0 : container.data<
mcr_Action>()->modifiers;
122 static void setModifiers(
SerTrigger &container,
const QVariant &val)
124 container.mkdata().data<
mcr_Action>()->modifiers = val.toUInt();
126 static QVariant triggerFlags(
const SerTrigger &container)
128 return container.empty() ? 0 : container.data<
mcr_Action>()->trigger_flags;
130 static void setTriggerFlags(
SerTrigger &container,
const QVariant &val)
132 container.mkdata().data<
mcr_Action>()->trigger_flags = val.toUInt();
141 static QVariant second(
const SerTrigger &container);
142 static void setSecond(
SerTrigger &container,
const QVariant &val);
143 static QVariant minute(
const SerTrigger &container);
144 static void setMinute(
SerTrigger &container,
const QVariant &val);
145 static QVariant hour(
const SerTrigger &container);
146 static void setHour(
SerTrigger &container,
const QVariant &val);
147 static QVariant days(
const SerTrigger &container);
148 static void setDays(
SerTrigger &container,
const QVariant &val);
156 static QVariant stages(
const SerTrigger &container);
157 static void setStages(
SerTrigger &container,
const QVariant &val);
#define mcr_throwif(condition, errorNumber)
Libmacro, by Jonathan Pelletier, New Paradigm Software. Alpha version.
Get/Set all values of an object.