class MDV::MarkdownViewer
Markdown viewer window class
Public Class Methods
new(win, file)
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 11 def initialize(win, file) @win = win @document = Document.new(file) setup_gui connect_actions reload connect_signals end
Private Instance Methods
connect_actions()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 51 def connect_actions reload_action = Gio::SimpleAction.new("reload", nil) reload_action.signal_connect("activate") { reload } @win.add_action reload_action end
connect_signals()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 22 def connect_signals connect_web_view_signals end
connect_web_view_signals()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 26 def connect_web_view_signals web_view.signal_connect("context-menu") { true } web_view.signal_connect("decide-policy") do |_wv, decision, decision_type| handle_decide_policy(decision, decision_type) end end
handle_decide_policy(decision, decision_type)
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 33 def handle_decide_policy(decision, decision_type) case decision_type when :navigation_action action = decision.navigation_action if action.is_user_gesture Gtk.show_uri_on_window(@win, action.request.uri, 0) true end when :new_window_action true end end
reload()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 67 def reload web_view.load_html @document.html, @document.base_uri end
scrolled_window()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 57 def scrolled_window @scrolled_window ||= Gtk::ScrolledWindow.new(nil, nil).tap do |it| it.add web_view end end
setup_gui()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 46 def setup_gui @win.add scrolled_window @win.set_default_size 700, 500 end
web_view()
click to toggle source
# File lib/mdv/markdown_viewer.rb, line 63 def web_view @web_view ||= WebKit2::WebView.new end