diff --git a/embedding/minimo/Makefile.in b/embedding/minimo/Makefile.in index f0b0bc5fe3d6..d7299b1909c3 100644 --- a/embedding/minimo/Makefile.in +++ b/embedding/minimo/Makefile.in @@ -42,7 +42,7 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk -DIRS = popuplite softkb +DIRS = popuplite softkb chrome ifeq (,$(filter windows,$(MOZ_WIDGET_TOOLKIT))) DIRS += ../browser/gtk/src app diff --git a/embedding/minimo/chrome/.cvsignore b/embedding/minimo/chrome/.cvsignore new file mode 100755 index 000000000000..f3c7a7c5da68 --- /dev/null +++ b/embedding/minimo/chrome/.cvsignore @@ -0,0 +1 @@ +Makefile diff --git a/embedding/minimo/chrome/Makefile.in b/embedding/minimo/chrome/Makefile.in new file mode 100755 index 000000000000..f07dd4802115 --- /dev/null +++ b/embedding/minimo/chrome/Makefile.in @@ -0,0 +1,47 @@ +# +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Mozilla browser. +# +# The Initial Developer of the Original Code is +# Doug Turner +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Doug Turner +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +include $(topsrcdir)/config/rules.mk + diff --git a/embedding/minimo/chrome/content/contents.rdf b/embedding/minimo/chrome/content/contents.rdf new file mode 100755 index 000000000000..01f5ae4a5baf --- /dev/null +++ b/embedding/minimo/chrome/content/contents.rdf @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/embedding/minimo/chrome/content/minimo.js b/embedding/minimo/chrome/content/minimo.js new file mode 100755 index 000000000000..bdf0b022938e --- /dev/null +++ b/embedding/minimo/chrome/content/minimo.js @@ -0,0 +1,242 @@ +/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +const nsIWebNavigation = Components.interfaces.nsIWebNavigation; +const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener; + +var gURLBar = null; + +function nsBrowserStatusHandler() +{ + this.init(); +} + +nsBrowserStatusHandler.prototype = +{ + QueryInterface : function(aIID) + { + if (aIID.equals(Components.interfaces.nsIWebProgressListener) || + aIID.equals(Components.interfaces.nsISupportsWeakReference) || + aIID.equals(Components.interfaces.nsISupports)) + { + return this; + } + throw Components.results.NS_NOINTERFACE; + }, + + init : function() + { + this.urlBar = document.getElementById("urlbar"); + this.statusbarText = document.getElementById("statusbar-text"); + this.stopreloadButton = document.getElementById("reload-stop-button"); + this.statusbar = document.getElementById("statusbar"); + }, + + destroy : function() + { + this.urlBar = null; + this.statusbarText = null; + this.stopreloadButton = null; + this.statusbar = null; + }, + + onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus) + { + if (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) + { + if (aStateFlags & nsIWebProgressListener.STATE_START) + { + this.stopreloadButton.image = "chrome://minimo/content/stop.gif"; + this.stopreloadButton.onClick = "BrowserStop()"; + this.statusbar.hidden = false; + return; + } + + if (aStateFlags & nsIWebProgressListener.STATE_STOP) + { + this.stopreloadButton.image = "chrome://minimo/content/reload.gif"; + this.stopreloadButton.onClick = "BrowserReload()"; + + this.statusbar.hidden = true; + this.statusbarText.label = ""; + return; + } + + return; + } + + if (aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) + { + if (aStateFlags & nsIWebProgressListener.STATE_START) + { + return; + } + + if (aStateFlags & nsIWebProgressListener.STATE_STOP) + { + return; + } + + return; + } + }, + + onProgressChange : function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) + { + }, + + onLocationChange : function(aWebProgress, aRequest, aLocation) + { + domWindow = aWebProgress.DOMWindow; + // Update urlbar only if there was a load on the root docshell + if (domWindow == domWindow.top) { + this.urlBar.value = aLocation.spec; + } + }, + + onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage) + { + this.statusbarText.label = aMessage; + }, + + onSecurityChange : function(aWebProgress, aRequest, aState) + { + } +} + +var gBrowserStatusHandler; +function MiniNavStartup() +{ + try { + gBrowserStatusHandler = new nsBrowserStatusHandler(); + var webNavigation = getWebNavigation(); + webNavigation.sessionHistory = Components.classes["@mozilla.org/browser/shistory;1"] + .createInstance(Components.interfaces.nsISHistory); + + var interfaceRequestor = getBrowser().docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor); + var webProgress = interfaceRequestor.getInterface(Components.interfaces.nsIWebProgress); + webProgress.addProgressListener(gBrowserStatusHandler, Components.interfaces.nsIWebProgress.NOTIFY_ALL); + } catch (e) {} + + gURLBar = document.getElementById("urlbar"); + + loadURI("http://www.meer.net/~dougt/fonttest.html"); +} + +function MiniNavShutdown() +{ + if (gBrowserStatusHandler) + gBrowserStatusHandler.destroy(); +} + +function getBrowser() +{ + return document.getElementById("content"); +} + +function getWebNavigation() +{ + return getBrowser().webNavigation; +} + +function InitContextMenu(xulMenu) +{ + // Back determined by canGoBack broadcaster. + InitMenuItemAttrFromNode( "context-back", "disabled", "canGoBack" ); + + // Forward determined by canGoForward broadcaster. + InitMenuItemAttrFromNode( "context-forward", "disabled", "canGoForward" ); +} + +function InitMenuItemAttrFromNode( item_id, attr, other_id ) +{ + var elem = document.getElementById( other_id ); + if ( elem && elem.getAttribute( attr ) == "true" ) { + SetMenuItemAttr( item_id, attr, "true" ); + } else { + SetMenuItemAttr( item_id, attr, null ); + } +} + +function SetMenuItemAttr( id, attr, val ) +{ + var elem = document.getElementById( id ); + if ( elem ) { + if ( val == null ) { + // null indicates attr should be removed. + elem.removeAttribute( attr ); + } else { + // Set attr=val. + elem.setAttribute( attr, val ); + } + } +} + +function loadURI(uri) +{ + getWebNavigation().loadURI(uri, nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null); +} + +function BrowserLoadURL() +{ + try { + loadURI(gURLBar.value); + } + catch(e) { + } +} + +function BrowserBack() +{ + getWebNavigation().goBack(); +} + +function BrowserForward() +{ + getWebNavigation().goForward(); +} + +function BrowserStop() +{ + getWebNavigation().stop(nsIWebNavigation.STOP_ALL); +} + +function BrowserReload() +{ + getWebNavigation().reload(nsIWebNavigation.LOAD_FLAGS_NONE); +} + diff --git a/embedding/minimo/chrome/content/minimo.xul b/embedding/minimo/chrome/content/minimo.xul new file mode 100755 index 000000000000..6124a176d3af --- /dev/null +++ b/embedding/minimo/chrome/content/minimo.xul @@ -0,0 +1,84 @@ + + + + + + + + + +%brandDTD; + +%minimoDTD; +]> + + + +