def __init__(self, widget, nodepath, name=None, **kwargs): self._node = ParameterGObject(nodepath, create=kwargs.pop('create',None)) self._node.connect("parameter-exists", self._on_parameter_exists) self._node.connect("parameter-changed", self._on_parameter_changed) self.widget = widget self.nodepath = nodepath self.name = name or self.nodepath #this gets flipped to true if the param does exist later #in the _on_parameter_exists cb self.widget.set_sensitive( False if kwargs.get('must_exist', True) else True)
class ParamWidget(_MagicLabel): def __init__(self, widget, nodepath, name=None, **kwargs): self._node = ParameterGObject(nodepath, create=kwargs.pop('create',None)) self._node.connect("parameter-exists", self._on_parameter_exists) self._node.connect("parameter-changed", self._on_parameter_changed) self.widget = widget self.nodepath = nodepath self.name = name or self.nodepath #this gets flipped to true if the param does exist later #in the _on_parameter_exists cb self.widget.set_sensitive( False if kwargs.get('must_exist', True) else True) def _on_parameter_exists(self, node, path): self.widget.set_sensitive(True) def _on_parameter_changed(self, node, path, val): self.show_parameter(val) def show_parameter(self, val): raise NotImplementedError