X-Git-Url: https://git.decadent.org.uk/gitweb/?p=videolink.git;a=blobdiff_plain;f=browser_widget.hpp;fp=browser_widget.hpp;h=16d302323f7dc8b7727412a4aa71402d251d9a3d;hp=0000000000000000000000000000000000000000;hb=0acb5f1329d294faf42e247f8c2daf68d82150f6;hpb=1b6026c7baa122b99011f760857b80b7f253dfbb diff --git a/browser_widget.hpp b/browser_widget.hpp new file mode 100644 index 0000000..16d3023 --- /dev/null +++ b/browser_widget.hpp @@ -0,0 +1,73 @@ +// Copyright 2005 Ben Hutchings . +// See the file "COPYING" for licence details. + +#ifndef INC_BROWSER_WIDGET_HPP +#define INC_BROWSER_WIDGET_HPP + +#include +#include + +#include +#include + +class browser_widget; +class nsIWebBrowser; + +namespace Glib +{ + browser_widget * wrap(GtkMozEmbed * object, bool take_copy = false); +} + +class browser_widget : public Gtk::Bin +{ +public: + browser_widget(); + virtual ~browser_widget(); + GtkMozEmbed * gobj(); + const GtkMozEmbed * gobj() const; + + void load_uri(const char * uri); + void load_uri(const std::string & uri); + void stop_load(); + void go_back(); + void go_forward(); + void reload(gint32 flags = GTK_MOZ_EMBED_FLAG_RELOADNORMAL); + + bool can_go_back() const; + bool can_go_forward() const; + + std::string get_link_message() const; + std::string get_js_status() const; + std::string get_title() const; + std::string get_location() const; + already_AddRefed get_browser(); + + Glib::SignalProxy0 signal_link_message(); + Glib::SignalProxy0 signal_js_status(); + Glib::SignalProxy0 signal_location(); + Glib::SignalProxy0 signal_title(); + Glib::SignalProxy2 signal_progress(); + Glib::SignalProxy3 + signal_net_state(); + Glib::SignalProxy0 signal_net_start(); + Glib::SignalProxy0 signal_net_stop(); + Glib::SignalProxy1 signal_new_window(); + Glib::SignalProxy1 signal_visibility(); + Glib::SignalProxy0 signal_destroy(); + Glib::SignalProxy1 signal_open_uri(); + + // This must be instantiated after Gtk initialisation and before + // instantiation of browser_widget. + struct initialiser + { + initialiser(); + ~initialiser(); + }; + +private: + browser_widget(GObject * gobject, bool take_copy); + static Glib::ObjectBase * wrap_new(GObject * gobject); + friend browser_widget * Glib::wrap(GtkMozEmbed * object, bool take_copy); +}; + +#endif // !INC_BROWSER_WIDGET_HPP