home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Komunik / phoenix / chrome / toolkit.jar / content / global / globalOverlay.js < prev    next >
Text File  |  2002-11-07  |  4KB  |  149 lines

  1. function goQuitApplication()
  2. {
  3.   var ObserverService = Components.classes["@mozilla.org/observer-service;1"].getService();
  4.   ObserverService = ObserverService.QueryInterface(Components.interfaces.nsIObserverService);
  5.   if (ObserverService)
  6.   {
  7.     try
  8.     {
  9.       ObserverService.notifyObservers(null, "quit-application-requested", null);
  10.     }
  11.     catch (ex)
  12.     {
  13.       // dump("no observer found \n");
  14.     }
  15.   }
  16.  
  17.   var windowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService();
  18.   var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
  19.   var enumerator = windowManagerInterface.getEnumerator( null );
  20.   var appShell = Components.classes['@mozilla.org/appshell/appShellService;1'].getService();
  21.   appShell = appShell.QueryInterface( Components.interfaces.nsIAppShellService );
  22.  
  23.   var nativeAppSupport = null;
  24.   try {
  25.     nativeAppSupport = appShell.nativeAppSupport;
  26.   }
  27.   catch ( ex ) {
  28.   }
  29.  
  30.   while ( enumerator.hasMoreElements()  )
  31.   {
  32.      var domWindow = enumerator.getNext();
  33.      if (("tryToClose" in domWindow) && !domWindow.tryToClose())
  34.        return false;          
  35.      domWindow.close();
  36.   };
  37.   if (!nativeAppSupport || !nativeAppSupport.isServerMode)
  38.     appShell.quit(Components.interfaces.nsIAppShellService.eAttemptQuit);
  39.   return true;
  40. }
  41.  
  42. //
  43. // Command Updater functions
  44. //
  45. function goUpdateCommand(command)
  46. {
  47.   try {
  48.     var controller = top.document.commandDispatcher.getControllerForCommand(command);
  49.  
  50.     var enabled = false;
  51.  
  52.     if ( controller )
  53.       enabled = controller.isCommandEnabled(command);
  54.  
  55.     goSetCommandEnabled(command, enabled);
  56.   }
  57.   catch (e) {
  58.     dump("An error occurred updating the "+command+" command\n");
  59.   }
  60. }
  61.  
  62. function goDoCommand(command)
  63. {
  64.   try {
  65.     var controller = top.document.commandDispatcher.getControllerForCommand(command);
  66.     if ( controller && controller.isCommandEnabled(command))
  67.       controller.doCommand(command);
  68.   }
  69.   catch (e) {
  70.     dump("An error occurred executing the "+command+" command\n");
  71.   }
  72. }
  73.  
  74.  
  75. function goSetCommandEnabled(id, enabled)
  76. {
  77.   var node = document.getElementById(id);
  78.  
  79.   if ( node )
  80.   {
  81.     if ( enabled )
  82.       node.removeAttribute("disabled");
  83.     else
  84.       node.setAttribute('disabled', 'true');
  85.   }
  86. }
  87.  
  88. function goSetMenuValue(command, labelAttribute)
  89. {
  90.   var commandNode = top.document.getElementById(command);
  91.   if ( commandNode )
  92.   {
  93.     var label = commandNode.getAttribute(labelAttribute);
  94.     if ( label )
  95.       commandNode.setAttribute('label', label);
  96.   }
  97. }
  98.  
  99. function goSetAccessKey(command, valueAttribute)
  100. {
  101.   var commandNode = top.document.getElementById(command);
  102.   if ( commandNode )
  103.   {
  104.     var value = commandNode.getAttribute(valueAttribute);
  105.     if ( value )
  106.       commandNode.setAttribute('accesskey', value);
  107.   }
  108. }
  109.  
  110. // this function is used to inform all the controllers attached to a node that an event has occurred
  111. // (e.g. the tree controllers need to be informed of blur events so that they can change some of the
  112. // menu items back to their default values)
  113. function goOnEvent(node, event)
  114. {
  115.   var numControllers = node.controllers.getControllerCount();
  116.   var controller;
  117.  
  118.   for ( var controllerIndex = 0; controllerIndex < numControllers; controllerIndex++ )
  119.   {
  120.     controller = node.controllers.getControllerAt(controllerIndex);
  121.     if ( controller )
  122.       controller.onEvent(event);
  123.   }
  124. }
  125.  
  126. function setTooltipText(aID, aTooltipText)
  127. {
  128.   var element = document.getElementById(aID);
  129.   if (element)
  130.     element.setAttribute("tooltiptext", aTooltipText);
  131. }
  132.  
  133. function FillInTooltip ( tipElement )
  134. {
  135.   var retVal = false;
  136.   var textNode = document.getElementById("TOOLTIP-tooltipText");
  137.   if (textNode) {
  138.     while (textNode.hasChildNodes())
  139.       textNode.removeChild(textNode.firstChild);
  140.     var tipText = tipElement.getAttribute("tooltiptext");
  141.     if (tipText) {
  142.       var node = document.createTextNode(tipText);
  143.       textNode.appendChild(node);
  144.       retVal = true;
  145.     }
  146.   }
  147.   return retVal;
  148. }
  149.