seed r767 - trunk/examples/browser
- From: hortont svn gnome org
- To: svn-commits-list gnome org
- Subject: seed r767 - trunk/examples/browser
- Date: Mon, 19 Jan 2009 09:24:59 +0000 (UTC)
Author: hortont
Date: Mon Jan 19 09:24:59 2009
New Revision: 767
URL: http://svn.gnome.org/viewvc/seed?rev=767&view=rev
Log:
Statusbar, new setting, progressbar, reorderable tab view, etc. for browserrewrite.
Added:
trunk/examples/browser/BrowserStatusbar.js
Modified:
trunk/examples/browser/BrowserSettings.js
trunk/examples/browser/BrowserTab.js
trunk/examples/browser/BrowserView.js
trunk/examples/browser/TabbedBrowser.js
trunk/examples/browser/main.js
Modified: trunk/examples/browser/BrowserSettings.js
==============================================================================
--- trunk/examples/browser/BrowserSettings.js (original)
+++ trunk/examples/browser/BrowserSettings.js Mon Jan 19 09:24:59 2009
@@ -1 +1,2 @@
var home_page = "http://www.google.com";
+var select_new_tabs = false;
Added: trunk/examples/browser/BrowserStatusbar.js
==============================================================================
--- (empty file)
+++ trunk/examples/browser/BrowserStatusbar.js Mon Jan 19 09:24:59 2009
@@ -0,0 +1,28 @@
+BrowserStatusbar = new GType({
+ parent: Gtk.Statusbar.type,
+ name: "BrowserStatusbar",
+ init: function (klass)
+ {
+ // Private
+ var progress = new Gtk.ProgressBar();
+ var transient_status_group = this.get_context_id("transient");
+
+ // Public
+ this.get_progress = function ()
+ {
+ return progress;
+ };
+
+ this.set_status = function (status)
+ {
+ this.pop(transient_status_group);
+ this.push(transient_status_group, status);
+ };
+
+ // Implementation
+
+ // TODO: Determine how to either make smaller progressbar
+ // or, use Gtk SVN's ability to embed it in a text view!
+ this.pack_end(progress, false, false, 0);
+ }
+});
Modified: trunk/examples/browser/BrowserTab.js
==============================================================================
--- trunk/examples/browser/BrowserTab.js (original)
+++ trunk/examples/browser/BrowserTab.js Mon Jan 19 09:24:59 2009
@@ -19,6 +19,7 @@
var toolbar = new BrowserToolbar();
var web_view = new BrowserView();
var scroll_view = new Gtk.ScrolledWindow();
+ var statusbar = new BrowserStatusbar();
var tab_label;
// Public
@@ -30,7 +31,9 @@
this.set_web_view = function (new_web_view)
{
scroll_view.remove(web_view);
+
web_view = new_web_view;
+
scroll_view.add(web_view);
web_view.set_tab(this);
web_view.show();
@@ -51,6 +54,11 @@
return tab_label;
};
+ this.get_statusbar = function ()
+ {
+ return statusbar;
+ };
+
// Implementation
web_view.set_tab(this);
@@ -61,6 +69,7 @@
this.pack_start(toolbar);
this.pack_start(scroll_view, true, true);
+ this.pack_start(statusbar);
this.show_all();
}
});
Modified: trunk/examples/browser/BrowserView.js
==============================================================================
--- trunk/examples/browser/BrowserView.js (original)
+++ trunk/examples/browser/BrowserView.js Mon Jan 19 09:24:59 2009
@@ -23,12 +23,17 @@
toolbar.set_can_go_forward(web_view.can_go_forward());
};
+ var update_progress = function (bar, progress)
+ {
+ tab.get_statusbar().get_progress().fraction = progress / 100;
+ };
+
var create_new_tab = function (web_view, web_frame, new_web_view)
{
new_web_view = new BrowserView();
new_web_view.signal.web_view_ready.connect(show_new_tab);
return new_web_view;
- }
+ };
var show_new_tab = function (new_web_view)
{
@@ -37,6 +42,25 @@
return false;
};
+ var hover_link = function (web_view, link, url)
+ {
+ tab.get_statusbar().set_status(url);
+ };
+
+ var load_finished = function ()
+ {
+ tab.get_statusbar().get_progress().hide();
+ };
+
+ var load_committed = function (web_view, web_frame)
+ {
+ update_url(web_view, web_frame);
+
+ // Show statusbar in committed; otherwise, open-in-new-tab views
+ // haven't yet acquired a tab on which to show a progressbar.
+ tab.get_statusbar().get_progress().show();
+ };
+
// Public
this.browse = function (url)
{
@@ -58,8 +82,14 @@
// Implementation
this.set_scroll_adjustments(null, null);
+
this.signal.title_changed.connect(update_title);
- this.signal.load_committed.connect(update_url);
+ this.signal.load_committed.connect(load_committed);
+ this.signal.load_finished.connect(load_finished);
+ this.signal.load_progress_changed.connect(update_progress);
+
+ this.signal.hovering_over_link.connect(hover_link);
+
this.signal.create_web_view.connect(create_new_tab);
}
});
Modified: trunk/examples/browser/TabbedBrowser.js
==============================================================================
--- trunk/examples/browser/TabbedBrowser.js (original)
+++ trunk/examples/browser/TabbedBrowser.js Mon Jan 19 09:24:59 2009
@@ -17,17 +17,11 @@
this.new_tab = function (url, new_web_view)
{
- var new_tab;
+ var new_tab = new BrowserTab();
if(new_web_view != null)
- {
- new_tab = new BrowserTab();
new_tab.set_web_view(new_web_view);
- }
else
- new_tab = new BrowserTab();
-
- if(!new_web_view)
new_tab.get_web_view().browse(url);
var tab_label = new Gtk.Label({label:"Untitled"});
@@ -44,6 +38,10 @@
new_tab.set_tab_label(tab_label);
this.append_page(new_tab, tab_title);
+ this.set_tab_reorderable(new_tab, true);
+
+ if(select_new_tabs)
+ this.page = this.page_num(new_tab);
};
this.current_tab = function ()
Modified: trunk/examples/browser/main.js
==============================================================================
--- trunk/examples/browser/main.js (original)
+++ trunk/examples/browser/main.js Mon Jan 19 09:24:59 2009
@@ -7,6 +7,7 @@
Seed.include("BrowserSettings.js");
Seed.include("BrowserView.js");
+Seed.include("BrowserStatusbar.js");
Seed.include("BrowserTab.js");
Seed.include("TabbedBrowser.js");
Seed.include("BrowserToolbar.js");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]