home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 January / 01_02.iso / linux / mozilla-installer_linux / xpi / venkman.xpi / bin / components / venkman-service.js
Text File  |  2001-11-20  |  4KB  |  128 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  *
  3.  * The contents of this file are subject to the Mozilla Public License
  4.  * Version 1.1 (the "License"); you may not use this file except in
  5.  * compliance with the License. You may obtain a copy of the License at
  6.  * http://www.mozilla.org/MPL/ 
  7.  * 
  8.  * Software distributed under the License is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  10.  * for the specific language governing rights and limitations under the
  11.  * License. 
  12.  *
  13.  * The Original Code is The JavaScript Debugger
  14.  * 
  15.  * The Initial Developer of the Original Code is
  16.  * Netscape Communications Corporation
  17.  * Portions created by Netscape are
  18.  * Copyright (C) 1998 Netscape Communications Corporation.
  19.  *
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU Public License (the "GPL"), in which case the
  22.  * provisions of the GPL are applicable instead of those above.
  23.  * If you wish to allow use of your version of this file only
  24.  * under the terms of the GPL and not to allow others to use your
  25.  * version of this file under the MPL, indicate your decision by
  26.  * deleting the provisions above and replace them with the notice
  27.  * and other provisions required by the GPL.  If you do not delete
  28.  * the provisions above, a recipient may use your version of this
  29.  * file under either the MPL or the GPL.
  30.  *
  31.  * Contributor(s):
  32.  *  Robert Ginda, <rginda@netscape.com>, original author
  33.  *
  34.  */
  35.  
  36. /* components defined in this file */
  37. const CLINE_SERVICE_CTRID =
  38.     "@mozilla.org/commandlinehandler/general-startup;1?type=venkman";
  39. const CATMAN_CTRID = "@mozilla.org/categorymanager;1";
  40. const CLINE_SERVICE_CID =
  41.     Components.ID("{18269616-1dd2-11b2-afa8-b612439bda27}");
  42.  
  43. const nsICmdLineHandler  = Components.interfaces.nsICmdLineHandler;
  44. const nsICategoryManager = Components.interfaces.nsICategoryManager;
  45. const nsISupports = Components.interfaces.nsISupports;
  46.  
  47. /* Command Line handler service */
  48. function CLineService()
  49. {}
  50.  
  51. CLineService.prototype.commandLineArgument = "-venkman";
  52. CLineService.prototype.prefNameForStartup = "general.startup.venkman";
  53. CLineService.prototype.chromeUrlForTask="chrome://venkman/content";
  54. CLineService.prototype.helpText = "Start with JavaScript debugger";
  55. CLineService.prototype.handlesArgs=false;
  56. CLineService.prototype.defaultArgs ="";
  57. CLineService.prototype.openWindowWithArgs=false;
  58.  
  59. /* factory for command line handler service (CLineService) */
  60. var CLineFactory = new Object();
  61.  
  62. CLineFactory.createInstance =
  63. function (outer, iid) {
  64.     if (outer != null)
  65.         throw Components.results.NS_ERROR_NO_AGGREGATION;
  66.  
  67.     if (!iid.equals(nsICmdLineHandler) && !iid.equals(nsISupports))
  68.         throw Components.results.NS_ERROR_INVALID_ARG;
  69.  
  70.     return new CLineService();
  71. }
  72.  
  73. var Module = new Object();
  74.  
  75. Module.registerSelf =
  76. function (compMgr, fileSpec, location, type)
  77. {
  78.     dump("*** Registering -venkman handler.\n");
  79.     compMgr.registerComponentWithType(CLINE_SERVICE_CID,
  80.                                       "Venkman CommandLine Service",
  81.                                       CLINE_SERVICE_CTRID, fileSpec,
  82.                                       location, true, true, type);
  83.  
  84.     catman = Components.classes[CATMAN_CTRID].getService(nsICategoryManager);
  85.     catman.addCategoryEntry("command-line-argument-handlers",
  86.                             "venkman command line handler",
  87.                             CLINE_SERVICE_CTRID, true, true);
  88.     
  89. }
  90.  
  91. Module.unregisterSelf =
  92. function(compMgr, fileSpec, location)
  93. {
  94.     compMgr.unregisterComponentSpec(CLINE_SERVICE_CID, fileSpec);
  95.     catman = Components.classes[CATMAN_CTRID].getService(nsICategoryManager);
  96.     catman.deleteCategoryEntry("command-line-argument-handlers",
  97.                                CLINE_SERVICE_CTRID, true);
  98. }
  99.  
  100. Module.getClassObject =
  101. function (compMgr, cid, iid) {
  102.     if (cid.equals(CLINE_SERVICE_CID))
  103.         return CLineFactory;
  104.  
  105.     if (cid.equals(IRCCNT_HANDLER_CID))
  106.         return IRCContentHandlerFactory;
  107.  
  108.     if (cid.equals(IRCPROT_HANDLER_CID))
  109.         return IRCProtocolHandlerFactory;
  110.     
  111.     if (!iid.equals(Components.interfaces.nsIFactory))
  112.         throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
  113.  
  114.     throw Components.results.NS_ERROR_NO_INTERFACE;
  115.     
  116. }
  117.  
  118. Module.canUnload =
  119. function(compMgr)
  120. {
  121.     return true;
  122. }
  123.  
  124. /* entrypoint */
  125. function NSGetModule(compMgr, fileSpec) {
  126.     return Module;
  127. }
  128.