code: def on_key_down(self, event):
          '''handle keyboard input'''
          state = self.state
  
          # send all key events to the parent
          if self.mouse_pos:
              latlon = self.coordinates(self.mouse_pos.x, self.mouse_pos.y)
              selected = self.selected_objects(self.mouse_pos)
              state.event_queue.put(SlipKeyEvent(latlon, event, selected))
  
          c = event.GetUniChar()
          if c == ord('+') or (c == ord('=') and event.ShiftDown()):
              self.change_zoom(1.0/1.2)
              event.Skip()
          elif c == ord('-'):
              self.change_zoom(1.2)
              event.Skip()
          elif c == ord('G'):
              self.enter_position()
              event.Skip()
          elif c == ord('C'):
              self.clear_thumbnails()
              event.Skip(f on_key_down(self, event):
          '''handle keyboard input'''
          state = self.state
  
          # send all key events to the parent
          if self.mouse_pos:
              latlon = self.coordinates(self.mouse_pos.x, self.mouse_pos.y)
              selected = self.selected_objects(self.mouse_pos)
              state.event_queue.put(SlipKeyEvent(latlon, event, selected))
  
          c = event.GetUniChar()
          if c == ord('+') or (c == ord('=') and event.ShiftDown()):
              self.change_zoom(1.0/1.2)
              event.Skip()
          elif c == ord('-'):
              self.change_zoom(1.2)
              event.Skip()
          elif c == ord('G'):
              self.enter_position()
              event.Skip()
          elif c == ord('C'):
              self.clear_thumbnails()
              event.Skip()
docs: handle keyboard input