sync
[app.wkmirror] / BrowserToolbar.js
1 Gtk = imports.gi.Gtk;
2
3 BrowserSettings = imports.BrowserSettings;
4 TabbedBrowser = imports.TabbedBrowser;
5 File = imports.File.File;
6
7
8
9 BrowserToolbar = new GType({
10     parent: Gtk.HBox.type,
11     name: "BrowserToolbar",
12     init: function ()
13     {
14         // Private
15         var url_bar = new Gtk.Entry();
16
17         var back_button = new Gtk.ToolButton({stock_id:"gtk-go-back"});
18         var forward_button = new Gtk.ToolButton({stock_id:"gtk-go-forward"});
19         var refresh_button = new Gtk.ToolButton({stock_id:"gtk-refresh"});
20         var grab_button = new Gtk.ToolButton({label:"mirror"});
21
22         var back = function ()
23         {
24             TabbedBrowser.browser.current_tab().get_web_view().go_back();
25         };
26
27         var forward = function ()
28         {
29             TabbedBrowser.browser.current_tab().get_web_view().go_forward();
30         };
31
32         var refresh = function ()
33         {
34             
35             
36             TabbedBrowser.browser.current_tab().get_web_view().reload();
37             TabbedBrowser.browser.current_tab().get_web_view().signals.onload_event(function() {
38             var fn = __script_path__ + "/inject.js";
39             if (File.exists(fn)) {
40                 print("Adding inject");
41                 var newjs = File.read(__script_path__ + "/inject.js");
42                 TabbedBrowser.browser.current_tab().get_web_view().execute_script(
43                     newjs
44                     
45                 );
46             }
47             print("Sending gather links");
48             TabbedBrowser.browser.current_tab().get_web_view().execute_script(
49                 "gatherlinks();"
50                 
51             );
52              });
53
54         };
55
56         var browse = function (url)
57         {
58             TabbedBrowser.browser.current_tab().get_web_view().browse(url.text);
59         };
60
61         var grab = function(){
62             print("sedning hello");
63             TabbedBrowser.browser.current_tab().get_web_view().execute_script(
64                 "gatherlinks();"
65             );
66     
67            // print('test');
68         };
69         
70          
71         // Public
72         this.set_url = function (url)
73         {
74             url_bar.text = url;
75         };
76
77         this.set_can_go_back = function (can_go_back)
78         {
79             back_button.sensitive = can_go_back;
80         };
81
82         this.set_can_go_forward = function (can_go_forward)
83         {
84             forward_button.sensitive = can_go_forward;
85         };
86
87         this.set_progress = function (progress)
88         {
89             if(BrowserSettings.have_progress_bar)
90                 url_bar.set_progress_fraction(progress);
91         };
92
93         // Implementation
94         back_button.signal.clicked.connect(back);
95         forward_button.signal.clicked.connect(forward);
96         refresh_button.signal.clicked.connect(refresh);
97         url_bar.signal.activate.connect(browse);
98         grab_button.signal.clicked.connect(grab);
99
100         this.pack_start(back_button);
101         this.pack_start(forward_button);
102         
103         
104          this.pack_start(refresh_button);
105          this.pack_start(grab_button);
106         this.pack_start(url_bar, true, true);
107
108
109     }
110 });