home *** CD-ROM | disk | FTP | other *** search
- /* -*- 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)
- * +- defaultNet (String) default network to use for irc:// urls
- * +- initialURLs (String) irc:// urls to connect to on startup, semicolon
- * | seperated
- * +- initialScripts (String) urls for scripts to run at startup,
- * | semicolon seperated
- * +- newTabThreshold (Number) max number of tabs to have open before disabling
- * | automatic tab creation for private messages.
- * | use 0 for unlimited new tabs, or 1 to disable
- * | automatic tab creation.
- * +- focusNewTab (Boolean) bring new tabs created in response to a private
- * | message to the front.
- * +- munger (Boolean) send output through text->html munger
- * | +- colorCodes (Boolean) enable color code handling
- * | +- <various> (Boolean) enable specific munger entry
- * | +- smileyText (Boolean) true => display text (and graphic) when
- * | matching smileys
- * | false => show only the smiley graphic
- * +- nickCompleteStr (String) String to use when tab-completing nicknames
- * | at the beginning of sentences
- * +- stalkWords (String) List of words to add to the stalk victims list
- * | semicolon seperated (see the /stalk command)
- * +- deleteOnPart (Boolean) Delete channel window automatically after a /part
- * |
- * | The following beep prefs can be set to the text "beep" to use the
- * | system beep, or "" to disable the beep.
- * +- msgBeep (String) url to sound to play when a /msg is recieved
- * +- stalkBeep (String) url to sound to play when a /stalk matches
- * +- queryBeep (String) url to sound to play for new msgs in a /query
- * |
- * +- notify
- * | +- aggressive (Boolean) flash trayicon/ bring window to top when
- * | your nickname is mentioned.
- * +- settings
- * | +- autoSave (Boolean) Save settings on exit
- * +- style
- * | +- default (String) url to default style sheet
- * +- views
- * | +- collapseMsgs (Boolean) Collapse consecutive messages from same
- * | | user
- * | +- copyMessages (Boolean) Copy important messages to the network
- * | | window
- * | +- client
- * | | +- maxlines (Number) max lines to keep in *client* view
- * | +- network
- * | | +- maxlines (Number) max lines to keep in network views
- * | +- 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)
- {
- 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 (!rootNode)
- rootNode = "extensions.irc.";
-
- if (!rootNode.match(/\.$/))
- rootNode += ".";
-
- 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_THRESHOLD =
- getIntPref (pref, rootNode + "newTabThreshold", 15);
- client.FOCUS_NEW_TAB =
- getIntPref (pref, rootNode + "focusNewTab", 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,
- 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)
- {
- 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 (!rootNode)
- rootNode = "extensions.irc.";
-
- if (!rootNode.match(/\.$/))
- rootNode += ".";
-
- 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.setCharPref (rootNode + "newTabThreshold", client.NEW_TAB_THRESHOLD);
- pref.setCharPref (rootNode + "focusNewTab", client.FOCUS_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);
- }
- }
- 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);
-
- }
-
- function getCharPref (prefObj, prefName, defaultValue)
- {
- var e, rv;
-
- try
- {
- rv = prefObj.getCharPref (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;
- }
-
- }
-