def _start_editing(self): """Start editing mode""" self.focus_keymap.unregister_key(self.start_editing_key) self.focus_keymap.register_key(self.stop_editing_key, Keymap.keydown_noarg(self._stop_editing)) self.focus_keymap.set_next_keymap(self.editing_keymap) self.is_editing = True
def _stop_editing(self): """Stop editing mode""" if not self.is_editing: return self.focus_keymap.unregister_key(self.stop_editing_key) self.focus_keymap.register_key(self.start_editing_key, Keymap.keydown_noarg(self._start_editing)) self.is_editing = False self.focus_keymap.set_next_keymap(None) self._cursor = None
def _register_keys(self): self.focus_keymap.register_key(self.start_editing_key, Keymap.keydown_noarg(self._start_editing)) self.editing_keymap.obs_activation.add_observer(self, "_editing_") def register_editing_key(key, func): self.editing_keymap.register_key(key, Keymap.keydown_noarg(func)) register_editing_key(self.left_key, self._left) register_editing_key(self.right_key, self._right) for home_key in self.home_keys: register_editing_key(home_key, self._home) for end_key in self.end_keys: register_editing_key(end_key, self._end) register_editing_key(self.backspace_key, self._backspace) register_editing_key(self.del_key, self._delete) for group in self.key_groups: self.editing_keymap.register_group( group, Keymap.handler(include_event=True)(self._handle_char_key) )
def register_editing_key(key, func): self.editing_keymap.register_key(key, Keymap.keydown_noarg(func))