From 9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Apr 2025 18:48:02 +0100 Subject: initial --- site/app/twigs/twigs_ui.js | 577 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 577 insertions(+) create mode 100644 site/app/twigs/twigs_ui.js (limited to 'site/app/twigs/twigs_ui.js') diff --git a/site/app/twigs/twigs_ui.js b/site/app/twigs/twigs_ui.js new file mode 100644 index 0000000..1186dac --- /dev/null +++ b/site/app/twigs/twigs_ui.js @@ -0,0 +1,577 @@ +var twigsTopMenuData = [ + {name: "File", contents: [ + {name: "New", disableOnPlay: true, shortcut: {name: "Ctrl N", ctrlKey: true, key: "n"}, click: function(twigs) { + twigs.createNewInstance(); + }}, + {name: "Save", disableOnPlay: true, shortcut: {name: "Ctrl S", ctrlKey: true, key: "s"}, click: function(twigs) { + twigs.saveFile(); + }}, + {name: "Close", disableOnPlay: true, shortcut: {name: "Ctrl W", ctrlKey: true, key: "w"}, click: function(twigs) { + twigs.closeInstance(); + }, condition: function(twist) { + return (!twist.twine); + }}, + {name: "Edit in twist", click: function(twigs) { + twigs.editInTwist(); + }, condition: function(twigs) { + return window.hasOwnProperty("Twist"); + }} + ]}, + {name: "Edit", contents: [ + {name: "Undo", disableOnPlay: true, shortcut: {name: "Ctrl Z", ctrlKey: true, key: "z"}, click: function(twigs) { + twigs.undo(); + }, condition: function(twigs) { + return (twigs.storage.maxundo > 0 && twigs.undoLevel > 0); + }} + ]}, + {name: "View", contents: [ + {name: "Contract channels", shortcut: {name: "C", key: "c"}, click: function(twigs) { + twigs.timeline.contractChannels(); + }} + ]}, + {name: "Action", contents: []}, + {name: "Options", contents: [ + {name: "Settings", click: function(twigs) { + twigs.ui.showSettings(); + }} + ]}, + {name: "Help", contents: [ + {name: "Help", click: function(twigs){ + $("#twigs_documentation")[0].click(); + }}, + {name: "Report bug", click: function(twist){ + $("#twigs_reportbug")[0].click(); + }}, + {name: "Contact owner", click: function(twist){ + $("#twigs_contact")[0].click(); + }}, + {name: "About", click: function(twigs) { + twigs.ui.showAbout(); + }}, + ]} +]; + +var TwigsUI = function(twigs) { + var ui = this; + var el = $("#twigs_sidebar"); + var elEditor = $("#twigs_editor_inner"); + + ui.showLoadFileFFTPrompt = function(onComplete) { + var t = $(""); + var tb = $("").appendTo(t); + var ksmps = 64; + + var tr = $("").appendTo(tb); + $("").appendTo(tb); + $("").appendTo($("
").text("FFT size").appendTo(tr); + + var fftSize = $("").appendTo(tr).append(fftSize); + for (let o of [256, 512, 1024, 2048]) { + $("
").text("FFT decimation").appendTo(tr); + var fftDecim = $("").appendTo(tr).append(fftDecim); + + function updateDecimation() { + fftDecim.empty(); + var max = fftSize.val() / 64; + var min = max / 2; + for (let o of [min, max]) { + $("
").appendTo(el)); + var icol = 0; + var first; + for (let row of icons) { + var tr = $("").appendTo(tb); + for (let col of row) { + let icon = addIcon(col); + if (!first) first = icon; + if (col.group) { + if (!icon_groups[col.group]) icon_groups[col.group] = []; + icon_groups[col.group].push(icon); + } + var td = $("
").append(icon.el).appendTo(tr); + if (col.bgColor) { + td.css("background-color", "var(--bgColor" + col.bgColor + ")"); + } + icons[col.key] = icon; + } + } + first.click(); + } + + create(); + var topMenu = new twirl.TopMenu(twigs, twigsTopMenuData, $("#twigs_menubar")); +}; \ No newline at end of file -- cgit v1.2.3