Sha256: ef4cbf7aabb90413f5f1015af3e14cc2cc026e41b483a8bf03bad0cdd910583b
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
require 'webkit2-gtk' module MDV # Markdown viewer window class class MarkdownViewer attr_reader :file def initialize(file) @file = file setup_gui reload connect_signals @win.show_all end private def connect_signals connect_key_press_event_signal connect_destroy_signal end def connect_destroy_signal @win.signal_connect('destroy') { Gtk.main_quit } end def connect_key_press_event_signal @win.signal_connect 'key-press-event' do |_wdg, evt, _ud| handle_key(evt) if evt.state.control_mask? false end end def handle_key(evt) case evt.keyval when 'q'.ord @win.destroy when 'r'.ord reload end end def setup_gui @win = Gtk::Window.new :toplevel @win.set_default_geometry 700, 500 @win.add scrolled_window end def scrolled_window @scr ||= Gtk::ScrolledWindow.new(nil, nil).tap do |it| it.add web_view end end def web_view @wv ||= WebKit2Gtk::WebView.new end def fullpath @fullpath ||= File.expand_path(file, Dir.pwd) end def base_uri @base_uri ||= "file://#{fullpath}" end def html GitHub::Markup.render(fullpath) end def reload web_view.load_html html, base_uri end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mdv-0.3.1 | lib/mdv/markdown_viewer.rb |
mdv-0.3.0 | lib/mdv/markdown_viewer.rb |