set up basic code
[app.wkmirror] / BrowserToolbar.js
1 Gtk = imports.gi.Gtk;
2
3 BrowserSettings = imports.BrowserSettings;
4 TabbedBrowser = imports.TabbedBrowser;
5
6 BrowserToolbar = new GType({
7     parent: Gtk.HBox.type,
8     name: "BrowserToolbar",
9     init: function ()
10     {
11         // Private
12         var url_bar = new Gtk.Entry();
13
14         var back_button = new Gtk.ToolButton({stock_id:"gtk-go-back"});
15         var forward_button = new Gtk.ToolButton({stock_id:"gtk-go-forward"});
16         var refresh_button = new Gtk.ToolButton({stock_id:"gtk-refresh"});
17
18         var back = function ()
19         {
20             TabbedBrowser.browser.current_tab().get_web_view().go_back();
21         };
22
23         var forward = function ()
24         {
25             TabbedBrowser.browser.current_tab().get_web_view().go_forward();
26         };
27
28         var refresh = function ()
29         {
30             TabbedBrowser.browser.current_tab().get_web_view().reload();
31         };
32
33         var browse = function (url)
34         {
35             TabbedBrowser.browser.current_tab().get_web_view().browse(url.text);
36         };
37
38         // Public
39         this.set_url = function (url)
40         {
41             url_bar.text = url;
42         };
43
44         this.set_can_go_back = function (can_go_back)
45         {
46             back_button.sensitive = can_go_back;
47         };
48
49         this.set_can_go_forward = function (can_go_forward)
50         {
51             forward_button.sensitive = can_go_forward;
52         };
53
54         this.set_progress = function (progress)
55         {
56             if(BrowserSettings.have_progress_bar)
57                 url_bar.set_progress_fraction(progress);
58         };
59
60         // Implementation
61         back_button.signal.clicked.connect(back);
62         forward_button.signal.clicked.connect(forward);
63         refresh_button.signal.clicked.connect(refresh);
64         url_bar.signal.activate.connect(browse);
65
66         this.pack_start(back_button);
67         this.pack_start(forward_button);
68         this.pack_start(refresh_button);
69         this.pack_start(url_bar, true, true);
70     }
71 });