tuikit/widgets/textbox.py
changeset 111 b055add74b18
parent 109 105b1affc3c2
child 112 ce2e67e7bbb8
equal deleted inserted replaced
110:cf3d49cdd6e2 111:b055add74b18
    58             for j in range(exposed.y, end_y):
    58             for j in range(exposed.y, end_y):
    59                 line = self._lines[j]
    59                 line = self._lines[j]
    60                 buffer.puts(line, 0, j)
    60                 buffer.puts(line, 0, j)
    61             #self.cursor = (self._spot.x, self._spot.y)
    61             #self.cursor = (self._spot.x, self._spot.y)
    62 
    62 
    63     def keypress(self, keyname, char, mod=0):
    63     def keypress_event(self, ev):
    64         if keyname:
    64         if ev.keyname and not ev.mods:
    65             if keyname == 'left':        self.move_left()
    65             consumed = True
    66             if keyname == 'right':       self.move_right()
    66             if   ev.keyname == 'left':        self.move_left()
    67             if keyname == 'home':        self.move_home()
    67             elif ev.keyname == 'right':       self.move_right()
    68             if keyname == 'end':         self.move_end()
    68             elif ev.keyname == 'home':        self.move_home()
    69             if keyname == 'up':          self.move_up()
    69             elif ev.keyname == 'end':         self.move_end()
    70             if keyname == 'down':        self.move_down()
    70             elif ev.keyname == 'up':          self.move_up()
    71             if keyname == 'pageup':      self.move_pageup()
    71             elif ev.keyname == 'down':        self.move_down()
    72             if keyname == 'pagedown':    self.move_pagedown()
    72             elif ev.keyname == 'pageup':      self.move_pageup()
    73             if keyname == 'backspace':   self.backspace()
    73             elif ev.keyname == 'pagedown':    self.move_pagedown()
    74             if keyname == 'delete':      self.del_char()
    74             elif ev.keyname == 'backspace':   self.backspace()
    75             if keyname == 'enter':       self.add_newline(move=True)
    75             elif ev.keyname == 'delete':      self.del_char()
    76             if mod == MOD_CTRL:
    76             elif ev.keyname == 'enter':       self.add_newline(move=True)
    77                 if keyname == 'home':    self.move_top()
    77             else:
    78                 if keyname == 'end':     self.move_bottom()
    78                 consumed = False
    79 
    79             if consumed:
    80         if char:
    80                 return True
    81             self.add_char(char)
    81         if ev.mods:
       
    82             consumed = True
       
    83             mk = ev.mod_key()
       
    84             if   mk == 'ctrl+home':    self.move_top()
       
    85             elif mk == 'ctrl+end':     self.move_bottom()
       
    86             else:
       
    87                 consumed = False
       
    88             if consumed:
       
    89                 return True
       
    90 
       
    91         if ev.char and not ev.keyname:
       
    92             self.add_char(ev.char)
    82             self.move_right()
    93             self.move_right()
    83 
    94             return True
    84         #self.redraw()
       
    85 
    95 
    86     def on_mousedown(self, ev):
    96     def on_mousedown(self, ev):
    87         y = ev.wy
    97         y = ev.wy
    88         x = min(ev.wx, len(self._lines[y]))
    98         x = min(ev.wx, len(self._lines[y]))
    89         self._spot.update(x=x, y=y)
    99         self._spot.update(x=x, y=y)