def get_or_create_axis(self, key, *args, **kwargs): result = accessors.getitem(self.axes, key, None) if result is None: result = Axis(*args, **kwargs) result.data_changed.subscribe(self.axis_data_changed) accessors.setitem(self.axes, key, result) return result
def get_or_create_mark(self, key, *args, **kwargs): result = accessors.getitem(self.marks, key, None) if result is None: result = Mark(*args, **kwargs) result.data_changed.subscribe(self.mark_data_changed) accessors.setitem(self.marks, key, result) return result
def __setitem__(self, key, value): def _notify(obj, key_, value_): self.data_changed(self, (key,) + key_, value_) old_value, new_value = accessors.getitem(objects.itemsof(self), key, None), value if old_value is not None: old_value.data_changed.unsubscribe(_notify) accessors.setitem(objects.itemsof(self), key, value) if new_value is not None: new_value.data_changed.subscribe(_notify)
def touch_move(self, value): try: accessors.getitem(self._touches, value.identifier) accessors.setitem(self._touches, value.identifier, value) except Exception: pass
def touch_press(self, value): accessors.setitem(self._touches, value.identifier, value)
def key_press(self, value): accessors.setitem(self._keys, value.identifier, value)
def visible(self, value): accessors.setitem(objects.attrsof(self), "visible", value) self.data_changed(self, ("visible",), value)
def arrangement(self, value): accessors.setitem(objects.attrsof(self), "arrangement", value) self.data_changed(self, ("arrangement",), value)
def angular(self, value): accessors.setitem(objects.attrsof(self), "angular", value) self.data_changed(self, ("angular",), value)
def data(self, value): accessors.setitem(objects.attrsof(self), "data", value) self.data_changed(self, (), value)