<?xml version="1.0"?>
# -*- Mode: HTML -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org viewsource frontend.
# 
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 2003
# the Initial Developer.  All Rights Reserved.
# 
# Contributor(s):
#     Doron Rosenberg <doronr@naboonline.com>
#     Roger B. Sidje <rbs@maths.uq.edu.au>
#     Pierre Chanial <p_ch@verizon.net>
#     Blake Ross     <blake@cs.stanford.edu>
#     Jeff Walden <jwalden+code@mit.edu>
#     Jason Barnabe <jason_barnabe@fastmail.fm>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the LGPL or the GPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
#***** END LICENSE BLOCK ***** -->

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 
<?xml-stylesheet href="chrome://global/content/viewSource.css" type="text/css"?>
<?xml-stylesheet href="chrome://mozapps/skin/viewsource/viewsource.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
<?xul-overlay href="chrome://global/content/charsetOverlay.xul"?>

<!DOCTYPE window [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % sourceDTD SYSTEM "chrome://global/locale/viewSource.dtd" >
%sourceDTD;
]>

<window id="viewSource"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="onLoadViewSource();"
        onunload="onUnloadViewSource();"
        contenttitlesetting="true"
        title="&mainWindow.title;" 
        titlemodifier="&mainWindow.titlemodifier;" 
        titlepreface="&mainWindow.preface;"
        titlemenuseparator ="&mainWindow.titlemodifierseparator;"  
        windowtype="navigator:view-source"
        width="640" height="480"
        screenX="10" screenY="10"
        persist="screenX screenY width height sizemode">

  <script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
  <script type="application/javascript" src="chrome://global/content/printUtils.js"/>
  <script type="application/javascript" src="chrome://global/content/viewSource.js"/>
  <script type="application/javascript" src="chrome://global/content/viewZoomOverlay.js"/>
  <script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
  
  <stringbundle id="viewSourceBundle" src="chrome://global/locale/viewSource.properties"/>

  <command id="cmd_savePage" oncommand="ViewSourceSavePage();"/>
  <command id="cmd_print" oncommand="PrintUtils.print();"/>
  <command id="cmd_printpreview" oncommand="PrintUtils.printPreview(onEnterPP, onExitPP);"/>
  <command id="cmd_pagesetup" oncommand="PrintUtils.showPageSetup();"/>
  <command id="cmd_close" oncommand="window.close();"/>
  <commandset id="editMenuCommands"/>
  <command id="cmd_find"
           oncommand="document.getElementById('FindToolbar').onFindCommand();"/>
  <command id="cmd_findAgain"
           oncommand="document.getElementById('FindToolbar').onFindAgainCommand(false);"/>
  <command id="cmd_findPrevious"
           oncommand="document.getElementById('FindToolbar').onFindAgainCommand(true);"/>
  <command id="cmd_reload" oncommand="ViewSourceReload();"/>
  <command id="cmd_goToLine" oncommand="ViewSourceGoToLine();" disabled="true"/>
  <command id="cmd_highlightSyntax" oncommand="highlightSyntax();"/>
  <command id="cmd_wrapLongLines" oncommand="wrapLongLines()"/>
  <command id="cmd_textZoomReduce" oncommand="ZoomManager.reduce();"/>
  <command id="cmd_textZoomEnlarge" oncommand="ZoomManager.enlarge();"/>
  <command id="cmd_textZoomReset" oncommand="ZoomManager.reset();"/>

  <command id="Browser:Back" oncommand="BrowserBack();" observes="viewSourceNavigation"/>
  <command id="Browser:Forward" oncommand="BrowserForward();" observes="viewSourceNavigation"/>

  <broadcaster id="viewSourceNavigation"/>

  <keyset id="editMenuKeys"/>
  <keyset id="viewSourceKeys">
    <key id="key_savePage" key="&savePageCmd.commandkey;" modifiers="accel" command="cmd_savePage"/>
    <key id="key_print" key="&printCmd.commandkey;" modifiers="accel" command="cmd_print"/>
    <key id="key_close" key="&closeCmd.commandkey;" modifiers="accel" command="cmd_close"/>
    <key id="key_goToLine"     key="&goToLineCmd.commandkey;"  command="cmd_goToLine"  modifiers="accel"/>

    <key id="key_textZoomEnlarge" key="&textEnlarge.commandkey;" command="cmd_textZoomEnlarge" modifiers="accel"/>
    <key id="key_textZoomEnlarge2" key="&textEnlarge.commandkey2;" command="cmd_textZoomEnlarge" modifiers="accel"/>
    <key id="key_textZoomEnlarge3" key="&textEnlarge.commandkey3;" command="cmd_textZoomEnlarge" modifiers="accel"/>
    <key id="key_textZoomReduce"  key="&textReduce.commandkey;" command="cmd_textZoomReduce" modifiers="accel"/>
    <key id="key_textZoomReduce2"  key="&textReduce.commandkey2;" command="cmd_textZoomReduce" modifiers="accel"/>
    <key id="key_textZoomReset" key="&textReset.commandkey;" command="cmd_textZoomReset" modifiers="accel"/>
    <key id="key_textZoomReset2" key="&textReset.commandkey2;" command="cmd_textZoomReset" modifiers="accel"/>

    <key id="key_reload" key="&reloadCmd.commandkey;" command="cmd_reload" modifiers="accel"/>
    <key key="&reloadCmd.commandkey;" command="cmd_reload" modifiers="accel,shift"/>
    <key keycode="VK_F5" command="cmd_reload"/>
    <key keycode="VK_F5" command="cmd_reload" modifiers="accel"/>
    <key id="key_find" key="&findOnCmd.commandkey;" command="cmd_find" modifiers="accel"/>
    <key id="key_findAgain" key="&findAgainCmd.commandkey;" command="cmd_findAgain" modifiers="accel"/>
    <key id="key_findPrevious" key="&findAgainCmd.commandkey;" command="cmd_findPrevious" modifiers="accel,shift"/>
    <key keycode="&findAgainCmd.commandkey2;" command="cmd_findAgain"/>
    <key keycode="&findAgainCmd.commandkey2;"  command="cmd_findPrevious" modifiers="shift"/>

    <key keycode="VK_BACK" command="Browser:Back"/>
    <key keycode="VK_BACK" command="Browser:Forward" modifiers="shift"/>
#ifndef XP_MACOSX
    <key id="goBackKb" keycode="VK_LEFT" command="Browser:Back" modifiers="alt"/>
    <key id="goForwardKb" keycode="VK_RIGHT" command="Browser:Forward" modifiers="alt"/>
#else
    <key id="goBackKb" keycode="VK_LEFT" command="Browser:Back" modifiers="accel" />
    <key id="goForwardKb" keycode="VK_RIGHT" command="Browser:Forward" modifiers="accel" />
#endif
#ifdef XP_UNIX
    <key id="goBackKb2" key="&goBackCmd.commandKey;" command="Browser:Back" modifiers="accel"/>
    <key id="goForwardKb2" key="&goForwardCmd.commandKey;" command="Browser:Forward" modifiers="accel"/>
#endif

  </keyset>

  <popup id="viewSourceContextMenu">
    <menuitem id="context-back"
              label="&backCmd.label;"
              accesskey="&backCmd.accesskey;"
              command="Browser:Back"
              observes="viewSourceNavigation"/>
    <menuitem id="context-forward"
              label="&forwardCmd.label;"
              accesskey="&forwardCmd.accesskey;"
              command="Browser:Forward"
              observes="viewSourceNavigation"/>
    <menuseparator observes="viewSourceNavigation"/>
    <menuitem id="cMenu_findAgain"/>
    <menuseparator/>
    <menuitem id="cMenu_copy"/>
    <menuseparator/>
    <menuitem id="cMenu_selectAll"/>
  </popup>

  <!-- Menu --> 
  <toolbox id="viewSource-toolbox">
    <menubar id="viewSource-main-menubar">

      <menu id="menu_file" label="&fileMenu.label;" accesskey="&fileMenu.accesskey;">
        <menupopup id="filemenu-popup">
          <menuitem key="key_savePage" command="cmd_savePage" id="menu_savePage"
                    label="&savePageCmd.label;" accesskey="&savePageCmd.accesskey;"/>
          <menuitem command="cmd_pagesetup" id="menu_pageSetup"
                    label="&pageSetupCmd.label;" accesskey="&pageSetupCmd.accesskey;"/>
#ifndef XP_MACOSX
          <menuitem command="cmd_printpreview" id="menu_printPreview"
                    label="&printPreviewCmd.label;" accesskey="&printPreviewCmd.accesskey;"/>
#endif
          <menuitem key="key_print" command="cmd_print" id="menu_print"
                    label="&printCmd.label;" accesskey="&printCmd.accesskey;"/>
          <menuseparator/>
          <menuitem key="key_close" command="cmd_close" id="menu_close"
                    label="&closeCmd.label;" accesskey="&closeCmd.accesskey;"/>
        </menupopup>
      </menu>

      <menu id="menu_edit">
        <menupopup id="editmenu-popup">
          <menuitem id="menu_undo"/>
          <menuitem id="menu_redo"/>
          <menuseparator/>
          <menuitem id="menu_cut"/>
          <menuitem id="menu_copy"/>
          <menuitem id="menu_paste"/>
          <menuitem id="menu_delete"/>
          <menuseparator/>
          <menuitem id="menu_selectAll"/>
          <menuseparator/>
          <menuitem id="menu_find"/>
          <menuitem id="menu_findAgain"/>
          <menuseparator/>
          <menuitem id="menu_goToLine" key="key_goToLine" command="cmd_goToLine"
                    label="&goToLineCmd.label;" accesskey="&goToLineCmd.accesskey;"/>
        </menupopup>
      </menu>

      <menu id="menu_view" label="&viewMenu.label;" accesskey="&viewMenu.accesskey;">
        <menupopup id="viewmenu-popup">
          <menuitem id="menu_reload" command="cmd_reload" accesskey="&reloadCmd.accesskey;"
                    label="&reloadCmd.label;" key="key_reload"/>
          <menuseparator />
          <menu id="viewTextZoomMenu" label="&menu_textSize.label;" accesskey="&menu_textSize.accesskey;">
            <menupopup>                    
              <menuitem id="menu_textEnlarge" command="cmd_textZoomEnlarge" 
                        label="&menu_textEnlarge.label;" accesskey="&menu_textEnlarge.accesskey;"
                        key="key_textZoomEnlarge"/>
              <menuitem id="menu_textReduce" command="cmd_textZoomReduce" 
                        label="&menu_textReduce.label;" accesskey="&menu_textReduce.accesskey;"
                        key="key_textZoomReduce"/>
              <menuseparator/>
              <menuitem id="menu_textReset" command="cmd_textZoomReset"
                        label="&menu_textReset.label;" accesskey="&menu_textReset.accesskey;"
                        key="key_textZoomReset"/>
            </menupopup>
          </menu>
          <menu id="charsetMenu"/>
          <menuseparator/>
          <menuitem id="menu_wrapLongLines" type="checkbox" command="cmd_wrapLongLines"
                    label="&menu_wrapLongLines.title;" accesskey="&menu_wrapLongLines.accesskey;"/>
          <menuitem type="checkbox" id="menu_highlightSyntax" command="cmd_highlightSyntax"
                    label="&menu_highlightSyntax.label;" accesskey="&menu_highlightSyntax.accesskey;"/>
        </menupopup>
      </menu>
    </menubar>  
  </toolbox>

  <vbox id="appcontent" flex="1" ondrop="contentAreaDNDObserver.drop(event);">

    <browser id="content" type="content-primary" name="content" src="about:blank" flex="1"
             context="viewSourceContextMenu" showcaret="true"/>
    <findbar id="FindToolbar" browserid="content"/>
  </vbox> 

  <statusbar id="status-bar" class="chromeclass-status">
    <statusbarpanel id="statusbar-line-col" label="" flex="1"/>
  </statusbar>

</window>
