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