seed r418 - trunk/examples/browser
- From: hortont svn gnome org
- To: svn-commits-list gnome org
- Subject: seed r418 - trunk/examples/browser
- Date: Tue, 9 Dec 2008 19:53:08 +0000 (UTC)
Author: hortont
Date: Tue Dec 9 19:53:08 2008
New Revision: 418
URL: http://svn.gnome.org/viewvc/seed?rev=418&view=rev
Log:
Split browser into files.
Added:
trunk/examples/browser/browser-actions.js
trunk/examples/browser/browser-main.js
trunk/examples/browser/browser-tab.js
trunk/examples/browser/browser-toolbar.js
Modified:
trunk/examples/browser/main.js
Added: trunk/examples/browser/browser-actions.js
==============================================================================
--- (empty file)
+++ trunk/examples/browser/browser-actions.js Tue Dec 9 19:53:08 2008
@@ -0,0 +1,87 @@
+function current_tab()
+{
+ return browser.get_nth_page(browser.page);
+}
+
+function go_back()
+{
+ current_tab().webView.go_back();
+ return false;
+}
+
+function go_forward()
+{
+ current_tab().webView.go_forward();
+ return false;
+}
+
+function refresh_page()
+{
+ current_tab().webView.reload();
+ return false;
+}
+
+function close_tab()
+{
+ browser.remove_page(browser.page_num(current_tab()));
+
+ if(!browser.get_n_pages())
+ {
+ browser.newTab().navigateTo(homePage);
+ }
+
+ return false;
+}
+
+function browse(urlBar, tab)
+{
+ if (urlBar.text.search("://") < 0)
+ {
+ urlBar.text = "http://" + urlBar.text;
+ }
+
+ tab.webView.open(urlBar.text);
+
+ return false;
+}
+
+function initialize_actions()
+{
+ actions = new Gtk.ActionGroup({name:"toolbar"});
+
+ accels = new Gtk.AccelGroup();
+
+ var new_tab_action = new Gtk.Action({name:"new", label:"New Tab",
+ tooltip:"New Tab", stock_id:"gtk-new"});
+ new_tab_action.set_accel_group(accels);
+ actions.add_action_with_accel(new_tab_action, "<Control>t");
+ new_tab_action.connect_accelerator();
+ new_tab_action.signal.activate.connect(
+ function ()
+ {
+ browser.newTab().navigateTo(homePage);
+ browser.page = browser.get_n_pages() - 1;
+ }
+ );
+
+ var close_tab_action = new Gtk.Action({name:"close", label:"Close",
+ tooltip:"Close Tab", stock_id:"gtk-close"});
+ close_tab_action.set_accel_group(accels);
+ actions.add_action_with_accel(close_tab_action, "<Control>w");
+ close_tab_action.connect_accelerator();
+ close_tab_action.signal.activate.connect(close_tab);
+
+ var focus_urlbar_action = new Gtk.Action({name:"url", label:"Focus URL Bar",
+ tooltip:"Focus URL Bar"});
+ focus_urlbar_action.set_accel_group(accels);
+ actions.add_action_with_accel(focus_urlbar_action, "<Control>l");
+ focus_urlbar_action.connect_accelerator();
+ focus_urlbar_action.signal.activate.connect(
+ function ()
+ {
+ current_tab().toolbar.urlBar.grab_focus();
+ }
+ );
+
+ return accels;
+}
Added: trunk/examples/browser/browser-main.js
==============================================================================
--- (empty file)
+++ trunk/examples/browser/browser-main.js Tue Dec 9 19:53:08 2008
@@ -0,0 +1,24 @@
+TabbedBrowserType = {
+ parent: Gtk.Notebook.type,
+ name: "TabbedBrowser",
+ class_init: function(klass, prototype)
+ {
+ prototype.newTab = function ()
+ {
+ var tab = new BrowserTab();
+
+ this.append_page(tab, tab.title);
+ this.set_tab_reorderable(tab, true);
+
+ if(selectTabOnCreation)
+ this.page = this.get_n_pages() - 1;
+
+ return tab;
+ }
+ },
+ instance_init: function(klass)
+ {
+
+ }};
+
+TabbedBrowser = new GType(TabbedBrowserType);
Added: trunk/examples/browser/browser-tab.js
==============================================================================
--- (empty file)
+++ trunk/examples/browser/browser-tab.js Tue Dec 9 19:53:08 2008
@@ -0,0 +1,110 @@
+function title_changed(webView, webFrame, title, tab)
+{
+ if(title.length > 25)
+ title = title.slice(0,25) + "...";
+
+ tab.titleLabel.label = title;
+ return false;
+}
+
+function url_changed(webView, webFrame, tab)
+{
+ tab.toolbar.urlBar.text = webFrame.get_uri();
+ return false;
+}
+
+function new_tab_requested(webView, webFrame, newWebView)
+{
+ newWebView = new WebKit.WebView();
+ newWebView.signal.web_view_ready.connect(new_tab_ready);
+ return newWebView;
+}
+
+function new_tab_ready(webView)
+{
+ browser.newTab().setWebView(webView);
+ return false;
+}
+
+BrowserTabType = {
+ parent: Gtk.VBox.type,
+ name: "BrowserTab",
+ class_init: function(klass, prototype)
+ {
+ prototype.navigateTo = function (location)
+ {
+ if(!this.webView)
+ this.setWebView(new WebKit.WebView());
+
+ this.webView.open(location);
+ this.show_all();
+ }
+
+ prototype.setWebView = function (webView)
+ {
+ if(this.webView)
+ return;
+
+ this.webView = webView;
+
+ this.webView.set_scroll_adjustments(null, null);
+ this.webView.signal.title_changed.connect(title_changed, null, this);
+ this.webView.signal.load_committed.connect(url_changed, null, this);
+ this.webView.signal.create_web_view.connect(new_tab_requested, null, this);
+ this.webView.signal.web_view_ready.connect(new_tab_ready, null, this);
+
+ this.toolbar.urlBar.signal.activate.connect(browse, null, this);
+
+ webView.set_settings(webKitSettings);
+ var inspector = webView.get_inspector();
+
+ inspector.signal.inspect_web_view.connect(
+ function()
+ {
+ w = new Gtk.Window();
+ s = new Gtk.ScrolledWindow();
+ w.set_title("Inspector");
+
+ w.set_default_size(400, 300);
+
+ view = new WebKit.WebView();
+ s.add(view);
+ w.add(s);
+
+ w.show_all();
+
+ return view;
+ }
+ );
+
+
+ s = new Gtk.ScrolledWindow();
+ s.add(this.webView);
+ this.pack_start(s, true, true);
+ this.show_all();
+ }
+ },
+ instance_init: function(klass)
+ {
+ this.webView = null;
+
+ this.toolbar = new BrowserToolbar();
+
+ this.pack_start(this.toolbar);
+
+ var closeButton = new Gtk.Button();
+ closeButton.set_image(new Gtk.Image({stock: "gtk-close",
+ icon_size: Gtk.IconSize.menu}));
+ closeButton.signal.clicked.connect(close_tab, this);
+ closeButton.set_relief(Gtk.ReliefStyle.none);
+
+ this.title = new Gtk.HBox();
+ this.titleLabel = new Gtk.Label({label:"Untitled"})
+ this.title.pack_start(this.titleLabel);
+ this.title.pack_start(closeButton);
+ this.title.show_all();
+
+ this.show_all();
+ }};
+
+BrowserTab = new GType(BrowserTabType);
Added: trunk/examples/browser/browser-toolbar.js
==============================================================================
--- (empty file)
+++ trunk/examples/browser/browser-toolbar.js Tue Dec 9 19:53:08 2008
@@ -0,0 +1,25 @@
+BrowserToolbarType = {
+ parent: Gtk.HBox.type,
+ name: "BrowserToolbar",
+ class_init: function(klass, prototype)
+ {
+ },
+ instance_init: function(klass)
+ {
+ this.urlBar = new Gtk.Entry();
+
+ var back = new Gtk.ToolButton({stock_id:"gtk-go-back"});
+ var forward = new Gtk.ToolButton({stock_id:"gtk-go-forward"});
+ var refresh = new Gtk.ToolButton({stock_id:"gtk-refresh"});
+
+ back.signal.clicked.connect(go_back);
+ forward.signal.clicked.connect(go_forward);
+ refresh.signal.clicked.connect(refresh_page);
+
+ this.pack_start(back);
+ this.pack_start(forward);
+ this.pack_start(refresh);
+ this.pack_start(this.urlBar, true, true);
+ }};
+
+BrowserToolbar = new GType(BrowserToolbarType);
Modified: trunk/examples/browser/main.js
==============================================================================
--- trunk/examples/browser/main.js (original)
+++ trunk/examples/browser/main.js Tue Dec 9 19:53:08 2008
@@ -4,7 +4,6 @@
Seed.import_namespace("WebKit");
/* Todo (priority order):
- * Key combos (new, close, Ctrl-L, etc)
* Ctrl-click-open-in-new-tab?
* Progress
* Bookmarks
@@ -26,256 +25,10 @@
var selectTabOnCreation = false;
var webKitSettings = new WebKit.WebSettings({enable_developer_extras: true});
-// Actions
-function initialize_actions()
-{
- actions = new Gtk.ActionGroup({name:"toolbar"});
-
- accels = new Gtk.AccelGroup();
-
- var new_tab_action = new Gtk.Action({name:"new", label:"New Tab",
- tooltip:"New Tab", stock_id:"gtk-new"});
- new_tab_action.set_accel_group(accels);
- actions.add_action_with_accel(new_tab_action, "<Control>t");
- new_tab_action.connect_accelerator();
- new_tab_action.signal.activate.connect(
- function ()
- {
- browser.newTab().navigateTo(homePage);
- browser.page = browser.get_n_pages() - 1;
- }
- );
-
- var close_tab_action = new Gtk.Action({name:"close", label:"Close",
- tooltip:"Close Tab", stock_id:"gtk-close"});
- close_tab_action.set_accel_group(accels);
- actions.add_action_with_accel(close_tab_action, "<Control>w");
- close_tab_action.connect_accelerator();
- close_tab_action.signal.activate.connect(close_tab);
-
- var focus_urlbar_action = new Gtk.Action({name:"url", label:"Focus URL Bar",
- tooltip:"Focus URL Bar"});
- focus_urlbar_action.set_accel_group(accels);
- actions.add_action_with_accel(focus_urlbar_action, "<Control>l");
- focus_urlbar_action.connect_accelerator();
- focus_urlbar_action.signal.activate.connect(
- function ()
- {
- current_tab().toolbar.urlBar.grab_focus();
- }
- );
-
- return accels;
-}
-
-function current_tab()
-{
- return browser.get_nth_page(browser.page);
-}
-
-function go_back()
-{
- current_tab().webView.go_back();
- return false;
-}
-
-function go_forward()
-{
- current_tab().webView.go_forward();
- return false;
-}
-
-function refresh_page()
-{
- current_tab().webView.reload();
- return false;
-}
-
-function close_tab()
-{
- browser.remove_page(browser.page_num(current_tab()));
-
- if(!browser.get_n_pages())
- {
- browser.newTab().navigateTo(homePage);
- }
-
- return false;
-}
-
-function title_changed(webView, webFrame, title, tab)
-{
- if(title.length > 25)
- title = title.slice(0,25) + "...";
-
- tab.titleLabel.label = title;
- return false;
-}
-
-function url_changed(webView, webFrame, tab)
-{
- tab.toolbar.urlBar.text = webFrame.get_uri();
- return false;
-}
-
-function newTab_requested(webView, webFrame, newWebView)
-{
- newWebView = new WebKit.WebView();
- newWebView.signal.web_view_ready.connect(newTab_ready);
- return newWebView;
-}
-
-function newTab_ready(webView)
-{
- browser.newTab().setWebView(webView);
- return false;
-}
-
-function browse(urlBar, tab)
-{
- if (urlBar.text.search("://") < 0)
- {
- urlBar.text = "http://" + urlBar.text;
- }
-
- tab.webView.open(urlBar.text);
-
- return false;
-}
-
-BrowserToolbarType = {
- parent: Gtk.HBox.type,
- name: "BrowserToolbar",
- class_init: function(klass, prototype)
- {
- },
- instance_init: function(klass)
- {
- this.urlBar = new Gtk.Entry();
-
- var back = new Gtk.ToolButton({stock_id:"gtk-go-back"});
- var forward = new Gtk.ToolButton({stock_id:"gtk-go-forward"});
- var refresh = new Gtk.ToolButton({stock_id:"gtk-refresh"});
-
- back.signal.clicked.connect(go_back);
- forward.signal.clicked.connect(go_forward);
- refresh.signal.clicked.connect(refresh_page);
-
- this.pack_start(back);
- this.pack_start(forward);
- this.pack_start(refresh);
- this.pack_start(this.urlBar, true, true);
- }};
-
-BrowserToolbar = new GType(BrowserToolbarType);
-
-BrowserTabType = {
- parent: Gtk.VBox.type,
- name: "BrowserTab",
- class_init: function(klass, prototype)
- {
- prototype.navigateTo = function (location)
- {
- if(!this.webView)
- this.setWebView(new WebKit.WebView());
-
- this.webView.open(location);
- this.show_all();
- }
-
- prototype.setWebView = function (webView)
- {
- if(this.webView)
- return;
-
- this.webView = webView;
-
- this.webView.set_scroll_adjustments(null, null);
- this.webView.signal.title_changed.connect(title_changed, null, this);
- this.webView.signal.load_committed.connect(url_changed, null, this);
- this.webView.signal.create_web_view.connect(newTab_requested, null, this);
- this.webView.signal.web_view_ready.connect(newTab_ready, null, this);
-
- this.toolbar.urlBar.signal.activate.connect(browse, null, this);
-
- webView.set_settings(webKitSettings);
- var inspector = webView.get_inspector();
-
- inspector.signal.inspect_web_view.connect(
- function()
- {
- w = new Gtk.Window();
- s = new Gtk.ScrolledWindow();
- w.set_title("Inspector");
-
- w.set_default_size(400, 300);
-
- view = new WebKit.WebView();
- s.add(view);
- w.add(s);
-
- w.show_all();
-
- return view;
- }
- );
-
-
- s = new Gtk.ScrolledWindow();
- s.add(this.webView);
- this.pack_start(s, true, true);
- this.show_all();
- }
- },
- instance_init: function(klass)
- {
- this.webView = null;
-
- this.toolbar = new BrowserToolbar();
-
- this.pack_start(this.toolbar);
-
- var closeButton = new Gtk.Button();
- closeButton.set_image(new Gtk.Image({stock: "gtk-close",
- icon_size: Gtk.IconSize.menu}));
- closeButton.signal.clicked.connect(close_tab, this);
- closeButton.set_relief(Gtk.ReliefStyle.none);
-
- this.title = new Gtk.HBox();
- this.titleLabel = new Gtk.Label({label:"Untitled"})
- this.title.pack_start(this.titleLabel);
- this.title.pack_start(closeButton);
- this.title.show_all();
-
- this.show_all();
- }};
-
-BrowserTab = new GType(BrowserTabType);
-
-TabbedBrowserType = {
- parent: Gtk.Notebook.type,
- name: "TabbedBrowser",
- class_init: function(klass, prototype)
- {
- prototype.newTab = function ()
- {
- var tab = new BrowserTab();
-
- this.append_page(tab, tab.title);
- this.set_tab_reorderable(tab, true);
-
- if(selectTabOnCreation)
- this.page = this.get_n_pages() - 1;
-
- return tab;
- }
- },
- instance_init: function(klass)
- {
-
- }};
-
-TabbedBrowser = new GType(TabbedBrowserType);
+Seed.include("browser-actions.js");
+Seed.include("browser-toolbar.js");
+Seed.include("browser-tab.js");
+Seed.include("browser-main.js");
Gtk.init(null, null);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]