1 // Copyright 2005 Ben Hutchings <ben@decadent.org.uk>.
2 // See the file "COPYING" for licence details.
4 #ifndef INC_BROWSER_WIDGET_HPP
5 #define INC_BROWSER_WIDGET_HPP
7 #include <glibmm/signalproxy.h>
10 #include "wchar_t_short.h"
11 #include <gtkmozembed.h>
13 #include "wchar_t_default.h"
20 browser_widget * wrap(GtkMozEmbed * object, bool take_copy = false);
23 class browser_widget : public Gtk::Bin
27 virtual ~browser_widget();
29 const GtkMozEmbed * gobj() const;
31 void load_uri(const char * uri);
32 void load_uri(const std::string & uri);
36 void reload(gint32 flags = GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
38 bool can_go_back() const;
39 bool can_go_forward() const;
41 std::string get_link_message() const;
42 std::string get_js_status() const;
43 std::string get_title() const;
44 std::string get_location() const;
45 already_AddRefed<nsIWebBrowser> get_browser();
47 Glib::SignalProxy0<void> signal_link_message();
48 Glib::SignalProxy0<void> signal_js_status();
49 Glib::SignalProxy0<void> signal_location();
50 Glib::SignalProxy0<void> signal_title();
51 Glib::SignalProxy2<void, gint /*cur*/, gint /*max*/> signal_progress();
52 Glib::SignalProxy3<void, const char *, gint /*flags*/, guint /*status*/>
54 Glib::SignalProxy0<void> signal_net_start();
55 Glib::SignalProxy0<void> signal_net_stop();
56 Glib::SignalProxy1<browser_widget *, guint /*chromemask*/> signal_new_window();
57 Glib::SignalProxy1<void, bool /*visibility*/> signal_visibility();
58 Glib::SignalProxy0<void> signal_destroy();
59 Glib::SignalProxy1<bool, const char * /*uri*/> signal_open_uri();
61 // This must be instantiated after Gtk initialisation and before
62 // instantiation of browser_widget.
70 browser_widget(GObject * gobject, bool take_copy);
71 static Glib::ObjectBase * wrap_new(GObject * gobject);
72 friend browser_widget * Glib::wrap(GtkMozEmbed * object, bool take_copy);
75 #endif // !INC_BROWSER_WIDGET_HPP