1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import gtk
import gtksourceview2 as gtksourceview
class HandlerClass:
def _set_line(self,l):
if not l:
if self.mark:
self.textbuffer.delete_mark(self.mark)
self.mark = None
return
line = self.textbuffer.get_iter_at_line(l-1)
if not self.mark:
self.mark = self.textbuffer.create_source_mark('highlight', 'highlight', line)
self.mark.set_visible(True)
else:
self.textbuffer.move_mark(self.mark, line)
self.sourceview.scroll_to_mark(self.mark, 0, True, 0, 0.5)
def file_set(self,widget,data=None):
filename = widget.get_filename()
print "file_set",filename
self.textbuffer.set_text(open(filename).read())
self.line = 1
self._set_line(self.line)
def on_down(self,widget,data=None):
self.line += 1
self._set_line(self.line)
def on_up(self,widget,data=None):
self.line -= 1
self._set_line(self.line)
def __init__(self, halcomp,builder,useropts):
self.halcomp = halcomp
self.builder = builder
self.line = 1
self.sourceview = builder.get_object('gtksourceview1')
self.textbuffer = gtksourceview.Buffer()
self.sourceview.set_buffer(self.textbuffer)
self.sourceview.set_show_line_numbers(True)
self.sourceview.set_show_line_marks(True)
self.sourceview.set_highlight_current_line(True)
self.sourceview.set_mark_category_icon_from_icon_name('highlight', 'gtk-forward')
self.sourceview.set_mark_category_background('highlight', gtk.gdk.Color('yellow'))
self.mark = None
def get_handlers(halcomp,builder,useropts):
return [HandlerClass(halcomp,builder,useropts)]
|