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) |