簡易テキストエディタ

先日のFileクラス等の定義をio.jsというファイルに保存。
それを利用したサンプルということで簡易テキストエディタを作ってみた。

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window title="editor" onload="init()"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="io.js"/>
<script><![CDATA[
function init(){
  t = document.getElementById('txt');
  f = new File();
  t.value = '';
}
function enc(obj){
  t.value = f.conv(obj.label)
}
]]></script>

<menubar>
 <menu label="File"><menupopup>
  <menuitem label="New" oncommand="init()"/>
  <menuitem label="Open..." oncommand="t.value=f.picker().read()"/>
  <menuitem label="Save..." oncommand="f.picker('Save').write(t.value)"/>
  <menuitem label="Save" oncommand="f.write(t.value)"/>
 </menupopup></menu>
 <menu label="View"><menupopup>
  <menuitem type="radio" name="enc" label="UTF-8" oncommand="enc(this)" checked="true"/>
  <menuitem type="radio" name="enc" label="EUC-JP" oncommand="enc(this)"/>
  <menuitem type="radio" name="enc" label="Shift_JIS" oncommand="enc(this)"/>
  <menuitem type="radio" name="enc" label="ISO-2022-JP" oncommand="enc(this)"/>
 </menupopup></menu>
</menubar>

<textbox id="txt" multiline="true" flex="1"/>
</window>