rginda%netscape.com 3a88810065 * connection-rhino.js
Various changes to make it Right

* events.js
parameterize hook functions to allow arbitrary hook arrays to be used.
search hooks in reverse order of add

* irc.js
check to see if server is connected before trying to disconnect on net.quit()
watch for exception on connect()
move auto-join-channel into on001 handler.
watch for java.lang.ThreadDeath if running under rhino.
fix onNick for the undernet network

* utils.js
define dd under rhino.
allow functions as patterns in matchObject().

* ircbot.js
define gc() for rhino.
add initPersonality hook.
add support for script line continuation with "\"

* chatzilla.xul
include globalOverlay.xul (why?)
comment out style change menu.

* handlers.js
read prefs before initialization.
add updateTitle() calls where appropriate.

* readprefs.js
Add comment to explain valid prefs.
add style prefs.

* static.js
Fix matchMyNick to match if nick is anywhere in the message (bug 24860.)
Hook up user styles in output window.
add updateTitle(), (bug 24671.)

* chatzilla.css
remove window size designation (resize issues.)

* output-default.css
remove font size attributes.
swap mark=odd and directed-to-me declaration order, to make directed-to-me take
precedence.

* output-marble.css
tab->space changes


git-svn-id: svn://10.0.0.236/trunk@58918 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-27 09:45:11 +00:00

153 lines
4.3 KiB
JavaScript

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* 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 JSIRC Test Client #3
*
* The Initial Developer of the Original Code is New Dimensions Consulting,
* Inc. Portions created by New Dimensions Consulting, Inc. are
* Copyright (C) 1999 New Dimenstions Consulting, Inc. All
* Rights Reserved.
*
* Contributor(s):
*
*
* Contributor(s):
* Robert Ginda, rginda@ndcico.com, original author
*/
/*
* currently recognized prefs:
* + extensions.irc.
* +- nickname (String) initial nickname
* +- username (String) initial username (ie: username@host.tld)
* +- desc (String) initial description (used in whois info)
* +- channel (String) channel to join after connecting
* +- style
* | +- default (String) default style (relative to chrome://chatzilla/skin)
* | +- user
* | +- pre (String) full path to user css, loaded before system style
* | +- post (String) full path to user css, loaded after system style
* +- views
* | +- client
* | | +- maxlines (Number) max lines to keep in *client* view
* | +- channel
* | | +- maxlines (Number) max lines to keep in channel views
* | +- chanuser
* | +- maxlines (Number) max lines to keep in /msg views
* +- debug
* +- tracer (Boolean) enable/disable debug message tracing
*/
function readIRCPrefs (rootNode)
{
var pref =
Components.classes["component://netscape/preferences"].createInstance();
if(!pref)
throw ("Can't find pref component.");
if (!rootNode)
rootNode = "extensions.irc.";
if (!rootNode.match(/\.$/))
rootNode += ".";
pref = pref.QueryInterface(Components.interfaces.nsIPref);
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);
CIRCNetwork.prototype.INITIAL_CHANNEL =
getCharPref (pref, rootNode + "channel",
CIRCNetwork.prototype.INITIAL_CHANNEL);
client.DEFAULT_STYLE =
getCharPref (pref, rootNode + "style.default", "output-default.css");
client.USER_CSS_PRE =
getCharPref (pref, rootNode + "style.user.pre", "");
client.USER_CSS_POST =
getCharPref (pref, rootNode + "style.user.post", "");
client.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.client.maxlines",
client.MAX_MESSAGES);
CIRCChannel.prototype.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.channel.maxlines",
CIRCChannel.prototype.MAX_MESSAGES);
CIRCChanUser.prototype.MAX_MESSAGES =
getIntPref (pref, rootNode + "views.chanuser.maxlines",
CIRCChanUser.prototype.MAX_MESSAGES);
var h = client.eventPump.getHook ("event-tracer");
h.enabled =
getBoolPref (pref, rootNode + "debug.tracer", h.enabled);
}
function getCharPref (prefObj, prefName, defaultValue)
{
var e, rv;
try
{
rv = prefObj.CopyCharPref (prefName);
}
catch (e)
{
rv = defaultValue;
}
dd ("getCharPref: returning '" + rv + "' for " + prefName);
return rv;
}
function getIntPref (prefObj, prefName, defaultValue)
{
var e;
try
{
return prefObj.GetIntPref (prefName);
}
catch (e)
{
return defaultValue;
}
}
function getBoolPref (prefObj, prefName, defaultValue)
{
var e;
try
{
return prefObj.GetBoolPref (prefName);
}
catch (e)
{
return defaultValue;
}
}