зеркало из https://github.com/mozilla/pjs.git
xmlterm changes only.
Changed xmlterm/ui/Makefile.in to use CHROME vars to handle content/skin resources (bug 34416); eliminated directories xmlterm/ui/content and xmlterm/ui/skin.
This commit is contained in:
Родитель
1c0c62281d
Коммит
62ec840bf2
|
@ -1,83 +0,0 @@
|
||||||
xmlterm --- A graphical command line interface
|
|
||||||
==============================================
|
|
||||||
|
|
||||||
An early prototype of XMLterm, an XTERM-like terminal program implemented
|
|
||||||
using the open source Mozilla layout engine, is now available to tinker
|
|
||||||
with. XMLterm aims to add graphical and hypertext capabilities to the XTERM
|
|
||||||
command line interface, while maintaining backwards compatibility.
|
|
||||||
|
|
||||||
The basic design philosophy of XMLterm is that the user interface is a dynamic
|
|
||||||
XML document. The user and the computer interact by taking turns at appending
|
|
||||||
to this XML document. The plain text content of the XML document, i.e.,
|
|
||||||
excluding any markup, corresponds to the plain text that would be displayed by
|
|
||||||
a plain XTERM. The markup in the XML document is used to add graphical and
|
|
||||||
hypertext features. XMLterm uses the Mozilla layout engine to display the XML
|
|
||||||
document.
|
|
||||||
|
|
||||||
XMLterm is an open source project in its early stages. Comments and
|
|
||||||
contributions are welcome!
|
|
||||||
|
|
||||||
R. Saravanan <svn@xmlterm.org>
|
|
||||||
7 Mar 2000 <http://xmlterm.org>
|
|
||||||
==========
|
|
||||||
|
|
||||||
QUICK SET-UP INSTRUCTIONS (Linux/Solaris)
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
If you have already built mozilla from the source, then type the following
|
|
||||||
commands in the "mozilla" directory to build XMLterm:
|
|
||||||
|
|
||||||
a) configure --with-extensions=xmlterm <other-configure-options>
|
|
||||||
b) cd extensions/xmlterm
|
|
||||||
c) make
|
|
||||||
|
|
||||||
[Skip step (b) for a fresh build of mozilla from the source tarball]
|
|
||||||
|
|
||||||
To execute XMLterm, type one of the following commands in
|
|
||||||
the mozilla/dist/bin directory:
|
|
||||||
|
|
||||||
./xmlterm
|
|
||||||
OR
|
|
||||||
./mozilla -chrome chrome://xmlterm/content/xmlterm.xul
|
|
||||||
|
|
||||||
NOTES:
|
|
||||||
|
|
||||||
1. See the INSTALL file for detailed configuration/installation instructions.
|
|
||||||
|
|
||||||
2. See the file doc/INSTALL.xmlterm for binary installation instructions.
|
|
||||||
|
|
||||||
3. Check the XMLterm web site <http://xmlterm.org> for updates.
|
|
||||||
|
|
||||||
===========================================================================
|
|
||||||
DOCUMENTATION
|
|
||||||
|
|
||||||
a. There is a README file in each directory that provides some basic
|
|
||||||
information.
|
|
||||||
|
|
||||||
b. The file "base/README" provides a brief overview of the XMLterm code
|
|
||||||
architecture.
|
|
||||||
|
|
||||||
c. The header files (*.idl, *.h) have comments describing class methods
|
|
||||||
and member variables in JAVADOC format. Look at them before delving
|
|
||||||
into the *.cpp files
|
|
||||||
|
|
||||||
===========================================================================
|
|
||||||
FILES:
|
|
||||||
|
|
||||||
INSTALL installation instructions
|
|
||||||
README this file
|
|
||||||
UUID.txt list of UUIDs used by XMLterm
|
|
||||||
|
|
||||||
The main subdirectories of the "xmlterm" directory are:
|
|
||||||
|
|
||||||
base/ base source code for XMLterm libraries
|
|
||||||
config/ make rules for stand-alone mode
|
|
||||||
dist/ holds include and library file for stand-alone LineTerm only
|
|
||||||
doc/ some documentation
|
|
||||||
geckoterm/ lightweight XMLterm executable
|
|
||||||
linetest/ stand-alone line terminal testing executables
|
|
||||||
scripts/ XMLterm scripts (xls, xcat, ...)
|
|
||||||
tests/ XMLterm test programs (HelloWorld pagelet, ...)
|
|
||||||
ui/* user interface/chrome files
|
|
||||||
|
|
||||||
--
|
|
|
@ -3117,7 +3117,7 @@ NS_IMETHODIMP mozXMLTermSession::NewEntry(const nsString& aPrompt)
|
||||||
imgElement->SetAttribute(attName, attValue);
|
imgElement->SetAttribute(attName, attValue);
|
||||||
|
|
||||||
attName = "src";
|
attName = "src";
|
||||||
attValue = "chrome://xmlterm/skin/images/wheel.gif";
|
attValue = "chrome://xmlterm/skin/wheel.gif";
|
||||||
imgElement->SetAttribute(attName, attValue);
|
imgElement->SetAttribute(attName, attValue);
|
||||||
|
|
||||||
attName = "align";
|
attName = "align";
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
xmlterm.css
|
||||||
|
xmltpage.css
|
||||||
|
ficon.gif
|
||||||
|
wheel.gif
|
|
@ -33,21 +33,33 @@
|
||||||
|
|
||||||
# makefile for xmlterm/ui directory
|
# makefile for xmlterm/ui directory
|
||||||
|
|
||||||
ifdef STAND_ALONE
|
|
||||||
DEPTH = ..
|
|
||||||
topsrcdir = ..
|
|
||||||
VPATH = .
|
|
||||||
srcdir = .
|
|
||||||
include $(topsrcdir)/config/autoconf.mk
|
|
||||||
else
|
|
||||||
DEPTH = ../../..
|
DEPTH = ../../..
|
||||||
topsrcdir = @top_srcdir@
|
topsrcdir = @top_srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
include $(DEPTH)/config/autoconf.mk
|
include $(DEPTH)/config/autoconf.mk
|
||||||
endif
|
|
||||||
|
|
||||||
DIRS = content skin
|
CHROME_DIR = xmlterm
|
||||||
|
|
||||||
|
CHROME_CONTENT = \
|
||||||
|
xmlterm.html \
|
||||||
|
xmlterm.xul \
|
||||||
|
xmlterm2.xul \
|
||||||
|
XMLTermChrome.js \
|
||||||
|
XMLTermCommands.js \
|
||||||
|
xmltermTips.html \
|
||||||
|
xmltermAbout.html \
|
||||||
|
xmltblank.html \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
CHROME_SKIN = \
|
||||||
|
xmlterm.css \
|
||||||
|
xmltpage.css \
|
||||||
|
wheel.gif \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
CHROME_L10N = \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
include $(topsrcdir)/config/config.mk
|
include $(topsrcdir)/config/config.mk
|
||||||
|
|
||||||
|
|
|
@ -1 +1,21 @@
|
||||||
ui --- User Interface stuff for XMLterm
|
ui --- User interface stuff for XMLterm
|
||||||
|
|
||||||
|
CONTENT
|
||||||
|
|
||||||
|
xmlterm.html XMLterm startup file containing HTML and Javascript
|
||||||
|
Uses mozIXMLTermShell to create XMLterm
|
||||||
|
Uses xmltpage.css for stylesheets
|
||||||
|
|
||||||
|
xmlterm.xul XUL wrapper for xmlterm.html
|
||||||
|
|
||||||
|
xmlterm2.xul XUL wrapper for xmlterm.html, with additional browser frame
|
||||||
|
|
||||||
|
XMLTermCommands.js Javascript commands used by XUL wrappers
|
||||||
|
|
||||||
|
SKIN
|
||||||
|
|
||||||
|
xmlterm.css Stylesheet for XUL file xmlterm.xul
|
||||||
|
|
||||||
|
xmltpage.css Stylesheet for XMLterm startup file xmlterm.html
|
||||||
|
|
||||||
|
wheel.gif Wheel icon used for prompt
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
// XMLTerm Chrome Commands
|
||||||
|
|
||||||
|
function StartupXMLTerm() {
|
||||||
|
dump("StartupXMLTerm:\n");
|
||||||
|
dump("StartupXMLTerm:"+window.frames.length+"\n");
|
||||||
|
dump("StartupXMLTerm:"+window.frames[0].name+"\n");
|
||||||
|
|
||||||
|
if (window.frames.length == 2) {
|
||||||
|
xmltwin = window.frames[1];
|
||||||
|
xmltwin.xmltbrowser = window.frames[0];
|
||||||
|
} else {
|
||||||
|
xmltwin = window.frames[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
dump("StartupXMLterm: WINDOW.ARGUMENTS="+window.arguments+"\n");
|
||||||
|
|
||||||
|
dump("Trying to make an XMLTerm Shell through the component manager...\n");
|
||||||
|
|
||||||
|
var xmltshell = Components.classes["component://mozilla/xmlterm/xmltermshell"].createInstance();
|
||||||
|
|
||||||
|
dump("Interface xmltshell1 = " + xmltshell + "\n");
|
||||||
|
|
||||||
|
xmltshell = xmltshell.QueryInterface(Components.interfaces.mozIXMLTermShell);
|
||||||
|
dump("Interface xmltshell2 = " + xmltshell + "\n");
|
||||||
|
|
||||||
|
if (!xmltshell) {
|
||||||
|
dump("Failed to create XMLTerm shell\n");
|
||||||
|
window.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Store the XMLTerm shell in current window and in the XMLTerm frame
|
||||||
|
window.xmlterm = xmltshell;
|
||||||
|
xmltwin.xmlterm = xmltshell;
|
||||||
|
|
||||||
|
if (window.arguments != null)
|
||||||
|
window.title = "xmlterm: "+window.arguments;
|
||||||
|
|
||||||
|
// Initialize XMLTerm shell in content window with argvals
|
||||||
|
window.xmlterm.Init(xmltwin, "", window.arguments);
|
||||||
|
}
|
|
@ -0,0 +1,737 @@
|
||||||
|
// XMLTerm Page Commands
|
||||||
|
|
||||||
|
// CONVENTION: All pre-defined XMLTerm Javascript functions and global
|
||||||
|
// variables should begin with an upper-case letter.
|
||||||
|
// This would allow them to be easily distinguished from
|
||||||
|
// user defined functions, which should begin with a lower case
|
||||||
|
// letter.
|
||||||
|
|
||||||
|
// Global variables
|
||||||
|
var AltWin; // Alternate (browser) window
|
||||||
|
|
||||||
|
var Tips = new Array(); // Usage tip strings
|
||||||
|
var TipNames = new Array(); // Usage tip names
|
||||||
|
var TipCount = 0; // No. of tips
|
||||||
|
var SelectedTip = 0; // Selected random tip
|
||||||
|
|
||||||
|
// Set prompt using form entry
|
||||||
|
function DefineTip(tip, name) {
|
||||||
|
Tips[TipCount] = tip;
|
||||||
|
TipNames[TipCount] = name;
|
||||||
|
TipCount++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DefineTip('Click the new tip link to the left to get a new tip!',
|
||||||
|
'tips');
|
||||||
|
|
||||||
|
DefineTip('User level setting (at the top) controls amount of help information',
|
||||||
|
'level');
|
||||||
|
|
||||||
|
DefineTip('Beginner level setting displays keyboard shortcuts at the top of the page',
|
||||||
|
'level');
|
||||||
|
|
||||||
|
DefineTip('Icons setting controls whether directory listings use icons',
|
||||||
|
'icons');
|
||||||
|
|
||||||
|
DefineTip('Windows setting controls whether double-clicking creates new windows',
|
||||||
|
'windows');
|
||||||
|
|
||||||
|
DefineTip('Single click an explicit (underlined) hyperlink; double click implicit (usually blue) hyperlinks',
|
||||||
|
'clicking');
|
||||||
|
|
||||||
|
DefineTip('Clicking on command prompt expands/collapses command output display.',
|
||||||
|
'prompt');
|
||||||
|
|
||||||
|
DefineTip('Press F1 (or control-Home) key to collapse output of all commands.',
|
||||||
|
'prompt');
|
||||||
|
|
||||||
|
DefineTip('"js:SetPrompt(HTMLstring);" sets prompt to any HTML string.',
|
||||||
|
'prompt');
|
||||||
|
|
||||||
|
DefineTip('Beginners may click the SetPrompt button for a cool Mozilla prompt from dmoz.org!',
|
||||||
|
'prompt');
|
||||||
|
|
||||||
|
DefineTip('Double-clicking on a previous command line re-executes the command.',
|
||||||
|
'command');
|
||||||
|
|
||||||
|
DefineTip('Type "js:func(arg);" to execute inline Javascript function func.',
|
||||||
|
'js');
|
||||||
|
|
||||||
|
DefineTip('Inline Javascript ("js:...") can be used to produce HTML output.',
|
||||||
|
'js');
|
||||||
|
|
||||||
|
DefineTip('XMLterm supports full screen commands like "less", "vi", and "emacs -nw"".',
|
||||||
|
'full-screen');
|
||||||
|
|
||||||
|
DefineTip('"xls" produces a clickable listing of directory contents.',
|
||||||
|
'xls');
|
||||||
|
|
||||||
|
DefineTip('"xls -t" prevents display of icons even if Icons setting is "on".',
|
||||||
|
'xls');
|
||||||
|
|
||||||
|
DefineTip('"xcat text-file" displays a text file with clickable URLs.',
|
||||||
|
'xcat');
|
||||||
|
|
||||||
|
DefineTip('"xcat image.gif" displays an image file inline!',
|
||||||
|
'xcat');
|
||||||
|
|
||||||
|
DefineTip('"xcat http://mozilla.org" displays a web page inline using IFRAMEs.',
|
||||||
|
'xcat');
|
||||||
|
|
||||||
|
DefineTip('"xcat -h 1000 http://mozilla.org" displays using an IFRAME 1000 pixels high.',
|
||||||
|
'xcat');
|
||||||
|
|
||||||
|
DefineTip('"xcat doc.html" display an HTML document inline using IFRAMEs.',
|
||||||
|
'xcat');
|
||||||
|
|
||||||
|
// Display random usage tip
|
||||||
|
// (should cease to operate after a few cycles;
|
||||||
|
// need to use Prefs to keep track of that)
|
||||||
|
function NewTip() {
|
||||||
|
var ranval = Math.random();
|
||||||
|
SelectedTip = Math.floor(ranval * TipCount);
|
||||||
|
if (SelectedTip >= TipCount) SelectedTip = 0;
|
||||||
|
|
||||||
|
dump("xmlterm: NewTip "+SelectedTip+","+ranval+"\n");
|
||||||
|
|
||||||
|
var tipdata = document.getElementById('tipdata');
|
||||||
|
tipdata.firstChild.data = Tips[SelectedTip];
|
||||||
|
|
||||||
|
ShowHelp("",0);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Explain tip
|
||||||
|
function ExplainTip(tipName) {
|
||||||
|
dump("xmlterm: ExplainTip("+tipName+")\n");
|
||||||
|
|
||||||
|
if (tipName) {
|
||||||
|
var tipdata = document.getElementById('tipdata');
|
||||||
|
tipdata.firstChild.data = "";
|
||||||
|
} else {
|
||||||
|
tipName = TipNames[SelectedTip];
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowHelp('xmltermTips.html#'+tipName,0,120);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// F1 key - Hide all output
|
||||||
|
function F1Key(isShift, isControl) {
|
||||||
|
return DisplayAllOutput(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// F2 key - Show all output
|
||||||
|
function F2Key(isShift, isControl) {
|
||||||
|
return DisplayAllOutput(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// F7 - Explain tip
|
||||||
|
function F7Key(isShift, isControl) {
|
||||||
|
return ExplainTip();
|
||||||
|
}
|
||||||
|
|
||||||
|
// F8 - New tip
|
||||||
|
function F8Key(isShift, isControl) {
|
||||||
|
return NewTip();
|
||||||
|
}
|
||||||
|
|
||||||
|
// F9 key
|
||||||
|
function F9Key(isShift, isControl) {
|
||||||
|
return NewXMLTerm('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll Home key
|
||||||
|
function ScrollHomeKey(isShift, isControl) {
|
||||||
|
dump("ScrollHomeKey("+isShift+","+isControl+")\n");
|
||||||
|
|
||||||
|
if (isControl) {
|
||||||
|
return F1Key(isShift, 0);
|
||||||
|
} else {
|
||||||
|
ScrollWin(isShift,isControl).scroll(0,0);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll End key
|
||||||
|
function ScrollEndKey(isShift, isControl) {
|
||||||
|
dump("ScrollEndKey("+isShift+","+isControl+")\n");
|
||||||
|
|
||||||
|
if (isControl) {
|
||||||
|
return F2Key(isShift, 0);
|
||||||
|
} else {
|
||||||
|
ScrollWin(isShift,isControl).scroll(0,99999);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll PageUp key
|
||||||
|
function ScrollPageUpKey(isShift, isControl) {
|
||||||
|
dump("ScrollPageUpKey("+isShift+","+isControl+")\n");
|
||||||
|
|
||||||
|
ScrollWin(isShift,isControl).scrollBy(0,-120);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll PageDown key
|
||||||
|
function ScrollPageDownKey(isShift, isControl) {
|
||||||
|
dump("ScrollPageDownKey("+isShift+","+isControl+")\n");
|
||||||
|
|
||||||
|
ScrollWin(isShift,isControl).scrollBy(0,120);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll Window
|
||||||
|
function ScrollWin(isShift, isControl) {
|
||||||
|
if (isShift && (window.frames.length > 0)) {
|
||||||
|
return window.frames[window.frames.length-1];
|
||||||
|
} else {
|
||||||
|
return window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set history buffer size
|
||||||
|
function SetHistory(value) {
|
||||||
|
dump("SetHistory("+value+")\n");
|
||||||
|
window.xmlterm.SetHistory(value, document.cookie);
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set prompt
|
||||||
|
function SetPrompt(value) {
|
||||||
|
dump("SetPrompt("+value+")\n");
|
||||||
|
window.xmlterm.SetPrompt(value, document.cookie);
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create new XMLTerm window
|
||||||
|
function NewXMLTerm(firstcommand) {
|
||||||
|
newwin = window.openDialog( "chrome://xmlterm/content/xmlterm.xul",
|
||||||
|
"xmlterm", "chrome,dialog=no,resizable",
|
||||||
|
firstcommand);
|
||||||
|
dump("NewXMLTerm: "+newwin+"\n")
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle resize events
|
||||||
|
function Resize(event) {
|
||||||
|
dump("Resize()\n");
|
||||||
|
window.xmlterm.Resize();
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Form Focus (workaround for form input being transmitted to xmlterm)
|
||||||
|
function FormFocus() {
|
||||||
|
dump("FormFocus()\n");
|
||||||
|
window.xmlterm.IgnoreKeyPress(true, document.cookie);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Form Blur (workaround for form input being transmitted to xmlterm)
|
||||||
|
function FormBlur() {
|
||||||
|
dump("FormBlur()\n");
|
||||||
|
window.xmlterm.IgnoreKeyPress(false, document.cookie);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set user level
|
||||||
|
function UpdateSettings() {
|
||||||
|
|
||||||
|
var oldUserLevel = window.userLevel;
|
||||||
|
window.userLevel = document.xmltform1.level.options[document.xmltform1.level.selectedIndex].value;
|
||||||
|
|
||||||
|
var oldShowIcons = window.showIcons;
|
||||||
|
window.showIcons = document.xmltform1.icons.options[document.xmltform1.icons.selectedIndex].value;
|
||||||
|
|
||||||
|
window.windowsMode = document.xmltform1.windows.options[document.xmltform1.windows.selectedIndex].value;
|
||||||
|
|
||||||
|
dump("UpdateSettings: userLevel="+window.userLevel+"\n");
|
||||||
|
dump("UpdateSettings: windowsMode="+window.windowsMode+"\n");
|
||||||
|
dump("UpdateSettings: showIcons="+window.showIcons+"\n");
|
||||||
|
|
||||||
|
if (window.userLevel != oldUserLevel) {
|
||||||
|
// Change icon display style in the style sheet
|
||||||
|
|
||||||
|
if (window.userLevel == "advanced") {
|
||||||
|
AlterStyle("DIV.beginner", "display", "none");
|
||||||
|
AlterStyle("DIV.intermediate", "display", "none");
|
||||||
|
|
||||||
|
} else if (window.userLevel == "intermediate") {
|
||||||
|
AlterStyle("DIV.intermediate", "display", "block");
|
||||||
|
AlterStyle("DIV.beginner", "display", "none");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
AlterStyle("DIV.beginner", "display", "block");
|
||||||
|
AlterStyle("DIV.intermediate", "display", "block");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.showIcons != oldShowIcons) {
|
||||||
|
// Change icon display style in the style sheet
|
||||||
|
|
||||||
|
if (window.showIcons == "on") {
|
||||||
|
AlterStyle("SPAN.noicons", "display", "none");
|
||||||
|
AlterStyle("SPAN.icons", "display", "inline");
|
||||||
|
AlterStyle("IMG.icons", "display", "inline");
|
||||||
|
AlterStyle("TR.icons", "display", "table-row");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
AlterStyle("SPAN.noicons", "display", "inline");
|
||||||
|
AlterStyle("SPAN.icons", "display", "none");
|
||||||
|
AlterStyle("IMG.icons", "display", "none");
|
||||||
|
AlterStyle("TR.icons", "display", "none");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alter style in stylesheet of specified document doc, or current document
|
||||||
|
// if doc is omitted.
|
||||||
|
function AlterStyle(ruleName, propertyName, propertyValue, doc) {
|
||||||
|
|
||||||
|
dump("AlterStyle("+ruleName+"{"+propertyName+":"+propertyValue+"})\n");
|
||||||
|
|
||||||
|
if (!doc) doc = window.document;
|
||||||
|
|
||||||
|
var sheet = doc.styleSheets[0];
|
||||||
|
var r;
|
||||||
|
for (r = 0; r < sheet.cssRules.length; r++) {
|
||||||
|
//dump(sheet.cssRules[r].selectorText+"\n");
|
||||||
|
|
||||||
|
if (sheet.cssRules[r].selectorText == ruleName) {
|
||||||
|
var style = sheet.cssRules[r].style;
|
||||||
|
//dump("style="+style.getPropertyValue(propertyName)+"\n");
|
||||||
|
|
||||||
|
style.setProperty(propertyName,propertyValue,"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle default meta command
|
||||||
|
function MetaDefault(arg1) {
|
||||||
|
return Load("http://"+arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load URL in XMLTermBrowser window
|
||||||
|
function Load(url) {
|
||||||
|
var succeeded = false;
|
||||||
|
if (window.xmltbrowser) {
|
||||||
|
dump("Load:xmltbrowser.location.href="+window.xmltbrowser.location.href+"\n");
|
||||||
|
if (window.xmltbrowser.location.href.length) {
|
||||||
|
window.xmltbrowser.location = url;
|
||||||
|
succeeded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!succeeded) {
|
||||||
|
window.xmltbrowser = window.open(url, "xmltbrowser");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save browser window object in global variable
|
||||||
|
AltWin = window.xmltbrowser;
|
||||||
|
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Control display of all output elements
|
||||||
|
function DisplayAllOutput(flag) {
|
||||||
|
var outputElements = document.getElementsByName("output");
|
||||||
|
for (i=0; i<outputElements.length-1; i++) {
|
||||||
|
var outputElement = outputElements[i];
|
||||||
|
outputElement.style.display = (flag) ? "block" : "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
var promptElements = document.getElementsByName("prompt");
|
||||||
|
for (i=0; i<promptElements.length-1; i++) {
|
||||||
|
promptElement = promptElements[i];
|
||||||
|
promptElement.style.setProperty("text-decoration",
|
||||||
|
(flag) ? "none" : "underline", "")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!flag) {
|
||||||
|
ScrollHomeKey(0,0);
|
||||||
|
ScrollEndKey(0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Centralized event handler
|
||||||
|
// eventType values:
|
||||||
|
// click
|
||||||
|
//
|
||||||
|
// targetType:
|
||||||
|
// textlink - hyperlink
|
||||||
|
// prompt - command prompt
|
||||||
|
// command - command line
|
||||||
|
//
|
||||||
|
// (Following are inline or in new window depending upon window.windowsMode)
|
||||||
|
// cdxls - change directory and list contents (doubleclick)
|
||||||
|
// xcat - display file (doubleclick)
|
||||||
|
// exec - execute file (doubleclick)
|
||||||
|
//
|
||||||
|
// send - transmit arg to LineTerm
|
||||||
|
// sendln - transmit arg+newline to LineTerm
|
||||||
|
// createln - transmit arg+newline as first command to new XMLTerm
|
||||||
|
//
|
||||||
|
// entryNumber: >=0 means process only if current entry
|
||||||
|
// <0 means process anytime
|
||||||
|
//
|
||||||
|
// arg1: relative pathname of file/directory
|
||||||
|
// arg2: absolute pathname prefix (for use outside current entry;
|
||||||
|
// use relative pathname in current working directory)
|
||||||
|
//
|
||||||
|
function HandleEvent(eventObj, eventType, targetType, entryNumber,
|
||||||
|
arg1, arg2) {
|
||||||
|
dump("HandleEvent("+eventObj+","+eventType+","+targetType+","+
|
||||||
|
entryNumber+","+arg1+","+arg2+")\n");
|
||||||
|
|
||||||
|
// Entry independent targets
|
||||||
|
if (action === "textlink") {
|
||||||
|
// Single click opens hyperlink
|
||||||
|
// Browser-style
|
||||||
|
dump("textlink = "+arg1+"\n");
|
||||||
|
Load(arg1);
|
||||||
|
|
||||||
|
} else if (targetType === "prompt") {
|
||||||
|
// Single click on prompt expands/collapses command output
|
||||||
|
var outputElement = document.getElementById("output"+entryNumber);
|
||||||
|
var helpElement = document.getElementById("help"+entryNumber);
|
||||||
|
var promptElement = document.getElementById("prompt"+entryNumber);
|
||||||
|
//dump(promptElement.style.getPropertyValue("text-decoration"));
|
||||||
|
|
||||||
|
if (outputElement.style.display == "none") {
|
||||||
|
outputElement.style.display = "block";
|
||||||
|
promptElement.style.setProperty("text-decoration","none","");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
outputElement.style.display = "none";
|
||||||
|
promptElement.style.setProperty("text-decoration","underline","");
|
||||||
|
if (helpElement) {
|
||||||
|
ShowHelp("",entryNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (eventType === "click") {
|
||||||
|
|
||||||
|
dump("clickCount="+eventObj.clickCount+"\n");
|
||||||
|
|
||||||
|
var shiftClick = eventObj.shiftKey;
|
||||||
|
var dblClick = (eventObj.clickCount == 2);
|
||||||
|
|
||||||
|
// Execute shell commands only on double-click for safety
|
||||||
|
// Use single click for "selection" and prompt expansion only
|
||||||
|
// Windows-style
|
||||||
|
|
||||||
|
var currentEntryNumber = window.xmlterm.currentEntryNumber;
|
||||||
|
|
||||||
|
var currentCmdElement = document.getElementById("command"+currentEntryNumber);
|
||||||
|
var currentCommandEmpty = true;
|
||||||
|
if (currentCmdElement && currentCmdElement.hasChildNodes()) {
|
||||||
|
|
||||||
|
if (currentCmdElement.firstChild.nodeType == Node.TEXT_NODE) {
|
||||||
|
//dump("textLength = "+currentCmdElement.firstChild.data.length+"\n");
|
||||||
|
currentCommandEmpty = (currentCmdElement.firstChild.data.length == 0);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
currentCommandEmpty = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//dump("empty = "+currentCommandEmpty+"\n");
|
||||||
|
|
||||||
|
if (targetType === "command") {
|
||||||
|
if (!dblClick)
|
||||||
|
return false;
|
||||||
|
var commandElement = document.getElementById(targetType+entryNumber);
|
||||||
|
var command = commandElement.firstChild.data;
|
||||||
|
if (currentCommandEmpty) {
|
||||||
|
window.xmlterm.SendText("\025"+command+"\n", document.cookie);
|
||||||
|
} else {
|
||||||
|
window.xmlterm.SendText(command, document.cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Targets which may be qualified only for current entry
|
||||||
|
|
||||||
|
if ((entryNumber >= 0) &&
|
||||||
|
(window.xmlterm.currentEntryNumber != entryNumber)) {
|
||||||
|
dump("NOT CURRENT COMMAND\n");
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var action, sendStr;
|
||||||
|
|
||||||
|
if ( (targetType === "cdxls") ||
|
||||||
|
(targetType === "xcat") ||
|
||||||
|
(targetType === "exec") ) {
|
||||||
|
// Complex commands
|
||||||
|
|
||||||
|
if (!dblClick)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var filename;
|
||||||
|
var isCurrentCommand = (Math.abs(entryNumber)+1 ==
|
||||||
|
window.xmlterm.currentEntryNumber);
|
||||||
|
|
||||||
|
if ( (arg2 != null) &&
|
||||||
|
(!isCurrentCommand || (window.windowsMode === "on")) ) {
|
||||||
|
// Full pathname
|
||||||
|
filename = arg2+arg1;
|
||||||
|
} else {
|
||||||
|
// Short pathname
|
||||||
|
filename = arg1;
|
||||||
|
if (targetType === "exec")
|
||||||
|
filename = "./"+filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
var prefix, suffix;
|
||||||
|
if (targetType === "cdxls") {
|
||||||
|
// Change directory and list contents
|
||||||
|
prefix = "cd ";
|
||||||
|
suffix = "; xls";
|
||||||
|
} else if (targetType === "xcat") {
|
||||||
|
// Display file
|
||||||
|
prefix = "xcat ";
|
||||||
|
suffix = "";
|
||||||
|
} else if (targetType === "exec") {
|
||||||
|
// Execute file
|
||||||
|
prefix = "";
|
||||||
|
suffix = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shiftClick || (window.windowsMode === "on")) {
|
||||||
|
action = "createln";
|
||||||
|
sendStr = prefix + filename + suffix;
|
||||||
|
|
||||||
|
} else if (currentCommandEmpty) {
|
||||||
|
action = "sendln";
|
||||||
|
sendStr = prefix + filename + suffix;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
action = "send";
|
||||||
|
sendStr = filename + " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Primitive action
|
||||||
|
action = targetType;
|
||||||
|
sendStr = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Primitive actions
|
||||||
|
if (action === "send") {
|
||||||
|
dump("send = "+sendStr+"\n");
|
||||||
|
window.xmlterm.SendText(sendStr, document.cookie);
|
||||||
|
|
||||||
|
} else if (action === "sendln") {
|
||||||
|
dump("sendln = "+sendStr+"\n\n");
|
||||||
|
window.xmlterm.SendText("\025"+sendStr+"\n", document.cookie);
|
||||||
|
|
||||||
|
} else if (action === "createln") {
|
||||||
|
dump("createln = "+sendStr+"\n\n");
|
||||||
|
newwin = NewXMLTerm(sendStr+"\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set history buffer count using form entry
|
||||||
|
function SetHistoryValue() {
|
||||||
|
var field = document.getElementById('inputvalue');
|
||||||
|
return SetHistory(field.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set prompt using form entry
|
||||||
|
function SetPromptValue() {
|
||||||
|
var field = document.getElementById('inputvalue');
|
||||||
|
return SetPrompt(field.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert help element displaying URL in an IFRAME before output element
|
||||||
|
// of entryNumber, or before the SESSION element if entryNumber is zero.
|
||||||
|
// Height is the height of the IFRAME in pixels.
|
||||||
|
// If URL is the null string, simply delete the help element
|
||||||
|
|
||||||
|
function ShowHelp(url, entryNumber, height) {
|
||||||
|
|
||||||
|
if (!height) height = 120;
|
||||||
|
|
||||||
|
dump("xmlterm: ShowHelp("+url+","+entryNumber+","+height+")\n");
|
||||||
|
|
||||||
|
if (entryNumber) {
|
||||||
|
beforeID = "output"+entryNumber;
|
||||||
|
helpID = "help"+entryNumber;
|
||||||
|
} else {
|
||||||
|
beforeID = "session";
|
||||||
|
helpID = "help";
|
||||||
|
}
|
||||||
|
|
||||||
|
var beforeElement = document.getElementById(beforeID);
|
||||||
|
|
||||||
|
if (!beforeElement) {
|
||||||
|
dump("InsertIFrame: beforeElement ID="+beforeID+"not found\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var parentNode = beforeElement.parentNode;
|
||||||
|
|
||||||
|
var helpElement = document.getElementById(helpID);
|
||||||
|
if (helpElement) {
|
||||||
|
// Delete help element
|
||||||
|
parentNode.removeChild(helpElement);
|
||||||
|
helpElement = null;
|
||||||
|
// *NOTE* Need to flush display here to avoid black flash?
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url.length > 0) {
|
||||||
|
// Create new help element
|
||||||
|
helpElement = document.createElement("div");
|
||||||
|
helpElement.setAttribute('id', helpID);
|
||||||
|
helpElement.setAttribute('class', 'help');
|
||||||
|
|
||||||
|
var closeElement = document.createElement("span");
|
||||||
|
closeElement.setAttribute('class', 'helplink');
|
||||||
|
closeElement.appendChild(document.createTextNode("Close help frame"));
|
||||||
|
//closeElement.appendChild(document.createElement("p"));
|
||||||
|
|
||||||
|
var iframe = document.createElement("iframe");
|
||||||
|
iframe.setAttribute('id', helpID+'frame');
|
||||||
|
iframe.setAttribute('class', 'helpframe');
|
||||||
|
iframe.setAttribute('width', '100%');
|
||||||
|
iframe.setAttribute('height', height);
|
||||||
|
iframe.setAttribute('frameborder', '0');
|
||||||
|
iframe.setAttribute('src', url);
|
||||||
|
|
||||||
|
helpElement.appendChild(iframe);
|
||||||
|
helpElement.appendChild(closeElement);
|
||||||
|
|
||||||
|
dump(helpElement);
|
||||||
|
|
||||||
|
// Insert help element
|
||||||
|
parentNode.insertBefore(helpElement, beforeElement);
|
||||||
|
|
||||||
|
// NOTE: Need to do this *after* node is inserted into document
|
||||||
|
closeElement.setAttribute('onClick', 'return ShowHelp("",'+entryNumber
|
||||||
|
+');');
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// About XMLTerm
|
||||||
|
function AboutXMLTerm() {
|
||||||
|
dump("xmlterm: AboutXMLTerm\n");
|
||||||
|
|
||||||
|
var tipdata = document.getElementById('tipdata');
|
||||||
|
tipdata.firstChild.data = "";
|
||||||
|
|
||||||
|
ShowHelp('xmltermAbout.html',0,120);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// onLoad event handler
|
||||||
|
function LoadHandler() {
|
||||||
|
dump("xmlterm: LoadHandler ... "+window.xmlterm+"\n");
|
||||||
|
|
||||||
|
// Update settings
|
||||||
|
UpdateSettings();
|
||||||
|
|
||||||
|
NewTip();
|
||||||
|
|
||||||
|
if (window.xmlterm) {
|
||||||
|
// XMLTerm already initialized
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
dump("LoadHandler: WINDOW.ARGUMENTS="+window.arguments+"\n");
|
||||||
|
|
||||||
|
dump("Trying to make an XMLTerm Shell through the component manager...\n");
|
||||||
|
|
||||||
|
var xmltshell = Components.classes["component://mozilla/xmlterm/xmltermshell"].createInstance();
|
||||||
|
|
||||||
|
dump("Interface xmltshell1 = " + xmltshell + "\n");
|
||||||
|
|
||||||
|
xmltshell = xmltshell.QueryInterface(Components.interfaces.mozIXMLTermShell);
|
||||||
|
dump("Interface xmltshell2 = " + xmltshell + "\n");
|
||||||
|
|
||||||
|
if (!xmltshell) {
|
||||||
|
dump("Failed to create XMLTerm shell\n");
|
||||||
|
window.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Store the XMLTerm shell in the window
|
||||||
|
window.xmlterm = xmltshell;
|
||||||
|
|
||||||
|
// Content window same as current window
|
||||||
|
var contentWindow = window;
|
||||||
|
|
||||||
|
// Initialize XMLTerm shell in content window with argvals
|
||||||
|
window.xmlterm.Init(contentWindow, "", "");
|
||||||
|
|
||||||
|
//dump("LoadHandler:"+document.cookie+"\n");
|
||||||
|
|
||||||
|
dump("contentWindow="+contentWindow+"\n");
|
||||||
|
dump("document="+document+"\n");
|
||||||
|
dump("documentElement="+document.documentElement+"\n");
|
||||||
|
|
||||||
|
// Handle resize events
|
||||||
|
//contentWindow.addEventListener("onresize", Resize);
|
||||||
|
contentWindow.onresize = Resize;
|
||||||
|
|
||||||
|
// Set focus to appropriate frame
|
||||||
|
contentWindow.focus();
|
||||||
|
|
||||||
|
//contentWindow.xmlterm = xmlterm;
|
||||||
|
|
||||||
|
//dump(contentWindow.xmlterm);
|
||||||
|
|
||||||
|
// The following code is for testing IFRAMEs only
|
||||||
|
dump("[Main] "+window+"\n");
|
||||||
|
dump(window.screenX+", "+window.screenY+"\n");
|
||||||
|
dump(window.scrollX+", "+window.scrollY+"\n");
|
||||||
|
dump(window.pageXOffset+", "+window.pageYOffset+"\n");
|
||||||
|
|
||||||
|
dump("IFRAME checks\n");
|
||||||
|
var iframe = document.getElementById('iframe1');
|
||||||
|
|
||||||
|
dump("iframe="+iframe+"\n");
|
||||||
|
|
||||||
|
frames=document.frames;
|
||||||
|
dump("frames="+frames+"\n");
|
||||||
|
dump("frames.length="+frames.length+"\n");
|
||||||
|
|
||||||
|
framewin = frames[0];
|
||||||
|
|
||||||
|
dump("framewin="+framewin+"\n");
|
||||||
|
dump("framewin.document="+framewin.document+"\n");
|
||||||
|
|
||||||
|
dump(framewin.screenX+", "+framewin.screenY+"\n");
|
||||||
|
dump(framewin.scrollX+", "+framewin.scrollY+"\n");
|
||||||
|
dump(framewin.pageXOffset+", "+framewin.pageYOffset+"\n");
|
||||||
|
|
||||||
|
var body = framewin.document.getElementsByTagName("BODY")[0];
|
||||||
|
dump("body="+body+"\n");
|
||||||
|
|
||||||
|
var height= body.scrollHeight;
|
||||||
|
dump("height="+height+"\n");
|
||||||
|
|
||||||
|
// iframe.height = 800;
|
||||||
|
// iframe.width = 700;
|
||||||
|
|
||||||
|
// framewin.sizeToContent();
|
||||||
|
|
||||||
|
framewin.xmltshell = xmltshell;
|
||||||
|
dump(framewin.xmltshell+"\n");
|
||||||
|
|
||||||
|
dump("xmlterm: LoadHandler completed\n");
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
|
|
|
@ -1,460 +0,0 @@
|
||||||
<!-- xmlterm.html: XMLterm page -->
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<TITLE>XMLterm Page</TITLE>
|
|
||||||
|
|
||||||
<LINK TITLE="DefaultStyle" REL="stylesheet" TYPE="text/css"
|
|
||||||
HREF="chrome://xmlterm/skin/xmltpage.css">
|
|
||||||
|
|
||||||
<SCRIPT language="JavaScript">
|
|
||||||
|
|
||||||
// CONVENTION: All pre-defined XMLTerm Javascript functions
|
|
||||||
// begin with an upper letter. This allows
|
|
||||||
// an easy distinction with user defined functions,
|
|
||||||
// which should begin with a lower case letter.
|
|
||||||
|
|
||||||
// Show all output
|
|
||||||
function ShowAll() {
|
|
||||||
return DisplayAllOutput(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide all output
|
|
||||||
function HideAll() {
|
|
||||||
return DisplayAllOutput(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set history buffer size
|
|
||||||
function SetHistory(value) {
|
|
||||||
dump("SetHistory("+value+")\n");
|
|
||||||
window.xmlterm.SetHistory(value, document.cookie);
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set prompt
|
|
||||||
function SetPrompt(value) {
|
|
||||||
dump("SetPrompt("+value+")\n");
|
|
||||||
window.xmlterm.SetPrompt(value, document.cookie);
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create new XMLTerm window
|
|
||||||
function NewXMLTerm(firstcommand) {
|
|
||||||
newwin = window.openDialog( "chrome://xmlterm/content/xmlterm.xul",
|
|
||||||
"xmlterm", "chrome,dialog=no,resizable",
|
|
||||||
firstcommand);
|
|
||||||
//newwin = window.xmlterm.NewXMLTermWindow(firstcommand);
|
|
||||||
dump("NewXMLTerm: "+newwin+"\n")
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle resize events
|
|
||||||
function Resize(event) {
|
|
||||||
dump("Resize()\n");
|
|
||||||
window.xmlterm.Resize();
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scroll Home
|
|
||||||
function ScrollHome(isShift, isControl) {
|
|
||||||
dump("ScrollHome("+isShift+","+isControl+")\n");
|
|
||||||
if (isShift && window.xmltbrowser) {
|
|
||||||
window.xmltbrowser.scroll(0,0);
|
|
||||||
} else {
|
|
||||||
window.scroll(0,0);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scroll End
|
|
||||||
function ScrollEnd(isShift, isControl) {
|
|
||||||
dump("ScrollEnd("+isShift+","+isControl+")\n");
|
|
||||||
if (isShift && window.xmltbrowser) {
|
|
||||||
window.xmltbrowser.scroll(0,9999);
|
|
||||||
} else {
|
|
||||||
window.scroll(0,9999);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scroll PageUp
|
|
||||||
function ScrollPageUp(isShift, isControl) {
|
|
||||||
dump("ScrollPageUp("+isShift+","+isControl+")\n");
|
|
||||||
|
|
||||||
if (isShift && window.xmltbrowser) {
|
|
||||||
window.xmltbrowser.scrollBy(0,-300);
|
|
||||||
} else {
|
|
||||||
window.scrollBy(0,-300);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scroll PageDown
|
|
||||||
function ScrollPageDown(isShift, isControl) {
|
|
||||||
dump("ScrollPageDown("+isShift+","+isControl+")\n");
|
|
||||||
if (isShift && window.xmltbrowser) {
|
|
||||||
window.xmltbrowser.scrollBy(0,300);
|
|
||||||
} else {
|
|
||||||
window.scrollBy(0,300);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Form Focus (workaround for form input being transmitted to xmlterm)
|
|
||||||
function FormFocus() {
|
|
||||||
dump("FormFocus()\n");
|
|
||||||
window.xmlterm.IgnoreKeyPress(true, document.cookie);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Form Blur (workaround for form input being transmitted to xmlterm)
|
|
||||||
function FormBlur() {
|
|
||||||
dump("FormBlur()\n");
|
|
||||||
window.xmlterm.IgnoreKeyPress(false, document.cookie);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle default meta command
|
|
||||||
function MetaDefault(arg1) {
|
|
||||||
return Load("http://"+arg1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load URL in XMLTermBrowser window
|
|
||||||
function Load(url) {
|
|
||||||
var succeeded = false;
|
|
||||||
if (window.xmltbrowser) {
|
|
||||||
dump("Load:xmltbrowser.location.href="+window.xmltbrowser.location.href+"\n");
|
|
||||||
if (window.xmltbrowser.location.href.length) {
|
|
||||||
window.xmltbrowser.location = url;
|
|
||||||
succeeded = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!succeeded) {
|
|
||||||
window.xmltbrowser = window.open(url, "xmltbrowser");
|
|
||||||
}
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Control display of all output elements
|
|
||||||
function DisplayAllOutput(flag) {
|
|
||||||
var outputElements = document.getElementsByName("output");
|
|
||||||
for (i=0; i<outputElements.length; i++) {
|
|
||||||
var outputElement = outputElements[i];
|
|
||||||
outputElement.style.display = (flag) ? "block" : "none";
|
|
||||||
}
|
|
||||||
|
|
||||||
var promptElements = document.getElementsByName("prompt");
|
|
||||||
for (i=0; i<promptElements.length; i++) {
|
|
||||||
promptElement = promptElements[i];
|
|
||||||
promptElement.style.setProperty("text-decoration",
|
|
||||||
(flag) ? "none" : "underline", "")
|
|
||||||
}
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Centralized event handler
|
|
||||||
// eventType values:
|
|
||||||
// click
|
|
||||||
//
|
|
||||||
// targetType:
|
|
||||||
// textlink - hyperlink
|
|
||||||
// prompt - command prompt
|
|
||||||
// command - command line
|
|
||||||
// exec - execute command with sendln/createln
|
|
||||||
// (depending upon window.commandMode)
|
|
||||||
// send - transmit arg to LineTerm
|
|
||||||
// sendln - transmit arg+newline to LineTerm
|
|
||||||
// createln - transmit arg+newline as first command to new XMLTerm
|
|
||||||
//
|
|
||||||
// entryNumber: >=0 means process only if current entry
|
|
||||||
// <0 means process anytime
|
|
||||||
//
|
|
||||||
// arg1: command/pathname string (without newline)
|
|
||||||
// arg2: alternate command line (for use in current entry only;
|
|
||||||
// uses relative pathnames assuming current working directory)
|
|
||||||
//
|
|
||||||
function HandleEvent(eventObj, eventType, targetType, entryNumber,
|
|
||||||
arg1, arg2) {
|
|
||||||
dump("HandleEvent("+eventObj+","+eventType+","+targetType+","+
|
|
||||||
entryNumber+","+arg1+","+arg2+")\n");
|
|
||||||
|
|
||||||
// Entry independent targets
|
|
||||||
if (action === "textlink") {
|
|
||||||
dump("textlink = "+arg1+"\n");
|
|
||||||
Load(arg1);
|
|
||||||
|
|
||||||
} else if (eventType === "click") {
|
|
||||||
if (targetType === "prompt") {
|
|
||||||
var outputElement = document.getElementById("output"+entryNumber);
|
|
||||||
var promptElement = document.getElementById("prompt"+entryNumber);
|
|
||||||
//dump(promptElement.style.getPropertyValue("text-decoration"));
|
|
||||||
|
|
||||||
if (outputElement.style.display == "none") {
|
|
||||||
outputElement.style.display = "block";
|
|
||||||
promptElement.style.setProperty("text-decoration","none","");
|
|
||||||
} else {
|
|
||||||
outputElement.style.display = "none";
|
|
||||||
promptElement.style.setProperty("text-decoration","underline","");
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (targetType === "command") {
|
|
||||||
var commandElement = document.getElementById(targetType+entryNumber);
|
|
||||||
var command = commandElement.firstChild.data;
|
|
||||||
dump("command = "+command+"\n\n");
|
|
||||||
window.xmlterm.SendText("\025"+command+"\n", document.cookie);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// Targets which may be qualified only for current entry
|
|
||||||
|
|
||||||
if ((entryNumber >= 0) &&
|
|
||||||
(window.xmlterm.currentEntryNumber != entryNumber)) {
|
|
||||||
dump("NOT CURRENT COMMAND\n");
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var action = targetType;
|
|
||||||
|
|
||||||
if (action === "exec") {
|
|
||||||
if (window.commandMode === "window") {
|
|
||||||
action = "createln";
|
|
||||||
} else {
|
|
||||||
action = "sendln";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (action === "send") {
|
|
||||||
dump("send = "+arg1+"\n");
|
|
||||||
window.xmlterm.SendText(arg1, document.cookie);
|
|
||||||
|
|
||||||
} else if (action === "sendln") {
|
|
||||||
|
|
||||||
if ((Math.abs(entryNumber)+1 == window.xmlterm.currentEntryNumber) &&
|
|
||||||
(arg2 != null)) {
|
|
||||||
// Current command
|
|
||||||
dump("sendln = "+arg2+"\n\n");
|
|
||||||
window.xmlterm.SendText("\025"+arg2+"\n", document.cookie);
|
|
||||||
} else {
|
|
||||||
// Not current command
|
|
||||||
dump("sendln = "+arg1+"\n\n");
|
|
||||||
window.xmlterm.SendText("\025"+arg1+"\n", document.cookie);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (action === "createln") {
|
|
||||||
dump("createln = "+arg1+"\n\n");
|
|
||||||
newwin = NewXMLTerm(arg1+"\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set history buffer count using form entry
|
|
||||||
function SetHistoryValue() {
|
|
||||||
var field = document.getElementById('InputValue');
|
|
||||||
return SetHistory(field.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set prompt using form entry
|
|
||||||
function SetPromptValue() {
|
|
||||||
var field = document.getElementById('InputValue');
|
|
||||||
return SetPrompt(field.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Usage tips
|
|
||||||
var tips = new Array();
|
|
||||||
tips[0] = 'Click the SetPrompt button to use a cool Mozilla prompt from dmoz.org!';
|
|
||||||
tips[1] = '"js:SetPrompt(HTMLstring);" sets prompt to HTML string.';
|
|
||||||
tips[2] = 'Type "js:func(arg);" to execute inline Javascript function func.';
|
|
||||||
tips[3] = 'Inline Javascript ("js:...") can be used to produce HTML output.';
|
|
||||||
tips[4] = 'XMLterm supports full screen commands like "vi", "emacs -nw", and "less".';
|
|
||||||
tips[5] = 'Use "xls -i" for iconic display of directory contents.';
|
|
||||||
tips[6] = 'Use "xcat file" to display file.';
|
|
||||||
|
|
||||||
// Display random usage tip
|
|
||||||
// (should cease to operate after a few cycles;
|
|
||||||
// need to use Prefs to keep track of that)
|
|
||||||
function UsageTip() {
|
|
||||||
var tipCount = tips.length;
|
|
||||||
var ranval = Math.random();
|
|
||||||
var tipIndex = Math.floor(ranval * tipCount);
|
|
||||||
if (tipIndex >= tipCount) tipIndex = 0;
|
|
||||||
|
|
||||||
dump("xmlterm: UsageTip "+tipIndex+","+ranval+"\n");
|
|
||||||
|
|
||||||
var tiphead = document.getElementById('tiphead');
|
|
||||||
var tipdata = document.getElementById('tipdata');
|
|
||||||
tiphead.firstChild.data = "Tip:";
|
|
||||||
tipdata.firstChild.data = tips[tipIndex];
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Display more tips
|
|
||||||
function MoreTips() {
|
|
||||||
dump("xmlterm: MoreTips\n");
|
|
||||||
|
|
||||||
var moreTipsElement = document.getElementById('moretips');
|
|
||||||
var moreTipsFrame = document.getElementById('moretipsframe');
|
|
||||||
|
|
||||||
if (moreTipsFrame) {
|
|
||||||
// Remove more tips iframe
|
|
||||||
document.body.removeChild(moreTipsFrame);
|
|
||||||
moreTipsElement.firstChild.data = "More tips/news";
|
|
||||||
} else {
|
|
||||||
// Create more tips iframe
|
|
||||||
moreTipsFrame = document.createElement("iframe");
|
|
||||||
moreTipsFrame.setAttribute('ID', 'moretipsframe');
|
|
||||||
moreTipsFrame.setAttribute('CLASS', 'moretipsframe');
|
|
||||||
moreTipsFrame.setAttribute('WIDTH', '100%');
|
|
||||||
moreTipsFrame.setAttribute('SRC', 'http://xmlterm.org/newstips.html');
|
|
||||||
|
|
||||||
dump(moreTipsFrame);
|
|
||||||
|
|
||||||
// Insert more tips iframe in body
|
|
||||||
var sessionElement = document.getElementById('session');
|
|
||||||
document.body.insertBefore(moreTipsFrame, sessionElement);
|
|
||||||
moreTipsElement.firstChild.data = "Hide tips/news";
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// onLoad event handler
|
|
||||||
function LoadHandler() {
|
|
||||||
dump("xmlterm: LoadHandler ... "+window.xmlterm+"\n");
|
|
||||||
|
|
||||||
UsageTip();
|
|
||||||
|
|
||||||
if (window.xmlterm) {
|
|
||||||
// XMLTerm already initialized
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
dump("LoadHandler: WINDOW.ARGUMENTS="+window.arguments+"\n");
|
|
||||||
|
|
||||||
dump("Trying to make an XMLTerm Shell through the component manager...\n");
|
|
||||||
|
|
||||||
var xmltshell = Components.classes["component://mozilla/xmlterm/xmltermshell"].createInstance();
|
|
||||||
|
|
||||||
dump("Interface xmltshell1 = " + xmltshell + "\n");
|
|
||||||
|
|
||||||
xmltshell = xmltshell.QueryInterface(Components.interfaces.mozIXMLTermShell);
|
|
||||||
dump("Interface xmltshell2 = " + xmltshell + "\n");
|
|
||||||
|
|
||||||
if (!xmltshell) {
|
|
||||||
dump("Failed to create XMLTerm shell\n");
|
|
||||||
window.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store the XMLTerm shell in the window
|
|
||||||
window.xmlterm = xmltshell;
|
|
||||||
|
|
||||||
// Content window same as current window
|
|
||||||
var contentWindow = window;
|
|
||||||
|
|
||||||
// Initialize XMLTerm shell in content window with argvals
|
|
||||||
window.xmlterm.Init(contentWindow, "", "");
|
|
||||||
|
|
||||||
//dump("LoadHandler:"+document.cookie+"\n");
|
|
||||||
|
|
||||||
dump("contentWindow="+contentWindow+"\n");
|
|
||||||
dump("document="+document+"\n");
|
|
||||||
dump("documentElement="+document.documentElement+"\n");
|
|
||||||
|
|
||||||
// Handle resize events
|
|
||||||
//contentWindow.addEventListener("onresize", Resize);
|
|
||||||
contentWindow.onresize = Resize;
|
|
||||||
|
|
||||||
// Set focus to appropriate frame
|
|
||||||
contentWindow.focus();
|
|
||||||
|
|
||||||
//contentWindow.xmlterm = xmlterm;
|
|
||||||
|
|
||||||
//dump(contentWindow.xmlterm);
|
|
||||||
|
|
||||||
// The following code is for testing IFRAMEs only
|
|
||||||
dump("[Main] "+window+"\n");
|
|
||||||
dump(window.screenX+", "+window.screenY+"\n");
|
|
||||||
dump(window.scrollX+", "+window.scrollY+"\n");
|
|
||||||
dump(window.pageXOffset+", "+window.pageYOffset+"\n");
|
|
||||||
|
|
||||||
dump("IFRAME checks\n");
|
|
||||||
var iframe = document.getElementById('iframe1');
|
|
||||||
|
|
||||||
dump("iframe="+iframe+"\n");
|
|
||||||
|
|
||||||
frames=document.frames;
|
|
||||||
dump("frames="+frames+"\n");
|
|
||||||
dump("frames.length="+frames.length+"\n");
|
|
||||||
|
|
||||||
framewin = frames[0];
|
|
||||||
|
|
||||||
dump("framewin="+framewin+"\n");
|
|
||||||
dump("framewin.document="+framewin.document+"\n");
|
|
||||||
|
|
||||||
dump(framewin.screenX+", "+framewin.screenY+"\n");
|
|
||||||
dump(framewin.scrollX+", "+framewin.scrollY+"\n");
|
|
||||||
dump(framewin.pageXOffset+", "+framewin.pageYOffset+"\n");
|
|
||||||
|
|
||||||
var body = framewin.document.getElementsByTagName("BODY")[0];
|
|
||||||
dump("body="+body+"\n");
|
|
||||||
|
|
||||||
var height= body.scrollHeight;
|
|
||||||
dump("height="+height+"\n");
|
|
||||||
|
|
||||||
// iframe.height = 800;
|
|
||||||
// iframe.width = 700;
|
|
||||||
|
|
||||||
// framewin.sizeToContent();
|
|
||||||
|
|
||||||
framewin.xmltshell = xmltshell;
|
|
||||||
dump(framewin.xmltshell+"\n");
|
|
||||||
|
|
||||||
dump("xmlterm: LoadHandler completed\n");
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
</SCRIPT>
|
|
||||||
|
|
||||||
</HEAD>
|
|
||||||
|
|
||||||
<BODY onLoad="return LoadHandler();">
|
|
||||||
|
|
||||||
<TABLE FRAME=none BORDER=0>
|
|
||||||
<TBODY>
|
|
||||||
<TR><TD ALIGN=center>
|
|
||||||
<FORM NAME="XMLTERM form">
|
|
||||||
<INPUT TYPE="button" VALUE="Hide all output"
|
|
||||||
onClick="return HideAll();">
|
|
||||||
<INPUT TYPE="button" VALUE="Show all output"
|
|
||||||
onClick="return ShowAll();">
|
|
||||||
<INPUT TYPE="button" VALUE="SetHistory"
|
|
||||||
onClick="return SetHistoryValue();">
|
|
||||||
<INPUT TYPE="button" VALUE="SetPrompt" onClick="return SetPromptValue();">
|
|
||||||
<INPUT TYPE="button" VALUE="NewXMLTerm" onClick="return NewXMLTerm('');">
|
|
||||||
<BR>
|
|
||||||
Input Value:
|
|
||||||
<INPUT SIZE=50 TYPE="text" ID="InputValue"
|
|
||||||
VALUE="<img src='http:/dmoz.org/img/lizard2a.gif'>"
|
|
||||||
onFocus="return FormFocus();" onBlur="return FormBlur();">
|
|
||||||
</FORM>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<SPAN CLASS="tiphead" ID="tiphead" STYLE="font-weight:bold"> </SPAN>
|
|
||||||
<SPAN CLASS="tipdata" ID="tipdata"> </SPAN>
|
|
||||||
|
|
||||||
<SPAN CLASS="moretips" ID="moretips" onClick="return MoreTips();">
|
|
||||||
More tips/news
|
|
||||||
</SPAN>
|
|
||||||
<P>
|
|
||||||
<!--
|
|
||||||
<IFRAME NAME="iframet" SRC="chrome://xmlterm/content/xmltblank.html"
|
|
||||||
FRAMEBORDER=0>
|
|
||||||
</IFRAME>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<DIV CLASS="session" ID="session">
|
|
||||||
</DIV>
|
|
||||||
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,67 +0,0 @@
|
||||||
/* xmltpage.css: default style sheet for xmlterm.html */
|
|
||||||
|
|
||||||
BODY { font-family: monaco, courier, elite, monospace;
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
DIV, PRE, SPAN { margin: 0; padding-top: 0; padding-bottom: 0 }
|
|
||||||
|
|
||||||
PRE { font-family: monaco;
|
|
||||||
line-height: 120% }
|
|
||||||
|
|
||||||
/* Input components */
|
|
||||||
SPAN.prompt { color: blue }
|
|
||||||
SPAN.command { color: blue }
|
|
||||||
|
|
||||||
/* Error messages */
|
|
||||||
DIV.errmsg { color: red }
|
|
||||||
|
|
||||||
/* Explicit hyperlinks (underlined) */
|
|
||||||
DIV.textlink { font-family: monaco; color: blue; cursor: hand;
|
|
||||||
text-decoration: underline }
|
|
||||||
SPAN.textlink { font-family: monaco; color: blue; cursor: hand;
|
|
||||||
text-decoration: underline }
|
|
||||||
|
|
||||||
/* Imlicit hyperlinks (highlighted) */
|
|
||||||
SPAN.highlight { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
SPAN.directory { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
SPAN.executable { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
SPAN.plainfile { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
SPAN.imagefile { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
SPAN.urlfile { font-family: monaco; color: blue; cursor: hand }
|
|
||||||
|
|
||||||
/* Screen display */
|
|
||||||
PRE.row { margin: 0; padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.row { margin: 0; padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.boldstyle { font-weight: bold; margin: 0;
|
|
||||||
padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.underlinestyle { text-decoration: underline; margin: 0;
|
|
||||||
padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.blinkstyle { font-weight: bold; margin: 0;
|
|
||||||
padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.inversestyle { font-weight: bold; margin: 0;
|
|
||||||
padding-top: 0; padding-bottom: 0 }
|
|
||||||
|
|
||||||
/* Forms */
|
|
||||||
FORM { margin: 0; padding-top: 0; padding-bottom: 0 }
|
|
||||||
SPAN.formhead { font-family: sans-serif; font-weight: bold }
|
|
||||||
|
|
||||||
/* Tips */
|
|
||||||
SPAN.tipdata { font-family: sans-serif; background-color: #DDDDDD }
|
|
||||||
TABLE.tiptable { background-color: #DDDDDD }
|
|
||||||
DIV.tipelement { font-family: sans-serif }
|
|
||||||
|
|
||||||
/* Help links */
|
|
||||||
SPAN.helphighlight { font-family: sans-serif; color: green; cursor: hand }
|
|
||||||
SPAN.helplink { font-family: sans-serif; color: blue; cursor: hand;
|
|
||||||
text-decoration: underline }
|
|
||||||
|
|
||||||
/* Level style */
|
|
||||||
DIV.intermediate {display: block}
|
|
||||||
DIV.beginner {display: none}
|
|
||||||
|
|
||||||
/* Icons style */
|
|
||||||
SPAN.noicons {display: inline}
|
|
||||||
SPAN.icons {display: none}
|
|
||||||
IMG.icons {display: none}
|
|
||||||
TR.icons {display: none}
|
|
|
@ -0,0 +1,124 @@
|
||||||
|
<!-- xmlterm.html: xmlterm page -->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>xmlterm page</title>
|
||||||
|
|
||||||
|
<link title="defaultstyle" rel="stylesheet" type="text/css"
|
||||||
|
href="chrome://xmlterm/skin/xmltpage.css">
|
||||||
|
|
||||||
|
<script language="JavaScript" src="XMLTermCommands.js">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body onload="return LoadHandler();">
|
||||||
|
|
||||||
|
<form name="xmltform1">
|
||||||
|
|
||||||
|
<input type="button" value="New XMLTerm"
|
||||||
|
onClick="return NewXMLTerm('');">
|
||||||
|
|
||||||
|
<span class="helplink" onclick="return ExplainTip('level');">
|
||||||
|
Level:</span>
|
||||||
|
<select name="level" size=1 onchange="return UpdateSettings();">
|
||||||
|
<option value="beginner">beginner</option>
|
||||||
|
<option value="intermediate" selected>intermediate</option>
|
||||||
|
<option value="advanced">advanced</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="helplink" onclick="return ExplainTip('icons');">
|
||||||
|
Icons:</span>
|
||||||
|
<select name="icons" size=1 onchange="return UpdateSettings();">
|
||||||
|
<option value="off" selected>off</option>
|
||||||
|
<option value="on">on</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="helplink" onclick="return ExplainTip('windows');">
|
||||||
|
Windows:</span>
|
||||||
|
<select name="windows" size=1 onchange="return UpdateSettings();">
|
||||||
|
<option value="off" selected>off</option>
|
||||||
|
<option value="on">on</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<input type="button" value="Save Settings"
|
||||||
|
onClick="return SaveSettings();">
|
||||||
|
-->
|
||||||
|
|
||||||
|
<span class="helplink" id="aboutxmlterm" onclick="return AboutXMLTerm();">
|
||||||
|
About XMLTerm
|
||||||
|
</span>
|
||||||
|
<hr>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="intermediate">
|
||||||
|
|
||||||
|
<div class="beginner">
|
||||||
|
<form name="xmltform2">
|
||||||
|
<center> <span class="formhead">Keyboard shortcuts</span> </center>
|
||||||
|
<table align=center>
|
||||||
|
<tr>
|
||||||
|
<td align=center> <span class="formhead">F1</span>
|
||||||
|
<td align=center> <span class="formhead">F2</span>
|
||||||
|
<td align=center> <span class="formhead">F7</span>
|
||||||
|
<td align=center> <span class="formhead">F8</span>
|
||||||
|
<td align=center> <span class="formhead">F9</span>
|
||||||
|
<tr>
|
||||||
|
<td align=center> <span class="formhead">ctl-Home</span>
|
||||||
|
<td align=center> <span class="formhead">ctl-End</span>
|
||||||
|
<tr>
|
||||||
|
<td><input type="button" value="Hide all output"
|
||||||
|
onClick="return F1Key();">
|
||||||
|
<td><input type="button" value="Show all output"
|
||||||
|
onClick="return F2Key();">
|
||||||
|
<td><input type="button" value="Explain tip"
|
||||||
|
onClick="return F7Key();">
|
||||||
|
<td><input type="button" value="New tip"
|
||||||
|
onClick="return F8Key();">
|
||||||
|
<td><input type="button" value="New XMLTerm"
|
||||||
|
onClick="return F9Key();">
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<input type="button" value="Set History"
|
||||||
|
onClick="return SetHistoryValue();">
|
||||||
|
<input type="button" value="Set Prompt"
|
||||||
|
onClick="return SetPromptValue();">
|
||||||
|
<span class="formhead">Value:</span>
|
||||||
|
<input size=45 type="text" id="inputvalue"
|
||||||
|
value="<img src='http:/dmoz.org/img/lizard2a.gif'>"
|
||||||
|
onFocus="return FormFocus();" onBlur="return FormBlur();">
|
||||||
|
</form>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table id="xmlttip" width=100%>
|
||||||
|
<tr><td align=left valign=top nowrap>
|
||||||
|
<span class="helplink" id="tiphead" onclick="return NewTip();">
|
||||||
|
New Tip:
|
||||||
|
</span>
|
||||||
|
<td align=left valign=top>
|
||||||
|
<span class="tipdata" id="tipdata">
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<td align=right valign=top nowrap>
|
||||||
|
<span class="helplink" id="explaintip" onclick="return ExplainTip();">
|
||||||
|
Explain Tip
|
||||||
|
</span>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<!--
|
||||||
|
<iframe name="iframet" src="chrome://xmlterm/content/xmltblank.html"
|
||||||
|
frameborder=0>
|
||||||
|
</iframe>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div class="session" id="session">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The contents of this file are subject to the Mozilla Public
|
||||||
|
License Version 1.1 (the "MPL"); you may not use this file
|
||||||
|
except in compliance with the MPL. You may obtain a copy of
|
||||||
|
the MPL at http://www.mozilla.org/MPL/
|
||||||
|
|
||||||
|
Software distributed under the MPL is distributed on an "AS
|
||||||
|
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the MPL for the specific language governing
|
||||||
|
rights and limitations under the MPL.
|
||||||
|
|
||||||
|
The Original Code is lineterm.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Ramalingam Saravanan.
|
||||||
|
Portions created by Ramalingam Saravanan <svn@xmlterm.org> are
|
||||||
|
Copyright (C) 1999 Ramalingam Saravanan. All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<?xml-stylesheet href="chrome://xmlterm/skin/xmlterm.css" type="text/css"?>
|
||||||
|
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
|
||||||
|
|
||||||
|
<!DOCTYPE window>
|
||||||
|
<window id="xmlterm-window" xmlns:html="http://www.w3.org/TR/REC-html40"
|
||||||
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
|
onload="StartupXMLTerm();"
|
||||||
|
title="xmlterm" align="vertical" width="586" height="412">
|
||||||
|
|
||||||
|
<html:script src="chrome://xmlterm/content/XMLTermChrome.js"></html:script>
|
||||||
|
|
||||||
|
<html:iframe id="content-frame" type="content" html:name="content"
|
||||||
|
html:src="chrome://xmlterm/content/xmlterm.html" flex="100%"/>
|
||||||
|
|
||||||
|
</window>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The contents of this file are subject to the Mozilla Public
|
||||||
|
License Version 1.1 (the "MPL"); you may not use this file
|
||||||
|
except in compliance with the MPL. You may obtain a copy of
|
||||||
|
the MPL at http://www.mozilla.org/MPL/
|
||||||
|
|
||||||
|
Software distributed under the MPL is distributed on an "AS
|
||||||
|
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the MPL for the specific language governing
|
||||||
|
rights and limitations under the MPL.
|
||||||
|
|
||||||
|
The Original Code is lineterm.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Ramalingam Saravanan.
|
||||||
|
Portions created by Ramalingam Saravanan <svn@xmlterm.org> are
|
||||||
|
Copyright (C) 1999 Ramalingam Saravanan. All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<?xml-stylesheet href="chrome://xmlterm/skin/xmlterm.css" type="text/css"?>
|
||||||
|
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
|
||||||
|
|
||||||
|
<!DOCTYPE window>
|
||||||
|
<window id="xmlterm-window" xmlns:html="http://www.w3.org/TR/REC-html40"
|
||||||
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
|
onload="StartupXMLTerm();"
|
||||||
|
title="xmlterm2" align="vertical" width="740" height="484">
|
||||||
|
|
||||||
|
<html:script src="chrome://xmlterm/content/XMLTermChrome.js"></html:script>
|
||||||
|
|
||||||
|
<html:iframe id="content-frame2" type="content" html:name="content2"
|
||||||
|
html:src="about:blank" flex="100%"/>
|
||||||
|
|
||||||
|
<html:iframe id="content-frame" type="content" html:name="content"
|
||||||
|
html:src="chrome://xmlterm/content/xmlterm.html" flex="100%"/>
|
||||||
|
|
||||||
|
</window>
|
Загрузка…
Ссылка в новой задаче