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
|
# File 'lib/mireru/widget.rb', line 11
def create(file, width=10000, height=10000)
if image?(file)
image = Gtk::Image.new
pixbuf = Gdk::Pixbuf.new(file)
if pixbuf.width > width || pixbuf.height > height
pixbuf = Gdk::Pixbuf.new(file, width, height)
end
image.pixbuf = pixbuf
widget = image
elsif video?(file)
widget = Mireru::Video.create(file)
else
begin
buffer = buffer_from_file(file)
rescue Mireru::Error
return sorry
end
view = GtkSource::View.new(buffer)
view.show_line_numbers = true
lang = GtkSource::LanguageManager.new.get_language("ruby")
view.buffer.language = lang
view.buffer.highlight_syntax = true
view.buffer.highlight_matching_brackets = true
view.editable = false
view.override_font(Pango::FontDescription.new("Monospace"))
widget = view
end
widget
end
|