def initialize
super
self.border_width = 1
self.title = TITLE
self.resize(800, 570)
mozhome = ENV['MOZILLA_FIVE_HOME']
if mozhome
Gtk::MozEmbed.set_comp_path(mozhome)
end
Gtk::MozEmbed.set_profile_path(ENV['HOME'] + '.mozilla', 'RubyGecko')
@moz = Gtk::MozEmbed.new
@moz.chrome_mask = Gtk::MozEmbed::ALLCHROME
bar = Gtk::Toolbar.new
back = bar.append(Gtk::Stock::GO_BACK) {
@moz.go_back
}
forward = bar.append(Gtk::Stock::GO_FORWARD){
@moz.go_forward
}
stop = bar.append(Gtk::Stock::STOP){
@moz.stop_load
}
refresh = bar.append(Gtk::Stock::REFRESH){
@moz.reload(Gtk::MozEmbed::RELOADBYPASSCACHE)
}
home = bar.append(Gtk::Stock::HOME) {
@moz.location="http://ruby-gnome2.sourceforge.jp/"
}
home = bar.append(Gtk::Stock::ADD) {
@moz.open_stream("http://ruby-gnome2.sourceforge.jp/", "text/html")
@moz.append_data("<html>\n")
@moz.append_data("<head>\n")
@moz.append_data("<title>Self feeded test page</title>\n")
@moz.append_data("</head>\n")
@moz.append_data("<body>\n")
@moz.append_data("<h1>Method: open_stream</h1>\n")
@moz.append_data("<a target=\"_blank\" href=\"hiki.cgi?Status+of+Ruby%2FGtkMozEmbed\">")
@moz.append_data("Status of Gtk::MozEmbed</a>")
@moz.append_data("(link relative to base_uri)\n")
@moz.append_data("</body>")
@moz.append_data("</html>")
@moz.close_stream
}
entry = Gtk::Entry.new
statusbox = Gtk::HBox.new
status = Gtk::Statusbar.new
status.has_resize_grip=false
status_context = status.get_context_id("Link")
progress = Gtk::ProgressBar.new
statusbox.pack_start(status, true)
statusbox.pack_start(progress, false)
box= Gtk::VBox.new
box.pack_start(bar, false)
box.pack_start(entry, false)
box.pack_start(@moz)
box.pack_start(statusbox, false)
self.add(box)
entry.signal_connect('activate') {
@moz.location = entry.text
}
@moz.signal_connect('location') { |widget|
$stderr.print "location signal\n"
entry.text = widget.location if entry.text != widget.location
}
@moz.signal_connect('title') { |widget|
$stderr.print "title signal\n"
self.title = widget.title + ' - ' + TITLE
}
@moz.signal_connect('progress') { |widget, cur, max|
$stderr.print "progress signal\n"
if max < 1 or cur > max
progress.pulse
else
progress.fraction = cur.to_f / max.to_f
end
}
@moz.signal_connect('link_message') {
$stderr.print "link_message signal\n"
status.push(status_context, @moz.link_message)
}
@moz.signal_connect('net_start') {
$stderr.print "net_start signal\n"
status.push(status_context, "Loading " + @moz.link_message + "...")
progress.fraction = 0.0
}
@moz.signal_connect('net_stop') {
$stderr.print "net_stop signal\n"
status.push(status_context, "")
progress.fraction = 0.0
}
@moz.on_new_window { |widget, mask|
$stderr.print "new_window\n"
Browser.new.moz
}
self.signal_connect("destroy") {
$stderr.print "closing...\n"
Gtk.main_quit
}
self.show_all
end