home *** CD-ROM | disk | FTP | other *** search
/ Freelog 112 / FreelogNo112-NovembreDecembre2012.iso / Programmation / RJ_TextEd / RJ_TextEd_Portable.exe / components / nsDefaultCLH.js < prev    next >
Text File  |  2010-01-01  |  4KB  |  124 lines

  1. //@line 38 "e:\builds\moz2_slave\rel-m-rel-xr-w32-bld\build\toolkit\components\nsDefaultCLH.js"
  2.  
  3. Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
  4.  
  5. const nsISupports              = Components.interfaces.nsISupports;
  6.  
  7. const nsICommandLine           = Components.interfaces.nsICommandLine;
  8. const nsICommandLineHandler    = Components.interfaces.nsICommandLineHandler;
  9. const nsIPrefBranch            = Components.interfaces.nsIPrefBranch;
  10. const nsISupportsString        = Components.interfaces.nsISupportsString;
  11. const nsIWindowWatcher         = Components.interfaces.nsIWindowWatcher;
  12. const nsIProperties            = Components.interfaces.nsIProperties;
  13. const nsIFile                  = Components.interfaces.nsIFile;
  14. const nsISimpleEnumerator      = Components.interfaces.nsISimpleEnumerator;
  15.  
  16. /**
  17.  * This file provides a generic default command-line handler.
  18.  *
  19.  * It opens the chrome window specified by the pref "toolkit.defaultChromeURI"
  20.  * with the flags specified by the pref "toolkit.defaultChromeFeatures"
  21.  * or "chrome,dialog=no,all" is it is not available.
  22.  * The arguments passed to the window are the nsICommandLine instance.
  23.  *
  24.  * It doesn't do anything if the pref "toolkit.defaultChromeURI" is unset.
  25.  */
  26.  
  27. function getDirectoryService()
  28. {
  29.   return Components.classes["@mozilla.org/file/directory_service;1"]
  30.                    .getService(nsIProperties);
  31. }
  32.  
  33. function nsDefaultCLH() { }
  34. nsDefaultCLH.prototype = {
  35.   classID: Components.ID("{6ebc941a-f2ff-4d56-b3b6-f7d0b9d73344}"),
  36.  
  37.   /* nsISupports */
  38.  
  39.   QueryInterface : XPCOMUtils.generateQI([nsICommandLineHandler]),
  40.  
  41.   /* nsICommandLineHandler */
  42.  
  43.   handle : function clh_handle(cmdLine) {
  44.     var printDir;
  45.     while (printDir = cmdLine.handleFlagWithParam("print-xpcom-dir", false)) {
  46.       var out = "print-xpcom-dir(\"" + printDir + "\"): ";
  47.       try {
  48.         out += getDirectoryService().get(printDir, nsIFile).path;
  49.       }
  50.       catch (e) {
  51.         out += "<Not Provided>";
  52.       }
  53.  
  54.       dump(out + "\n");
  55.       Components.utils.reportError(out);
  56.     }
  57.  
  58.     var printDirList;
  59.     while (printDirList = cmdLine.handleFlagWithParam("print-xpcom-dirlist",
  60.                                                       false)) {
  61.       out = "print-xpcom-dirlist(\"" + printDirList + "\"): ";
  62.       try {
  63.         var list = getDirectoryService().get(printDirList,
  64.                                              nsISimpleEnumerator);
  65.         while (list.hasMoreElements())
  66.           out += list.getNext().QueryInterface(nsIFile).path + ";";
  67.       }
  68.       catch (e) {
  69.         out += "<Not Provided>";
  70.       }
  71.  
  72.       dump(out + "\n");
  73.       Components.utils.reportError(out);
  74.     }
  75.     
  76.     if (cmdLine.handleFlag("silent", false)) {
  77.       cmdLine.preventDefault = true;
  78.     }
  79.  
  80.     if (cmdLine.preventDefault)
  81.       return;
  82.  
  83.     var prefs = Components.classes["@mozilla.org/preferences-service;1"]
  84.                           .getService(nsIPrefBranch);
  85.  
  86.     try {
  87.       var singletonWindowType =
  88.                               prefs.getCharPref("toolkit.singletonWindowType");
  89.       var windowMediator =
  90.                 Components.classes["@mozilla.org/appshell/window-mediator;1"]
  91.                           .getService(Components.interfaces.nsIWindowMediator);
  92.  
  93.       var win = windowMediator.getMostRecentWindow(singletonWindowType);
  94.       if (win) {
  95.         win.focus();
  96.         cmdLine.preventDefault = true;
  97.       return;
  98.       }
  99.     }
  100.     catch (e) { }
  101.  
  102.     // if the pref is missing, ignore the exception 
  103.     try {
  104.       var chromeURI = prefs.getCharPref("toolkit.defaultChromeURI");
  105.  
  106.       var flags = "chrome,dialog=no,all";
  107.       try {
  108.         flags = prefs.getCharPref("toolkit.defaultChromeFeatures");
  109.       }
  110.       catch (e) { }
  111.  
  112.       var wwatch = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
  113.                             .getService(nsIWindowWatcher);
  114.       wwatch.openWindow(null, chromeURI, "_blank",
  115.                         flags, cmdLine);
  116.     }
  117.     catch (e) { }
  118.   },
  119.  
  120.   helpInfo : "",
  121. };
  122.  
  123. var NSGetFactory = XPCOMUtils.generateNSGetFactory([nsDefaultCLH]);
  124.