+ def add_callback(self, event, callback):
+ self.callbacks[event].append(callback)
+
+ def callback(self, event):
+ for callback in self.callbacks[event]:
+ callback(event)
+ return bool(self.callbacks[event])
+
+ def set_selectable_callback(self, func):
+ self._is_selectable_func = func
+
+ def is_selectable(self):
+ """Return False if this widget isn't selectable by SelectorWidget."""
+ if self._is_selectable_func is not None:
+ return self._is_selectable_func()
+ else:
+ return True
+