#!/usr/bin/python import gtk import gtkmozembed class ExampleBrowser(object): def __init__(self): data = """Hello PyGTK using MozEmbed to embed a web browser. """ win = gtk.Window() win.set_size_request(800, 600) win.connect("delete_event", lambda w,e: gtk.main_quit()) # gtk.VBox(homogeneous=False, spacing=0) vbox = gtk.VBox(False, 0) control_box = gtk.HBox(False, 0) #pack_start(button, expand, fill, padding) back = gtk.Button("Back") forward = gtk.Button("Forward") refresh = gtk.Button("Refresh") stop = gtk.Button("Stop") home = gtk.Button("Home") self.address = gtk.Entry(max=0) # no limit on address length go = gtk.Button("Go") control_box.pack_start(back, True, True, 2) control_box.pack_start(forward, True, True, 2) control_box.pack_start(refresh, True, True, 2) control_box.pack_start(stop, True, True, 2) control_box.pack_start(home, True, True, 2) control_box.pack_start(self.address, True, True, 2) control_box.pack_start(go, True, True, 2) back.connect("clicked", self.on_back_clicked, None) forward.connect("clicked", self.on_forward_clicked, None) refresh.connect("clicked", self.on_refresh_clicked, None) stop.connect("clicked", self.on_stop_clicked, None) home.connect("clicked", self.on_home_clicked, data) self.address.connect("key_press_event", self.on_address_keypress) go.connect("clicked", self.on_go_clicked, None) vbox.pack_start(control_box, False, True, 2) self.browser = gtkmozembed.MozEmbed() #gtkmozembed.set_profile_path("/tmp", "foobar") vbox.add(self.browser) win.add(vbox) win.show_all() ## self.browser.load_url('http://www.pygtk.org') self.browser.render_data(data, long(len(data)), 'file:///', 'text/html') # Load file from file system #self.browser.load_url('file:///path/to/file/name.html') def on_back_clicked(self, widget=None, data=None): print "Back button clicked." if self.browser.can_go_back(): self.browser.go_back() def on_forward_clicked(self, widget=None, data=None): print "Forward button clicked." if self.browser.can_go_forward(): self.browser.go_forward() def on_refresh_clicked(self, widget=None, data=None): print "Refresh button clicked." self.browser.reload(gtkmozembed.FLAG_RELOADNORMAL) def on_stop_clicked(self, widget=None, data=None): print "Stop Button Clicked." self.browser.stop_load() def on_home_clicked(self, widget=None, data=None): print "Home Button clicked." print "Back button only works on actual pages and not render_data" self.browser.render_data(data, long(len(data)), 'file:///', 'text/html') def on_address_keypress(self, widget, event): print "Key event in address bar" if gtk.gdk.keyval_name(event.keyval) == "Return": print "Key press: Return" self.on_go_clicked(None) def on_go_clicked(self, widget=None, data=None): print "Go Button Clicked." self.browser.load_url(self.address.get_text()) if __name__ == '__main__': ExampleBrowser() gtk.main()