seed r418 - trunk/examples/browser



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]