home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 December / PCWorld_2005-12_cd.bin / komunikace / netscape / nsb-install-8-0.exe / chrome / browser.jar / content / browser / sidebarButton.js < prev    next >
Text File  |  2005-09-26  |  3KB  |  106 lines

  1. var gSidebarNeverShown = true; // ... in this window
  2. var gPrefs = null; // cached nsIPrefBranch reference
  3.  
  4. addEventListener("load", initSidebarButton, false);
  5.  
  6. function initSidebarButton()
  7. {
  8.   const kSidebarButtonPref = "browser.toolbars.showbutton.sidebar";
  9.   var buttonShown;
  10.   try {
  11.     buttonShown = getPrefs().getBoolPref(kSidebarButtonPref);
  12.     var pbi = getPrefs().QueryInterface(
  13.               Components.interfaces.nsIPrefBranchInternal);
  14.     pbi.addObserver(kSidebarButtonPref, sidebarButtonPrefObserver, false);
  15.   }
  16.   catch (ex)
  17.   {
  18.     buttonShown = true;
  19.   }
  20.  
  21.   // hide/unhide sidebar button on personal toolbar for ns builds
  22.   var sbheader = document.getElementById("sidebar-title-box");
  23.   sbheader.setAttribute("prefixhidden", !buttonShown);
  24.   var pt = document.getElementById("PersonalToolbar");
  25.   pt.setAttribute("prefixhidden", !buttonShown);
  26. dump("prefixhidden: " + !buttonShown + "\n");
  27.   // init to open/closed
  28.   var open = false;
  29.   if (!sidebar_is_collapsed() && !sidebar_is_hidden())
  30.     open = true;
  31.   
  32.   // set sidebar button state
  33.   SidebarSetButtonOpen(open);
  34.  
  35.   try {
  36.     // for Netscape, hide the "My Sidebar Directory..." menu item
  37.     // see http://partner-projects.mozilla.org/show_bug.cgi?id=196
  38.     // for more details
  39.     var sidebar_sbDirectory = document.getElementById("sidebar.sbDirectory");
  40.     sidebar_sbDirectory.hidden = true;
  41.   }
  42.   catch (ex)
  43.   {
  44.   }
  45. }
  46.  
  47. function onSidebarButtonClick()
  48. {
  49.   var was_hidden = sidebar_is_hidden();
  50.   var was_collapsed = sidebar_is_collapsed();
  51.  
  52.   // are we in closed or collapsed state?
  53.   if (was_collapsed)
  54.   {
  55.     // open/expand sidebar
  56.     SidebarExpandCollapse();
  57.     if (gSidebarNeverShown)
  58.       SidebarCleanUpExpandCollapse();
  59.  
  60.     gSidebarNeverShown = false;
  61.   }
  62.   else if (was_hidden)
  63.   {
  64.     // open/unhide sidebar
  65.     SidebarShowHide();
  66.  
  67.     gSidebarNeverShown = false;
  68.   }
  69.  
  70.   // or are we open?
  71.   else
  72.   {
  73.     // close sidebar
  74.     SidebarShowHide(); 
  75.   }
  76. }
  77.  
  78. function getPrefs()
  79. {
  80.   try
  81.   {
  82.     if (!gPrefs)
  83.       gPrefs = Components.classes["@mozilla.org/preferences-service;1"].
  84.                  getService(Components.interfaces.nsIPrefBranch);
  85.   }
  86.   catch (ex)
  87.   {
  88.     gPrefs = null;
  89.   }
  90.   
  91.   return gPrefs;
  92. }
  93.  
  94. var sidebarButtonPrefObserver = 
  95. {
  96.   observe: function(aPrefs, aTopic, aPrefName)
  97.   {
  98.     var buttonShown = aPrefs.getBoolPref(aPrefName);
  99.  
  100.     var sbheader = document.getElementById("sidebar-title-box");
  101.     sbheader.setAttribute("prefixhidden", !buttonShown);
  102.     var pt = document.getElementById("PersonalToolbar");
  103.     pt.setAttribute("prefixhidden", !buttonShown);
  104.   }
  105. }
  106.