class Temperature(event.Component): """ Temperature object with a settable prop for both Celcius and Fahrenheit. """ c = event.FloatProp(doc='Temperature in degrees Celcius') f = event.FloatProp(doc='Temperature in degrees Fahrenheit') @event.action def set_c(self, t): t = float(t) self._mutate_c(t) self._mutate_f(t * 1.8 + 32) @event.action def set_f(self, t): t = float(t) self._mutate_f(t) self._mutate_c((t - 32) / 1.8) @event.reaction def on_temp_change(self): # This gets called once with two events when either C or F is changed. print(' temp in Celcius: %1.1f C' % self.c) print(' temp in Fahrenheit: %1.1f F' % self.f)
class MyObject(event.Component): att = event.Attribute() # Props to test basic stuff foo = event.AnyProp(6, settable=True, doc='can be anything') bar = event.StringProp('xx') # not settable # Props to test array mutations eggs = event.ListProp([], settable=True) eggs2 = event.ListProp(settable=True) eggs3 = event.ListProp([3, 4]) # All kinds of props, defaults anyprop = event.AnyProp(doc='can be anything', settable=True) boolprop = event.BoolProp(settable=True) tristateprop = event.TriStateProp(settable=True) intprop = event.IntProp(settable=True) floatprop = event.FloatProp(settable=True) stringprop = event.StringProp(settable=True) tupleprop = event.TupleProp(settable=True) listprop = event.ListProp(settable=True) dictprop = event.DictProp(settable=True) componentprop = event.ComponentProp(settable=True) # can be None # nullprop = event.NullProp(None, settable=True) # eitherprop = event.EitherProp(event.IntProp, event.NoneProp) _privateprop = event.IntProp(settable=True)
class MyDefaults(event.Component): # Custom defaults anyprop2 = event.AnyProp(7, doc='can be anything') boolprop2 = event.BoolProp(True) intprop2 = event.IntProp(-9) floatprop2 = event.FloatProp(800.45) stringprop2 = event.StringProp('heya') tupleprop2 = event.TupleProp((2, 'xx')) listprop2 = event.ListProp([3, 'yy']) dictprop2 = event.DictProp({'foo':3, 'bar': 4}) componentprop2 = event.ComponentProp(None)
class MyDefaults2(MyDefaults): floatprop2 = event.FloatProp(3.14) stringprop2 = event.StringProp('hi')