File: browser_widget.hpp

package info (click to toggle)
videolink 1.0-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 368 kB
  • ctags: 502
  • sloc: cpp: 3,210; ansic: 880; makefile: 121
file content (73 lines) | stat: -rw-r--r-- 2,212 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright 2005 Ben Hutchings <ben@decadent.org.uk>.
// See the file "COPYING" for licence details.

#ifndef INC_BROWSER_WIDGET_HPP
#define INC_BROWSER_WIDGET_HPP

#include <glibmm/signalproxy.h>
#include <gtkmm/bin.h>

#include <gtkmozembed.h>
#include <nsCOMPtr.h>

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<nsIWebBrowser> get_browser();

    Glib::SignalProxy0<void> signal_link_message();
    Glib::SignalProxy0<void> signal_js_status();
    Glib::SignalProxy0<void> signal_location();
    Glib::SignalProxy0<void> signal_title();
    Glib::SignalProxy2<void, gint /*cur*/, gint /*max*/> signal_progress();
    Glib::SignalProxy3<void, const char *, gint /*flags*/, guint /*status*/>
	signal_net_state();
    Glib::SignalProxy0<void> signal_net_start();
    Glib::SignalProxy0<void> signal_net_stop();
    Glib::SignalProxy1<browser_widget *, guint /*chromemask*/> signal_new_window();
    Glib::SignalProxy1<void, bool /*visibility*/> signal_visibility();
    Glib::SignalProxy0<void> signal_destroy();
    Glib::SignalProxy1<bool, const char * /*uri*/> 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