<!DOCTYPE html>
  <head>
    <meta charset='UTF-8'>
    <script type="text/javascript" src="scripts/lib/theme.js"></script>
    <script type="text/javascript" src="scripts/lib/controller.js"></script>
    <script type="text/javascript" src="scripts/ronin.js"></script>
    <script type="text/javascript" src="scripts/source.js"></script>
    <script type="text/javascript" src="scripts/commander.js"></script>
    <script type="text/javascript" src="scripts/surface.js"></script>
    <script type="text/javascript" src="scripts/lisp.js"></script>
    <script type="text/javascript" src="scripts/library.js"></script>
    <link rel="stylesheet" type="text/css" href="links/reset.css"/>
    <link rel="stylesheet" type="text/css" href="links/fonts.css"/>
    <link rel="stylesheet" type="text/css" href="links/main.css"/>
    <link rel="stylesheet" type="text/css" href="links/theme.css"/>
    <title>Ronin</title>
  </head>
  <body>
    <script type="text/javascript">
      const {dialog,app} = require('electron').remote;
      const fs = require('fs');
      const app_path = app.getAppPath();
      const ronin = new Ronin();
      ronin.controller = new Controller();
      ronin.controller.add("default","*","About",() => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Dotgrid'); },"CmdOrCtrl+,");
      ronin.controller.add("default","*","Fullscreen",() => { app.toggleFullscreen() },"CmdOrCtrl+Enter");
      ronin.controller.add("default","*","Hide",() => { app.toggleVisible() },"CmdOrCtrl+H");
      ronin.controller.add("default","*","Inspect",() => { app.inspect() },"CmdOrCtrl+.");
      ronin.controller.add("default","*","Reset",() => { dotgrid.reset(); dotgrid.theme.reset() },"CmdOrCtrl+Backspace");
      ronin.controller.add("default","*","Quit",() => { ronin.source.quit() },"CmdOrCtrl+Q");
      ronin.controller.add("default","File","New",() => { ronin.source.new() },"CmdOrCtrl+N")
      ronin.controller.add("default","File","Save",() => { ronin.source.save() },"CmdOrCtrl+S")
      ronin.controller.add("default","File","Save As",() => { ronin.source.saveAs() },"CmdOrCtrl+Shift+S")
      ronin.controller.add("default","File","Open",() => { ronin.source.open() },"CmdOrCtrl+O")
      ronin.controller.add("default","File","Revert",() => { ronin.source.revert() },"CmdOrCtrl+W")
      ronin.controller.addRole('default', 'Edit', 'undo')
      ronin.controller.addRole('default', 'Edit', 'redo')
      ronin.controller.addRole('default', 'Edit', 'cut')
      ronin.controller.addRole('default', 'Edit', 'copy')
      ronin.controller.addRole('default', 'Edit', 'paste')
      ronin.controller.addRole('default', 'Edit', 'delete')
      ronin.controller.addRole('default', 'Edit', 'selectall')
      ronin.controller.add("default","Project","Run",() => { ronin.commander.run(); },"CmdOrCtrl+R");
      ronin.controller.add("default","Commander","Toggle",() => { ronin.commander.toggle(); },"CmdOrCtrl+K");
      ronin.controller.commit();
      ronin.install(document.body);
      window.addEventListener('load', () => { ronin.start(); })
    </script>
  </body>
</html>