mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 00:55:37 +00:00
71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
// -*- Mode: Java -*-
|
|
|
|
var sidebar_name = ''; // Name for preferences (e.g. 'sidebar.<name>.foo')
|
|
var sidebar_uri = ''; // Content to load in sidebar frame
|
|
var sidebar_width = 0; // Desired width of sidebar
|
|
var sidebar_pref = ''; // Base for preferences (e.g. 'sidebar.browser')
|
|
var is_sidebar_open = false;
|
|
var prefs = null; // Handle to preference interface
|
|
|
|
function init_sidebar(name, uri, width) {
|
|
sidebar_name = name;
|
|
sidebar_uri = uri;
|
|
sidebar_width = width;
|
|
sidebar_pref = 'sidebar.' + name;
|
|
|
|
// Open/close sidebar based on saved pref.
|
|
// This may be replaced by another system by hyatt.
|
|
prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
|
.getService(Components.interfaces.nsIPrefBranch);
|
|
if (prefs) {
|
|
// The sidebar is closed by default, so open it only if the
|
|
// preference is set to true.
|
|
try {
|
|
if (prefs.getBoolPref(sidebar_pref + '.open')) {
|
|
toggle_open_close();
|
|
}
|
|
}
|
|
catch (ex) {
|
|
dump("failed to get sidebar_pref\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
function toggle_open_close() {
|
|
|
|
var sidebar = document.getElementById('sidebarframe');
|
|
var grippy = document.getElementById('grippy');
|
|
|
|
if (is_sidebar_open)
|
|
{
|
|
// Close it
|
|
sidebar.setAttribute('style','visibility: hidden; width: 1px');
|
|
sidebar.setAttribute('src','about:blank');
|
|
|
|
grippy.setAttribute('open','');
|
|
|
|
is_sidebar_open = false;
|
|
}
|
|
else
|
|
{
|
|
dump("Open it\n");
|
|
|
|
sidebar.setAttribute('style', 'visibility: visible;width:' + sidebar_width + 'px');
|
|
sidebar.setAttribute('src', sidebar_uri);
|
|
|
|
grippy.setAttribute('open','true');
|
|
|
|
is_sidebar_open = true;
|
|
}
|
|
|
|
try {
|
|
// Save new open/close state in prefs
|
|
if (prefs) {
|
|
prefs.setBoolPref(sidebar_pref + '.open', is_sidebar_open);
|
|
}
|
|
}
|
|
catch (ex) {
|
|
dump("failed to set the sidebar pref\n");
|
|
}
|
|
}
|