<?xml version="1.0"?> <!-- -*- Mode: HTML; indent-tabs-mode: nil -*- -->
<!--

 This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->

<!-- This overlay requires that the files it overlays has the menupopup
     contentAreaContextMenu defined for context menus to work correctly in
     certain custom tabs -->

<?xml-stylesheet href="chrome://communicator/content/sidebar/sidebarOverlay.css" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/sidebar/sidebar.css" type="text/css"?>

<!DOCTYPE overlay [
<!ENTITY % sidebarOverlayDTD SYSTEM "chrome://communicator/locale/sidebar/sidebarOverlay.dtd" >
%sidebarOverlayDTD;
]>

<overlay id="sidebarOverlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <!-- Overlay of broadcasterset to get our panels in -->
  <broadcasterset id="mainBroadcasterSet">
    <broadcaster id="viewBookmarksSidebar"
                 autoCheck="false"
                 type="checkbox"
                 group="sidebar"
                 sidebartitle="&sidebar.client-bookmarks.label;"
                 sidebarurl="chrome://communicator/content/bookmarks/bm-panel.xul"
                 oncommand="toggleSidebar('viewBookmarksSidebar');"/>
    <broadcaster id="viewHistorySidebar"
                 autoCheck="false"
                 type="checkbox"
                 group="sidebar"
                 sidebartitle="&sidebar.client-history.label;"
                 sidebarurl="chrome://communicator/content/history/history-panel.xul"
                 oncommand="toggleSidebar('viewHistorySidebar');"/>
  </broadcasterset>

  <command id="toggleSidebar" oncommand="SidebarShowHide();"/>
  <key id="showHideSidebar" command="toggleSidebar"/>
  <menupopup id="sidebarPopup"
    onpopupshowing="SidebarInitContextMenu(this, document.popupNode);">
    <menuitem id="switch-ctx-item" label="&sidebar.switch.label;"
              accesskey="&sidebar.switch.accesskey;" default="true"
              oncommand="SidebarSelectPanel(document.popupNode,false,false);"/>
    <menuitem id="reload-ctx-item" label="&sidebar.reload.label;"
              accesskey="&sidebar.reload.accesskey;" disabled="true"
              oncommand="SidebarReloadPanel(document.popupNode);"/>
    <menuitem id="stop-ctx-item" label="&sidebar.loading.stop.label;"
              accesskey="&sidebar.loading.stop.accesskey;" disabled="true"
              oncommand="SidebarStopPanelLoad(document.popupNode);"/>
    <menuseparator/>
    <menuitem id="hide-ctx-item" label="&sidebar.hide.label;"
              accesskey="&sidebar.hide.accesskey;"
              oncommand="SidebarTogglePanel(document.popupNode);"/>
    <menuseparator/>
    <menuitem id="customize-ctx-item" label="&sidebar.customize.label;"
              accesskey="&sidebar.customize.accesskey;"
              oncommand="SidebarCustomize();"/>
  </menupopup>

  <!-- Overlay the sidebar panels -->
  <vbox id="sidebar-box" hidden="true" persist="hidden width collapsed">
    <splitter id="sidebar-panels-splitter" collapse="after" persist="state"
      onmouseup="PersistHeight();" hidden="true">
      <grippy/>
    </splitter>
    <vbox id="sidebar-panels-splitter-box" flex="1"
      persist="collapsed">
      <sidebarheader id="sidebar-title-box" class="sidebarheader-main"
        label="&sidebar.panels.label;" persist="hidden" type="box"
        collapse="after" onmouseup="PersistHeight();"
        tooltipopen="&sidebar.open.tooltip;"
        tooltipclose="&sidebar.close.tooltip;">
        <toolbarbutton type="menu" id="sidebar-panel-picker" class="tabbable"
          onpopupshowing="SidebarBuildPickerPopup();"
          label="&sidebar.picker.label;" >
          <menupopup id="sidebar-panel-picker-popup"
            datasources="rdf:null"
            ref="urn:sidebar:current-panel-list"
            oncommand="SidebarTogglePanel(event.target);" >
            <template>
              <rule>
                <conditions>
                  <content uri="?uri"/>
                  <triple subject="?uri"
                    predicate="http://home.netscape.com/NC-rdf#panel-list"
                    object="?panel-list"/>
                  <member container="?panel-list" child="?panel"/>
                  <triple subject="?panel"
                    predicate="http://home.netscape.com/NC-rdf#title"
                    object="?title" />
                </conditions>
                <bindings>
                  <binding subject="?panel"
                    predicate="http://home.netscape.com/NC-rdf#exclude"
                    object="?exclude"/>
                  <binding subject="?panel"
                    predicate="http://home.netscape.com/NC-rdf#prereq"
                    object="?prereq"/>
                </bindings>
                <action>
                  <menuitem uri="?panel" type="checkbox" class="menuitem-sidebar"
                    label="?title" exclude="?exclude" prereq="?prereq"/>
                </action>
              </rule>
            </template>
            <menuitem label="&sidebar.customize.label;" accesskey="&sidebar.customize.accesskey;"
                      oncommand="SidebarCustomize();" />
            <menuitem label="&sidebar.sbDirectory.label;"
                      oncommand="BrowseMorePanels();" />
            <menuseparator />
          </menupopup>
        </toolbarbutton>
        <toolbarbutton id="sidebar-close-button" oncommand="SidebarShowHide();"
                       tooltiptext="&sidebar.close.tooltip;"/>
      </sidebarheader>

      <vbox id="sidebar-panels"
        datasources="rdf:null"
        ref="urn:sidebar:current-panel-list"
        last-selected-panel="urn:sidebar:panel:bookmarks"
        persist="last-selected-panel height collapsed" flex="1"
        onclick="return contentAreaClick(event);">
        <template id="sidebar-template">
          <rule>
            <conditions>
              <content uri="?uri"/>
              <triple subject="?uri" object="?panel-list"
                predicate="http://home.netscape.com/NC-rdf#panel-list" />
              <member container="?panel-list" child="?panel"/>
              <triple subject="?panel" object="?title"
                predicate="http://home.netscape.com/NC-rdf#title" />
              <triple subject="?panel" object="?content"
                predicate="http://home.netscape.com/NC-rdf#content" />
            </conditions>
            <bindings>
              <binding subject="?panel" object="?exclude"
                predicate="http://home.netscape.com/NC-rdf#exclude" />
              <binding subject="?panel" object="?prereq"
                predicate="http://home.netscape.com/NC-rdf#prereq" />
            </bindings>
            <action>
              <hbox uri="?panel" class="box-texttab texttab-sidebar"
                oncommand="SidebarSelectPanel(this,false,false)"
                hidden="true" label="?title" exclude="?exclude"
                prereq="?prereq" context="sidebarPopup"/>
              <vbox uri="?panel" flex="1" hidden="true"
                loadstate="never loaded">
                <vbox flex="1" class="iframe-panel loadarea">
                  <hbox flex="1" align="center">
                    <image class="image-panel-loading"/>
                    <label class="text-panel-loading"
                      value="&sidebar.loading.label;"/>
                    <label class="text-panel-loading" hidden="true"
                      loading="false"
                      value="&sidebar.loadstopped.label;"/>
                    <button type="stop" label="&sidebar.loading.stop.label;"
                            oncommand="SidebarStopPanelLoad(this.parentNode.parentNode.parentNode.previousSibling);"/>
                    <button label="&sidebar.reload.label;" hidden="true"
                            oncommand="SidebarReload();"/>
                  </hbox>
                  <spacer flex="100%"/>
                </vbox>
                <notificationbox flex="1" collapsed="true" class="sidebar-notificationbox browser-notificationbox">
                  <browser flex="1" class="browser-sidebar" src="about:blank"
                           hidden="true" collapsed="true" content="?content"
                           disablehistory="true"/>
                  <browser flex="1" class="browser-sidebar" src="about:blank"
                           hidden="true" collapsed="true" content="?content"
                           type="content" context="contentAreaContextMenu"
                           disablehistory="true" tooltip="aHTMLTooltip"/>
                </notificationbox>
              </vbox>
            </action>
          </rule>
        </template>
        <vbox id="sidebar-iframe-no-panels" class="iframe-panel" flex="1"
          hidden="true">
          <description>&sidebar.no-panels.state;</description>
          <description>&sidebar.no-panels.add;</description>
          <description>&sidebar.no-panels.hide;</description>
        </vbox>
      </vbox>
      <vbox flex="0">
        <hbox id="nav-buttons-box" hidden="true">
          <toolbarbutton flex="1" pack="center"
            class="sidebar-nav-button tab-fwd" onclick="SidebarNavigate(-1);"/>
          <toolbarbutton flex="1" pack="center"
            class="sidebar-nav-button tab-back" onclick="SidebarNavigate(1);"/>
        </hbox>
      </vbox>
    </vbox>
  </vbox>

  <!-- Splitter on the right of sidebar -->
  <splitter id="sidebar-splitter" collapse="before" persist="state hidden"
    class="chromeclass-extrachrome sidebar-splitter" align="center"
    hidden="true" onmouseup="SidebarFinishClick();">
    <grippy class="sidebar-splitter-grippy"
      onclick="SidebarCleanUpExpandCollapse();"/>
  </splitter>

  <!-- View->Sidebar toggle -->
  <menupopup id="menu_View_Popup">
    <menu id="menu_Toolbars">
      <menupopup id="view_toolbars_popup">
        <menuseparator/>
        <menuitem id="sidebar-menu" type="checkbox"
          label="&sidebarCmd.label;"
          accesskey="&sidebarCmd.accesskey;"
          command="toggleSidebar"
          key="showHideSidebar"/>
      </menupopup>
    </menu>
  </menupopup>

  <!-- Scripts go last, because they peek at state to tweak menus -->
  <script type="application/javascript"
    src="chrome://communicator/content/sidebar/sidebarOverlay.js"/>

</overlay>

