search sidebar skinnability

git-svn-id: svn://10.0.0.236/trunk@70100 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
ben%netscape.com
2000-05-16 21:56:12 +00:00
parent 0cebd244c8
commit 3e5430d221
3 changed files with 177 additions and 258 deletions

View File

@@ -1,47 +1,49 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/search/search.css" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/search/internetresults.css" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/search/icons.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://communicator/locale/search/internetresults.dtd">
<window class="dialog" align="vertical" onload="onLoadInternetResults()"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
context="disallowcontext"
>
<window class="color-dialog" orient="vertical" onload="onLoadInternetResults()"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
context="disallowcontext">
<popupset>
<popup id="disallowcontext" oncreate="return(false);" />
</popupset>
<html:script src="chrome://global/content/strres.js"/>
<html:script src="chrome://communicator/content/search/internetresults.js" />
<html:script src="chrome://communicator/content/search/shared.js" />
<script src="chrome://global/content/strres.js"></script>
<script src="chrome://communicator/content/search/internetresults.js"></script>
<script src="chrome://communicator/content/search/shared.js"></script>
<box id="multi-results-header" align="horizontal">
<text value="&results.header.label;"/>
<spring flex="100%"/>
</box>
<box id="multi-results-header">
<text value="&results.header.label;"/>
<spring flex="1"/>
</box>
<box id="engineTabs" ref="NC:SearchResultsSitesRoot" datasources="rdf:internetsearch" style="height: 64;" orient="horizontal" vertical-align="baseline">
<box id="engineTabs" ref="NC:SearchResultsSitesRoot" datasources="rdf:internetsearch">
<template>
<titledbutton uri="..." onclick="doEngineClick(event, this)" class="iconic push" align="left" crop="right" src="rdf:http://home.netscape.com/NC-rdf#StatusIcon" value="rdf:http://home.netscape.com/NC-rdf#Name" loading="rdf:http://home.netscape.com/NC-rdf#loading" />
<button uri="..." onclick="doEngineClick(event, this)" crop="right"
src="rdf:http://home.netscape.com/NC-rdf#StatusIcon"
value="rdf:http://home.netscape.com/NC-rdf#Name"
loading="rdf:http://home.netscape.com/NC-rdf#loading" />
</template>
<titledbutton id="allEngines" onclick="doEngineClick(event, this)" class="push" value="&allresults.title.label;" align="left" />
<button id="allEngines" onclick="doEngineClick(event, this)" value="&allresults.title.label;"/>
<spring style="width: 1em;"/>
<text value="&viewbyprovider.label;"/>
<spring style="width: .25em;"/>
</box>
<popupset>
<popup id="contextual" oncreate="return fillContextMenu('contextual', 'internetresultstree');" >
<menu />
</popup>
<popupset>
<popup id="contextual" oncreate="return fillContextMenu('contextual', 'internetresultstree');" >
<menu />
</popup>
</popupset>
<tree id="internetresultstree" ref="" flex="100%" datasources="rdf:internetsearch" context="contextual"
<tree id="internetresultstree" ref="" flex="1" datasources="rdf:internetsearch" context="contextual"
onclick="if (event.detail == 2) return searchResultsOpenURL(event, event.target.parentNode.parentNode); else return doResultClick(event.target.parentNode.parentNode);">
<treecol id="NameColumn" rdf:resource="http://home.netscape.com/NC-rdf#Name"/>
@@ -70,30 +72,29 @@
<treeitem uri="..." rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
<treerow>
<treecell>
<html:hr width="75%" align="center" size="1" />
<separator class="groove"/>
</treecell>
</treerow>
</treeitem>
</treechildren>
</rule>
<rule>
<treechildren>
<treeitem uri="..." rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
<treerow>
<treecell class="treecell-iconic" crop="right"
src="rdf:http://home.netscape.com/NC-rdf#Icon"
value="rdf:http://home.netscape.com/NC-rdf#Name" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#PageRank" />
<treecell>
<titledbutton align="left" crop="right" class="iconic" src="rdf:http://home.netscape.com/NC-rdf#Icon" value="rdf:http://home.netscape.com/NC-rdf#Name" />
<progressmeter align="horizontal" value="rdf:http://home.netscape.com/NC-rdf#Relevance" mode="normal" />
<text crop="right" value="rdf:http://home.netscape.com/NC-rdf#Relevance"/>
</treecell>
<treecell align="center" crop="right" value="rdf:http://home.netscape.com/NC-rdf#PageRank" />
<treecell>
<progressmeter align="horizontal" value="rdf:http://home.netscape.com/NC-rdf#Relevance" mode="normal" />
<titledbutton align="left" crop="right" flex="1" value="rdf:http://home.netscape.com/NC-rdf#Relevance" style="list-style-image: none;" />
</treecell>
<treecell align="left" crop="right" value="rdf:http://home.netscape.com/NC-rdf#Price" />
<treecell align="left" crop="right" value="rdf:http://home.netscape.com/NC-rdf#Availability" />
<treecell align="left" crop="right" value="rdf:http://home.netscape.com/NC-rdf#Date" />
<treecell align="left" crop="right" value="rdf:http://home.netscape.com/NC-rdf#Site" />
<treecell align="left" crop="right" value="rdf:http://home.netscape.com/NC-rdf#Engine" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#Price" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#Availability" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#Date" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#Site" />
<treecell crop="right" value="rdf:http://home.netscape.com/NC-rdf#Engine" />
</treerow>
</treeitem>
</treechildren>
@@ -102,56 +103,45 @@
<treehead>
<treerow>
<treecell id="NameCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="NameCell" class="treecell-header sortDirectionIndicator"
value="&name.column.label;" observes="NameColumn"
resource="http://home.netscape.com/NC-rdf#Name"
onclick="return doSort('NameColumn', null);" />
<treecell id="PageRankCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="PageRankCell" class="treecell-header sortDirectionIndicator"
value="&pagerank.column.label;" observes="PageRankColumn"
resource="http://home.netscape.com/NC-rdf#PageRank"
onclick="return doSort('PageRankColumn', null);" />
<treecell id="RelevanceCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="RelevanceCell" class="treecell-header sortDirectionIndicator"
value="&relevance.column.label;" observes="RelevanceColumn"
resource="http://home.netscape.com/NC-rdf#Relevance"
onclick="return doSort('RelevanceColumn', null);" />
<treecell id="PriceCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="PriceCell" class="treecell-header sortDirectionIndicator"
value="&price.column.label;" observes="PriceColumn"
resource="http://home.netscape.com/NC-rdf#Price"
onclick="return doSort('PriceColumn', null);" />
<treecell id="AvailabilityCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="AvailabilityCell" class="treecell-header sortDirectionIndicator"
value="&availability.column.label;" observes="AvailabilityColumn"
resource="http://home.netscape.com/NC-rdf#Availability"
onclick="return doSort('AvailabilityColumn', null);" />
<treecell id="DateCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="DateCell" class="treecell-header sortDirectionIndicator"
value="&date.column.label;" observes="DateColumn"
resource="http://home.netscape.com/NC-rdf#Date"
onclick="return doSort('DateColumn', null);" />
<treecell id="SiteCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="SiteCell" class="treecell-header sortDirectionIndicator"
value="&site.column.label;" observes="SiteColumn"
resource="http://home.netscape.com/NC-rdf#Site"
onclick="return doSort('SiteColumn', null);" />
<treecell id="EngineCell" align="center" class="treecell-header sortDirectionIndicator"
<treecell id="EngineCell" class="treecell-header sortDirectionIndicator"
value="&engine.column.label;" observes="EngineColumn"
resource="http://home.netscape.com/NC-rdf#Engine"
onclick="return doSort('EngineColumn', null);" />
</treerow>
</treehead>
</tree>
<splitter id="gray_horizontal_splitter" persist="state" collapse="after" />
<html:iframe id="content" type="content-primary" style="height: 100; width: 100%;" flex="100%" src="chrome://communicator/content/search/default.htm" />
<iframe id="content" type="content-primary" style="height: 100; width: 100%;" flex="100%" src="chrome://communicator/content/search/default.htm"/>
<!--
This extra "status" bar is necessary because the bottom right corner of the window on MacOS is
taken up by the growBox. If this window had a horizontal scrollbar, we'd be alright, but since
it doesn't the bottom arrow on the vertical scrollbar was being hidden by this growBox. To
combat this, we can just stick in a 15px high bar to bump up the bottom of the tree so that
the scrollbar is visible. Yes, I know this is not necessary for win32 or gtk, but we can
use this area for information (maybe full URL of selected item or the like) in the future.
-->
<box id="status-bar" style="min-height:15px; max-height:15px;">
<progressmeter id="search-progress" style="width: 100%; display: none;" align="horizontal" mode="undetermined" />
<titledbutton id="status-button" class="status-bar" align="left" value=""/>
</box>
</window>

View File

@@ -367,32 +367,19 @@ function saveEngines()
var localStore = rdf.GetDataSource("rdf:local-store");
if( !localStore ) return(false);
var treeNode = document.getElementById("searchengines");
var numChildren = treeNode.childNodes.length;
for (var x = 0; x<numChildren; x++)
{
if (treeNode.childNodes[x].tagName == "treechildren")
{
var treeChildrenNode = treeNode.childNodes[x];
break;
}
}
if( !treeChildrenNode )
var engineBox = document.getElementById("searchengines");
if( !engineBox )
return false;
var checkedProperty = rdf.GetResource( "http://home.netscape.com/NC-rdf#checked", true );
var categorySRC = rdf.GetResource( category, true );
for (var x = 0; x < treeChildrenNode.childNodes.length; x++)
for (var x = 0; x < engineBox.childNodes.length; x++)
{
var treeItem = treeChildrenNode.childNodes[x];
if( !treeItem )
var checkbox = engineBox.childNodes[x];
if( !checkbox )
continue;
var engineURI = treeItem.getAttribute("id");
var engineURI = checkbox.getAttribute("id");
var engineSRC = rdf.GetResource(engineURI, true);
var checkbox = treeItem.firstChild.firstChild.firstChild;
debug("#" + x + ": tag=" + checkbox.tagName + " checked=" + checkbox.checked + "\n");
if( checkbox.checked == true || checkbox.checked == "true")
localStore.Assert( categorySRC, checkedProperty, engineSRC, true );
else
@@ -423,33 +410,21 @@ function loadEngines( aCategory )
var localStore = rdf.GetDataSource("rdf:local-store");
if (localStore)
{
var treeNode = document.getElementById("searchengines");
var numChildren = treeNode.childNodes.length;
for (var x = 0; x<numChildren; x++)
var engineBox = document.getElementById("searchengines");
if( engineBox )
{
if (treeNode.childNodes[x].tagName == "treechildren")
{
var treeChildrenNode = treeNode.childNodes[x];
break;
}
}
if( treeChildrenNode )
{
var numEngines = treeChildrenNode.childNodes.length;
var numEngines = engineBox.childNodes.length;
var checkedProperty = rdf.GetResource("http://home.netscape.com/NC-rdf#checked", true);
var categorySRC = rdf.GetResource( aCategory, true );
var categorySRC = rdf.GetResource( aCategory, true );
for (var x = 0; x<numEngines; x++)
{
var treeItem = treeChildrenNode.childNodes[x];
if (!treeItem) continue;
var engineURI = treeItem.getAttribute("id");
var checkbox = engineBox.childNodes[x];
if (!checkbox) continue;
var engineURI = checkbox.getAttribute("id");
var engineSRC = rdf.GetResource( engineURI, true );
var hasAssertion = localStore.HasAssertion( categorySRC, checkedProperty, engineSRC, true );
var checkbox = treeItem.firstChild.firstChild.firstChild;
if ( hasAssertion == true)
{
checkbox.checked = true;
}
}
}
}
@@ -624,35 +599,22 @@ function doSearch()
return false;
}
// get selected search engines
var treeNode = document.getElementById("searchengines");
if (!treeNode) return(false);
var numChildren = treeNode.childNodes.length;
for (var x = 0; x<numChildren; x++)
{
if (treeNode.childNodes[x].tagName == "treechildren")
{
var treeChildrenNode = treeNode.childNodes[x];
break;
}
}
if ( !treeChildrenNode )
return false;
var engineBox = document.getElementById("searchengines");
if (!engineBox) return(false);
var searchURL = "";
var foundEngine = false;
var engineURIs = [];
var numEngines = treeChildrenNode.childNodes.length;
for (var x = 0; x<numEngines; x++)
for (var x = 0; x<engineBox.childNodes.length; x++)
{
var treeItem = treeChildrenNode.childNodes[x];
if (!treeItem)
var checkbox = engineBox.childNodes[x];
if (!checkbox)
continue;
var checkbox = treeItem.firstChild.firstChild.firstChild;
if ( checkbox.checked == true || checkbox.checked == "true")
{
var engineURI = treeItem.getAttribute("id");
var engineURI = checkbox.getAttribute("id");
if (!engineURI) continue;
engineURIs[engineURIs.length] = engineURI;
foundEngine = true;
@@ -662,17 +624,17 @@ function doSearch()
{
if( getNumEngines() == 1 ) {
// only one engine in this category, check it
var treeItem = treeChildrenNode.firstChild;
engineURIs[engineURIs.length] = treeItem.getAttribute( "id" );
var checkbox = engineBox.firstChild;
engineURIs[engineURIs.length] = checkbox.getAttribute( "id" );
}
else {
debug("*** multiple search engines present, selecting the netscape search engine\n");
for( var i = 0; i < treeChildrenNode.childNodes.length; i++ )
for( var i = 0; i < engineBoxchildNodes.length; i++ )
{
var currItem = treeChildrenNode.childNodes[i];
debug("*** the current URI is = " + currItem.getAttribute("id") + "\n");
if( currItem.getAttribute("id").indexOf("NetscapeSearch.src") != -1 ) {
engineURIs[engineURIs.length] = currItem.getAttribute("id");
var checkbox = engineBox.childNodes[i];
debug("*** the current URI is = " + checkbox.getAttribute("id") + "\n");
if( checkbox.getAttribute("id").indexOf("NetscapeSearch.src") != -1 ) {
engineURIs[engineURIs.length] = checkbox.getAttribute("id");
break;
}
}

View File

@@ -22,160 +22,127 @@
-->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/search/search.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://communicator/locale/search/search-panel.dtd" >
<window
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
align="vertical"
onload="SearchPanelStartup();"
onunload="SearchPanelShutdown();">
<window id="searchPanel" class="box-padded color-dialog"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
orient="vertical" onload="SearchPanelStartup();"
onunload="SearchPanelShutdown();">
<html:script language="Javascript" src="chrome://global/content/strres.js"/>
<html:script language="Javascript" src="chrome://communicator/content/search/search-panel.js" />
<html:script language="Javascript" src="chrome://communicator/content/search/shared.js" />
<script language="Javascript" src="chrome://global/content/strres.js"></script>
<script language="Javascript" src="chrome://communicator/content/search/search-panel.js"></script>
<script language="Javascript" src="chrome://communicator/content/search/shared.js"></script>
<popupset>
<popup id="contextual" oncreate="return fillContextMenu('contextual', 'Tree');" >
<menu />
</popup>
</popupset>
<box align="vertical">
<box align="horizontal" class="spaced">
<textfield id="sidebar-search-text" flex="1" onkeypress="if (event.which == 13) { return doSearch(); }" />
<box autostretch="never">
<button id="searchbutton" value="&search.button.label;" onclick="return doSearch();" class="dialog toolbar-non-iconic"/>
<button id="stopbutton" align="left" src="resource:/res/rdf/loading.gif" value="&stop.button.label;" onclick="return doStop();" class="dialog toolbar-non-iconic" style="display:none;"/>
</box>
</box>
<box id="categoryBox" align="horizontal" class="spaced">
<text value="&within.label;" />
<menulist id="categoryList" ref="NC:SearchCategoryRoot" datasources="rdf:null"
onmousedown="return switchTab(1);" >
<template>
<menupopup>
<menuitem uri="rdf:*" oncommand="return chooseCategory(this);"
data="rdf:http://home.netscape.com/NC-rdf#category"
value="rdf:http://home.netscape.com/NC-rdf#title" />
</menupopup>
</template>
<menupopup id="categoryPopup">
<menuitem data="NC:SearchEngineRoot" value="&allengines.label;"
oncommand="return chooseCategory(this)" />
<menuseparator />
</menupopup>
</menulist>
</box>
</box>
<deck id="advancedDeck" flex="100%" style="border:none;">
<!-- results panel -->
<popupset>
<popup id="contextual" oncreate="return fillContextMenu('contextual', 'Tree');" >
<menu />
</popup>
</popupset>
<box orient="vertical">
<box autostretch="never">
<textfield id="sidebar-search-text" flex="1" onkeypress="if (event.which == 13) { return doSearch(); }" />
<box autostretch="never">
<button class="button-toolbar-3" id="searchbutton" value="&search.button.label;" oncommand="return doSearch();"/>
<button class="button-toolbar-3" id="stopbutton" align="left" src="resource:/res/rdf/loading.gif" value="&stop.button.label;" oncommand="return doStop();" style="display:none;"/>
</box>
</box>
<box id="categoryBox" autostretch="never">
<text class="label" value="&within.label;" />
<menulist id="categoryList" ref="NC:SearchCategoryRoot" datasources="rdf:null" oncommand="return switchTab(1);" >
<template>
<menupopup>
<menuitem uri="rdf:*" oncommand="return chooseCategory(this);"
data="rdf:http://home.netscape.com/NC-rdf#category"
value="rdf:http://home.netscape.com/NC-rdf#title" />
</menupopup>
</template>
<box align="vertical" class="searchpanel-outerbox" flex="1">
<tree id="Tree" ref="NC:LastSearchRoot" context="contextual"
rdf:resource="http://home.netscape.com/NC-rdf#PageRank"
rdf:resource2="http://home.netscape.com/NC-rdf#Name"
sortDirection="ascending" sortActive="true"
class="inset"
flex="100%" style="width:100%; height=100%;"
datasources="rdf:internetsearch"
onclick="sidebarOpenURL(event, event.target.parentNode.parentNode, 'Tree')">
<menupopup id="categoryPopup">
<menuitem data="NC:SearchEngineRoot" value="&allengines.label;"
oncommand="return chooseCategory(this)" />
<menuseparator />
</menupopup>
</menulist>
</box>
</box>
<deck id="advancedDeck" flex="1">
<box align="vertical" class="searchpanel-outerbox" flex="1">
<tree id="Tree" class="inset" ref="NC:LastSearchRoot"
rdf:resource="http://home.netscape.com/NC-rdf#PageRank"
rdf:resource2="http://home.netscape.com/NC-rdf#Name"
sortDirection="ascending" sortActive="true"
flex="1" datasources="rdf:internetsearch" context="contextual"
onclick="sidebarOpenURL(event, event.target.parentNode.parentNode, 'Tree')">
<template>
<rule rdf:type="http://home.netscape.com/NC-rdf#BookmarkSeparator">
<treechildren>
<treeitem uri="...">
<treerow>
<treecell>
<html:hr width="100%" size="1" />
</treecell>
</treerow>
</treeitem>
</treechildren>
</rule>
<rule>
<treechildren>
<treeitem uri="..." persist="open"
loading="rdf:http://home.netscape.com/NC-rdf#loading"
searchtype="rdf:http://home.netscape.com/NC-rdf#SearchType"
type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
<treerow class="searchresult">
<treecell>
<titledbutton flex="1" crop="right" align="left"
src="rdf:http://home.netscape.com/NC-rdf#Icon"
value="rdf:http://home.netscape.com/NC-rdf#Name" />
</treecell>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
<treehead>
<treerow>
<treecell class="treecell-header sortDirectionIndicator" observes="SortNameColumn" align="center" value="&results.label;" resource="http://home.netscape.com/NC-rdf#Name" onclick="return doSort('SortNameColumn', 'http://home.netscape.com/NC-rdf#PageRank');" sortActive="true" sortDirection="ascending" flex="1"/>
</treerow>
</treehead>
<treecol style="width: 100%;" flex="100%" rdf:resource="http://home.netscape.com/NC-rdf#PageRank" rdf:resource2="http://home.netscape.com/NC-rdf#Name" />
// magic, hidden secondary column used for sorting
<treecol style="width: 0;" id="SortNameColumn" rdf:resource="http://home.netscape.com/NC-rdf#Name" />
</tree>
<box align="horizontal">
<spring flex="1" />
<button id="saveQueryButton" value="&savesearch.button.label;" onclick="return saveSearch();" class="dialog toolbar-non-iconic"/>
<spring flex="1" />
</box>
</box>
<!-- advanced panel -->
<box align="vertical" class="searchpanel-outerbox" flex="1">
<tree align="horizontal" id="searchengines" datasources="rdf:internetsearch" flex="100%" class="inset" style="width:100%; height=100%;">
<treecol id="CheckboxColumn" class="checkboxColumn" />
<treecol id="NameColumn" rdf:resource="http://home.netscape.com/NC-rdf#Name" />
<template>
<template>
<rule rdf:type="http://home.netscape.com/NC-rdf#BookmarkSeparator">
<treechildren>
<treeitem uri="..." loading="rdf:http://home.netscape.com/NC-rdf#loading" >
<treeitem uri="...">
<treerow>
<treecell allowevents="true">
<checkbox onclick="doCheck(this)" />
</treecell>
<treecell>
<titledbutton class="iconic" flex="1" crop="right" align="left" src="rdf:http://home.netscape.com/NC-rdf#Icon" value="rdf:http://home.netscape.com/NC-rdf#Name" />
<separator class="groove"/>
</treecell>
</treerow>
</treeitem>
</treechildren>
</template>
</rule>
<rule>
<treechildren>
<treeitem uri="..." persist="open"
loading="rdf:http://home.netscape.com/NC-rdf#loading"
searchtype="rdf:http://home.netscape.com/NC-rdf#SearchType"
type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
<treerow class="searchresult">
<treecell class="treecell-iconic"
src="rdf:http://home.netscape.com/NC-rdf#Icon"
value="rdf:http://home.netscape.com/NC-rdf#Name" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
<treehead>
<treerow>
<treecell class="treecell-header sortDirectionIndicator outset" observes="SortNameColumn" align="center" value="&results.label;" resource="http://home.netscape.com/NC-rdf#Name" onclick="return doSort('SortNameColumn', 'http://home.netscape.com/NC-rdf#PageRank');" sortActive="true" sortDirection="ascending" flex="1"/>
</treerow>
</treehead>
<treecol style="width: 100%;" flex="100%" rdf:resource="http://home.netscape.com/NC-rdf#PageRank" rdf:resource2="http://home.netscape.com/NC-rdf#Name" />
<treecol style="width: 0;" id="SortNameColumn" rdf:resource="http://home.netscape.com/NC-rdf#Name" />
</tree>
<box>
<spring flex="1" />
<button id="saveQueryButton" value="&savesearch.button.label;" oncommand="return saveSearch();"/>
<spring flex="1" />
</box>
<treehead>
<treerow>
<treecell class="treecell-header sortDirectionIndicator" value="&checkbox.column.label;" style="width: 23px;"/>
<treecell class="treecell-header sortDirectionIndicator" observes="NameColumn" align="center" value="&engine.column.label;" resource="http://home.netscape.com/NC-rdf#Name" onclick="return doSort('NameColumn', null);" flex="1"/>
</treerow>
</treehead>
</tree>
<box align="horizontal">
<spring flex="1" />
<button id="customizeButton" value="&customize.button.label;" onclick="return doCustomize();" class="dialog toolbar-non-iconic"/>
<spring flex="1" />
</box>
</box>
<box align="vertical" class="searchpanel-outerbox" flex="1">
<box orient="vertical" id="searchengines" datasources="rdf:internetsearch"
flex="1" class="inset color-window" autostretch="never" valign="top">
<template>
<rule>
<checkbox uri="..." loading="rdf:http://home.netscape.com/NC-rdf#loading"
oncommand="doCheck(this);"
src="rdf:http://home.netscape.com/NC-rdf#Icon"
value="rdf:http://home.netscape.com/NC-rdf#Name" />
</rule>
</template>
</box>
<box>
<spring flex="1" />
<button id="customizeButton" value="&customize.button.label;" oncommand="return doCustomize();"/>
<spring flex="1" />
</box>
</box>
</deck>
</window>