Undo/redo, minibuffers.
[rox-edit.git] / goto.py
blobb8f1c411eaaf14095b4fa53c6addbdc885182f54
1 from rox import g
2 import rox
4 class Goto:
5 "A minibuffer used to find a line by number."
7 def setup(self, window):
8 self.window = window
9 self.window.set_mini_label('Goto line:')
11 def key_press(self, kev):
12 k = kev.keyval
13 if k == g.keysyms.Return:
14 line = self.window.mini_entry.get_text()
15 if line:
16 try:
17 line = int(line)
18 assert line >= 1
19 except:
20 rox.alert('Invalid line number: %s' % line)
21 else:
22 buffer = self.window.buffer
23 iter = buffer.get_iter_at_line(line - 1)
24 buffer.place_cursor(iter)
25 self.window.text.scroll_to_iter(iter,
26 0.05, g.FALSE)
27 self.window.set_minibuffer(None)
28 else:
29 return 0
30 return 1
32 def changed(self):
33 pass