<?xml version="1.0"?>
<!-- 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/. -->


<bindings id="htmlBindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
  <binding id="inputFields" bindToUntrustedContent="true">
    <handlers>
    <handler event="keypress" keycode="VK_LEFT" command="cmd_moveLeft"/>
    <handler event="keypress" keycode="VK_RIGHT" command="cmd_moveRight"/>
    <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectLeft"/>
    <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectRight"/>

    <handler event="keypress" keycode="VK_UP" command="cmd_moveUp"/>
    <handler event="keypress" keycode="VK_DOWN" command="cmd_moveDown"/>
    <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectUp"/>
    <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectDown"/>

    <!-- Cut/copy/paste/undo -->
    <handler event="keypress" key="c" modifiers="accel" command="cmd_copy"/>
    <handler event="keypress" key="x" modifiers="accel" command="cmd_cut"/>
    <handler event="keypress" key="v" modifiers="accel" command="cmd_paste"/>
    <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
    <handler event="keypress" key="z" modifiers="accel,shift" command="cmd_redo" />

    <handler event="keypress" key="a" modifiers="alt"
        command="cmd_selectAll"/>
    <handler event="keypress" key="y" modifiers="accel"
        command="cmd_redo"/>
    <handler event="keypress" key="z" modifiers="accel,shift" command="cmd_redo"/>
    <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
    </handlers>
  </binding>

  <binding id="textAreas" bindToUntrustedContent="true">
    <handlers>
    <handler event="keypress" keycode="VK_LEFT" command="cmd_moveLeft"/>
    <handler event="keypress" keycode="VK_RIGHT" command="cmd_moveRight"/>
    <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectLeft"/>
    <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectRight"/>

    <handler event="keypress" keycode="VK_UP" command="cmd_moveUp"/>
    <handler event="keypress" keycode="VK_DOWN" command="cmd_moveDown"/>
    <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectUp"/>
    <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectDown"/>

    <!-- Cut/copy/paste/undo -->
    <handler event="keypress" key="c" modifiers="accel" command="cmd_copy"/>
    <handler event="keypress" key="x" modifiers="accel" command="cmd_cut"/>
    <handler event="keypress" key="v" modifiers="accel" command="cmd_paste"/>
    <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
    <handler event="keypress" key="z" modifiers="accel,shift" command="cmd_redo" />
    <handler event="keypress" key="a" modifiers="alt"
        command="cmd_selectAll"/>
    <handler event="keypress" key="y" modifiers="accel"
        command="cmd_redo"/>
    <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
    <handler event="keypress" key="z" modifiers="accel,shift" command="cmd_redo"/>
    </handlers>
  </binding>

  <binding id="browser">
    <handlers>
      <handler event="keypress" key=" " modifiers="shift" command="cmd_scrollPageUp" />
      <handler event="keypress" key=" " command="cmd_scrollPageDown" />

      <handler event="keypress" keycode="VK_UP" command="cmd_moveUp" />
      <handler event="keypress" keycode="VK_DOWN" command="cmd_moveDown" />
      <handler event="keypress" keycode="VK_LEFT" command="cmd_moveLeft" />
      <handler event="keypress" keycode="VK_RIGHT" command="cmd_moveRight" />

      <handler event="keypress" key="x" command="cmd_cut" modifiers="accel"/>
      <handler event="keypress" key="c" command="cmd_copy" modifiers="accel"/>
      <handler event="keypress" key="v" command="cmd_paste" modifiers="accel"/>
      <handler event="keypress" key="z" command="cmd_undo" modifiers="accel"/>
      <handler event="keypress" key="z" command="cmd_redo" modifiers="accel,shift" />
      <handler event="keypress" key="a" command="cmd_selectAll" modifiers="accel"/>
      <handler event="keypress" keycode="VK_PAGE_UP" command="cmd_movePageUp"/>
      <handler event="keypress" keycode="VK_PAGE_DOWN" command="cmd_movePageDown"/>
      <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift" command="cmd_selectPageUp"/>
      <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift" command="cmd_selectPageDown"/>

      <handler event="keypress" keycode="VK_DELETE" modifiers="shift" command="cmd_cut" /> 
      <handler event="keypress" keycode="VK_DELETE" modifiers="control" command="cmd_copy" /> 
      <handler event="keypress" keycode="VK_INSERT" modifiers="control" command="cmd_copy" /> 
      <handler event="keypress" keycode="VK_HOME" command="cmd_beginLine"/>
      <handler event="keypress" keycode="VK_END" command="cmd_endLine"/>
      <handler event="keypress" keycode="VK_HOME" modifiers="shift" command="cmd_selectBeginLine" />
      <handler event="keypress" keycode="VK_END" modifiers="shift" command="cmd_selectEndLine" />
      <handler event="keypress" keycode="VK_HOME" modifiers="control" command="cmd_moveTop"/>
      <handler event="keypress" keycode="VK_END" modifiers="control" command="cmd_moveBottom"/>
      <handler event="keypress" keycode="VK_HOME" modifiers="shift,control" command="cmd_selectTop" /> 
      <handler event="keypress" keycode="VK_END" modifiers="shift,control" command="cmd_selectBottom" /> 

      <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectLeft" />
      <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectRight" />
      <handler event="keypress" keycode="VK_LEFT" modifiers="control" command="cmd_moveLeft2" />
      <handler event="keypress" keycode="VK_RIGHT" modifiers="control" command="cmd_moveRight2" />
      <handler event="keypress" keycode="VK_LEFT" modifiers="control,shift" command="cmd_selectLeft2" />
      <handler event="keypress" keycode="VK_RIGHT" modifiers="control,shift" command="cmd_selectRight2" />

      <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectUp" />
      <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectDown" />
      <handler event="keypress" keycode="VK_UP" modifiers="control" command="cmd_moveUp2" />
      <handler event="keypress" keycode="VK_DOWN" modifiers="control" command="cmd_moveDown2" />
      <handler event="keypress" keycode="VK_UP" modifiers="control,shift" command="cmd_selectUp2" />
      <handler event="keypress" keycode="VK_DOWN" modifiers="control,shift" command="cmd_selectDown2" />

      <handler event="keypress" key="a" modifiers="alt" command="cmd_selectAll"/>
    </handlers>
  </binding>

  <binding id="editor">
    <handlers>
      <handler event="keypress" key=" " modifiers="shift" command="cmd_scrollPageUp" />
      <handler event="keypress" key=" " command="cmd_scrollPageDown" />

      <handler event="keypress" keycode="VK_LEFT" command="cmd_moveLeft"/>
      <handler event="keypress" keycode="VK_RIGHT" command="cmd_moveRight"/>
      <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectLeft"/>
      <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectRight"/>

      <handler event="keypress" keycode="VK_UP" command="cmd_moveUp"/>
      <handler event="keypress" keycode="VK_DOWN" command="cmd_moveDown"/>
      <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectUp"/>
      <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectDown"/>

      <handler event="keypress" key="z" command="cmd_undo" modifiers="accel"/>
      <handler event="keypress" key="z" command="cmd_redo" modifiers="accel,shift" />
      <handler event="keypress" key="x" command="cmd_cut" modifiers="accel"/>
      <handler event="keypress" key="c" command="cmd_copy" modifiers="accel"/>
      <handler event="keypress" key="v" command="cmd_paste" modifiers="accel"/>
      <handler event="keypress" key="v" command="cmd_pasteNoFormatting" modifiers="accel,shift"/>
      <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
      <handler event="keypress" key="z" modifiers="accel,shift" command="cmd_redo"/>
      <handler event="keypress" key="y" modifiers="accel"   command="cmd_redo"/>
      <handler event="keypress" key="a" modifiers="alt" command="cmd_selectAll"/>
    </handlers>
  </binding>
</bindings>
