90 lines
2.3 KiB
JavaScript
90 lines
2.3 KiB
JavaScript
// -*- Mode: Java -*-
|
|
|
|
var sidebarURI = 'resource:/res/rdf/sidebar-browser.xul';
|
|
var isSidebarOpen = false;
|
|
|
|
function Init() {
|
|
var pref = Components.classes['component://netscape/preferences'];
|
|
if (pref) {
|
|
pref = pref.getService();
|
|
}
|
|
if (pref) {
|
|
pref = pref.QueryInterface(Components.interfaces.nsIPref);
|
|
}
|
|
if (pref) {
|
|
pref.SetDefaultIntPref('sidebar.width', 170);
|
|
// pref.SetIntPref(pref.GetIntPref('sidebar.width'));
|
|
pref.SetDefaultBoolPref('sidebar.open', false);
|
|
pref.SavePrefFile();
|
|
if (pref.GetBoolPref('sidebar.open')) {
|
|
toggleOpenClose();
|
|
}
|
|
}
|
|
}
|
|
|
|
function toggleOpenClose() {
|
|
// Get the open width and update the pref state
|
|
var pref = Components.classes['component://netscape/preferences'];
|
|
if (pref) {
|
|
pref = pref.getService();
|
|
}
|
|
if (pref) {
|
|
pref = pref.QueryInterface(Components.interfaces.nsIPref);
|
|
}
|
|
var width = 0;
|
|
|
|
if (pref) {
|
|
pref.SetBoolPref('sidebar.open', !isSidebarOpen);
|
|
width = pref.GetIntPref('sidebar.width');
|
|
pref.SavePrefFile();
|
|
}
|
|
|
|
if (isSidebarOpen)
|
|
{
|
|
// Close it
|
|
var container = document.getElementById('container');
|
|
var sidebar = container.firstChild;
|
|
sidebar.setAttribute('style','width:0px; visibility:hidden');
|
|
sidebar.setAttribute('src','about:blank');
|
|
//container.removeChild(container.firstChild);
|
|
|
|
var grippy = document.getElementById('grippy');
|
|
grippy.setAttribute('open','');
|
|
|
|
isSidebarOpen = false;
|
|
}
|
|
else
|
|
{
|
|
// Open it
|
|
var container = document.getElementById('container');
|
|
var sidebar = container.firstChild;
|
|
sidebar.setAttribute('style','width:' + width + 'px; visibility:visible');
|
|
sidebar.setAttribute('src',sidebarURI);
|
|
|
|
//var sidebar = document.createElement('html:iframe');
|
|
//sidebar.setAttribute('src','resource:/res/rdf/sidebar-browser.xul');
|
|
//sidebar.setAttribute('class','sidebarframe');
|
|
//container.insertBefore(sidebar,container.firstChild);
|
|
//container.appendChild(sidebar);
|
|
|
|
var grippy = document.getElementById('grippy');
|
|
grippy.setAttribute('open','true');
|
|
|
|
isSidebarOpen = true;
|
|
}
|
|
|
|
}
|
|
|
|
// To get around "window.onload" not working in viewer.
|
|
function Boot()
|
|
{
|
|
var root = document.documentElement;
|
|
if (root == null) {
|
|
setTimeout(Boot, 0);
|
|
} else {
|
|
Init();
|
|
}
|
|
}
|
|
|
|
setTimeout('Boot()', 0);
|