- chatzilla only -

add James Ross'  pref panel, bug 23265
rework pref code to be table driven
add pref observer to watch for prefs changed from outside chatzilla
make the keyboard shortcut for ``Leave Channel'' and ``Close View'' Accel+W, bug 122782
add UI for the multiline input mode, bug 149588
add tab completion for channel names, bug 131633
fix bug where networks added from a startup script didn't show in the list displayed in the *client* tab at startup.
adds key= and pass= parameters to irc: urls, bug 187699
fix ``secret'' channel mode, bug 184244


git-svn-id: svn://10.0.0.236/trunk@136819 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rginda%netscape.com
2003-01-22 05:49:52 +00:00
parent 32c1a1a690
commit 5f028076a9
55 changed files with 3049 additions and 357 deletions

View File

@@ -23,6 +23,29 @@ chatzilla.jar:
content/chatzilla/output-base.css (xul/content/output-base.css)
content/chatzilla/chatzillaOverlay.xul (xul/content/chatzillaOverlay.xul)
content/chatzilla/chatzillaOverlay.js (xul/content/chatzillaOverlay.js)
content/chatzilla/prefsOverlay.xul (xul/content/prefsOverlay.xul)
content/chatzilla/pref-irc.xul (xul/content/pref-irc.xul)
content/chatzilla/pref-irc.js (xul/content/pref-irc.js)
content/chatzilla/pref-irc-appearance.js (xul/content/pref-irc-appearance.js)
content/chatzilla/pref-irc-appearance.css (xul/content/pref-irc-appearance.css)
content/chatzilla/pref-irc-appearance.xul (xul/content/pref-irc-appearance.xul)
content/chatzilla/pref-irc-interface.js (xul/content/pref-irc-interface.js)
content/chatzilla/pref-irc-interface.xul (xul/content/pref-irc-interface.xul)
content/chatzilla/pref-irc-sound.js (xul/content/pref-irc-sound.js)
content/chatzilla/pref-irc-sound.xul (xul/content/pref-irc-sound.xul)
content/chatzilla/pref-irc-stalk.js (xul/content/pref-irc-stalk.js)
content/chatzilla/pref-irc-stalk.xul (xul/content/pref-irc-stalk.xul)
content/chatzilla/pref-irc-startup.js (xul/content/pref-irc-startup.js)
content/chatzilla/pref-irc-startup.xul (xul/content/pref-irc-startup.xul)
content/chatzilla/pref-irc-startup-newScript.js (xul/content/pref-irc-startup-newScript.js)
content/chatzilla/pref-irc-startup-newScript.xul (xul/content/pref-irc-startup-newScript.xul)
content/chatzilla/pref-irc-startup-newURL.js (xul/content/pref-irc-startup-newURL.js)
content/chatzilla/pref-irc-startup-newURL.xul (xul/content/pref-irc-startup-newURL.xul)
content/chatzilla/pref-irc-appearance-previewCSS.html (xul/content/pref-irc-appearance-previewCSS.html)
content/chatzilla/pref-irc-appearance-previewCSS.js (xul/content/pref-irc-appearance-previewCSS.js)
content/chatzilla/pref-irc-appearance-previewCSS.xul (xul/content/pref-irc-appearance-previewCSS.xul)
content/chatzilla/pref-irc-tabs.xul (xul/content/pref-irc-tabs.xul)
content/chatzilla/pref-irc-text.xul (xul/content/pref-irc-text.xul)
skin/modern/chatzilla/chatzilla.css (xul/skin/chatzilla.css)
skin/modern/chatzilla/chatzillaOverlay.css (xul/skin/chatzillaOverlay.css)
skin/modern/chatzilla/output-default.css (xul/skin/output-default.css)
@@ -44,7 +67,20 @@ chatzilla.jar:
skin/modern/chatzilla/images/isnt-voice.gif (xul/skin/images/isnt-voice.gif)
skin/modern/chatzilla/images/taskbar-irc.gif (xul/skin/images/taskbar-irc.gif)
skin/modern/chatzilla/images/chatzilla-16.gif (xul/skin/images/chatzilla-16.gif)
skin/modern/chatzilla/images/multiline-expand.png (xul/skin/images/multiline-expand.png)
skin/modern/chatzilla/images/multiline-contract.png (xul/skin/images/multiline-contract.png)
skin/modern/chatzilla/images/input-send.png (xul/skin/images/input-send.png)
locale/en-US/chatzilla/chatzillaOverlay.dtd (xul/locale/en-US/chatzillaOverlay.dtd)
locale/en-US/chatzilla/chatzilla.dtd (xul/locale/en-US/chatzilla.dtd)
locale/en-US/chatzilla/chatzilla.properties (xul/locale/en-US/chatzilla.properties)
locale/en-US/chatzilla/pref-irc.dtd (xul/locale/en-US/pref-irc.dtd)
locale/en-US/chatzilla/pref-irc-appearance.dtd (xul/locale/en-US/pref-irc-appearance.dtd)
locale/en-US/chatzilla/pref-irc-interface.dtd (xul/locale/en-US/pref-irc-interface.dtd)
locale/en-US/chatzilla/pref-irc-sound.dtd (xul/locale/en-US/pref-irc-sound.dtd)
locale/en-US/chatzilla/pref-irc-stalk.dtd (xul/locale/en-US/pref-irc-stalk.dtd)
locale/en-US/chatzilla/pref-irc-startup.dtd (xul/locale/en-US/pref-irc-startup.dtd)
locale/en-US/chatzilla/pref-irc-startup-newScript.dtd (xul/locale/en-US/pref-irc-startup-newScript.dtd)
locale/en-US/chatzilla/pref-irc-startup-newURL.dtd (xul/locale/en-US/pref-irc-startup-newURL.dtd)
locale/en-US/chatzilla/pref-irc-tabs.dtd (xul/locale/en-US/pref-irc-tabs.dtd)
locale/en-US/chatzilla/pref-irc-text.dtd (xul/locale/en-US/pref-irc-text.dtd)
locale/en-US/chatzilla/pref-irc-appearance-previewCSS.dtd (xul/locale/en-US/pref-irc-appearance-previewCSS.dtd)

View File

@@ -74,11 +74,11 @@ function CLineService()
CLineService.prototype.commandLineArgument = "-chat";
CLineService.prototype.prefNameForStartup = "general.startup.chat";
CLineService.prototype.chromeUrlForTask="chrome://chatzilla/content";
CLineService.prototype.chromeUrlForTask = "chrome://chatzilla/content";
CLineService.prototype.helpText = "Start with an IRC chat client";
CLineService.prototype.handlesArgs=false;
CLineService.prototype.defaultArgs ="";
CLineService.prototype.openWindowWithArgs=false;
CLineService.prototype.handlesArgs = false;
CLineService.prototype.defaultArgs = "";
CLineService.prototype.openWindowWithArgs = false;
/* factory for command line handler service (CLineService) */
var CLineFactory = new Object();
@@ -177,8 +177,8 @@ function (aPort, aScheme)
IRCProtocolHandler.prototype.newURI =
function (aSpec, aCharset, aBaseURI)
{
var url = Components.classes[STANDARDURL_CONTRACTID].
createInstance(nsIStandardURL);
var cls = Components.classes[STANDARDURL_CONTRACTID];
var url = cls.createInstance(nsIStandardURL);
url.init(nsIStandardURL.URLTYPE_STANDARD, 6667, aSpec, aCharset, aBaseURI);
return url.QueryInterface(nsIURI);

View File

@@ -45,8 +45,7 @@ function toScriptableInputStream (i)
si = si.QueryInterface(Components.interfaces.nsIScriptableInputStream);
si.init(i);
return si;
return si;
}
function CBSConnection ()
@@ -80,9 +79,9 @@ function bc_connect(host, port, bind, tcp_flag, observer)
this.tcp_flag = tcp_flag;
// Lets get a transportInfo for this
var pps = Components.classes["@mozilla.org/network/protocol-proxy-service;1"].
getService().
QueryInterface(Components.interfaces.nsIProtocolProxyService);
var cls =
Components.classes["@mozilla.org/network/protocol-proxy-service;1"];
var pps = cls.getService(Components.interfaces.nsIProtocolProxyService);
if (!pps)
throw ("Couldn't get protocol proxy service");
@@ -108,13 +107,15 @@ function bc_connect(host, port, bind, tcp_flag, observer)
0, -1, 0);
}
else
{ /* no nspr event queues in this environment, we can't use async calls,
* so set up the streams. */
{
/* no nspr event queues in this environment, we can't use async
* calls, so set up the streams. */
this._outputStream = this._transport.openOutputStream(0, -1, 0);
if (!this._outputStream)
throw "Error getting output stream.";
this._inputStream =
toScriptableInputStream(this._transport.openInputStream (0, -1, 0));
toScriptableInputStream(this._transport.openInputStream(0,
-1, 0));
if (!this._inputStream)
throw "Error getting input stream.";
}
@@ -122,7 +123,8 @@ function bc_connect(host, port, bind, tcp_flag, observer)
else
{
/* use new necko interfaces */
this._transport = this._sockService.createTransport(null, 0, host, port, info);
this._transport = this._sockService.createTransport(null, 0, host, port,
info);
if (!this._transport)
throw ("Error creating transport.");
@@ -134,7 +136,8 @@ function bc_connect(host, port, bind, tcp_flag, observer)
openFlags = Components.interfaces.nsITransport.OPEN_BLOCKING;
/* no limit on the output stream buffer */
this._outputStream = this._transport.openOutputStream(openFlags, 4096, -1);
this._outputStream =
this._transport.openOutputStream(openFlags, 4096, -1);
if (!this._outputStream)
throw "Error getting output stream.";
this._inputStream = this._transport.openInputStream(openFlags, 0, 0);
@@ -201,11 +204,14 @@ CBSConnection.prototype.startAsyncRead =
function bc_saread (observer)
{
if (jsenv.HAS_STREAM_PROVIDER)
this._transport.asyncRead (new StreamListener (observer), this, 0, -1, 0);
{
this._transport.asyncRead (new StreamListener (observer),
this, 0, -1, 0);
}
else
{
var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"].
createInstance(Components.interfaces.nsIInputStreamPump);
var cls = Components.classes["@mozilla.org/network/input-stream-pump;1"];
var pump = cls.createInstance(Components.interfaces.nsIInputStreamPump);
pump.init(this._inputStream, -1, -1, 0, 0, false);
pump.asyncRead(new StreamListener(observer), this);
}
@@ -291,7 +297,7 @@ function sp_datawrite (request, ctxt, ostream, offset, count)
{
//dd ("StreamProvider.prototype.onDataWritable");
if (this.isClosed)
if ("isClosed" in this && this.isClosed)
throw Components.results.NS_BASE_STREAM_CLOSED;
if (!this.pendingData)
@@ -356,7 +362,8 @@ function sl_dataavail (request, ctxt, inStr, sourceOffset, count)
"StreamListener.onDataAvailable ***");
return;
}
if (!ctxt._scriptableInputStream)
if (!("_scriptableInputStream" in ctxt))
ctxt._scriptableInputStream = toScriptableInputStream (inStr);
if (this._observer)

View File

@@ -106,8 +106,17 @@ function ep_addhook(pattern, f, name, neg, enabled, hooks)
neg = Boolean(neg);
return (hooks.push({pattern: pattern, f: f, name: name,
neg: neg, enabled: enabled}) - 1);
var hook = {
pattern: pattern,
f: f,
name: name,
neg: neg,
enabled: enabled
};
hooks.push(hook);
return hook;
}

View File

@@ -655,7 +655,7 @@ function serv_ppline(e)
if (line == "")
return false;
var incomplete = (line[line.length] != '\n');
var incomplete = (line[line.length - 1] != '\n');
var lines = line.split("\n");
if (this.savedLine)
@@ -671,7 +671,8 @@ function serv_ppline(e)
{
var ev = new CEvent("server", "rawdata", this, "onRawData");
ev.data = lines[i].replace(/\r/g, "");
this.parent.eventPump.addEvent (ev);
if (ev.data)
this.parent.eventPump.addEvent (ev);
}
return true;
@@ -704,6 +705,12 @@ function serv_onRawData(e)
var ary;
var l = e.data;
if (l.length == 0)
{
dd ("empty line on onRawData?");
return false;
}
if (l[0] == ":")
{
ary = l.match (/:(\S+)\s(.*)/);
@@ -2031,7 +2038,7 @@ function chan_secret (f)
var modifier = (f) ? "+" : "-";
this.parent.parent.sendData ("MODE " + this.parent.encodedName + " " +
modifier + "p\n");
modifier + "s\n");
return true;
}

View File

@@ -56,6 +56,7 @@ jsenv.HAS_JAVA = (typeof java == "object");
jsenv.HAS_RHINO = (typeof defineClass == "function");
jsenv.HAS_DOCUMENT = (typeof document == "object");
jsenv.HAS_NSPR_EVENTQ = jsenv.HAS_DOCUMENT;
jsenv.HAS_STREAM_PROVIDER = ("nsIStreamProvider" in Components.interfaces);
function dumpObject (o, pfx, sep)
{

View File

@@ -166,11 +166,25 @@
<hbox id="input-widgets">
<text id="server-nick" value=""/>
<textbox id="multiline-input" multiline="true" flex="1" height="100px"
class="multiline-input-widget" collapsed="true" autostretch="true"
onfocus="onInputFocus();"/>
<textbox id="input" class="input-widget" flex="1" autostretch="true"
onfocus="onInputFocus();"/>
<hbox id="multiline-box" flex="1" collapsed="true">
<textbox id="multiline-input" multiline="true" flex="1" height="100px"
class="multiline-input-widget" onfocus="onInputFocus();"/>
<vbox>
<toolbarbutton id="button-input" flex="1"
oncommand="onMultilineSend(event);"
tooltiptext="&multiline-send.tooltip;" />
<toolbarbutton id="button-multiline-contract"
oncommand="multilineInputMode(false);"
tooltiptext="&multiline-contract.tooltip;" />
</vbox>
</hbox>
<hbox id="singleline-box" flex="1" collapsed="true">
<textbox id="input" class="input-widget" flex="1" autostretch="true"
onfocus="onInputFocus();"/>
<toolbarbutton id="button-multiline-expand"
oncommand="multilineInputMode(true);"
tooltiptext="&multiline-expand.tooltip;"/>
</hbox>
</hbox>
</vbox> <!-- outer-box -->

View File

@@ -18,9 +18,15 @@
<!-- overlay information -->
<RDF:Seq about="urn:mozilla:overlays">
<RDF:li resource="chrome://editor/content/editorTasksOverlay.xul"/>
<RDF:li resource="chrome://communicator/content/pref/preftree.xul"/>
</RDF:Seq>
<RDF:Seq about="chrome://editor/content/editorTasksOverlay.xul">
<RDF:li>chrome://chatzilla/content/chatzillaOverlay.xul</RDF:li>
</RDF:Seq>
<RDF:Seq about="chrome://communicator/content/pref/preftree.xul">
<RDF:li>chrome://chatzilla/content/prefsOverlay.xul</RDF:li>
</RDF:Seq>
</RDF:RDF>

View File

@@ -78,10 +78,20 @@ function onLoad()
{
initHost(client);
readIRCPrefs();
initPrefs();
readPrefs();
setClientOutput();
initStatic();
if (!CIRCNetwork.prototype.INITIAL_NICK)
CIRCNetwork.prototype.INITIAL_NICK = "IRCMonkey";
if (!CIRCNetwork.prototype.INITIAL_NAME)
CIRCNetwork.prototype.INITIAL_NAME = "chatzilla";
if (!CIRCNetwork.prototype.INITIAL_DESC)
CIRCNetwork.prototype.INITIAL_DESC = "New Now Know How";
client.userScripts = new Array();
if (client.INITIAL_SCRIPTS)
{
@@ -94,6 +104,10 @@ function onLoad()
}
processStartupURLs();
client.onInputNetworks();
client.onInputCommands();
mainStep();
}
@@ -117,7 +131,9 @@ function onClose()
function onUnload()
{
if (client.SAVE_SETTINGS)
writeIRCPrefs();
writePrefs();
destroyPrefs();
}
function onNotImplemented()
@@ -630,7 +646,10 @@ function onSortCol(sortColName)
return false;
try
{
xulSortService.sort(node, sortResource, sortDirection);
if ("sort" in xulSortService)
xulSortService.sort(node, sortResource, sortDirection);
else
xulSortService.Sort(node, sortResource, sortDirection);
}
catch(ex)
{
@@ -663,8 +682,7 @@ function onMultilineInputKeyPress (e)
if ((e.ctrlKey || e.metaKey) && e.keyCode == 13)
{
/* meta-enter, execute buffer */
e.line = e.target.value;
onInputCompleteLine (e);
onMultilineSend(e);
}
else
{
@@ -676,6 +694,14 @@ function onMultilineInputKeyPress (e)
}
}
function onMultilineSend(e)
{
var multiline = document.getElementById("multiline-input");
e.line = multiline.value;
onInputCompleteLine (e);
multiline.value = "";
}
function onToggleMsgCollapse()
{
client.COLLAPSE_MSGS = !client.COLLAPSE_MSGS;
@@ -954,7 +980,7 @@ function onInputCompleteLine(e, simulated)
if (!simulated)
{
if (client.inputHistory[0] != e.line)
if (!client.inputHistory.length || client.inputHistory[0] != e.line)
client.inputHistory.unshift (e.line);
if (client.inputHistory.length > client.MAX_HISTORY)
@@ -1734,7 +1760,7 @@ function cli_irlist (e)
return false;
}
o.network.list = new Array();
var ary = e.inputData.match (/^\s*("([^"]*)"|([^\s]*))/);
var ary = e.inputData.match (/^\s*(\"([^\"]*)\"|([^\s]*))/);
try
{
if (ary[2])

View File

@@ -124,7 +124,7 @@
<key id="key_clearview" observes="cmd_clearview"
modifiers="accel" key="R"/>
<key id="key_deleteview" observes="cmd_deleteview"
modifiers="accel" key="X"/>
modifiers="accel" key="W"/>
<key id="key_status" observes="cmd_status"
modifiers="accel shift" key="S"/>
@@ -136,7 +136,7 @@
<key id="key_toggleheader" observes="cmd_toggleheader"
modifiers="accel" key="H"/>
<key id="key_togglestatus" observes="cmd_togglestatus"
modifiers="accel" key="S"/>
modifiers="accel" key="B"/>
<!-- Tasks keys -->
<keyset id="tasksKeys"/>
@@ -174,7 +174,7 @@
<menuitem id="menu-settings-save-now"
label="&SaveSetNowCmd.label;" accesskey="&SaveSetNowCmd.akey;"
oncommand="writeIRCPrefs()"/>
oncommand="writePrefs()"/>
<menuitem id="menu-settings-autosave"
label="&SaveSetExitCmd.label;" accesskey="&SaveSetExitCmd.akey;"
oncommand="onToggleSaveOnExit()" type="checkbox"/>

View File

@@ -0,0 +1,77 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<script>
var css = "chrome://chatzilla/skin/output-default.css";
if (document.location.search)
css = document.location.search.substr(1);
document.write ("<LINK REL=StyleSheet HREF='" + css +
"' TYPE='text/css' MEDIA='screen'>");
</script>
<!--<LINK REL=StyleSheet id='dynamic-styles' TYPE='text/css' MEDIA='screen'
href='chrome://chatzilla/content/dynamic.css'>-->
</head>
<body class="chatzilla-body">
<div id="output">
</div>
<table class="msg-table" view-type="IRCChannel">
<tbody>
<tr class="msg" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[INFO]</span></td><td class="msg-data" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span>Channel view for ``#mozilla'' opened.</span></td></tr>
<tr class="msg" msg-type="NOTICE" msg-user="moznet" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="NOTICE" msg-user="moznet" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">===</span></td><td class="msg-data" msg-type="NOTICE" msg-user="moznet" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span>*** Your host is irc.mozilla.org[irc.mozilla.org/6667], running version 2.8/hybrid-6.0</span></td></tr>
<tr class="msg" msg-type="250" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="250" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">===</span></td><td class="msg-data" msg-type="250" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span>: Highest connection count: 417 (417 clients) (269041 since server was (re)started)</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="ME!" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="JOIN" msg-user="ME!" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="ME!" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span>YOU have joined #mozilla</span></td></tr>
<tr class="msg" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">=-=</span></td><td class="msg-data" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span>Topic for #mozilla is ``&lt;pinkerton&gt; f**k me''</span></td></tr>
<tr class="msg" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">=-=</span></td><td class="msg-data" msg-type="TOPIC" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span>Topic for #mozilla was set by dmose on Thu Jul 12 12:03:59 GMT-0700 (PDT) 2001</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="illsleydc" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 14:10" class="msg-type" msg-type="JOIN" msg-user="illsleydc" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="illsleydc" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span>illsleydc (<a href="mailto:illsleydc@usr2574-kno.cableinet.co.uk" class="chatzilla-link">illsleydc@usr2574-kno.cableinet.co.uk</a>) has joined #mozilla</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 14:11" class="msg-type" msg-type="JOIN" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span>fantasai (<a href="mailto:fantasai@escape.com" class="chatzilla-link">fantasai@escape.com</a>) has joined #mozilla</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="walk84_" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 14:11" class="msg-type" msg-type="JOIN" msg-user="walk84_" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="walk84_" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span>walk84_ (<a href="mailto:walk84@tc0-193.stn.bluemarble.net" class="chatzilla-link">walk84@tc0-193.stn.bluemarble.net</a>) has joined #mozilla</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 14:12" class="msg-user" msg-type="PRIVMSG" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">fantasai</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="fantasai" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>Hixie: ping</span></td></tr>
<tr class="msg" msg-type="NICK" msg-user="akkpit" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:13" class="msg-type" msg-type="NICK" msg-user="akkpit" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">=-=</span></td><td class="msg-data" msg-type="NICK" msg-user="akkpit" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>akk is now known as akkPit</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">BenGoodger</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>does the matrix include a hot baby?</span></td></tr>
<tr class="msg" msg-type="ACTION" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="ACTION" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">pinkerton</span></td><td class="msg-data" msg-type="ACTION" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>notices the tipic</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">pinkerton</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>er, topic</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">pinkerton</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>hey ben</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">BenGoodger</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="bengoodger" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>pink!</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="smfr2" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="smfr2" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">smfr2</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="smfr2" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>pink: bug 87112</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-user" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">pinkerton</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="pinkerton" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>gracias</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="mang" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:14" class="msg-type" msg-type="JOIN" msg-user="mang" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="mang" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>mang (<a href="mailto:mang@h-208-12-41-197.netscape.com" class="chatzilla-link">mang@h-208-12-41-197.netscape.com</a>) has joined #mozilla</span></td></tr>
<tr class="msg" msg-type="QUIT" msg-user="kowalski" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:15" class="msg-type" msg-type="QUIT" msg-user="kowalski" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">|&lt;--</span></td><td class="msg-data" msg-type="QUIT" msg-user="kowalski" msg-dest="#mozilla" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Kowalski has left moznet (How did you manage to get your face caught in the door?)</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>foo</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>foo</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="blablabalabl" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="blablabalabl" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">blablabalabl</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="blablabalabl" dest-type="IRCUser" view-type="IRCChannel" mark="odd"><span>bnla</span></td></tr>
<tr class="msg" msg-type="401" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="401" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">===</span></td><td class="msg-data" msg-type="401" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>blablabalabl: No such nick/channel</span></td></tr>
<tr class="msg" msg-type="HELLO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="HELLO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[HELLO]</span></td><td class="msg-data" msg-type="HELLO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample HELLO message.</span></td></tr>
<tr class="msg" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[INFO]</span></td><td class="msg-data" msg-type="INFO" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample INFO message.</span></td></tr>
<tr class="msg" msg-type="ERROR" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="ERROR" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[ERROR]</span></td><td class="msg-data" msg-type="ERROR" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample ERROR message.</span></td></tr>
<tr class="msg" msg-type="HELP" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="HELP" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[HELP]</span></td><td class="msg-data" msg-type="HELP" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample HELP message.</span></td></tr>
<tr class="msg" msg-type="USAGE" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="USAGE" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">[USAGE]</span></td><td class="msg-data" msg-type="USAGE" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample USAGE message.</span></td></tr>
<tr class="msg" msg-type="STATUS" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="STATUS" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel"><span class="undefined">===</span></td><td class="msg-data" msg-type="STATUS" msg-user="undefined" msg-dest="undefined" dest-type="unk" view-type="IRCChannel" mark="odd"><span>Sample STATUS message.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Normal message from IRCUser ``IRCMonkey'' to you</span></td></tr>
<tr class="msg" msg-type="ACTION" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="ACTION" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="ACTION" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Action message from IRCUser ``IRCMonkey'' to you</span></td></tr>
<tr class="msg" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Notice message from IRCUser ``IRCMonkey'' to you</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Normal message from you to IRCUser ``IRCMonkey''</span></td></tr>
<tr class="msg" msg-type="ACTION" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="ACTION" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="ACTION" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Action message from you to IRCUser ``IRCMonkey''</span></td></tr>
<tr class="msg" msg-type="NOTICE" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="NOTICE" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="NOTICE" msg-user="ME!" msg-dest="ircmonkey" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Notice message from you to IRCUser ``IRCMonkey''</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Sample URL &lt;<a href="http://www.mozilla.org" class="chatzilla-link" target="_content">http://www.mozilla.org</a>&gt; message.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Sample text styles <span class="chatzilla-bold">*bold*<img></span>, <span class="chatzilla-underline">_underline_<img></span>, <span class="chatzilla-italic">/italic/<img></span>, <span class="chatzilla-teletype">|teletype|<img></span> message.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Sample emoticon<span class="chatzilla-emote-txt" type="face-smile"> :) </span><span class="chatzilla-emote" type="face-smile"></span><span class="chatzilla-emote-txt" type="face-frown">:( </span><span class="chatzilla-emote" type="face-frown"></span><span class="chatzilla-emote-txt" type="face-cry">:~( </span><span class="chatzilla-emote" type="face-cry"></span><span class="chatzilla-emote-txt" type="face-surprise">:0 </span><span class="chatzilla-emote" type="face-surprise"></span><span class="chatzilla-emote-txt" type="face-screw">:/ </span><span class="chatzilla-emote" type="face-screw"></span><span class="chatzilla-emote-txt" type="face-tongue">:P </span><span class="chatzilla-emote" type="face-tongue"></span><span class="chatzilla-emote-txt" type="face-angry">:| </span><span class="chatzilla-emote" type="face-angry"></span><img src="chrome://chatzilla/skin/images/face-ear.gif"> message.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="ME!" dest-type="IRCUser" view-type="IRCChannel" mark="even"><span>Sample <a href="ftp://ftp.mozilla.org/pub/mozilla/libraries/bonus-tracks/rheet.wav" class="chatzilla-rheet chatzilla-link">Rheeeeeeeeeet!</a> message.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>Normal message from IRCUser ``IRCMonkey'' to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="ACTION" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="ACTION" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="ACTION" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>Action message from IRCUser ``IRCMonkey'' to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="NOTICE" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="even"><span>Notice message from IRCUser ``IRCMonkey'' to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Normal message from you to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="ACTION" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="ACTION" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="ACTION" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Action message from you to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="NOTICE" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="NOTICE" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="NOTICE" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Notice message from you to IRCChannel ``<a href="irc://moznet/#mojo" class="chatzilla-link">#mojo</a>''</span></td></tr>
<tr class="msg" msg-type="TOPIC" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="TOPIC" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">=-=</span></td><td class="msg-data" msg-type="TOPIC" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample Topic message</span></td></tr>
<tr class="msg" msg-type="JOIN" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="JOIN" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">--&gt;|</span></td><td class="msg-data" msg-type="JOIN" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample Join message</span></td></tr>
<tr class="msg" msg-type="PART" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="PART" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">&lt;--|</span></td><td class="msg-data" msg-type="PART" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample Part message</span></td></tr>
<tr class="msg" msg-type="KICK" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="KICK" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">=-=</span></td><td class="msg-data" msg-type="KICK" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample Kick message</span></td></tr>
<tr class="msg" msg-type="QUIT" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-type" msg-type="QUIT" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">|&lt;--</span></td><td class="msg-data" msg-type="QUIT" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample Quit message</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" important="true"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" important="true"><span class="undefined">IRCMonkey</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ircmonkey" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" important="true" mark="even"><span>rgindafoo : Sample /stalk match.</span></td></tr>
<tr class="msg" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><td title="7/12 15:17" class="msg-user" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel"><span class="undefined">rgindaFOO</span></td><td class="msg-data" msg-type="PRIVMSG" msg-user="ME!" msg-dest="#mojo" dest-type="IRCChannel" view-type="IRCChannel" mark="odd"><span>Sample text styles <span class="chatzilla-bold">*bold*<img></span>, <span class="chatzilla-underline">_underline_<img></span>, <span class="chatzilla-italic">/italic/<img></span>, <span class="chatzilla-teletype">|teletype|<img></span>, <a href="irc://moznet/#SmallCap#" class="chatzilla-link">#SmallCap#</a> message.</span></td></tr>
</tbody>
</table>
</body>
</html>

View File

@@ -0,0 +1,54 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 ***** */
var gData;
var gPage;
function Init()
{
gPage = document.getElementById('czPreviewPage');
if ("arguments" in window && window.arguments[0])
gData = window.arguments[0];
if (! gData)
gData = new Object();
gPage.contentDocument.location.href =
"chrome://chatzilla/content/pref-irc-appearance-previewCSS.html"
+ (gData.style ? "?" + gData.style : '');
}

View File

@@ -0,0 +1,53 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-appearance-previewCSS.dtd">
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();" buttons="accept" style=" width: 50em; height: 40em; "
title="&window.title;">
<script src="chrome://chatzilla/content/pref-irc-appearance-previewCSS.js"/>
<keyset id="dialogKeys"/>
<hbox flex="1">
<iframe id="czPreviewPage" flex="1" src="about:blank"/>
</hbox>
<separator/>
</dialog>

View File

@@ -0,0 +1,17 @@
#czMungerBold {
font-weight: bold;
}
#czMungerItalic {
font-style: italic;
}
/* FIXME: This doesn't work in XUL due to bug 68841. */
#czMungerUnderline {
text-decoration: underline;
}
#czMungerTeletype {
font-family: monospace;
}

View File

@@ -0,0 +1,115 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 nsIFilePicker = Components.interfaces.nsIFilePicker;
const czStyleDefault = "chrome://chatzilla/skin/output-default.css";
const czStyleLight = "chrome://chatzilla/skin/output-light.css";
const czStyleDark = "chrome://chatzilla/skin/output-dark.css";
const czStyleFacesDefault = "http://www.hacksrus.com/~ginda/chatzilla/motifs/output-default-faces.css";
const czStyleFacesLight = "http://www.hacksrus.com/~ginda/chatzilla/motifs/output-light-faces.css";
const czStyleFacesDark = "http://www.hacksrus.com/~ginda/chatzilla/motifs/output-dark-faces.css";
function Init()
{
parent.initPanel("chrome://chatzilla/content/pref-irc-appearance.xul");
var edit = document.getElementById("czStyleCSS");
selectStyle(edit.getAttribute("prefvalue"));
}
function onChooseFile()
{
try
{
var edit = document.getElementById("czStyleCSS");
var oldStyle = edit.getAttribute("prefvalue");
var fpClass = Components.classes["@mozilla.org/filepicker;1"];
var fp = fpClass.createInstance(nsIFilePicker);
fp.init(window, getMsg("file_browse_CSS"), nsIFilePicker.modeOpen);
fp.appendFilter(getMsg("file_browse_CSS_spec"), "*.css");
fp.appendFilters(nsIFilePicker.filterAll);
if (fp.show() == nsIFilePicker.returnOK && fp.fileURL.spec
&& fp.fileURL.spec.length > 0)
selectStyle(fp.fileURL.spec);
else
selectStyle(oldStyle);
}
catch(ex)
{
dump ("caught exception in `onChooseFile`\n" + ex);
}
}
function selectStyle(file)
{
var edit = document.getElementById("czStyleCSS");
var option = document.getElementById("czStyleCustomCSS");
edit.setAttribute("prefvalue", file);
var opts = edit.childNodes[0].childNodes;
for (var i = 0; i < opts.length; i++)
{
if (opts[i].getAttribute("url") == file)
{
edit.selectedIndex = i;
return true;
}
}
option.hidden = false;
option.label = file;
option.setAttribute("url", file);
edit.selectedIndex = 7;
return true;
}
function previewStyle()
{
var edit = document.getElementById("czStyleCSS");
var gData = new Object();
gData.style = edit.getAttribute("prefvalue");
window.openDialog("chrome://chatzilla/content/pref-irc-appearance-previewCSS.xul",
"czPreviewCSS", "chrome,modal,resizable=yes", gData);
}

View File

@@ -0,0 +1,171 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://chatzilla/content/pref-irc-appearance.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-appearance.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
headertitle="&window.title;">
<script src="chrome://global/content/strres.js"/>
<script src="chrome://chatzilla/content/pref-irc.js"/>
<script src="chrome://chatzilla/content/pref-irc-appearance.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czMungerBold", "czMungerItalic", "czMungerUnderline",
"czMungerTeletype", "czMungerWeb", "czMungerMail", "czMungerChannels",
"czMungerBugzilla", "czMungerEmoti", "czMungerColors", "czMungerWrap",
"czMungerBugzillaURL", "czStyleCSS"];
]]>
</script>
<groupbox>
<caption label="&prePro.title;"/>
<label>&prePro.desc;</label>
<grid>
<columns>
<column/>
<column flex="1"/><column flex="1"/><column flex="1"/><column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&prePro.styles;" hidden="true"/>
<checkbox id="czMungerBold" label="&prePro.styles.bold.label;"
tooltiptext="&prePro.styles.bold.tooltip;"
accesskey="&prePro.styles.bold.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.bold"/>
<checkbox id="czMungerItalic" label="&prePro.styles.italic.label;"
tooltiptext="&prePro.styles.italic.tooltip;"
accesskey="&prePro.styles.italic.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.italic"/>
<checkbox id="czMungerUnderline" label="&prePro.styles.underline.label;"
tooltiptext="&prePro.styles.underline.tooltip;"
accesskey="&prePro.styles.underline.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.underline"/>
<checkbox id="czMungerTeletype" label="&prePro.styles.teletype.label;"
tooltiptext="&prePro.styles.teletype.tooltip;"
accesskey="&prePro.styles.teletype.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.teletype"/>
</row>
<row align="center">
<label value="&prePro.links;" hidden="true"/>
<checkbox id="czMungerWeb" label="&prePro.styles.web.label;"
tooltiptext="&prePro.styles.web.tooltip;"
accesskey="&prePro.styles.web.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.link"/>
<checkbox id="czMungerMail" label="&prePro.styles.mail.label;"
tooltiptext="&prePro.styles.mail.tooltip;"
accesskey="&prePro.styles.mail.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.mailto"/>
<checkbox id="czMungerChannels" label="&prePro.styles.channel.label;"
tooltiptext="&prePro.styles.channel.tooltip;"
accesskey="&prePro.styles.channel.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.channel-link"/>
<checkbox id="czMungerBugzilla" label="&prePro.styles.bug.label;"
tooltiptext="&prePro.styles.bug.tooltip;"
accesskey="&prePro.styles.bug.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.bugzilla-link"/>
</row>
<row>
<checkbox id="czMungerEmoti" label="&prePro.emoti.label;"
tooltiptext="&prePro.emoti.tooltip;"
accesskey="&prePro.emoti.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.face"/>
<checkbox id="czMungerColors" label="&prePro.colors.label;"
tooltiptext="&prePro.colors.tooltip;"
accesskey="&prePro.colors.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.colorCodes"/>
<checkbox id="czMungerWrap" label="&prePro.wrap.label;"
tooltiptext="&prePro.wrap.tooltip;"
accesskey="&prePro.wrap.accesskey;" prefdefval="true"
prefstring="extensions.irc.munger.word-hyphenator"/>
</row>
</rows>
</grid>
<hbox align="center">
<label value="&prePro.bugURL.label;" control="czMungerBugzillaURL"
accesskey="&prePro.bugURL.accesskey;"/>
<textbox id="czMungerBugzillaURL" flex="1"
prefdefval="http://bugzilla.mozilla.org/show_bug.cgi?id=%s"
prefstring="extensions.irc.bugURL"/>
</hbox>
</groupbox>
<groupbox>
<caption label="&style.title;"/>
<vbox>
<label>&style.desc;</label>
<hbox align="center">
<label value="&style.css.label;" control="czStyleCSS"
accesskey="&style.css.accesskey;"/>
<!-- FIXME: Shows blank when switching to this pref page. -->
<menulist flex="1" id="czStyleCSS" crop="center"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
prefdefval="chrome://chatzilla/skin/output-default.css"
preftype="string" prefstring="extensions.irc.style.default">
<menupopup>
<menuitem label="&style.default.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="chrome://chatzilla/skin/output-default.css"/>
<menuitem label="&style.dark.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="chrome://chatzilla/skin/output-dark.css"/>
<menuitem label="&style.light.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="chrome://chatzilla/skin/output-light.css"/>
<menuitem label="&style.faces.default.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="http://www.hacksrus.com/~ginda/chatzilla/motifs/output-default-faces.css"/>
<menuitem label="&style.faces.dark.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="http://www.hacksrus.com/~ginda/chatzilla/motifs/output-dark-faces.css"/>
<menuitem label="&style.faces.light.label;"
oncommand="selectStyle(this.getAttribute('url'));"
url="http://www.hacksrus.com/~ginda/chatzilla/motifs/output-light-faces.css"/>
<menuseparator/>
<menuitem id="czStyleCustomCSS" label="" hidden="true" url="" crop="center"
oncommand="selectStyle(this.getAttribute('url'));"/>
<menuitem label="&style.custom.label;" oncommand="onChooseFile();"/>
</menupopup>
</menulist>
<button label="&style.preview.label;" accesskey="&style.preview.accesskey;"
oncommand="previewStyle();"/>
</hbox>
</vbox>
</groupbox>
</page>

View File

@@ -0,0 +1,95 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 ***** */
function Init() {
parent.initPanel("chrome://chatzilla/content/pref-irc-interface.xul");
initPMTabsPref();
}
function initPMTabsPref()
{
var allowTabs = document.getElementById("czCreateTabsForPMs");
var limitTabs = document.getElementById("czLimitPMTabs");
var userTabs = document.getElementById("csPMTabLimitUser");
var prefBox = document.getElementById("czPMTabLimit");
if (prefBox.value == 0)
{
allowTabs.checked = true;
limitTabs.checked = false;
userTabs.value = "15";
}
else if (prefBox.value == 1)
{
allowTabs.checked = false;
limitTabs.checked = false;
userTabs.value = "15";
}
else
{
allowTabs.checked = true;
limitTabs.checked = true;
userTabs.value = prefBox.value;
}
limitTabs.disabled = ! allowTabs.checked;
userTabs.disabled = ! (allowTabs.checked && limitTabs.checked);
}
function updatePMTabPref()
{
var allowTabs = document.getElementById("czCreateTabsForPMs");
var limitTabs = document.getElementById("czLimitPMTabs");
var userTabs = document.getElementById("csPMTabLimitUser");
var prefBox = document.getElementById("czPMTabLimit");
if (allowTabs.checked)
{
if (limitTabs.checked)
prefBox.value = userTabs.value;
else
prefBox.value = "0";
}
else
{
prefBox.value = "1";
}
limitTabs.disabled = ! allowTabs.checked;
userTabs.disabled = ! (allowTabs.checked && limitTabs.checked);
if (! userTabs.disabled)
userTabs.focus();
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-interface.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
headertitle="&window.title;">
<script src="chrome://chatzilla/content/pref-irc-interface.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czPMTabLimit", "czFocusPMs", "czConL",
"czScrollback1", "czScrollback2", "czScrollback3",
"czScrollback4"];
]]>
</script>
<groupbox align="start">
<caption label="&tabs.title;"/>
<vbox>
<checkbox id="czCreateTabsForPMs" label="&tabs.createForPMs.label;"
accesskey="&tabs.createForPMs.accesskey;" oncommand="updatePMTabPref();"/>
<hbox class="indent">
<checkbox id="czLimitPMTabs" label="&tabs.limitPMTabs.label;"
accesskey="&tabs.limitPMTabs.accesskey;" oncommand="updatePMTabPref();"/>
<textbox id="csPMTabLimitUser" size="5" oninput="updatePMTabPref();"/>
<textbox id="czPMTabLimit" hidden="true" prefdefval="15"
preftype="int" prefattribute="value"
prefstring="extensions.irc.newTabLimit"/>
<!-- Set to 0 for unlimited tabs, and 1 for no PM tabs. -->
</hbox>
</vbox>
<checkbox id="czFocusPMs" label="&tabs.focusPMs.label;"
accesskey="&tabs.focusPMs.accesskey;" prefdefval="false"
prefstring="extensions.irc.raiseNewTab"/>
<checkbox id="czConL" label="&tabs.closeOnLeave.label;"
accesskey="&tabs.closeOnLeave.accesskey;" prefdefval="true"
prefstring="extensions.irc.deleteOnPart"/>
</groupbox>
<groupbox>
<caption label="&scrollback.title;"/>
<vbox>
<label>&scrollback.label;</label>
<grid>
<columns>
<column/><column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&scrollback.1.label;" control="czScrollback1"
accesskey="&scrollback.1.accesskey;"/><hbox>
<textbox id="czScrollback1" size="5" preftype="int"
prefattribute="value" prefdefval="200"
prefstring="extensions.irc.views.client.maxlines"
/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.2.label;" control="czScrollback2"
accesskey="&scrollback.2.accesskey;"/><hbox>
<textbox id="czScrollback2" size="5" preftype="int"
prefattribute="value" prefdefval="100"
prefstring="extensions.irc.views.network.maxlines"/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.3.label;" control="czScrollback3"
accesskey="&scrollback.3.accesskey;"/><hbox>
<textbox id="czScrollback3" size="5" preftype="int"
prefattribute="value" prefdefval="300"
prefstring="extensions.irc.views.channel.maxlines"/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.4.label;" control="czScrollback4"
accesskey="&scrollback.4.accesskey;"/><hbox>
<textbox id="czScrollback4" size="5" preftype="int"
prefattribute="value" prefdefval="200"
prefstring="extensions.irc.views.chanuser.maxlines"/><spacer/></hbox>
</row>
</rows>
</grid>
</vbox>
</groupbox>
</page>

View File

@@ -0,0 +1,101 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 nsIFilePicker = Components.interfaces.nsIFilePicker;
function Init()
{
parent.initPanel("chrome://chatzilla/content/pref-irc-sound.xul");
var edit = document.getElementById("czSound1");
selectSound(1, edit.getAttribute("prefvalue"));
edit = document.getElementById("czSound2");
selectSound(2, edit.getAttribute("prefvalue"));
edit = document.getElementById("czSound3");
selectSound(3, edit.getAttribute("prefvalue"));
}
function onChooseFile(index)
{
try
{
var edit = document.getElementById("czSound" + index);
var oldValue = edit.getAttribute("prefvalue");
var fpClass = Components.classes["@mozilla.org/filepicker;1"];
var fp = fpClass.createInstance(nsIFilePicker);
fp.init(window, getMsg("file_browse_Wave"), nsIFilePicker.modeOpen);
fp.appendFilter(getMsg("file_browse_Wave_spec"), "*.wav");
fp.appendFilters(nsIFilePicker.filterAll);
if ((fp.show() == nsIFilePicker.returnOK) && fp.fileURL.spec
&& fp.fileURL.spec.length > 0)
selectSound(index, fp.fileURL.spec);
else
selectSound(index, oldValue);
}
catch(ex)
{
dump ("caught exception in `onChooseFile`\n" + ex);
}
}
function selectSound(index, value)
{
var edit = document.getElementById("czSound" + index);
var custom = document.getElementById("czSound" + index + "Custom");
edit.setAttribute("prefvalue", value);
var opts = edit.childNodes[0].childNodes;
for (var i = 0; i < opts.length; i++)
{
if (opts[i].getAttribute("url") == value)
{
edit.selectedIndex = i;
return true;
}
}
custom.hidden = false;
custom.label = value;
custom.setAttribute("url", value);
edit.selectedIndex = 4;
return true;
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-sound.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
headertitle="&window.title;" onload="Init();">
<script src="chrome://global/content/strres.js"/>
<script src="chrome://chatzilla/content/pref-irc.js"/>
<script src="chrome://chatzilla/content/pref-irc-sound.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czSound1", "czSound2", "czSound3"];
]]>
</script>
<groupbox>
<caption><label value="&sndSimpleMsg.title;" control="czSound1"
accesskey="&sndSimpleMsg.accesskey;"/></caption>
<hbox flex="1" align="center">
<label value="&sndFile.label;"/>
<menulist id="czSound1" flex="1" crop="center" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
prefstring="extensions.irc.msgBeep" prefdefval="beep beep">
<menupopup>
<menuitem label="&sndPreset1.label;" url=""
oncommand="selectSound(1, this.getAttribute('url'));"/>
<menuitem label="&sndPreset2.label;" url="beep"
oncommand="selectSound(1, this.getAttribute('url'));"/>
<menuitem label="&sndPreset3.label;" url="beep beep"
oncommand="selectSound(1, this.getAttribute('url'));"/>
<menuseparator/>
<menuitem id="czSound1Custom" label="" crop="center" hidden="true"/>
<menuitem label="&sndChoose.label;" oncommand="onChooseFile(1);"/>
</menupopup>
</menulist>
</hbox>
</groupbox>
<groupbox>
<caption><label value="&sndPrivateMsg.title;" control="czSound2"
accesskey="&sndPrivateMsg.accesskey;"/></caption>
<hbox flex="1" align="center">
<label value="&sndFile.label;"/>
<menulist id="czSound2" flex="1" crop="center" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
prefstring="extensions.irc.queryBeep" prefdefval="beep">
<menupopup>
<menuitem label="&sndPreset1.label;" url=""
oncommand="selectSound(2, this.getAttribute('url'));"/>
<menuitem label="&sndPreset2.label;" url="beep"
oncommand="selectSound(2, this.getAttribute('url'));"/>
<menuitem label="&sndPreset3.label;" url="beep beep"
oncommand="selectSound(2, this.getAttribute('url'));"/>
<menuseparator/>
<menuitem id="czSound2Custom" label="" crop="center" hidden="true"/>
<menuitem label="&sndChoose.label;" oncommand="onChooseFile(2);"/>
</menupopup>
</menulist>
</hbox>
</groupbox>
<groupbox>
<caption><label value="&sndStalkMsg.title;" control="czSound3"
accesskey="&sndStalkMsg.accesskey;"/></caption>
<hbox flex="1" align="center">
<label value="&sndFile.label;"/>
<menulist id="czSound3" flex="1" crop="center" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
prefstring="extensions.irc.stalkBeep" prefdefval="beep">
<menupopup>
<menuitem label="&sndPreset1.label;" url=""
oncommand="selectSound(3, this.getAttribute('url'));"/>
<menuitem label="&sndPreset2.label;" url="beep"
oncommand="selectSound(3, this.getAttribute('url'));"/>
<menuitem label="&sndPreset3.label;" url="beep beep"
oncommand="selectSound(3, this.getAttribute('url'));"/>
<menuseparator/>
<menuitem id="czSound3Custom" label="" crop="center" hidden="true"/>
<menuitem label="&sndChoose.label;" oncommand="onChooseFile(3);"/>
</menupopup>
</menulist>
</hbox>
</groupbox>
</page>

View File

@@ -0,0 +1,158 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 ***** */
function Init()
{
parent.initPanel("chrome://chatzilla/content/pref-irc-stalk.xul");
loadList("StalkWords");
}
function loadList(list)
{
var gList = document.getElementById("cz" + list);
var prefList = gList.getAttribute("prefvalue");
if (prefList.match(/;/))
{
var items = prefList.split(/\s*;\s*/);
for (i in items)
listAddItem(list, items[i]);
}
listUpdateButtons(list);
}
function addStalkWord()
{
var word = prompt(getMsg("stalk_add_msg"));
if (word)
listAddItem("StalkWords", word);
}
function listUpdateButtons(list)
{
var gList = document.getElementById("cz" + list);
var gButtonAdd = document.getElementById("czAdd" + list);
var gButtonDel = document.getElementById("czDel" + list);
if (gList.selectedItems && gList.selectedItems.length)
gButtonDel.removeAttribute("disabled");
else
gButtonDel.setAttribute("disabled", "true");
}
function listUpdate(list) {
var gList = document.getElementById("cz" + list);
listUpdateButtons(list);
var prefList = "";
for (var item = gList.firstChild; item; item = item.nextSibling)
{
var url = item.getAttribute("url");
if (prefList)
prefList = prefList + "; " + url;
else
prefList = url;
}
gList.setAttribute("prefvalue", prefList);
}
function listAdd(list) {
if (list == "StalkWords")
addStalkWord();
listUpdate(list);
}
function listDelete(list)
{
var gList = document.getElementById("cz" + list);
var selected = gList.selectedItems[0];
gList.removeChild(selected);
listUpdate(list);
}
function listAddItem(list, url)
{
var gList = document.getElementById("cz" + list);
var newItem = document.createElement("listitem");
var label = url;
newItem.setAttribute("label", label);
newItem.setAttribute("url", url);
gList.appendChild(newItem);
}
function listMoveUp(list)
{
var gList = document.getElementById("cz" + list);
var selected = gList.selectedItems[0];
var before = selected.previousSibling;
if (before)
{
before.parentNode.insertBefore(selected, before);
gList.selectItem(selected);
gList.ensureElementIsVisible(selected);
}
listUpdate(list);
}
function listMoveDown(list)
{
var gList = document.getElementById("cz" + list);
var selected = gList.selectedItems[0];
if (selected.nextSibling)
{
if (selected.nextSibling.nextSibling)
gList.insertBefore(selected, selected.nextSibling.nextSibling);
else
gList.appendChild(selected);
gList.selectItem(selected);
}
listUpdate(list);
}

View File

@@ -0,0 +1,73 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-stalk.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
headertitle="&window.title;">
<script src="chrome://global/content/strres.js"/>
<script src="chrome://chatzilla/content/pref-irc.js"/>
<script src="chrome://chatzilla/content/pref-irc-stalk.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czStalkWords"];
]]>
</script>
<groupbox flex="1">
<caption><label value="&stalkWords.title;" control="czStalkWords"
accesskey="&stalkWords.accesskey;"/></caption>
<label>&stalkWords.label1;</label>
<label>&stalkWords.label2;</label>
<hbox flex="1">
<listbox id="czStalkWords" flex="1"
style="width: 0px; height: 0px;" crop="center"
prefstring="extensions.irc.stalkWords" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
onselect="listUpdateButtons('StalkWords');"/>
</hbox>
<hbox>
<button id="czAddStalkWords" label="&list.add.label;"
accesskey="&list.add.accesskey;"
oncommand="listAdd('StalkWords');"/>
<button id="czDelStalkWords" label="&list.del.label;"
accesskey="&list.del.accesskey;"
oncommand="listDelete('StalkWords');"/>
</hbox>
</groupbox>
</page>

View File

@@ -0,0 +1,39 @@
const nsIFilePicker = Components.interfaces.nsIFilePicker;
var gFileBox;
var gData;
function Init() {
doSetOKCancel(onOK);
gFileBox = document.getElementById("czFileBox");
if ("arguments" in window && window.arguments[0]) {
gData = window.arguments[0];
}
gFileBox.focus();
}
function onChooseFile() {
try {
var flClass = Components.classes["@mozilla.org/filepicker;1"];
var fp = flClass.createInstance(nsIFilePicker);
fp.init(window, "Choose a JavaScript script", nsIFilePicker.modeOpen);
fp.appendFilter("JavaScript script (*.js)", "*.js");
fp.appendFilters(nsIFilePicker.filterAll);
if (fp.show() == nsIFilePicker.returnOK && fp.fileURL.spec
&& fp.fileURL.spec.length > 0)
gFileBox.value = fp.fileURL.spec;
}
catch(ex) {
}
}
function onOK() {
gData.url = gFileBox.value;
gData.ok = true;
return true;
}

View File

@@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
-
- 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
-->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-startup-newScript.dtd">
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
class="dialog" style="width: 40em;"
title="&window.title;">
<script type="application/x-javascript"
src="chrome://chatzilla/content/pref-irc-startup-newScript.js"/>
<keyset id="dialogKeys"/>
<label value="&text.desc;"/>
<hbox align="center">
<textbox id="czFileBox" type="autocomplete" searchSessions="history"
timeout="50" maxrows="6"
disablehistory="true" flex="1"/>
<button label="Choose File.." onclick="onChooseFile();"/>
</hbox>
<separator/>
<hbox id="okCancelButtonsRight"/>
</window>

View File

@@ -0,0 +1,168 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 nsIFilePicker = Components.interfaces.nsIFilePicker;
var gFileBox;
var gData;
var gType;
var gServer;
var gServerNeedPass;
var gServerAlso;
var gChannel;
var gChannelIsNick;
var gChannelNeedKey;
function Init()
{
doSetOKCancel(onOK);
gType = document.getElementById("czURLType");
gServer = document.getElementById("czServer");
gServerNeedPass = document.getElementById("czServerNeedPass");
gServerAlso = document.getElementById("czServerAlso");
gChannel = document.getElementById("czChannel");
gChannelIsNick = document.getElementById("czChannelIsNick");
gChannelNeedKey = document.getElementById("czChannelNeedKey");
if ("arguments" in window && window.arguments[0])
gData = window.arguments[0];
if (! gData)
gData = new Object();
if (!("url" in gData) || !gData.url)
gData.url = "irc:///";
if (gData.url == "irc:" || gData.url == "irc:/" || gData.url == "irc://")
{
gType.selectedItem = gType.mRadioChildren[1];
}
else
{
gType.selectedItem = gType.mRadioChildren[0];
gChannelIsNick.selectedItem = gChannelIsNick.mRadioChildren[0];
// Split it up into server/channel parts...
var params = gData.url.match(/^irc:\/\/(.*)\/([^,]*)(.*)?$/);
gServer.value = params[1];
gChannel.value = params[2];
gServerAlso.checked = (gChannel.value != '');
if (params.length >= 4)
{
var modifiers = params[3].split(/,/);
for (m in modifiers)
{
if (modifiers[m] == 'needpass')
gServerNeedPass.checked = true;
if (modifiers[m] == 'isnick')
gChannelIsNick.selectedItem = gChannelIsNick.mRadioChildren[1];
if (modifiers[m] == 'needkey')
gChannelNeedKey.checked = true;
}
}
}
updateType();
gData.ok = false;
}
function updateType()
{
if (gType.value == "normal")
{
gServer.removeAttribute("disabled");
gServerNeedPass.removeAttribute("disabled");
gServerAlso.removeAttribute("disabled");
}
else
{
gServer.setAttribute("disabled", "true");
gServerNeedPass.setAttribute("disabled", "true");
gServerAlso.setAttribute("disabled", "true");
}
if ((gType.value == "normal") && gServerAlso.checked)
{
gChannel.removeAttribute("disabled");
gChannelIsNick.childNodes[1].removeAttribute("disabled");
gChannelIsNick.childNodes[5].removeAttribute("disabled");
if (gChannelIsNick.value == "channel")
gChannelNeedKey.removeAttribute("disabled");
else
gChannelNeedKey.setAttribute("disabled", "true");
gServer.focus();
}
else
{
gChannel.setAttribute("disabled", "true");
gChannelIsNick.childNodes[1].setAttribute("disabled", "true");
gChannelIsNick.childNodes[5].setAttribute("disabled", "true");
gChannelNeedKey.setAttribute("disabled", "true");
}
}
function onOK()
{
if (gType.value == "normal")
{
gData.url = "irc://" + gServer.value + "/";
if (gServerAlso.checked)
{
gData.url += gChannel.value;
if ((gChannelIsNick.value == "channel") &&
(gChannelNeedKey.checked))
gData.url += ",needkey";
if (gChannelIsNick.value == "nickname")
gData.url += ",isnick";
}
if (gServerNeedPass.checked)
gData.url += ",needpass";
}
else
{
gData.url = "irc://";
}
gData.ok = true;
return true;
}

View File

@@ -0,0 +1,85 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-startup-newURL.dtd">
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl"
onload="Init();"
class="dialog" style=" width: 25em; "
title="&window.title;">
<script src="chrome://chatzilla/content/pref-irc-startup-newURL.js"/>
<keyset id="dialogKeys"/>
<radiogroup id="czURLType" onselect="updateType();">
<radio value="normal" label="&normal.label;"/>
<vbox class="indent">
<vbox style=" x-width: 22em; ">
<label>&normal.server;</label>
<textbox id="czServer" size="5"/>
<checkbox id="czServerNeedPass" label="&normal.needpass.label;"/>
</vbox>
<groupbox>
<caption><checkbox id="czServerAlso" label="&normal.channel.label;"
oncommand="updateType();"/></caption>
<radiogroup id="czChannelIsNick" orient="horizontal"
onselect="updateType();" align="center">
<spacer flex="1"/>
<radio value="channel" label="&normal.ischan.label;"/>
<spacer flex="1"/>
<label value="&normal.isor.label;"/>
<spacer flex="1"/>
<radio value="nickname" label="&normal.isnick.label;" flex="1"/>
<spacer flex="1"/>
</radiogroup>
<textbox id="czChannel"/>
<checkbox id="czChannelNeedKey" label="&normal.needkey.label;"/>
</groupbox>
</vbox>
<radio value="client" label="&client.label;"/>
<vbox class="indent">
<label>&client.desc;</label>
</vbox>
</radiogroup>
<separator/>
<hbox id="okCancelButtonsRight"/>
</window>

View File

@@ -0,0 +1,283 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 nsIFilePicker = Components.interfaces.nsIFilePicker;
function Init()
{
parent.initPanel("chrome://chatzilla/content/pref-irc-startup.xul");
loadList("Scripts");
loadList("URLs");
}
function loadList(list)
{
var gList = document.getElementById("czInitial" + list);
var prefList = gList.getAttribute("prefvalue");
if (prefList.match(/;/))
{
var items = prefList.split(/\s*;\s*/);
for (i in items)
listAddItem(list, items[i]);
}
listUpdateButtons(list);
}
function getIRCDisplayText(url)
{
var params;
// NOTE: This code (by design) ignores all the irc:// modifiers except
// 'isnick'. Showing the others can be added later, if needed.
// FIXME: Localization support here (getMsg).
if ((url == "irc:" || url == "irc:/" || url == "irc://"))
return "Client view";
if ((url == "irc:///"))
return "Default network";
if ((params = url.match(/^irc:\/\/\/([^,]*)(.*),isnick(,.*)?$/)))
return params[2] + " nickname on default network";
if ((params = url.match(/^irc:\/\/\/([^,]+)/)))
return params[1] + " channel on default network";
if ((params = url.match(/^irc:\/\/(.*)\/(,.*)?$/)))
return params[1] + " network";
if ((params = url.match(/^irc:\/\/(.*)\/([^,]*)(.*),isnick(,.*)?$/)))
return params[2] + " nickname on " + params[1];
if ((params = url.match(/^irc:\/\/(.*)\/([^,]+)/)))
return params[2] + " channel on " + params[1];
return url;
}
function addScript()
{
try
{
var fpClass = Components.classes["@mozilla.org/filepicker;1"];
var fp = fpClass.createInstance(nsIFilePicker);
fp.init(window, getMsg("file_browse_Script"), nsIFilePicker.modeOpen);
fp.appendFilter(getMsg("file_browse_Script_spec"), "*.js");
fp.appendFilters(nsIFilePicker.filterAll);
if (fp.show() == nsIFilePicker.returnOK && fp.fileURL.spec &&
fp.fileURL.spec.length > 0)
listAddItem("Scripts", fp.fileURL.spec);
}
catch(ex)
{
dump ("caught exception in `addScript`\n" + ex);
}
}
function addURL()
{
var gData = new Object();
window.openDialog("chrome://chatzilla/content/pref-irc-startup-newURL.xul",
"czAddURL", "chrome,modal,resizable=no", gData);
if (gData.ok)
listAddItem("URLs", gData.url);
}
function editURL()
{
var gData = new Object();
var gList = document.getElementById("czInitialURLs");
if (gList.selectedItems.length == 0)
return;
var selected = gList.selectedItems[0];
gData.url = selected.getAttribute("url");
window.openDialog("chrome://chatzilla/content/pref-irc-startup-newURL.xul",
"czEditURL", "chrome,modal,resizable=no", gData);
if (gData.ok)
{
selected.setAttribute("label", getIRCDisplayText(gData.url));
selected.setAttribute("url", gData.url);
}
}
function listUpdateButtons(list)
{
var gList = document.getElementById("czInitial" + list);
var gButtonUp = document.getElementById("czUp" + list);
var gButtonDn = document.getElementById("czDn" + list);
var gButtonAdd = document.getElementById("czAdd" + list);
var gButtonEdit = document.getElementById("czEdit" + list);
var gButtonDel = document.getElementById("czDel" + list);
if (gList.selectedItems && gList.selectedItems.length)
{
if (gButtonEdit) gButtonEdit.removeAttribute("disabled");
gButtonDel.removeAttribute("disabled");
}
else
{
if (gButtonEdit) gButtonEdit.setAttribute("disabled", "true");
gButtonDel.setAttribute("disabled", "true");
}
if (gList.selectedItems.length == 0 || gList.selectedIndex == 0)
{
gButtonUp.setAttribute("disabled", "true");
}
else
{
gButtonUp.removeAttribute("disabled");
}
if (gList.selectedItems.length == 0 ||
gList.selectedIndex == gList.childNodes.length - 1)
{
gButtonDn.setAttribute("disabled", "true");
}
else
{
gButtonDn.removeAttribute("disabled");
}
}
function listUpdate(list)
{
var gList = document.getElementById("czInitial" + list);
listUpdateButtons(list);
var prefList = "";
for (var item = gList.firstChild; item; item = item.nextSibling)
{
var url = item.getAttribute("url");
if (prefList)
prefList = prefList + "; " + url;
else
prefList = url;
}
gList.setAttribute("prefvalue", prefList);
}
function listAdd(list)
{
if (list == "Scripts")
addScript();
else if (list == "URLs")
addURL();
listUpdate(list);
}
function listEdit(list)
{
if (list == "URLs")
editURL();
listUpdate(list);
}
function listDelete(list)
{
var gList = document.getElementById("czInitial" + list);
var selected = gList.selectedItems[0];
gList.removeChild(selected);
listUpdate(list);
}
function listAddItem(list, url)
{
var gList = document.getElementById("czInitial" + list);
var newItem = document.createElement("listitem");
var label = url;
if (list == "URLs")
label = getIRCDisplayText(url);
if (list == "Scripts")
newItem.setAttribute("crop", "center");
newItem.setAttribute("label", label);
newItem.setAttribute("url", url);
gList.appendChild(newItem);
}
function listMoveUp(list)
{
var gList = document.getElementById("czInitial" + list);
var selected = gList.selectedItems[0];
var before = selected.previousSibling;
if (before)
{
before.parentNode.insertBefore(selected, before);
gList.selectItem(selected);
gList.ensureElementIsVisible(selected);
}
listUpdate(list);
}
function listMoveDown(list)
{
var gList = document.getElementById("czInitial" + list);
var selected = gList.selectedItems[0];
if (selected.nextSibling)
{
if (selected.nextSibling.nextSibling)
gList.insertBefore(selected, selected.nextSibling.nextSibling);
else
gList.appendChild(selected);
gList.selectItem(selected);
}
listUpdate(list);
}

View File

@@ -0,0 +1,102 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-startup.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="Init();"
headertitle="&window.title;">
<script src="chrome://global/content/strres.js"/>
<script src="chrome://chatzilla/content/pref-irc.js"/>
<script src="chrome://chatzilla/content/pref-irc-startup.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czInitialScripts", "czInitialURLs"];
]]>
</script>
<label>&startupOrder.label;</label>
<groupbox flex="1">
<caption><label value="&autoScripts.title;" control="czInitialScripts"
accesskey="&autoScripts.accesskey;"/></caption>
<hbox flex="1">
<listbox id="czInitialScripts" flex="1" prefdefval=""
style="width: 0px; height: 0px;" crop="center"
prefstring="extensions.irc.initialScripts" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
onselect="listUpdateButtons('Scripts');"/>
<vbox>
<button id="czUpScripts" label="&list.up;" class="up"
oncommand="listMoveUp('Scripts');"/>
<button id="czDnScripts" label="&list.dn;" class="down"
oncommand="listMoveDown('Scripts');"/>
</vbox>
</hbox>
<hbox>
<button id="czAddScripts" label="&list.add;"
oncommand="listAdd('Scripts');"/>
<button id="czDelScripts" label="&list.del;"
oncommand="listDelete('Scripts');"/>
</hbox>
</groupbox>
<groupbox flex="1">
<caption><label value="&autoURLs.title;" control="czInitialURLs"
accesskey="&autoURLs.accesskey;"/></caption>
<hbox flex="1">
<listbox id="czInitialURLs" flex="1" prefdefval="irc:///"
style="width: 0px; height: 0px;"
prefstring="extensions.irc.initialURLs" preftype="string"
prefvalue="" prefattribute="prefvalue" wsm_attributes="prefvalue"
onselect="listUpdateButtons('URLs');" ondblclick="listEdit('URLs');"/>
<vbox>
<button id="czUpURLs" label="&list.up;" class="up"
oncommand="listMoveUp('URLs');"/>
<button id="czDnURLs" label="&list.dn;" class="down"
oncommand="listMoveDown('URLs');"/>
</vbox>
</hbox>
<hbox>
<button id="czAddURLs" label="&list.add;"
oncommand="listAdd('URLs');"/>
<button id="czEditURLs" label="&list.edit;"
oncommand="listEdit('URLs');"/>
<button id="czDelURLs" label="&list.del;"
oncommand="listDelete('URLs');"/>
</hbox>
</groupbox>
</page>

View File

@@ -0,0 +1,114 @@
<?xml version="1.0"?>
<!-- ***** 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 ChatZilla.
-
- The Initial Developer of the Original Code is
- ____________________________________________.
- Portions created by the Initial Developer are Copyright (C) 2002
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- 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 LGPL or the GPL. 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 ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-tabs.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="parent.initPanel('chrome://chatzilla/content/pref-irc-tabs.xul');"
headertitle="&window.title;">
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czPMTabLimit", "czFocusPMs", "czConL",
"czScrollback1", "czScrollback2", "czScrollback3",
"czScrollback4"];
]]>
</script>
<groupbox align="start">
<caption label="&tabs.title;"/>
<vbox>
<checkbox id="czCreateTabsForPMs" label="&tabs.createForPMs.label;"
accesskey="&tabs.createForPMs.accesskey;"/>
<hbox class="indent">
<checkbox id="czLimitPMTabs" label="&tabs.limitPMTabs.label;"
accesskey="&tabs.limitPMTabs.accesskey;"/>
<textbox id="czPMTabLimit" size="5"
preftype="int" prefattribute="value"
prefstring="extensions.irc.newTabLimit"/>
</hbox>
</vbox>
<checkbox id="czFocusPMs" label="&tabs.focusPMs.label;"
accesskey="&tabs.focusPMs.accesskey;"
prefstring="extensions.irc.raiseNewTab"/>
<checkbox id="czConL" label="&tabs.closeOnLeave.label;"
accesskey="&tabs.closeOnLeave.accesskey;"
prefstring="extensions.irc.deleteOnPart"/>
</groupbox>
<groupbox>
<caption label="&scrollback.title;"/>
<vbox>
<label>&scrollback.label;</label>
<grid>
<columns>
<column/><column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&scrollback.1.label;"
accesskey="&scrollback.1.accesskey;"/><hbox>
<textbox id="czScrollback1" size="5" preftype="int" prefattribute="value"
prefstring="extensions.irc.views.client.maxlines"/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.2.label;"
accesskey="&scrollback.2.accesskey;"/><hbox>
<textbox id="czScrollback2" size="5" preftype="int" prefattribute="value"
prefstring="extensions.irc.views.network.maxlines"/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.3.label;"
accesskey="&scrollback.3.accesskey;"/><hbox>
<textbox id="czScrollback3" size="5" preftype="int" prefattribute="value"
prefstring="extensions.irc.views.channel.maxlines"/><spacer/></hbox>
</row>
<row align="center">
<label value="&scrollback.4.label;"
accesskey="&scrollback.4.accesskey;"/><hbox>
<textbox id="czScrollback4" size="5" preftype="int" prefattribute="value"
prefstring="extensions.irc.views.chanuser.maxlines"/><spacer/></hbox>
</row>
</rows>
</grid>
</vbox>
</groupbox>
</page>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0"?>
<!--
-
- 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
-->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc-text.dtd">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="parent.initPanel('chrome://chatzilla/content/pref-irc-text.xul');"
headertitle="&window.title;">
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czMungerBold", "czMungerItalic", "czMungerUnderline",
"czMungerTeletype", "czMungerWeb", "czMungerMail", "czMungerChannels",
"czMungerBugzilla", "czMungerEmoti", "czMungerColors", "czMungerWrap",
"czDisplayCollapse", "czDisplayCopyMsgs"];
]]>
</script>
<groupbox>
<caption label="&prePro.title;"/>
<label>&prePro.desc;</label>
<grid>
<columns>
<column/>
<column flex="1"/><column flex="1"/><column flex="1"/><column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&prePro.styles;"/>
<checkbox id="czMungerBold" label="Bold" accesskey="B"
prefstring="extensions.irc.munger.bold"/>
<checkbox id="czMungerItalic" label="Italic" accesskey="I"
prefstring="extensions.irc.munger.italic"/>
<checkbox id="czMungerUnderline" label="Underline" accesskey="U"
prefstring="extensions.irc.munger.underline"/>
<checkbox id="czMungerTeletype" label="Teletype" accesskey="T"
prefstring="extensions.irc.munger.teletype"/>
</row>
<row align="center">
<label value="&prePro.links;"/>
<checkbox id="czMungerWeb" label="Web" accesskey="W"
prefstring="extensions.irc.munger.link"/>
<checkbox id="czMungerMail" label="Mail" accesskey="M"
prefstring="extensions.irc.munger.mailto"/>
<checkbox id="czMungerChannels" label="Channels" accesskey="C"
prefstring="extensions.irc.munger.channel-link"/>
<checkbox id="czMungerBugzilla" label="Bugzilla" accesskey="z"
prefstring="extensions.irc.munger.bugzilla-link"/>
</row>
</rows>
</grid>
<label value="&prePro.otherOptions;"/>
<vbox class="indent" align="start">
<checkbox id="czMungerEmoti" label="&prePro.emoti;" accesskey="e"
prefstring="extensions.irc.munger.face"/>
<checkbox id="czMungerColors" label="&prePro.colors;" accesskey="c"
prefstring="extensions.irc.munger.colorCodes"/>
<checkbox id="czMungerWrap" label="&prePro.wrap;" accesskey="W"
prefstring="extensions.irc.munger.word-hyphenator"/>
</vbox>
</groupbox>
<groupbox align="start">
<caption label="&text.title;"/>
<label>&text.desc;</label>
<checkbox id="czDisplayCollapse" label="&text.collapse;" accesskey="l"
prefstring="extensions.irc.views.collapseMsgs"/>
<checkbox id="czDisplayCopyMsgs" label="&text.copyMsgs;" accesskey="p"
prefstring="extensions.irc.views.copyMessages"/>
</groupbox>
<groupbox>
<caption label="&style.title;"/>
<label>&style.desc;</label>
<textbox/>
</groupbox>
</page>

View File

@@ -0,0 +1,73 @@
/* ***** 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 ChatZilla.
*
* The Initial Developer of the Original Code is
* ____________________________________________.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* James Ross, <twpol@aol.com>, original author
*
* 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 LGPL or the GPL. 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 ***** */
var strBundle;
function getMsg (msgName)
{
var restCount = arguments.length - 1;
if (!strBundle)
{
strBundle =
srGetStrBundle("chrome://chatzilla/locale/chatzilla.properties");
}
try
{
if (restCount == 1 && arguments[1] instanceof Array)
{
return strBundle.formatStringFromName (msgName, arguments[1],
arguments[1].length);
}
else if (restCount > 0)
{
var subPhrases = new Array();
for (var i = 1; i < arguments.length; ++i)
subPhrases.push(arguments[i]);
return strBundle.formatStringFromName (msgName, subPhrases,
subPhrases.length);
}
return strBundle.GetStringFromName (msgName);
}
catch (ex)
{
dump ("caught exception getting value for ``" + msgName + "''\n" + ex);
return msgName;
}
}

View File

@@ -1,44 +1,107 @@
<?xml version="1.0"?>
<!--
The contents of this file are subject to the Netscape 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/NPL/
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
-->
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://communicator/locale/pref/pref-irc.dtd" >
<!DOCTYPE window SYSTEM "chrome://chatzilla/locale/pref-irc.dtd">
<window xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="dialog"
title="&window.title;"
onload="if( parent.handle ) parent.handle.onpageload( 'pref-irc' ); else parent.queuedTag = 'pref-irc';">
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="parent.initPanel('chrome://chatzilla/content/pref-irc.xul');"
headertitle="&window.title;">
<hbox class="header">
<button class="left-header-text" label="&lHeader;"/>
<spacer class="header-spacer" flex="1"/>
<button class="right-header-text" label="&rHeader;"/>
</hbox>
<html:fieldset style="width: 100%;">
<!-- put something here -->
</html:fieldset>
</window>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["czNickname", "czUsername", "czDesc",
"czNotify", "czDisplayCollapse", "czDisplayCopyMsgs",
"czNickCompleteStr"];
]]>
</script>
<groupbox>
<caption label="&userDetails.title;"/>
<grid flex="1">
<columns>
<column/><column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&userDetails.nick.label;" control="czNickname"
accesskey="&userDetails.nick.accesskey;"/><hbox>
<textbox id="czNickname" size="20" prefdefval="IRCMonkey"
prefstring="extensions.irc.nickname"/><spacer/></hbox>
</row><row align="center">
<label value="&userDetails.name.label;" control="czUsername"
accesskey="&userDetails.name.accesskey;"/><hbox>
<textbox id="czUsername" size="20" prefdefval="chatzilla"
prefstring="extensions.irc.username"/><spacer/></hbox>
</row><row align="center">
<label value="&userDetails.desc.label;" control="czDesc"
accesskey="&userDetails.desc.accesskey;"/>
<textbox id="czDesc" prefdefval="New Now Know How"
prefstring="extensions.irc.desc"/>
</row>
</rows>
</grid>
<hbox id="czUserHelpButton">
<button label="&userDetails.help.label;"
oncommand="
document.getElementById('czUserHelpButton').hidden = true;
document.getElementById('czUserHelpBox').hidden = false;
"/>
<spacer flex="1"/>
</hbox>
<label id="czUserHelpBox" hidden="true">&userDetails.help.desc;</label>
</groupbox>
<groupbox align="start">
<caption label="&global.title;"/>
<checkbox id="czNotify" label="&global.notify.label;"
accesskey="&global.notify.accesskey;" prefdefval="true"
prefstring="extensions.irc.notify.aggressive"/>
<checkbox id="czDisplayCollapse" label="&global.collapse.label;"
accesskey="&global.collapse.accesskey;" prefdefval="false"
prefstring="extensions.irc.views.collapseMsgs"/>
<checkbox id="czDisplayCopyMsgs" label="&global.copyMsgs.label;"
accesskey="&global.copyMsgs.accesskey;" prefdefval="true"
prefstring="extensions.irc.views.copyMessages"/>
<separator/>
<hbox align="center">
<label value="&global.nickCompleteStr.label;" control="czNickCompleteStr"
accesskey="&global.nickCompleteStr.accesskey;"/>
<textbox id="czNickCompleteStr" size="5" prefdefval=","
prefstring="extensions.irc.nickCompleteStr"/>
</hbox>
<label>&global.nickCompleteStr.desc;</label>
</groupbox>
</page>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0"?>
<!-- ***** 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 Chatzilla
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU Public License (the "GPL"), in which case the
- provisions of the GPL are applicable instead of those above.
- If you wish to allow use of your version of this file only
- under the terms of the GPL and not to allow others to use your
- version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
- Contributor(s):
- James Ross, <twpol@aol.com>, original author
-
- ***** END LICENSE BLOCK ***** -->
<overlay id="ovCZPrefs"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<treechildren id="panelChildren">
<treeitem container="true" id="chatzillaItem" insertbefore="advancedItem">
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc.xul"
label="ChatZilla"/>
</treerow>
<treechildren id="chatzillaChildren">
<treeitem>
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc-startup.xul"
label="Startup"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc-interface.xul"
label="Interface"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc-appearance.xul"
label="Appearance"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc-stalk.xul"
label="Stalking"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell url="chrome://chatzilla/content/pref-irc-sound.xul"
label="Sound"/>
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</overlay>

View File

@@ -28,6 +28,8 @@
* +- username (String) initial username (ie: username@host.tld)
* +- desc (String) initial description (used in whois info)
* +- defaultNet (String) default network to use for irc:// urls
* +- bugURL (String) url to use for "bug 12345" links. Use %s to place
* the bug number.
* +- initialURLs (String) irc:// urls to connect to on startup, semicolon
* | seperated
* +- initialScripts (String) urls for scripts to run at startup,
@@ -80,181 +82,204 @@
* +- tracer (Boolean) enable/disable debug message tracing
*/
function readIRCPrefs (rootNode)
function initPrefs()
{
client.prefSpecs = {
"nickname": ["CIRCNetwork.prototype.INITIAL_NICK", "IRCMonkey"],
"username": ["CIRCNetwork.prototype.INITIAL_NAME", "chatzilla"],
"desc": ["CIRCNetwork.prototype.INITIAL_DESC", "New Now Know How"],
"defaultNet": ["client.DEFAULT_NETWORK", "moznet"],
"charset": ["client.CHARSET", ""],
"initialURLs": ["client.INITIAL_URLS", "irc://"],
"initialScripts": ["client.INITIAL_SCRIPTS", ""],
"newTabLimit": ["client.NEW_TAB_LIMIT", 15],
"raiseNewTab": ["client.RAISE_NEW_TAB", false],
"nickCompleteStr": ["client.ADDRESSED_NICK_SEP", ", "],
"stalkWords": ["client.stalkingVictims", []],
"deleteOnPart": ["client.DELETE_ON_PART", true],
"stalkBeep": ["client.STALK_BEEP", "beep"],
"msgBeep": ["client.MSG_BEEP", "beep beep"],
"queryBeep": ["client.QUERY_BEEP", "beep"],
"munger": ["client.munger.enabled", true],
"munger.colorCodes": ["client.enableColors", true],
"munger.smileyText": ["client.smileyText", false],
"bugURL": ["client.BUG_URL",
"http://bugzilla.mozilla.org/show_bug.cgi?id=%s"],
"notify.aggressive": ["client.FLASH_WINDOW", true],
"settings.autoSave": ["client.SAVE_SETTINGS", true],
"debug.tracer" : ["client.debugHook.enabled", false],
"style.default": ["client.DEFAULT_STYLE",
"chrome://chatzilla/skin/output-default.css"],
"views.collapseMsgs": ["client.COLLAPSE_MSGS", false],
"views.copyMessages": ["client.COPY_MESSAGES", true],
"views.client.maxlines": ["client.MAX_MESSAGES", 200],
"views.network.maxlines": ["CIRCNetwork.prototype.MAX_MESSAGES", 100],
"views.channel.maxlines": ["CIRCChannel.prototype.MAX_MESSAGES", 300],
"views.chanuser.maxlines": ["CIRCChanUser.prototype.MAX_MESSAGES", 200]
};
const PREF_CTRID = "@mozilla.org/preferences-service;1";
const nsIPrefBranch = Components.interfaces.nsIPrefBranch
var pref = Components.classes[PREF_CTRID].getService(nsIPrefBranch);
if(!pref)
throw ("Can't find pref component.");
const nsIPrefService = Components.interfaces.nsIPrefService;
const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
const nsIPrefBranchInternal = Components.interfaces.nsIPrefBranchInternal;
if (!rootNode)
rootNode = "extensions.irc.";
client.prefService =
Components.classes[PREF_CTRID].getService(nsIPrefService);
client.prefBranch = client.prefService.getBranch ("extensions.irc.");
if (!rootNode.match(/\.$/))
rootNode += ".";
var internal = client.prefBranch.QueryInterface(nsIPrefBranchInternal);
internal.addObserver("", client.prefObserver, false);
readPrefs();
}
function destroyPrefs()
{
const nsIPrefBranchInternal = Components.interfaces.nsIPrefBranchInternal;
var internal = client.prefBranch.QueryInterface(nsIPrefBranchInternal);
internal.removeObserver("", client.prefObserver);
}
client.prefObserver = new Object();
client.prefObserver.observe =
function pref_observe (prefService, topic, prefName)
{
if (!("prefLock" in client))
readPref(prefName);
}
function readPref(prefName)
{
//if (prefName.indexOf("extensions.irc." == 0))
// prefName = prefName.substr(15);
var ary;
if (prefName in client.prefSpecs)
{
var varName = client.prefSpecs[prefName][0];
var defaultValue = client.prefSpecs[prefName][1];
var prefValue;
if (typeof defaultValue == "boolean")
{
prefValue = getBoolPref(prefName, defaultValue);
eval (varName + " = " + prefValue);
}
else if (typeof defaultValue == "number")
{
prefValue = getIntPref(prefName, defaultValue);
eval (varName + " = " + prefValue);
}
else if (defaultValue instanceof Array)
{
prefValue = getCharPref(prefName, defaultValue.join("; "));
if (prefValue)
eval (varName + " = " + prefValue.split(/\s*;\s*/).toSource());
else
eval (varName + " = []");
}
else
{
prefValue = getCharPref (prefName, defaultValue);
eval (varName + " = " + prefValue.quote());
}
}
else if ((ary = prefName.match(/munger.(.*)/)) &&
ary[1] in client.munger.entries)
{
client.munger.entries[ary[1]].enabled =
getBoolPref ("munger." + prefName,
client.munger.entries[ary[1]].enabled);
}
else
{
dd ("readPref: UNKNOWN PREF ``" + prefName + "''");
}
}
function readPrefs()
{
for (var p in client.prefSpecs)
readPref(p);
CIRCNetwork.prototype.INITIAL_NICK =
getCharPref (pref, rootNode + "nickname",
CIRCNetwork.prototype.INITIAL_NICK);
CIRCNetwork.prototype.INITIAL_NAME =
getCharPref (pref, rootNode + "username",
CIRCNetwork.prototype.INITIAL_NAME);
CIRCNetwork.prototype.INITIAL_DESC =
getCharPref (pref, rootNode + "desc",
CIRCNetwork.prototype.INITIAL_DESC);
client.DEFAULT_NETWORK =
getCharPref (pref, rootNode + "defaultNet", "moznet");
client.CHARSET = getCharPref (pref, rootNode + "charset", "");
client.INITIAL_URLS =
getCharPref (pref, rootNode + "initialURLs", "irc://");
if (!client.INITIAL_URLS)
client.INITIAL_URLS = "irc://";
client.INITIAL_SCRIPTS =
getCharPref (pref, rootNode + "initialScripts", "");
client.NEW_TAB_LIMIT =
getIntPref (pref, rootNode + "newTabLimit", 15);
client.RAISE_NEW_TAB =
getBoolPref (pref, rootNode + "raiseNewTab", false);
client.ADDRESSED_NICK_SEP =
getCharPref (pref, rootNode + "nickCompleteStr",
client.ADDRESSED_NICK_SEP).replace(/\s*$/, "");
client.INITIAL_VICTIMS =
getCharPref (pref, rootNode + "stalkWords", "");
client.DELETE_ON_PART =
getCharPref (pref, rootNode + "deleteOnPart", true);
client.STALK_BEEP =
getCharPref (pref, rootNode + "stalkBeep", "beep");
client.MSG_BEEP =
getCharPref (pref, rootNode + "msgBeep", "beep beep");
client.QUERY_BEEP =
getCharPref (pref, rootNode + "queryBeep", "beep");
client.munger.enabled =
getBoolPref (pref, rootNode + "munger", client.munger.enabled);
client.enableColors =
getBoolPref (pref, rootNode + "munger.colorCodes", true);
client.smileyText =
getBoolPref (pref, rootNode + "munger.smileyText", false);
for (var entry in client.munger.entries)
{
if (entry[0] != ".")
{
client.munger.entries[entry].enabled =
getBoolPref (pref, rootNode + "munger." + entry,
getBoolPref ("munger." + entry,
client.munger.entries[entry].enabled);
}
}
client.FLASH_WINDOW =
getBoolPref (pref, rootNode + "notify.aggressive", true);
client.SAVE_SETTINGS =
getBoolPref (pref, rootNode + "settings.autoSave", true);
client.DEFAULT_STYLE =
getCharPref (pref, rootNode + "style.default",
"chrome://chatzilla/skin/output-default.css");
client.COLLAPSE_MSGS =
getBoolPref (pref, rootNode + "views.collapseMsgs", false);
client.COPY_MESSAGES =
getBoolPref (pref, rootNode + "views.copyMessages", true);
client.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.client.maxlines",
client.MAX_MESSAGES);
CIRCNetwork.prototype.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.network.maxlines",
CIRCChanUser.prototype.MAX_MESSAGES);
CIRCChannel.prototype.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.channel.maxlines",
CIRCChannel.prototype.MAX_MESSAGES);
CIRCUser.prototype.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.chanuser.maxlines",
CIRCChanUser.prototype.MAX_MESSAGES);
var h = client.eventPump.getHook ("event-tracer");
h.enabled = client.debugMode =
getBoolPref (pref, rootNode + "debug.tracer", h.enabled);
}
}
function writeIRCPrefs (rootNode)
function writePref(prefName)
{
const PREF_CTRID = "@mozilla.org/preferences-service;1";
const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
var pref = Components.classes[PREF_CTRID].getService(nsIPrefBranch);
if(!pref)
throw ("Can't find pref component.");
//if (prefName.indexOf("extensions.irc." == 0))
// prefName = prefName.substr(15);
var ary;
if (!rootNode)
rootNode = "extensions.irc.";
if (prefName in client.prefSpecs)
{
var varName = client.prefSpecs[prefName][0];
var defaultValue = client.prefSpecs[prefName][1];
var prefValue = eval(varName);
if (typeof defaultValue == "boolean")
client.prefBranch.setBoolPref(prefName, prefValue);
else if (typeof defaultValue == "number")
client.prefBranch.setIntPref(prefName, prefValue);
else if (defaultValue instanceof Array)
client.prefBranch.setCharPref(prefName, prefValue.join("; "));
else
client.prefBranch.setCharPref(prefName, prefValue);
}
else if ((ary = prefName.match(/munger\.(.*)/)) &&
ary[1] in client.munger.entries)
{
client.prefBranch.setBoolPref (prefName,
client.munger.entries[ary[1]].enabled);
}
else
{
dd ("writePref: UNKNOWN PREF ``" + prefName + "''");
}
if (!rootNode.match(/\.$/))
rootNode += ".";
if (!("prefLock" in client))
client.prefService.savePrefFile(null);
}
function writePrefs (rootNode)
{
client.prefLock = true;
for (var p in client.prefSpecs)
writePref(p);
pref.setCharPref (rootNode + "nickname",
CIRCNetwork.prototype.INITIAL_NICK);
pref.setCharPref (rootNode + "username",
CIRCNetwork.prototype.INITIAL_NAME);
pref.setCharPref (rootNode + "desc", CIRCNetwork.prototype.INITIAL_DESC);
pref.setCharPref (rootNode + "charset", client.CHARSET);
pref.setCharPref (rootNode + "nickCompleteStr", client.ADDRESSED_NICK_SEP);
pref.setCharPref (rootNode + "initialURLs", client.INITIAL_URLS);
pref.setCharPref (rootNode + "initialScripts", client.INITIAL_SCRIPTS);
pref.setIntPref (rootNode + "newTabLimit", client.NEW_TAB_LIMIT);
pref.setBoolPref (rootNode + "raiseNewTab", client.RAISE_NEW_TAB);
pref.setCharPref (rootNode + "style.default", client.DEFAULT_STYLE);
pref.setCharPref (rootNode + "stalkWords",
client.stalkingVictims.join ("; "));
pref.setCharPref (rootNode + "stalkBeep", client.STALK_BEEP);
pref.setCharPref (rootNode + "msgBeep", client.MSG_BEEP);
pref.setCharPref (rootNode + "queryBeep", client.QUERY_BEEP);
pref.setBoolPref (rootNode + "munger", client.munger.enabled);
pref.setBoolPref (rootNode + "munger.colorCodes", client.enableColors);
pref.setBoolPref (rootNode + "munger.smileyText", client.smileyText);
for (var entry in client.munger.entries)
{
if (entry[0] != ".")
{
pref.setBoolPref (rootNode + "munger." + entry,
client.munger.entries[entry].enabled);
writePref("munger." + entry);
}
}
pref.setBoolPref (rootNode + "notify.aggressive", client.FLASH_WINDOW);
pref.setBoolPref (rootNode + "views.collapseMsgs", client.COLLAPSE_MSGS);
pref.setBoolPref (rootNode + "views.copyMessages", client.COPY_MESSAGES);
pref.setIntPref (rootNode + "views.client.maxlines", client.MAX_MESSAGES);
pref.setIntPref (rootNode + "views.network.maxlines",
CIRCChanUser.prototype.MAX_MESSAGES);
pref.setIntPref (rootNode + "views.channel.maxlines",
CIRCChannel.prototype.MAX_MESSAGES);
pref.setIntPref (rootNode + "views.chanuser.maxlines",
CIRCChanUser.prototype.MAX_MESSAGES);
var h = client.eventPump.getHook ("event-tracer");
pref.setBoolPref (rootNode + "debug.tracer", h.enabled);
}
delete client.prefLock;
client.prefService.savePrefFile(null);
}
function getCharPref (prefObj, prefName, defaultValue)
function getCharPref (prefName, defaultValue)
{
var e, rv;
try
{
rv = prefObj.getCharPref (prefName);
rv = client.prefBranch.getCharPref (prefName);
}
catch (e)
{
@@ -266,13 +291,13 @@ function getCharPref (prefObj, prefName, defaultValue)
}
function getIntPref (prefObj, prefName, defaultValue)
function getIntPref (prefName, defaultValue)
{
var e;
try
{
return prefObj.getIntPref (prefName);
return client.prefBranch.getIntPref (prefName);
}
catch (e)
{
@@ -281,13 +306,13 @@ function getIntPref (prefObj, prefName, defaultValue)
}
function getBoolPref (prefObj, prefName, defaultValue)
function getBoolPref (prefName, defaultValue)
{
var e;
try
{
return prefObj.getBoolPref (prefName);
return client.prefBranch.getBoolPref (prefName);
}
catch (e)
{

View File

@@ -60,8 +60,8 @@
<script src="chrome://chatzilla/content/lib/xul/munger.js"/>
<script src="chrome://chatzilla/content/commands.js"/>
<script src="chrome://chatzilla/content/readprefs.js"/>
<script src="chrome://chatzilla/content/static.js"/>
<script src="chrome://chatzilla/content/readprefs.js"/>
<script src="chrome://chatzilla/content/handlers.js"/>
<script src="chrome://chatzilla/content/rdf.js"/>

View File

@@ -34,9 +34,9 @@ const MSG_CSP = getMsg ("commaSpace", " ");
const MSG_NONE = getMsg ("none");
const MSG_UNKNOWN = getMsg ("unknown");
client.defaultNick = getMsg( "defaultNick" );
client.defaultNick = getMsg("defaultNick");
client.version = "0.8.11";
client.version = "0.8.12";
client.TYPE = "IRCClient";
client.COMMAND_CHAR = "/";
@@ -277,16 +277,6 @@ function initStatic()
client.display (getMsg("welcome"), "HELLO");
setCurrentObject (client);
client.onInputNetworks();
client.onInputCommands();
ary = client.INITIAL_VICTIMS.split(/\s*;\s*/);
for (i in ary)
{
if (ary[i])
client.stalkingVictims.push (ary[i]);
}
var m = document.getElementById ("menu-settings-autosave");
m.setAttribute ("checked", String(client.SAVE_SETTINGS));
@@ -412,12 +402,15 @@ function initHost(obj)
obj.primNet = obj.networks["efnet"];
if (DEBUG)
{
/* hook all events EXCEPT server.poll and *.event-end types
* (the 4th param inverts the match) */
obj.eventPump.addHook ([{type: "poll", set: /^(server|dcc-chat)$/},
{type: "event-end"}], event_tracer,
"event-tracer", true /* negate */,
false /* disable */);
obj.debugHook =
obj.eventPump.addHook ([{type: "poll", set: /^(server|dcc-chat)$/},
{type: "event-end"}], event_tracer,
"event-tracer", true /* negate */,
false /* disable */);
}
obj.linkRE = /((\w+):[^<>\[\]()\'\"\s]+|www(\.[^.<>\[\]()\'\"\s]+){2,})/;
@@ -539,9 +532,7 @@ function insertBugzillaLink (matchText, containerTag)
var anchor = document.createElementNS ("http://www.w3.org/1999/xhtml",
"html:a");
anchor.setAttribute ("href",
"http://bugzilla.mozilla.org/show_bug.cgi?id=" +
number);
anchor.setAttribute ("href", client.BUG_URL.replace("%s", number));
anchor.setAttribute ("class", "chatzilla-link");
anchor.setAttribute ("target", "_content");
insertHyphenatedWord (matchText, anchor);
@@ -747,10 +738,7 @@ function msgIsImportant (msg, sourceNick, myNick)
var str = "(^|[\\W\\s])" + sv + "([\\W\\s]|$)";
var re = new RegExp(str, "i");
if (msg.search(re) != -1 || sourceNick && sourceNick.search(re) != -1)
{
playSounds(client.STALK_BEEP);
return true;
}
return false;
}
@@ -1193,6 +1181,9 @@ function parseIRCURL (url)
rv.target = (1 in ary) ?
unescape(ary[1]).replace("\n", "\\n") : "";
var i = rv.target.indexOf(" ");
if (i != -1)
rv.target = rv.target.substr(0, i);
var params = (2 in ary) ? ary[2].toLowerCase() : "";
var query = (3 in ary) ? ary[3] : "";
@@ -1203,12 +1194,16 @@ function parseIRCURL (url)
if (rv.isnick && !rv.target)
{
dd ("parseIRCURL: isnick w/o target");
/* isnick w/o a target is bogus */
/* isnick w/o a target is bogus */
return null;
}
rv.isserver =
(params.search (/,\s*isserver\s*,|,\s*isserver\s*$/) != -1);
if (!rv.isserver)
{
rv.isserver =
(params.search (/,\s*isserver\s*,|,\s*isserver\s*$/) != -1);
}
if (rv.isserver && !specifiedHost)
{
dd ("parseIRCURL: isserver w/o host");
@@ -1226,16 +1221,32 @@ function parseIRCURL (url)
if (query)
{
ary = query.match
(/^\?msg=([^\&]*)$|^\?msg=([^\&]*)\&|\&msg=([^\&]*)\&|\&msg=([^\&]*)$/);
if (ary)
for (var i = 1; i < ary.length; i++)
if (i in ary)
{
rv.msg = unescape(ary[i]).replace ("\n", "\\n");
ary = query.substr(1).split("&");
while (ary.length)
{
var arg = ary.pop().split("=");
/*
* we don't want to accept *any* query, or folks could
* say things like "target=foo", and overwrite what we've
* already parsed, so we only use query args we know about.
*/
switch (arg[0].toLowerCase())
{
case "msg":
rv.msg = unescape(arg[1]).replace ("\n", "\\n");
break;
case "pass":
rv.needpass = true;
rv.pass = unescape(arg[1]).replace ("\n", "\\n");
break;
}
case "key":
rv.needkey = true;
rv.key = unescape(arg[1]).replace ("\n", "\\n");
break;
}
}
}
}
@@ -1268,7 +1279,12 @@ function gotoIRCURL (url)
var pass = "";
if (url.needpass)
pass = window.prompt (getMsg("gotoIRCURLMsg2",url.spec));
{
if ("pass" in url)
pass = url.pass;
else
pass = window.prompt (getMsg("gotoIRCURLMsg2",url.spec));
}
if (url.isserver)
{
@@ -1344,7 +1360,13 @@ function gotoIRCURL (url)
/* url points to a channel */
var key = "";
if (url.needkey)
key = window.prompt (getMsg("gotoIRCURLMsg3", url.spec));
{
if ("key" in url)
key = url.key;
else
key = window.prompt (getMsg("gotoIRCURLMsg3", url.spec));
}
ev = {inputData: url.target + " " + key,
network: net, server: net.primServ};
client.onInputJoin (ev);
@@ -1377,7 +1399,6 @@ function gotoIRCURL (url)
"INFO");
setCurrentObject (net);
}
}
function setTopicText (text)
@@ -1528,7 +1549,9 @@ function updateTitle (obj)
function multilineInputMode (state)
{
var multiInput = document.getElementById("multiline-input");
var multiInputBox = document.getElementById("multiline-box");
var singleInput = document.getElementById("input");
var singleInputBox = document.getElementById("singleline-box");
var splitter = document.getElementById("input-splitter");
var iw = document.getElementById("input-widgets");
var h;
@@ -1542,9 +1565,9 @@ function multilineInputMode (state)
if (h)
iw.setAttribute ("height", h); /* restore the slider position */
singleInput.setAttribute ("collapsed", "true");
singleInputBox.setAttribute ("collapsed", "true");
splitter.setAttribute ("collapsed", "false");
multiInput.setAttribute ("collapsed", "false");
multiInputBox.setAttribute ("collapsed", "false");
client.input = multiInput;
}
else /* turn off multiline input mode */
@@ -1554,8 +1577,8 @@ function multilineInputMode (state)
iw.removeAttribute ("height"); /* let the slider drop */
splitter.setAttribute ("collapsed", "true");
multiInput.setAttribute ("collapsed", "true");
singleInput.setAttribute ("collapsed", "false");
multiInputBox.setAttribute ("collapsed", "true");
singleInputBox.setAttribute ("collapsed", "false");
client.input = singleInput;
}
@@ -1816,7 +1839,7 @@ function notifyAttention (source)
function getFrameForDOMWindow(window)
{
var frame;
for (i = 0; i < client.deck.childNodes.length; i++)
for (var i = 0; i < client.deck.childNodes.length; i++)
{
frame = client.deck.childNodes[i];
if (frame.contentWindow == window)
@@ -2014,7 +2037,7 @@ function getTabForObject (source, create)
browser.setAttribute ("tooltip", "aHTMLTooltip");
browser.setAttribute ("context", "outputContext");
//browser.setAttribute ("onload", "scrollDown(true);");
browser.setAttribute ("onclick", "focusInput()");
//browser.setAttribute ("onclick", "focusInput()");
browser.setAttribute ("ondragover", "nsDragAndDrop.dragOver(event, contentDropObserver);");
browser.setAttribute ("ondragdrop", "nsDragAndDrop.drop(event, contentDropObserver);");
browser.setAttribute ("ondraggesture", "nsDragAndDrop.startDrag(event, contentAreaDNDObserver);");
@@ -2388,8 +2411,12 @@ function __display(message, msgtype, sourceObj, destObj)
{
isImportant = msgIsImportant (message, nick, me.nick);
if (isImportant)
{
this.defaultCompletion = nick +
client.ADDRESSED_NICK_SEP + " ";
if (this.TYPE != "IRCNetwork")
playSounds(client.STALK_BEEP);
}
}
}
}
@@ -2444,13 +2471,13 @@ function __display(message, msgtype, sourceObj, destObj)
else
{
isSuperfluous = true;
if (!client.debugMode && msgtype in client.responseCodeMap)
if (!client.debugHook.enabled && msgtype in client.responseCodeMap)
{
code = client.responseCodeMap[msgtype];
}
else
{
if (!client.debugMode && client.HIDE_CODES)
if (!client.debugHook.enabled && client.HIDE_CODES)
code = client.DEFAULT_RESPONSE_CODE;
else
code = "[" + msgtype + "]";
@@ -2742,27 +2769,58 @@ function gettabmatch_usr (line, wordStart, wordEnd, word, cursorPos)
CIRCChannel.prototype.performTabMatch =
CIRCNetwork.prototype.performTabMatch =
CIRCUser.prototype.performTabMatch =
function gettabmatch_usr (line, wordStart, wordEnd, word, cursorpos)
function gettabmatch_other (line, wordStart, wordEnd, word, cursorpos)
{
if (wordStart == 0 && line[0] == client.COMMAND_CHAR)
{
return client.performTabMatch (line, wordStart, wordEnd, word,
cursorpos);
}
if (!("users" in this))
return [];
var matchList = new Array();
var users;
var channels;
var details = getObjectDetails(this);
if ("channel" in details && word == details.channel.name[0])
{
/* When we have #<tab>, we just want the current channel, if possible. */
matchList.push (details.channel.unicodeName);
}
else
{
/* Ok, not #<tab> or no current channel, so get the full list. */
if ("users" in details.orig)
{
users = details.orig.users;
for (var n in users)
matchList.push (users[n].nick);
}
if ("server" in details)
{
channels = details.server.channels;
for (var c in channels)
matchList.push (channels[c].name);
}
}
var users = this.users;
var nicks = new Array();
for (var n in users)
nicks.push (users[n].nick);
var matches = matchEntry (word, nicks);
var matches = matchEntry (word, matchList);
if (matches.length == 1)
{
matches[0] = this.users[matches[0]].properNick;
if (wordStart == 0)
matches[0] += client.ADDRESSED_NICK_SEP;
if (users && matches[0] in users)
{
matches[0] = users[matches[0]].properNick;
if (wordStart == 0)
matches[0] += client.ADDRESSED_NICK_SEP;
}
else if (channels && matches[0] in channels)
{
matches[0] = channels[matches[0]].unicodeName;
}
if (wordEnd == line.length)
{

View File

@@ -15,6 +15,10 @@
<!ENTITY whois.value "Whois">
<!ENTITY whois.accesskey "w">
<!ENTITY multiline-expand.tooltip "Switch to multi-line input (Ctrl+Up)">
<!ENTITY multiline-contract.tooltip "Switch to single-line input (Ctrl+Down)">
<!ENTITY multiline-send.tooltip "Send this text (Ctrl+Enter)">
<!ENTITY url.label "URL">
<!ENTITY mode.label "Mode">
<!ENTITY topic.label "Topic">

View File

@@ -19,6 +19,7 @@
# Contributor(s):
# Chiaki Koufugata, original author
# Robert Ginda, rginda@netscape.com, owner/maintainer
# James Ross, twpol@aol.com, pref pages code
#
unknown=<unknown>
@@ -418,3 +419,17 @@ rule_underline=Underline
rule_word-hyphenator=Word Hyphenator
rule_ctrl-char=Control Chars
# pref-irc-appearance.js
file_browse_CSS=Choose a Cascading Stylesheet (CSS) file
file_browse_CSS_spec=Cascading Stylesheet files (*.css)
# pref-irc-sound.js
file_browse_Wave=Choose a Wave Sound file
file_browse_Wave_spec=Sound files (*.wav)
# pref-irc-stalk.js
stalk_add_msg=Enter the stalk word to add:
# pref-irc-startup.js
file_browse_Script=Choose a JavaScript Script file
file_browse_Script_spec=JavaScript Script files (*.js)

View File

@@ -0,0 +1,2 @@
<!ENTITY window.title "Preview ChatZilla Stylesheet">

View File

@@ -0,0 +1,59 @@
<!ENTITY window.title "Appearance">
<!ENTITY prePro.title "Text Munger">
<!ENTITY prePro.desc "The Text Munger processes all text before display, and does things like convert web addresses into links you can click on. Hover the mouse over a checkbox for an explanation of the item.">
<!ENTITY prePro.styles "Styles:">
<!ENTITY prePro.links "Links:">
<!ENTITY prePro.otherOptions "Other text options:">
<!-- NOTE for localizers: "Bugzilla" is a product name. -->
<!ENTITY prePro.styles.bold.label "Bold">
<!ENTITY prePro.styles.bold.accesskey "B">
<!ENTITY prePro.styles.bold.tooltip "Displays text between asterisks (*) in bold">
<!ENTITY prePro.styles.italic.label "Italic">
<!ENTITY prePro.styles.italic.accesskey "I">
<!ENTITY prePro.styles.italic.tooltip "Displays text between forward slashes (/) in italic">
<!ENTITY prePro.styles.underline.label "Underline">
<!ENTITY prePro.styles.underline.accesskey "U">
<!ENTITY prePro.styles.underline.tooltip "Displays text between underscores (_) with underline">
<!ENTITY prePro.styles.teletype.label "Teletype">
<!ENTITY prePro.styles.teletype.accesskey "T">
<!ENTITY prePro.styles.teletype.tooltip "Displays text between pipes (|) in a fixed-width font">
<!ENTITY prePro.styles.web.label "Web links">
<!ENTITY prePro.styles.web.accesskey "W">
<!ENTITY prePro.styles.web.tooltip "Converts text that looks like website addresses into links">
<!ENTITY prePro.styles.mail.label "E-mail links">
<!ENTITY prePro.styles.mail.accesskey "m">
<!ENTITY prePro.styles.mail.tooltip "Converts text that looks like e-mail addresses into links">
<!ENTITY prePro.styles.channel.label "Channel">
<!ENTITY prePro.styles.channel.accesskey "C">
<!ENTITY prePro.styles.channel.tooltip "Converts text that looks like IRC channel names into links">
<!ENTITY prePro.styles.bug.label "Bugzilla bugs">
<!ENTITY prePro.styles.bug.accesskey "g">
<!ENTITY prePro.styles.bug.tooltip "Converts the text 'bug ' followed by a number into a Bugzilla bug link">
<!ENTITY prePro.emoti.label "Emoticons">
<!ENTITY prePro.emoti.accesskey "E">
<!ENTITY prePro.emoti.tooltip "Displays eight common emoticons (e.g. :) ) as small graphics">
<!ENTITY prePro.colors.label "Colors">
<!ENTITY prePro.colors.accesskey "l">
<!ENTITY prePro.colors.tooltip "Enables displaying text in different colors, if it includes special color codes">
<!ENTITY prePro.wrap.label "Wrap lines">
<!ENTITY prePro.wrap.accesskey "p">
<!ENTITY prePro.wrap.tooltip "Allows longs words to wrap in the middle">
<!ENTITY prePro.bugURL.label "Bugzilla URL:">
<!ENTITY prePro.bugURL.accesskey "z">
<!-- NOTE for localizers: "ChatZilla" is a product name. -->
<!ENTITY style.title "Text Style">
<!ENTITY style.desc "ChatZilla applies a Cascading Stylesheet (CSS) to all the chat text it displays. You can use this to change how the text looks, including the color and size of the text.">
<!ENTITY style.css.label "Style:">
<!ENTITY style.css.accesskey "S">
<!ENTITY style.custom.label "Custom stylesheet file...">
<!ENTITY style.default.label "Default (normal)">
<!ENTITY style.light.label "Light (normal)">
<!ENTITY style.dark.label "Dark (normal)">
<!ENTITY style.faces.default.label "Default (with faces)">
<!ENTITY style.faces.light.label "Light (with faces)">
<!ENTITY style.faces.dark.label "Dark (with faces)">
<!ENTITY style.preview.label "Preview">
<!ENTITY style.preview.accesskey "v">

View File

@@ -0,0 +1,25 @@
<!ENTITY window.title "Interface">
<!ENTITY tabs.title "Tab Options">
<!ENTITY tabs.createForPMs.label "Create new tabs for private messages">
<!ENTITY tabs.createForPMs.accesskey "t">
<!ENTITY tabs.limitPMTabs.label "Limit private message tabs to">
<!ENTITY tabs.limitPMTabs.accesskey "L">
<!ENTITY tabs.focusPMs.label "Focus Private Message tabs when created">
<!ENTITY tabs.focusPMs.accesskey "F">
<!ENTITY tabs.closeOnLeave.label "Close tab when you leave a channel">
<!ENTITY tabs.closeOnLeave.accesskey "C">
<!ENTITY scrollback.title "Scrollback Options">
<!ENTITY scrollback.label "Use the boxes here to specify how many lines of scrollback each type of tab has. When more text arrives in a tab, the oldest lines are removed according to the limits set here.">
<!ENTITY scrollback.1.label "Client view:">
<!ENTITY scrollback.1.accesskey "i">
<!ENTITY scrollback.2.label "Network views:">
<!ENTITY scrollback.2.accesskey "n">
<!ENTITY scrollback.3.label "Channel views:">
<!ENTITY scrollback.3.accesskey "h">
<!ENTITY scrollback.4.label "Private message views:">
<!ENTITY scrollback.4.accesskey "p">

View File

@@ -0,0 +1,17 @@
<!ENTITY window.title "Sound">
<!ENTITY sndFile.label "Sound file:">
<!ENTITY sndPresets.label "Preset sounds:">
<!ENTITY sndPreset1.label "No sound">
<!ENTITY sndPreset2.label "Single beep">
<!ENTITY sndPreset3.label "Double beep">
<!ENTITY sndChoose.label "Custom sound file...">
<!ENTITY sndSimpleMsg.title "Sound on new Private Message tab">
<!ENTITY sndSimpleMsg.accesskey "n">
<!ENTITY sndPrivateMsg.title "Sound on existing Private Message tab">
<!ENTITY sndPrivateMsg.accesskey "e">
<!ENTITY sndStalkMsg.title "Sound on stalk word(s)">
<!ENTITY sndStalkMsg.accesskey "s">

View File

@@ -0,0 +1,15 @@
<!ENTITY window.title "Stalking">
<!ENTITY stalkWords.title "Stalk Words">
<!ENTITY stalkWords.accesskey "S">
<!ENTITY stalkWords.label1 "When ChatZilla sees an 'important' message, it will highlight the line and the channel's tab. If you have 'aggressive notify' enabled, ChatZilla will also use an OS-dependant method to grab your attention.">
<!ENTITY stalkWords.label2 "Your nickname is always considered 'important', but you can add more words; just add them to the list below.">
<!ENTITY list.up "Move Up">
<!ENTITY list.dn "Move Down">
<!ENTITY list.add.label "Add...">
<!ENTITY list.add.accesskey "A">
<!ENTITY list.edit "Edit...">
<!ENTITY list.del.label "Remove">
<!ENTITY list.del.accesskey "R">

View File

@@ -0,0 +1,3 @@
<!ENTITY window.title "ChatZilla Script Item">
<!ENTITY text.desc "Enter a web location (URL), or specify the local script file you want:">

View File

@@ -0,0 +1,13 @@
<!ENTITY window.title "ChatZilla Autoconnect Item">
<!ENTITY normal.label "Connect to a server or network">
<!ENTITY normal.server "Enter the host name (irc.myserver.com) or the IP address (127.1.2.3) of the server:">
<!ENTITY normal.channel.label "Also connect to the...">
<!ENTITY normal.isnick.label "nickname">
<!ENTITY normal.isor.label "or">
<!ENTITY normal.ischan.label "channel">
<!ENTITY normal.needpass.label "This server needs a password">
<!ENTITY normal.needkey.label "This channel has a key">
<!ENTITY client.label "Open client view">
<!ENTITY client.desc "The client view shows some basic information about ChatZilla and how to use it.">

View File

@@ -0,0 +1,14 @@
<!ENTITY window.title "Startup">
<!ENTITY startupOrder.label "When ChatZilla starts, it will load the JavaScript scripts first, then connect to any autoconnect servers and channels in the order shown.">
<!ENTITY autoScripts.title "Autoload scripts">
<!ENTITY autoScripts.accesskey "l">
<!ENTITY autoURLs.title "Autoconnect servers, channels and private message views">
<!ENTITY autoURLs.accesskey "c">
<!ENTITY list.up "Move Up">
<!ENTITY list.dn "Move Down">
<!ENTITY list.add "Add...">
<!ENTITY list.edit "Edit...">
<!ENTITY list.del "Remove">

View File

@@ -0,0 +1,25 @@
<!ENTITY window.title "Tabs">
<!ENTITY tabs.title "Tab Options">
<!ENTITY tabs.createForPMs.label "Create new tabs for private messages">
<!ENTITY tabs.createForPMs.accesskey "">
<!ENTITY tabs.limitPMTabs.label "Limit private message tabs to:">
<!ENTITY tabs.limitPMTabs.accesskey "">
<!ENTITY tabs.focusPMs.label "Focus Private Message tabs when created">
<!ENTITY tabs.focusPMs.accesskey "f">
<!ENTITY tabs.closeOnLeave.label "Close tab when you leave a channel">
<!ENTITY tabs.closeOnLeave.accesskey "c">
<!ENTITY scrollback.title "Scrollback Options">
<!ENTITY scrollback.label "Use the boxes here to specify how many lines of scrollback each type of tab has. When more text arrives in a tab, the oldest lines are removed according to the limits set here.">
<!ENTITY scrollback.1.label "Client view">
<!ENTITY scrollback.1.accesskey "">
<!ENTITY scrollback.2.label "Network views">
<!ENTITY scrollback.2.accesskey "">
<!ENTITY scrollback.3.label "Channel views">
<!ENTITY scrollback.3.accesskey "">
<!ENTITY scrollback.4.label "Private message views">
<!ENTITY scrollback.4.accesskey "">

View File

@@ -0,0 +1,18 @@
<!ENTITY window.title "Appearance">
<!ENTITY prePro.title "Text Pre-processor">
<!ENTITY prePro.desc "The Text Pre-processor processes all text before display, and does things like convert web addresses into links you can click on.">
<!ENTITY prePro.styles "Styles:">
<!ENTITY prePro.links "Links:">
<!ENTITY prePro.otherOptions "Other text options:">
<!ENTITY prePro.emoti "Enable emoticons (smilies)">
<!ENTITY prePro.colors "Enable color codes">
<!ENTITY prePro.wrap "Wrap long lines">
<!ENTITY text.title "Text Display">
<!ENTITY text.desc "These are some options that affect how text is displayed after it has been through the Text Pre-processor.">
<!ENTITY text.collapse "Collapse consecutive messages">
<!ENTITY text.copyMsgs "Copy important messages (to server tab)">
<!ENTITY style.title "Text Style">
<!ENTITY style.desc "">

View File

@@ -1,19 +1,24 @@
<!-- extracted from content/pref-advanced.xul -->
<!ENTITY window.title "ChatZilla">
<!--LOCALIZATION NOTE : FILE 'Advanced' prefs settings -->
<!ENTITY window.title "Advanced">
<!ENTITY lHeader "Advanced">
<!ENTITY autoLoadImgCheck.label "Automatically load images">
<!--LOCALIZATION NOTE (enbJavaCheck.label): 'Java' should never be translated -->
<!ENTITY enbJavaCheck.label "Enable Java">
<!--LOCALIZATION NOTE (enbJsCheck.label): 'JavaScript' should never be translated -->
<!ENTITY enbJsCheck.label "Enable JavaScript in Navigator">
<!ENTITY enbJsCheck.labelforMailNNews "Enable JavaScript for Mail and News">
<!ENTITY enbCssCheck.label "Enable style sheets">
<!ENTITY sendAddFtpCheck.label "Send email address as anonymous FTP password">
<!ENTITY remSignCheck.label "Automatically prefill usernames and passwords">
<!ENTITY capFormsCheck.label "Enable prefilling of forms">
<!ENTITY rHeader "Changing preferences that affect the entire product">
<!--LOCALIZATION NOTE (server.label): 'Wallet' is a product name and should not be translated. -->
<!ENTITY server.label "Server for wallet tables">
<!ENTITY userDetails.title "User Identification">
<!ENTITY userDetails.help.label "What do these mean?">
<!ENTITY userDetails.help.desc "Your hostmask, which is used to identify you to other clients and the server, places your user name before the host you are connecting from. So a user name of 'myself' would mean you would be identified as 'myself@host.tld', where 'host.tld' would be dependant on your internet service provider.">
<!ENTITY userDetails.nick.label "Nick name:">
<!ENTITY userDetails.nick.accesskey "N">
<!ENTITY userDetails.name.label "User name:">
<!ENTITY userDetails.name.accesskey "U">
<!ENTITY userDetails.desc.label "Description:">
<!ENTITY userDetails.desc.accesskey "D">
<!ENTITY global.title "Global Options">
<!ENTITY global.notify.label "Allow aggressive notify (flashing window or bringing to top)">
<!ENTITY global.notify.accesskey "a">
<!ENTITY global.collapse.label "Collapse consecutive messages from the same source">
<!ENTITY global.collapse.accesskey "c">
<!ENTITY global.copyMsgs.label "Copy important messages to the network tab">
<!ENTITY global.copyMsgs.accesskey "i">
<!ENTITY global.nickCompleteStr.label "Nickname completion string:">
<!ENTITY global.nickCompleteStr.accesskey "k">
<!ENTITY global.nickCompleteStr.desc "This is appended to a nickname when tab-completed as the first word.">

View File

@@ -1,56 +0,0 @@
<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
<!-- list all the packages being supplied by this jar -->
<RDF:Seq about="urn:mozilla:package:root">
<RDF:li resource="urn:mozilla:package:chatzilla"/>
</RDF:Seq>
<RDF:Seq about="urn:mozilla:locale:root">
<RDF:li resource="urn:mozilla:locale:en-US"/>
</RDF:Seq>
<RDF:Seq about="urn:mozilla:skin:root">
<RDF:li resource="urn:mozilla:skin:modern/1.0" />
</RDF:Seq>
<!-- package information -->
<RDF:Description about="urn:mozilla:package:chatzilla"
chrome:displayName="Chatzilla"
chrome:author="mozilla.org"
chrome:name="chatzilla">
</RDF:Description>
<!-- locale information -->
<RDF:Description about="urn:mozilla:locale:en-US"
chrome:displayName="English(US)"
chrome:author="mozilla.org"
chrome:name="en-US"
chrome:previewURL="http://www.mozilla.org/locales/en-US.gif">
<chrome:packages>
<RDF:Seq about="urn:mozilla:locale:en-US:packages">
<RDF:li resource="urn:mozilla:locale:en-US:chatzilla"/>
</RDF:Seq>
</chrome:packages>
</RDF:Description>
<!-- overlay information -->
<RDF:Seq about="urn:mozilla:overlays">
<RDF:li resource="chrome://communicator/content/tasksOverlay.xul"/>
</RDF:Seq>
<RDF:Seq about="chrome://communicator/content/tasksOverlay.xul">
<RDF:li>chrome://chatzilla/content/chatzillaOverlay.xul</RDF:li>
</RDF:Seq>
<!-- skin information -->
<RDF:Description about="urn:mozilla:skin:modern/1.0"
chrome:displayName="Modern"
chrome:author="mozilla.org"
chrome:name="modern/1.0">
<chrome:packages>
<RDF:Seq about="urn:mozilla:skin:modern/1.0:packages">
<RDF:li resource="urn:mozilla:skin:modern/1.0:chatzilla"/>
</RDF:Seq>
</chrome:packages>
</RDF:Description>
</RDF:RDF>

View File

@@ -53,6 +53,18 @@ window {
border: thin silver inset;
}
#button-multiline-expand {
list-style-image:url("chrome://chatzilla/skin/images/multiline-expand.png");
}
#button-multiline-contract {
list-style-image:url("chrome://chatzilla/skin/images/multiline-contract.png");
}
#button-input {
list-style-image:url("chrome://chatzilla/skin/images/input-send.png");
}
.highlight-menu-item:hover {
color: white !important;
background: darkslategrey !important;

View File

@@ -17,3 +17,6 @@ view-attention.gif
view-current.gif
view-normal.gif
xtal.jpg
multiline-expand.gif
multiline-contract.gif
input-send.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B