<?xml version="1.0"?>

<!--
Can't yet put script tags in XBL (hyatt has the bug)
  <script type="application/x-javascript" src="chrome://embed/content/nsTransferable.js"/>
  <script type="application/x-javascript" src="chrome://embed/content/nsClipboard.js"/>
  <script type="application/x-javascript" src="chrome://embed/content/nsDragAndDrop.js"/>
-->

<bindings id="htmlBindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <binding id="browserBase">
    <handlers>

      <handler event="draggesture">
<!--
         nsDragAndDrop.startDrag(event, contentAreaDNDObserver);
-->
      </handler>
      <handler event="dragover">
<!--
         nsDragAndDrop.dragOver(event, contentAreaDNDObserver);
-->
      </handler>
      <handler event="dragdrop">
<!--
         nsDragAndDrop.drop(event, contentAreaDNDObserver);
-->
      </handler>

      <!-- Emacs keys -->
      <handler event="keypress" keycode="VK_BACK" command="cmd_scrollPageUp" />
      <handler event="keypress" key=" " command="cmd_scrollPageDown" />
      <handler event="keypress" key="v" modifiers="alt" command="cmd_scrollPageUp" />
      <handler event="keypress" key="v" modifiers="control" command="cmd_scrollPageDown" />
      <handler event="keypress" key="p" modifiers="control" command="cmd_scrollLineUp" />
      <handler event="keypress" key="n" modifiers="control" command="cmd_scrollLineDown" />
      <handler event="keypress" key="b" modifiers="control" command="cmd_scrollLeft" />
      <handler event="keypress" key="f" modifiers="control" command="cmd_scrollRight" />
      <handler event="keypress" key="a" modifiers="control" command="cmd_scrollBeginLine"/>
      <handler event="keypress" key="e" modifiers="control" command="cmd_scrollEndLine"/>
      <handler event="keypress" key="&lt;" modifiers="alt" command="cmd_scrollTop"/>
      <handler event="keypress" key="&gt;" modifiers="alt" command="cmd_scrollBottom"/>
      <handler event="keypress" key="_" modifiers="control" command="cmd_undo"/>
      <handler event="keypress" key="y" modifiers="control" command="cmd_paste"/>
      <!-- A-w is temporary. Don't have emacs mark yet. -->
      <handler event="keypress" key="w" command="cmd_copy" modifiers="alt"/>
<!--       <handler event="keypress" key="x" command="cmd_cut" 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" key="/" command="cmd_findTypeText"/> -->
<!--       <handler event="keypress" key="'" command="cmd_findTypeLinks"/> -->
    </handlers>
  </binding>

  <binding id="editorBase">
    <handlers>
      <!-- Emacs keys -->
      <handler event="keypress" key="w" command="cmd_copy" modifiers="alt"/>

      <!-- 101 kbd keys. -->
      <handler event="keypress" keycode="VK_LEFT" command="cmd_charPrevious"/>
      <handler event="keypress" keycode="VK_RIGHT" command="cmd_charNext"/>
      <handler event="keypress" keycode="VK_LEFT" command="cmd_selectCharPrevious" modifiers="shift"/>
      <handler event="keypress" keycode="VK_RIGHT" command="cmd_selectCharNext" modifiers="shift"/>
      <handler event="keypress" keycode="VK_UP" command="cmd_linePrevious"/>
      <handler event="keypress" keycode="VK_DOWN" command="cmd_lineNext"/>
      <handler event="keypress" keycode="VK_UP" command="cmd_selectLinePrevious" modifiers="shift"/>
      <handler event="keypress" keycode="VK_DOWN" command="cmd_selectLineNext" modifiers="shift"/>

      <!-- Nasty keys that I'll keep around for now. -->
      <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="v" command="cmd_paste" modifiers="accel"/> -->
<!--       <handler event="keypress" key="a" command="cmd_selectAll" modifiers="accel"/> -->
    </handlers>
  </binding>

  <binding id="inputFieldsBase">
    <handlers>
    <!-- 101 kbd keys -->
    <handler event="keypress" keycode="VK_LEFT" command="cmd_charPrevious"/>
    <handler event="keypress" keycode="VK_RIGHT" command="cmd_charNext"/>
    <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectCharPrevious"/>
    <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectCharNext"/>

    <!-- Nasty keys I'll keep around for now. -->
    <handler event="keypress" key="w" modifiers="alt" command="cmd_copy"/>
    <handler event="keypress" key="a" modifiers="alt" command="cmd_selectAll"/>
    <handler event="keypress" key="z" command="cmd_redo" modifiers="accel,shift" />
    <handler event="keypress" key="z" modifiers="accel" command="cmd_undo"/>
<!--     <handler event="keypress" key="x" modifiers="accel" command="cmd_cut"/> -->
<!--     <handler event="keypress" key="v" modifiers="accel" command="cmd_paste"/> -->
    </handlers>
  </binding>

  <binding id="textAreasBase">
    <handlers>
    <!-- Emacs keys -->
    <handler event="keypress" key="-" modifiers="control,shift" command="cmd_undo"/>

    <!-- 101 kbd keys -->
    <handler event="keypress" keycode="VK_LEFT" command="cmd_charPrevious"/>
    <handler event="keypress" keycode="VK_RIGHT" command="cmd_charNext"/>
    <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectCharPrevious"/>
    <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectCharNext"/>
    <handler event="keypress" keycode="VK_UP" command="cmd_linePrevious"/>
    <handler event="keypress" keycode="VK_DOWN" command="cmd_lineNext"/>
    <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectLinePrevious"/>
    <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectLineNext"/>

    <!-- Nasty keys I'll keep around for now -->
    <handler event="keypress" key="w" modifiers="alt" command="cmd_copy"/>
    <handler event="keypress" key="a" modifiers="alt" command="cmd_selectAll"/>
    <handler event="keypress" key="z" command="cmd_redo" modifiers="accel,shift" />
<!--     <handler event="keypress" key="x" modifiers="accel" command="cmd_cut"/> -->
<!--     <handler event="keypress" key="v" modifiers="accel" command="cmd_paste"/> -->
    </handlers>
  </binding>
</bindings>
