class HypertextDemo

Text View/Hypertext

Usually, tags modify the appearance of text in the view, e.g. making it
bold or colored or underlined. But tags are not restricted to appearance.
They can also affect the behavior of mouse and key presses, as this demo
shows.

Public Class Methods

new(main_window) click to toggle source
# File gtk3/sample/gtk-demo/hypertext.rb, line 13
def initialize(main_window)
  @hovering = false

  initialize_window(main_window)
  initialize_cursors(main_window)
  initialize_view

  @view.signal_connect "key-press-event" do |_widget, event|
    case event.keyval
    when Gdk::Keyval::KEY_Return, Gdk::Keyval::KEY_KP_Enter
      iter = @buffer.get_iter_at_mark(@buffer.get_mark("insert"))
      follow_if_link(iter) if iter
    end

    false
  end

  @view.signal_connect "event-after" do |widget, event|
    event_after(event)
  end

  @view.signal_connect "motion-notify-event" do |widget, event|
    x, y = widget.window_to_buffer_coords(:widget, event.x, event.y)
    set_cursor_if_appropriate(widget, x, y)
    widget.window.pointer

    false
  end

  sw = Gtk::ScrolledWindow.new
  sw.set_policy(:automatic, :automatic)
  @window.add(sw)
  sw.add(@view)
  show_page(1)
  sw.show_all
end

Public Instance Methods

run() click to toggle source
# File gtk3/sample/gtk-demo/hypertext.rb, line 50
def run
  if !@window.visible?
    @window.show_all
  else
    @window.destroy
  end
  @window
end