diff --git a/pd/nw/pdcanvas.html b/pd/nw/pdcanvas.html
deleted file mode 100644
index a0b3c27072e699a4ad3f94bbb81fb1a3f98b1db3..0000000000000000000000000000000000000000
--- a/pd/nw/pdcanvas.html
+++ /dev/null
@@ -1,1126 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-  <link rel="stylesheet" type="text/css" href="pdcanvas.css">
-  </head>
-  <body>
-  <input style="display:none;" id="fileDialog" type="file" multiple />
-  <input style="display:none;" id="saveDialog" type="file" nwsaveas nwworkingdir accept=".pd" />
-
-  <input style="display:none;" id="openpanel_dialog" type="file" />
-  <input style="display:none;" id="savepanel_dialog" type="file" nwsaveas nwworkingdir />
-
-
-  <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="patchsvg" height="1000" width="1000" class="noselect">
-  <rect/>
-  </svg>
-  <script>
-    'use strict';
-    var nw = require('nw.gui'); 
-    var pdgui = require('./pdgui.js');
-
-    //var name = pdgui.last_loaded();
-    
-    var l = pdgui.get_local_string;
-
-    console.log("my working dire is " + pdgui.get_pwd());
-    document.getElementById("saveDialog").setAttribute("nwworkingdir", pdgui.get_pwd());
-
-    document.getElementById("fileDialog").setAttribute("nwworkingdir", pdgui.get_pwd());
-    document.getElementById("fileDialog").setAttribute("accept",
-        Object.keys(pdgui.pd_filetypes).toString());
-
-    var last_keydown = "";
-
-    // This gets called from the nw_create_window function in index.html
-    // It provides us with our canvas id from the C side.  Once we have it
-    // we can create the menu and register event callbacks
-    function register_canvas_id(cid) {
-console.log("fuck you");
-        create_popup_menu(cid);
-        add_events(cid);
-        nw_create_patch_window_menus(cid);
-        pdgui.canvas_map(cid);
-    }
-
-
-
-// This could probably be in pdgui.js
-function add_keymods(key, evt) {
-    var shift = evt.shiftKey ? "Shift" : "";
-    var ctrl = evt.ctrlKey ? "Ctrl" : "";
-    return shift + ctrl + key;
-}
-
-function create_popup_menu(name) {
-    // The right-click popup menu
-    var popup_menu = new nw.Menu();
-    pdgui.add_popup(name, popup_menu);
-
-    popup_menu.append(new nw.MenuItem({
-        label: 'Properties',
-        click: function() {
-            pdgui.popup_action(name, 0);
-        }
-    }));
-    popup_menu.append(new nw.MenuItem({
-        label: 'Open',
-        click: function() {
-            pdgui.popup_action(name, 1);
-        }
-    }));
-    popup_menu.append(new nw.MenuItem({
-        label: 'Help',
-        click: function() {
-            pdgui.popup_action(name, 2);
-        }
-    }));
-}
-
-function add_events(name) {
-    document.querySelector("#saveDialog").addEventListener("change", function(evt) {
-        pdgui.saveas_callback(name, this.value);
-        console.log("tried to open something");
-    }, false);
-
-
-    document.querySelector("#fileDialog").addEventListener("change", function(evt) {
-        var file_array = this.value;
-        // reset value so that we can open the same file twice
-        this.value = null;
-        pdgui.menu_open(file_array);
-        console.log("tried to open something");
-    }, false);
-
-    document.querySelector("#openpanel_dialog").addEventListener("change",
-        function(evt) {
-            var file_string = this.value;
-            // reset value so that we can open the same file twice
-            this.value = null;
-            pdgui.file_dialog_callback(file_string);
-            console.log("tried to openpanel something");
-        }, false
-    );
-
-    document.querySelector("#savepanel_dialog").addEventListener("change",
-        function(evt) {
-            var file_string = this.value;
-            // reset value so that we can open the same file twice
-            this.value = null;
-            pdgui.file_dialog_callback(file_string);
-            console.log("tried to savepanel something");
-        }, false
-    );
-
-
-    document.addEventListener("mousemove", function(evt) {
-        //pdgui.gui_post("x: " + evt.pageX + " y: " + evt.pageY +
-        //    " modifier: " + (evt.shiftKey + (evt.ctrlKey << 1)));
-        pdgui.pdsend(name + " motion " + evt.pageX + " " + evt.pageY + " " +
-            (evt.shiftKey + (evt.ctrlKey << 1)));
-        evt.stopPropagation();
-//        evt.preventDefault();
-        return false;
-    });
-
-    document.addEventListener("keydown", function(evt) {
-        var key_code = evt.keyCode; 
-        var hack = null; // hack for unprintable ascii codes
-        switch(key_code) {
-            case 8:
-            case 9:
-            case 10:
-            case 27:
-//            case 32:
-            case 127: hack = key_code; break;
-
-
-            case 37: hack = add_keymods('Left', evt); break;
-            case 38: hack = add_keymods('Up', evt); break;
-            case 39: hack = add_keymods('Right', evt); break;
-            case 40: hack = add_keymods('Down', evt); break;
-            case 33: hack = add_keymods('Prior', evt); break;
-            case 34: hack = add_keymods('Next', evt); break;
-            case 35: hack = add_keymods('End', evt); break;
-            case 36: hack = add_keymods('Home', evt); break;
-
-            // Need to handle Control key, Alt
-
-            case 16: hack = 'Shift'; break;
-            case 17: hack = 'Control'; break;
-            case 18: hack = 'Alt'; break;
-        }
-        if (hack !== null) {
-            pdgui.gui_canvas_sendkey(name, 1, evt, hack);
-            pdgui.set_keymap(key_code, hack);
-        }
-        pdgui.gui_post("keydown time: keycode is " + evt.keyCode);
-        last_keydown = evt.keyCode;
-        evt.stopPropagation();
-    });
-
-    document.addEventListener("keypress", function(evt) {
-        pdgui.gui_canvas_sendkey(name, 1, evt, evt.charCode);
-        pdgui.set_keymap(last_keydown, evt.charCode);
-        pdgui.gui_post("keypress time: charcode is " + evt.charCode);
-        // Don't do things like scrolling on space, arrow keys, etc.
-        evt.stopPropagation();
-        evt.preventDefault();
-    });
-
-    document.addEventListener("keyup", function(evt) {
-        var my_char_code = pdgui.get_char_code(evt.keyCode);
-        pdgui.gui_canvas_sendkey(name, 0, evt, my_char_code);
-        pdgui.gui_post("keyup time: charcode is: " + my_char_code);
-    });
-
-    // just left-clicks for the moment
-    document.onmousedown = function(evt) {
-        //pdgui.gui_post("mousedown: x: " + evt.pageX + " y: " + evt.pageY +
-        //    " button: " + (evt.button + 1) + " modifier: " + (evt.shiftKey + (evt.ctrlKey << 1)));
-        // tk events are one greater than html5...
-        var b = evt.button + 1;
-        var mod;
-        // For some reason right-click sends a modifier value of "8", and canvas_doclick in
-        // g_editor.c depends on that value to do the right thing.  So let's hack...
-        if (b === 3) { // right-click
-            mod = 8;
-        } else {
-            mod = (evt.shiftKey + (evt.ctrlKey << 1)); 
-        }
-        pdgui.pdsend(name + " mouse " + evt.pageX + " " + evt.pageY + " " +
-            b + " " + mod);
-        evt.stopPropagation();
-        evt.preventDefault();
-    }
-
-    document.onmouseup = function(evt) {
-        //pdgui.gui_post("mouseup: x: " + evt.pageX + " y: " + evt.pageY +
-        //    " button: " + (evt.button + 1));
-        pdgui.pdsend(name + " mouseup " + evt.pageX + " " + evt.pageY + " " +
-            (evt.button + 1));
-    }
-
-
-
-
-    // let's handle some events for this window...
-
-    // closing the Window
-    // this isn't actually closing the window yet
-    nw.Window.get().on("close", function() {
-        pdgui.pdsend(name + " menuclose 0");
-    });
-
-
-}
-
-
-
-
-
-
-//nw_create_patch_window_menus(name);
-
-        function menu_generic () {
-            alert("Please implement this");
-        }
-
-        function pdmenu_copy () {
-            alert("Please implement pdmenu_copy"); 
-        }
-
-        function pdmenu_selectall () {
-            alert("Please implement pdmenu_selectall"); 
-        }
-
-        function pdmenu_preferences () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_next_win () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_previous_win () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_parent_win () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_console_win () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_audio_on () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_audio_off () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_test_audio () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_load_meter () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_about_pd () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_manual () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_help_browser () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_l2ork_mailinglist () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_pd_mailinglists () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_forums () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-        function pdmenu_irc () {
-            alert("Please implement pdmenu_preferences"); 
-        }
-
-// Menus for the Patch window
-function nw_create_patch_window_menus (name) {
-
-    // Window menu
-    var windowMenu = new nw.Menu({
-        type: 'menubar'
-    });
-
-    // File menu
-    var fileMenu = new nw.Menu();
-
-    // Add to window menu
-    windowMenu.append(new nw.MenuItem({
-        label: l('menu.file'),
-        submenu: fileMenu
-    }));
-
-    // File sub-entries
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.new'),
-        click: pdgui.menu_new,
-        key: 'n',
-        modifiers: "ctrl",
-        tooltip: l('menu.new_tt')
-    }));
-
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.open'),
-        key: 'o',
-        modifiers: "ctrl",
-        tooltip: l('menu.open_tt'),
-        click: function() {
-            var chooser = document.querySelector('#fileDialog');
-            chooser.click();
-        }
-    }));
-
-    if (pdgui.k12_mode == 1) {
-        fileMenu.append(new nw.MenuItem({
-        label: l('menu.k12_demos'),
-        tooltip: l('menu.k12_demos_tt'),
-        click: pdgui.menu_k12_open_demos
-        }));
-    }
-
-    fileMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    // Note: this must be different for the main Pd window
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.save'),
-        click: function () {
-            pdgui.menu_save(name);
-        },
-        key: 's',
-        modifiers: "ctrl",
-        tooltip: l('menu.save_tt')
-    }));
-
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.saveas'),
-        click: function (){
-            pdgui.menu_saveas(name);
-        },
-        key: 's',
-        modifiers: "ctrl+shift",
-        tooltip: l('menu.saveas_tt')
-    }));
-
-    if (pdgui.k12_mode == 0) {
-        fileMenu.append(new nw.MenuItem({
-            type: 'separator'
-        }));
-    }
-
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.message'),
-        click: pdgui.menu_send,
-        key: 'm',
-        modifiers: "ctrl",
-        tooltip: l('menu.message_tt')
-    }));
-
-    if (pdgui.k12_mode == 0) {
-        fileMenu.append(new nw.MenuItem({
-            type: 'separator'
-        }));
-    }
-
-    // recent files go here
-
-    // anther separator goes here if there are any recent files
-
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.close'),
-        tooltip: l('menu.close_tt'),
-        click: function() {
-            pdgui.menu_close(name);
-        }
-    }));
-
-    // Quit Pd
-    fileMenu.append(new nw.MenuItem({
-        label: l('menu.quit'),
-        click: pdgui.menu_quit,
-        key: 'q',
-        modifiers: "ctrl",
-        tooltip: l('menu.quit_tt')
-    }));
-
-
-    // Edit menu
-    var editMenu = new nw.Menu();
-
-    // Add to window menu
-    windowMenu.append(new nw.MenuItem({
-    label: l('menu.edit'),
-    submenu: editMenu
-    }));
-
-    // Edit sub-entries
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.undo'),
-        click: menu_generic,
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.undo_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.redo'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.redo_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.cut'),
-        click: function () {
-            pdgui.pdsend(name + " cut");
-        },
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.cut_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.copy'),
-        click: function () {
-            pdgui.pdsend(name + " copy");
-        },
-        key: 'x',
-        modifiers: "ctrl",
-        tooltip: l('menu.copy_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.paste'),
-        click: function () {
-            pdgui.pdsend(name + " paste");
-        },
-        key: 'v',
-        modifiers: "ctrl",
-        tooltip: l('menu.paste_tt')
-    }));
-
-
-    editMenu.append(new nw.MenuItem({
-        label:  l('menu.duplicate'),
-        click: function () {
-            pdgui.pdsend(name + " duplicate");
-        },
-        key: 'd',
-        modifiers: "ctrl",
-        tooltip: l('menu.duplicate_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.selectall'),
-        click: function () {
-            pdgui.pdsend(name + " selectall");
-        },
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.selectall_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.reselect'),
-        // Unfortunately nw.js doesn't allow
-        // key: "Return" or key: "Enter", so we
-        // can't bind to ctrl-Enter here. (Even
-        // tried fromCharCode...)
-        click: function () {
-            pdgui.pdsend(name + " reselect");
-        },
-        key: String.fromCharCode(10),
-        modifiers: "ctrl",
-        tooltip: l('menu.reselect_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.zoomin'),
-        click: function () {
-            var z = nw.Window.get().zoomLevel;
-            if (z < 8) { z++; }
-            nw.Window.get().zoomLevel = z;
-            pdgui.gui_post("zoom level is " + nw.Window.get().zoomLevel);
-        },
-        key: '=',
-        modifiers: "ctrl",
-        tooltip: l('menu.zoomin')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.zoomout'),
-        click: function () {
-            var z = nw.Window.get().zoomLevel;
-            if (z > -7) { z--; } 
-            nw.Window.get().zoomLevel = z;
-            pdgui.gui_post("zoom level is " + nw.Window.get().zoomLevel);
-        },
-        key: '-',
-        modifiers: "ctrl",
-        tooltip: l('menu.zoomout_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.tidyup'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.tidyup_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.tofront'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.tofront_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.toback'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.toback_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.font'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.font_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.cordinspector'),
-        click: function() {
-            pdgui.pdsend(name + " magicglass 0");
-        },
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.cordinspector_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.find'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.find_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.findagain'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.findagain')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.finderror'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.finderror_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.autotips'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.autotips_tt'),
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.editmode'),
-        click: function() { pdgui.pdsend(name + " editmode 0"); },
-        key: 'e',
-        modifiers: "ctrl",
-        tooltip: l('menu.editmode_tt')
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    editMenu.append(new nw.MenuItem({
-        label: l('menu.preferences'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.preferences_tt')
-    }));
-
-    // Put menu
-    var putMenu = new nw.Menu();
-
-    // Add to window menu
-    windowMenu.append(new nw.MenuItem({
-    label: l('menu.put'),
-    submenu: putMenu
-    }));
-
-    // Put menu sub-entries
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.object'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " obj 0");
-        },
-        key: '1',
-        modifiers: "ctrl",
-        tooltip: l('menu.object_tt'),
-    }));
-
-/*
-
-proc menu_floatatom {name accel} {
-	pd [concat $name dirty 1 \;]
-    pd [concat $name floatatom $accel \;]
-}
-
-proc menu_symbolatom {name accel} {
-	pd [concat $name dirty 1 \;]
-    pd [concat $name symbolatom $accel \;]
-}
-
-proc menu_comment {name accel} {
-	pd [concat $name dirty 1 \;]
-    pd [concat $name text $accel \;]
-}
-
-proc menu_graph {name} {
-	pd [concat $name dirty 1 \;]
-	set xdraw [expr int([$name.c canvasx 0])]
-	set ydraw [expr int([$name.c canvasy 0])]
-    pd [concat $name graph NULL 0 0 0 0 [expr $xdraw+30] [expr $ydraw+30] 0 [expr $ydraw+30]\;]
-    #pd [concat $name graph \;]
-}
-
-proc menu_array {name} {
-	pd [concat $name dirty 1 \;]
-    pd [concat $name menuarray \;]
-}
-
-
-*/
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.msgbox'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " msg 0");
-        },
-        key: '2',
-        modifiers: "ctrl",
-        tooltip: l('menu.msgbox_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.number'),
-        click: function() { 
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " floatatom 0");
-        },
-        key: '3',
-        modifiers: "ctrl",
-        tooltip: l('menu.number_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.symbol'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " symbolatom 0");
-        },
-        key: '4',
-        modifiers: "ctrl",
-        tooltip: l('menu.symbol_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.comment'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " text 0");
-        },
-        key: '5',
-        modifiers: "ctrl",
-        tooltip: l('menu.comment_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.bang'),
-        click: function(e) {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " bng 0");
-        },
-        key: 'b',
-        modifiers: "ctrl-shift",
-        tooltip: l('menu.bang_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.toggle'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " toggle 0");
-        },
-        key: 't',
-        modifiers: "ctrl-shift",
-        tooltip: l('menu.toggle_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.number2'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " numbox 0");
-        },
-        key: 'n',
-        modifiers: "ctrl-shift",
-        tooltip: l('menu.number2')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.vslider'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " vslider 0");
-        },
-        key: 'v',
-        modifiers: "ctrl-shift",
-        tooltip: l('menu.vslider_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.hslider'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " hslider 0");
-        },
-        key: 'h',
-        modifiers: "ctrl-shift",
-        tooltip: l('menu.hslider_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.vradio'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " vradio 0");
-        },
-        key: 'd',
-        modifiers: "ctrl",
-        tooltip: l('menu.vradio_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.hradio'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " hradio 0");
-        },
-        key: 'i',
-        modifiers: "ctrl",
-        tooltip: l('menu.hradio_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.vu'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " vumeter 0");
-        },
-        key: 'u',
-        modifiers: "ctrl",
-        tooltip: l('menu.vu_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.cnv'),
-        click: function() {
-                   pdgui.pdsend(name + " dirty 1");
-                   pdgui.pdsend(name + " mycnv 0");
-        },
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.cnv_tt')
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.graph'),
-        click: function() {
-            pdgui.pdsend(name + " dirty 1");
-            // leaving out some placement logic... see pd.tk menu_graph
-            pdgui.pdsend(name + " graph NULL 0 0 0 0 30 30 0 30");
-        },
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.graph_tt'),
-    }));
-
-    putMenu.append(new nw.MenuItem({
-        label: l('menu.array'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.array_tt'),
-    }));
-
-
-    // Windows menu... call it "winman" (i.e., window management) to avoid confusion
-    var winmanMenu = new nw.Menu();
-
-    // Add to windows menu
-    windowMenu.append(new nw.MenuItem({
-    label: l('menu.windows'),
-    submenu: winmanMenu
-    }));
-
-    // Winman sub-entries
-    winmanMenu.append(new nw.MenuItem({
-        label: l('menu.nextwin'),
-        click: menu_generic,
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.nextwin_tt'),
-    }));
-
-    winmanMenu.append(new nw.MenuItem({
-        label: l('menu.prevwin'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.prevwin_tt'),
-    }));
-
-    winmanMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    winmanMenu.append(new nw.MenuItem({
-        label: l('menu.parentwin'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.parentwin_tt'),
-    }));
-
-    winmanMenu.append(new nw.MenuItem({
-        label: l('menu.pdwin'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.pdwin_tt'),
-    }));
-
-    // Media menu
-    var mediaMenu = new nw.Menu();
-
-    // Add to window menu
-    windowMenu.append(new nw.MenuItem({
-    label: l('menu.media'),
-    submenu: mediaMenu
-    }));
-
-    // Media sub-entries
-    mediaMenu.append(new nw.MenuItem({
-        label: l('menu.audio_on'),
-        click: menu_generic,
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.audio_on_tt'),
-    }));
-
-    mediaMenu.append(new nw.MenuItem({
-        label: l('menu.audio_off'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.audio_off_tt'),
-    }));
-
-    mediaMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    mediaMenu.append(new nw.MenuItem({
-        label: l('menu.test'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.test_tt'),
-    }));
-
-    mediaMenu.append(new nw.MenuItem({
-        label: l('menu.loadmeter'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.loadmeter_tt'),
-    }));
-
-    // Help menu
-    var helpMenu = new nw.Menu();
-
-    // Add to window menu
-    windowMenu.append(new nw.MenuItem({
-    label: l('menu.help'),
-    submenu: helpMenu
-    }));
-
-    // Help sub-entries
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.about'),
-        click: menu_generic,
-        key: 'c',
-        modifiers: "ctrl",
-        tooltip: l('menu.about_tt'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.manual'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.manual'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.browser'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.browser_tt'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        type: 'separator'
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.l2ork_list'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.l2ork_list_tt'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.pd_list'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.pd_list_tt'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.forums'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.forums_tt'),
-    }));
-
-    helpMenu.append(new nw.MenuItem({
-        label: l('menu.irc'),
-        click: menu_generic,
-        key: 'a',
-        modifiers: "ctrl",
-        tooltip: l('menu.irc_tt'),
-    }));
-
-    // Assign to window
-    nw.Window.get().menu = windowMenu;
-
-}
-
-
-
-/*
-function nw_create_canvas_window_menus(name) {
-	// Window menu
-	var windowMenu = new nw.Menu;
-	var windowMenu = new nw.Menu({
-	    type: 'menubar'
-	});
-
-
-	// File menu
-	var fileMenu = new nw.Menu();
-
-	// Add to window menu
-	windowMenu.append(new nw.MenuItem({
-	    label: 'File',
-	    submenu: fileMenu
-	}));
-
-	// File sub-entries
-	fileMenu.append(new nw.MenuItem({
-	    label: 'New',
-	    click: pdgui.menu_new,
-	    key: 'n',
-	    modifiers: "ctrl"
-	}));
-
-	fileMenu.append(new nw.MenuItem({
-	    label: 'Open',
-	    key: 'o',
-	    modifiers: "ctrl",
-	    click: function (){
-		var chooser = document.querySelector('#fileDialog');
-		chooser.click();
-		chooser.addEventListener("change", function(evt) {
-		    menu_open(this.value);
-		    console.log("tried to open something");
-		}, false);
-	    }
-	}));
-
-	if (pdgui.k12_mode == 1) {
-	    fileMenu.append(new nw.MenuItem({
-		label: 'K12 Demos',
-		click: pdgui.menu_k12_open_demos
-	    }));
-	}
-
-	fileMenu.append(new nw.MenuItem({
-	    type: 'separator'
-	}));
-
-	// Note: this must be different for the main Pd window
-	fileMenu.append(new nw.MenuItem({
-	    label: 'Save',
-	    click: function (){
-		pdgui.menu_save(name);
-	    },
-	    key: 's',
-	    modifiers: "ctrl"
-	}));
-
-	fileMenu.append(new nw.MenuItem({
-	    label: 'Save as...',
-	    click: function (){
-		pdgui.menu_saveas(name);
-	    },
-	    key: 'S',
-	    modifiers: "ctrl"
-	}));
-
-	if (pdgui.k12_mode == 0) {
-	    fileMenu.append(new nw.MenuItem({
-		type: 'separator'
-	    }));
-	}
-
-	// Assign to window
-	nw.Window.get().menu = windowMenu;
-}
-*/
-
-  </script>
-  </body>
-</html>