Checking in the Go Menu.
git-svn-id: svn://10.0.0.236/trunk@131275 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -519,10 +519,84 @@ function BrowserHome()
|
||||
loadURI(homePage);
|
||||
}
|
||||
|
||||
function updateGoMenu(event)
|
||||
function constructGoMenuItem(goMenu, beforeItem, url, title)
|
||||
{
|
||||
// XXX Write me - dwh
|
||||
const kXULNS =
|
||||
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
var menuitem = document.createElementNS(kXULNS, "menuitem");
|
||||
menuitem.setAttribute("url", url);
|
||||
menuitem.setAttribute("label", title);
|
||||
goMenu.insertBefore(menuitem, beforeItem);
|
||||
return menuitem;
|
||||
}
|
||||
|
||||
function onGoMenuHidden()
|
||||
{
|
||||
setTimeout("destroyGoMenuItems(document.getElementById('goPopup'));", 0);
|
||||
}
|
||||
|
||||
function destroyGoMenuItems(goMenu) {
|
||||
var history = document.getElementById("hiddenHistoryTree");
|
||||
history.removeAttribute("ref");
|
||||
|
||||
var startSeparator = document.getElementById("startHistorySeparator");
|
||||
var endSeparator = document.getElementById("endHistorySeparator");
|
||||
endSeparator.hidden = true;
|
||||
|
||||
// Destroy the items.
|
||||
var destroy = false;
|
||||
for (var i = 0; i < goMenu.childNodes.length; i++) {
|
||||
var item = goMenu.childNodes[i];
|
||||
if (item == endSeparator)
|
||||
break;
|
||||
|
||||
if (destroy) {
|
||||
i--;
|
||||
goMenu.removeChild(item);
|
||||
}
|
||||
|
||||
if (item == startSeparator)
|
||||
destroy = true;
|
||||
}
|
||||
}
|
||||
|
||||
function updateGoMenu(goMenu)
|
||||
{
|
||||
var history = document.getElementById("hiddenHistoryTree");
|
||||
if (history.hidden)
|
||||
history.hidden = false;
|
||||
|
||||
if (!history.ref)
|
||||
history.ref = "NC:HistoryRoot";
|
||||
|
||||
var count = history.treeBoxObject.view.rowCount;
|
||||
if (count > 10)
|
||||
count = 10;
|
||||
|
||||
if (count == 0)
|
||||
return;
|
||||
|
||||
const NC_NS = "http://home.netscape.com/NC-rdf#";
|
||||
|
||||
if (!gRDF)
|
||||
gRDF = Components.classes["@mozilla.org/rdf/rdf-service;1"]
|
||||
.getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var builder = history.builder.QueryInterface(Components.interfaces.nsIXULTreeBuilder);
|
||||
|
||||
var beforeItem = document.getElementById("endHistorySeparator");
|
||||
beforeItem.hidden = false;
|
||||
|
||||
var nameResource = gRDF.GetResource(NC_NS + "Name");
|
||||
|
||||
for (var i = count-1; i >= 0; i--) {
|
||||
var res = builder.getResourceAtIndex(i);
|
||||
var url = res.Value;
|
||||
var titleRes = history.database.GetTarget(res, nameResource, true);
|
||||
var titleLiteral = titleRes.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
beforeItem = constructGoMenuItem(goMenu, beforeItem, url, titleLiteral.Value);
|
||||
}
|
||||
}
|
||||
|
||||
function addGroupmarkAs()
|
||||
|
||||
@@ -429,6 +429,30 @@ Contributor(s):
|
||||
oncommand="gContextMenu.showMetadata();"/>
|
||||
</popup>
|
||||
|
||||
<!-- Total hack. Used by the Go menu to build up items. -->
|
||||
<tree id="hiddenHistoryTree" hidden="true" collapsed="true"
|
||||
datasources="rdf:history" flags="dont-build-content"
|
||||
hidecolumnpicker="true">
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*" rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/>
|
||||
<treecell label="rdf:http://home.netscape.com/NC-rdf#Date" hidden="true"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
<treecols id="hiddenHistoryTreeCols">
|
||||
<treecol flex="1" id="Name"
|
||||
hideheader="true" primary="true"/>
|
||||
<treecol id="Date" hidden="true" hideheader="true"
|
||||
sort="rdf:http://home.netscape.com/NC-rdf#Date" sortActive="true" sortDirection="descending"/>
|
||||
</treecols>
|
||||
</tree>
|
||||
|
||||
<toolbox id="navigator-toolbox" class="toolbox-top" mode="icons" iconsize="small">
|
||||
<!-- Menu -->
|
||||
<menubar id="main-menubar" class="chromeclass-menubar">
|
||||
@@ -634,14 +658,14 @@ Contributor(s):
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<menu label="&goMenu.label;" accesskey="&goMenu.accesskey;">
|
||||
<menupopup onpopupshowing="updateGoMenu(event);">
|
||||
<menu label="&goMenu.label;" accesskey="&goMenu.accesskey;" oncommand="var url = event.target.getAttribute('url'); if (url) openTopWin(url);">
|
||||
<menupopup id="goPopup" onpopupshowing="updateGoMenu(this);" onpopuphiding="onGoMenuHidden();">
|
||||
<menuitem label="&backCmd.label;" accesskey="&backCmd.accesskey;" key="goBackKb" command="Browser:Back"/>
|
||||
<menuitem label="&forwardCmd.label;" accesskey="&forwardCmd.accesskey;" key="goForwardKb" command="Browser:Forward"/>
|
||||
<menuitem label="&goHomeCmd.label;" accesskey="&goHomeCmd.accesskey;" command="Browser:Home" key="goHome"/>
|
||||
<menuseparator/>
|
||||
<menuseparator id="startHistorySeparator"/>
|
||||
<menuseparator hidden="true" id="endHistorySeparator"/>
|
||||
<menuitem accesskey="&historyCmd.accesskey;" command="viewHistorySidebar" key="key_gotoHistory"/>
|
||||
<menuseparator hidden="true"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user