]> git.decadent.org.uk Git - videolink.git/blob - browserwidget.hpp
Added --help option and arranged to print usage information when this is used and...
[videolink.git] / browserwidget.hpp
1 // Copyright 2005 Ben Hutchings <ben@decadentplace.org.uk>.
2 // See the file "COPYING" for licence details.
3
4 #ifndef INC_BROWSERWIDGET_HPP
5 #define INC_BROWSERWIDGET_HPP
6
7 #include <glibmm/signalproxy.h>
8 #include <gtkmm/bin.h>
9
10 #include <gtkmozembed.h>
11 #include <nsCOMPtr.h>
12
13 class BrowserWidget;
14 class nsIWebBrowser;
15
16 namespace Glib
17 {
18     BrowserWidget * wrap(GtkMozEmbed * object, bool take_copy = false);
19 }
20
21 class BrowserWidget : public Gtk::Bin
22 {
23 public:
24     BrowserWidget();
25     virtual ~BrowserWidget();
26     GtkMozEmbed * gobj();
27     const GtkMozEmbed * gobj() const;
28
29     void load_uri(const char * uri);
30     void load_uri(const std::string & uri);
31     void stop_load();
32     void go_back();
33     void go_forward();
34     void reload(gint32 flags = GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
35
36     bool can_go_back() const;
37     bool can_go_forward() const;
38
39     std::string get_link_message() const;
40     std::string get_js_status() const;
41     std::string get_title() const;
42     std::string get_location() const;
43     already_AddRefed<nsIWebBrowser> get_browser();
44
45     Glib::SignalProxy0<void> signal_link_message();
46     Glib::SignalProxy0<void> signal_js_status();
47     Glib::SignalProxy0<void> signal_location();
48     Glib::SignalProxy0<void> signal_title();
49     Glib::SignalProxy2<void, gint /*cur*/, gint /*max*/> signal_progress();
50     Glib::SignalProxy3<void, const char *, gint /*flags*/, guint /*status*/>
51         signal_net_state();
52     Glib::SignalProxy0<void> signal_net_start();
53     Glib::SignalProxy0<void> signal_net_stop();
54     Glib::SignalProxy1<BrowserWidget *, guint /*chromemask*/> signal_new_window();
55     Glib::SignalProxy1<void, bool /*visibility*/> signal_visibility();
56     Glib::SignalProxy0<void> signal_destroy();
57     Glib::SignalProxy1<bool, const char * /*uri*/> signal_open_uri();
58
59     // This must be called after Gtk initialisation and before instantiation
60     // of BrowserWidget.
61     static void init();
62
63 private:
64     BrowserWidget(GObject * gobject, bool take_copy);
65     static Glib::ObjectBase * wrap_new(GObject * gobject);
66     friend BrowserWidget * Glib::wrap(GtkMozEmbed * object, bool take_copy);
67 };
68
69 #endif // !INC_BROWSERWIDGET_HPP