home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / komunikace / netscape / nsb-install-8-1-2.exe / chrome / aim.jar / content / aim / mini.js < prev    next >
Text File  |  2006-01-06  |  4KB  |  177 lines

  1. const nsIWebNavigation = Components.interfaces.nsIWebNavigation;
  2.  
  3. var gURLBar = null;
  4. var gBrowser = null;
  5. var gSession = null;
  6.  
  7. function nsBrowserStatusHandler()
  8. {
  9.   this.init();
  10. }
  11.  
  12. nsBrowserStatusHandler.prototype = 
  13. {
  14.   QueryInterface : function(aIID)
  15.   {
  16.     if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
  17.         aIID.equals(Components.interfaces.nsISupportsWeakReference))
  18.       return this;
  19.     throw Components.results.NS_NOINTERFACE;
  20.   },
  21.  
  22.   init : function()
  23.   {
  24.   },
  25.  
  26.   destroy : function()
  27.   {
  28.   },
  29.  
  30.   onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus)
  31.   {
  32.   },
  33.  
  34.   onProgressChange : function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)
  35.   {
  36.   },
  37.  
  38.   onLocationChange : function(aWebProgress, aRequest, aLocation)
  39.   {
  40.     UpdateBackForwardButtons();
  41.   },
  42.  
  43.   onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage)
  44.   {
  45.   },
  46.  
  47.   onSecurityChange : function(aWebProgress, aRequest, aState)
  48.   {
  49.   }
  50. }
  51.  
  52. var gBrowserStatusHandler;
  53. function MiniNavStartup()
  54. {
  55.   var minibrowser = document.getElementById("content");
  56.   var aimtodayurl = aimRegionString("aim.aimtoday");
  57.   if (minibrowser)
  58.     minibrowser.setAttribute("src", aimtodayurl);
  59.  
  60.   var webNavigation = getWebNavigation();
  61.   gBrowser = document.getElementById("content");
  62.   gBrowserStatusHandler = new nsBrowserStatusHandler();
  63.  
  64.   try {
  65.     getBrowser().sessionHistory;
  66.   } catch(e) {
  67.     webNavigation.sessionHistory = Components.classes["@mozilla.org/browser/shistory;1"]
  68.                                              .createInstance(Components.interfaces.nsISHistory);
  69.   }
  70.  
  71.   var interfaceRequestor = getBrowser().docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
  72.   var webProgress = interfaceRequestor.getInterface(Components.interfaces.nsIWebProgress);
  73.  
  74.   gSession = webNavigation;
  75.  
  76.  
  77.   webProgress.addProgressListener(gBrowserStatusHandler,
  78.                                     Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
  79. }
  80.  
  81.  function createBackMenu(event)
  82.  {
  83.    return FillHistoryMenu(event.target, "back");
  84.  }
  85.  
  86.  function createForwardMenu(event)
  87.  {
  88.    return FillHistoryMenu(event.target, "forward");
  89.  }
  90.  
  91.  function gotoHistoryIndex(aEvent)
  92.  {
  93.    var index = aEvent.target.getAttribute("index");
  94.    if (!index)
  95.      return false;
  96.    try {
  97.      getWebNavigation().gotoIndex(index);
  98.    }
  99.    catch(ex) {
  100.      return false;
  101.    }
  102.    return true;
  103.  }
  104.  
  105. function MiniNavShutdown()
  106. {
  107.   dump("*** MiniNavShutdown\n");
  108.   if (gBrowserStatusHandler)
  109.     gBrowserStatusHandler.destroy();
  110. }
  111.  
  112. function getBrowser()
  113. {
  114.   if (!gBrowser)
  115.     gBrowser = document.getElementById("content");
  116.   return gBrowser;
  117. }
  118.  
  119. function getWebNavigation()
  120. {
  121.   if (!gSession) {
  122.     gSession = getBrowser().webNavigation;
  123.   }
  124.   return gSession;
  125. }
  126.  
  127. function UpdateBackForwardButtons()
  128. {
  129.   var backBroadcaster = document.getElementById("canGoBack");
  130.   var forwardBroadcaster = document.getElementById("canGoForward");
  131.   var webNavigation = getWebNavigation();
  132.  
  133.   // Avoid setting attributes on broadcasters if the value hasn't changed!
  134.   // Remember, guys, setting attributes on elements is expensive!  They
  135.   // get inherited into anonymous content, broadcast to other widgets, etc.!
  136.   // Don't do it if the value hasn't changed! - dwh
  137.  
  138.   var backDisabled = (backBroadcaster.getAttribute("disabled") == "true");
  139.   var forwardDisabled = (forwardBroadcaster.getAttribute("disabled") == "true");
  140.  
  141.   if (backDisabled == webNavigation.canGoBack) {
  142.     if (backDisabled)
  143.        backBroadcaster.removeAttribute("disabled");
  144.     else
  145.        backBroadcaster.setAttribute("disabled", true);
  146.   }
  147.    
  148.   if (forwardDisabled == webNavigation.canGoForward) {
  149.     if (forwardDisabled)
  150.        forwardBroadcaster.removeAttribute("disabled");
  151.     else
  152.        forwardBroadcaster.setAttribute("disabled", true);
  153.   }
  154. }
  155.  
  156. function BrowserBack()
  157. {
  158.   getWebNavigation().goBack();
  159.   UpdateBackForwardButtons();
  160. }
  161.  
  162. function BrowserForward()
  163. {
  164.   getWebNavigation().goForward();
  165.   UpdateBackForwardButtons();
  166. }
  167.  
  168. function BrowserStop()
  169. {
  170.   getWebNavigation().stop(nsIWebNavigation.STOP_ALL);
  171. }
  172.  
  173. function BrowserReload()
  174. {
  175.   getWebNavigation().reload(nsIWebNavigation.LOAD_FLAGS_NONE);
  176. }
  177.