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:
hyatt%netscape.com
2002-10-06 22:54:24 +00:00
parent 9dcaf51736
commit bd37eb50fc
2 changed files with 104 additions and 6 deletions

View File

@@ -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()

View File

@@ -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>