Browse Source

Removed currentPath reference from the sandboox

pull/203/head
Eugenio Parodi 2 years ago
parent
commit
0ac34765cd
  1. 11
      tests/sandbox/sandbox.new.html
  2. 148
      tests/sandbox/standalone.fullscreen.html
  3. 15
      tests/sandbox/standalone.html

11
tests/sandbox/sandbox.new.html

@ -156,15 +156,14 @@
fileUri = urlParams.get("fileUri")
filePath = urlParams.get("filePath")
if (fileUri != null){
ttkProxy.loadFile(fileUri, ttkProxy.currentPath()+"/test_file.py");
loadFile(ttkProxy.currentPath()+"/test_file.py")
ttkProxy.loadFile(fileUri, "test_file.py");
loadFile("test_file.py")
}else if (filePath != null){
loadFile(ttkProxy.currentPath()+"/"+filePath)
loadFile(filePath)
}else{
loadFile(ttkProxy.currentPath()+"/demo/demo.py")
loadFile("demo/demo.py")
}
//loadFile("/home/pyodide/tutorial/calculator/calculator.005.py")
w2ui.sidebar.select(ttkProxy.currentPath()+"/demo/demo.py")
w2ui.sidebar.select("demo/demo.py")
term.write('Starting Demo...\n\r')

148
tests/sandbox/standalone.fullscreen.html

@ -10,11 +10,14 @@
<script src="www/xterm/xterm.js"></script>
<script src="www/xterm-addon-fit/xterm-addon-fit.js"></script>
<script src="www/xterm-addon-unicode11/xterm-addon-unicode11.js"></script>
<link href="www/fontawesome/fontawesome.min.css" rel="stylesheet">
<link href="www/fontawesome/regular.min.css" rel="stylesheet">
<!--
<link href="https://ceccopierangiolieugenio.github.io/binaryRepo/pyTermTk/www/xterm/xterm.css" rel="stylesheet" />
<script src="https://ceccopierangiolieugenio.github.io/binaryRepo/pyTermTk/www/xterm/xterm.js"></script>
<script src="https://ceccopierangiolieugenio.github.io/binaryRepo/pyTermTk/www/xterm-addon-fit/xterm-addon-fit.js"></script>
-->
<script src="js/ttkproxy.js"></script>
</head>
<body>
@ -37,148 +40,27 @@
term.write('xterm.js - Loaded\n\r')
window.addEventListener('resize', (event) => {
setTimeout(()=>{fitAddon.fit()},0.5)
});
fitAddon.fit()
/* pyodide demo */
var pyodide = null
var run = null
var namespace = null
async function main(){
pyodide = await loadPyodide();
let pyodideProxy = {
consoleLog: function(m){
console.log("TTk:",m)
},
termPush: function (s) {
term.write(s);
},
termSize: function () {
return [term.cols, term.rows]
},
setTimeout: function(t, i) {
// console.log("TIME",i,t)
setTimeout(() => ttk_timer(i), t)
},
clearTimeout: function(){
let highestTimeoutId = setTimeout(";");
for (let i = 0 ; i < highestTimeoutId ; i++) {
clearTimeout(i);
}
},
setInterval: function(t, i) {
setTinterval(() => console.log('WIP -> Interval' + i), t)
}
};
pyodide.registerJsModule("pyodideProxy", pyodideProxy);
term.write('Pyodide Proxy - Loaded\n\r')
let zipResponse = await fetch("bin/TermTk.tgz");
let zipBinary = await zipResponse.arrayBuffer();
pyodide.unpackArchive(zipBinary, ".tar.gz");
ttkProxy = new TTkProxy(term)
await ttkProxy.init()
await ttkProxy.loadLib("bin/TermTk.tgz");
term.write('TermTk - Loaded\n\r')
zipResponse = await fetch("bin/demo.tgz");
zipBinary = await zipResponse.arrayBuffer();
pyodide.unpackArchive(zipBinary, ".tar.gz");
await ttkProxy.loadLib("bin/demo.tgz");
term.write('Demos - Loaded\n\r')
term.write('Starting Demo...\n\r')
namespace = pyodide.globals.get("dict")();
pyodide.runPython(`
import sys
import TermTk as ttk
import pyodideProxy
def ttk_input(val):
if ttk.TTkHelper._rootWidget and ttk.TTkHelper._rootWidget._input:
ttk.TTkHelper._rootWidget._input.key_process(val)
def ttk_resize(w,h):
ttk.TTkLog.debug(f"Resize: {w=} {h=}")
if ttk.TTkHelper._rootWidget:
ttk.TTkHelper._rootWidget._win_resize_cb(w,h)
ttk.TTkHelper.rePaintAll()
# TODO: I need to get rid of this:
ttk.TTkTerm.push(ttk.TTkTerm.ALT_SCREEN + ttk.TTkTerm.CLEAR + ttk.TTkTerm.Cursor.HIDE + ttk.TTkTerm.escTitle(ttk.TTkTerm.title))
ttk.TTkTerm.push(ttk.TTkTerm.Mouse.ON)
def ttk_timer(tid):
ttk.TTkTimer.triggerTimerId(tid)
def ttk_log(val):
# hex = [f"0x{ord(x):02x}" for x in val]
ttk.TTkLog.debug("---> "+val.replace("\\033","<ESC>") + " - ")
ttk.TTkHelper.paintAll()
def ttk_clean():
if ttk.TTkHelper._rootWidget:
ttk.TTkTimer.pyodideQuit()
ttk.TTkHelper._rootWidget.quit()
ttk.TTkHelper._focusWidget = None
ttk.TTkHelper._rootCanvas = None
ttk.TTkHelper._rootWidget = None
ttk.TTkHelper._updateBuffer = []
ttk.TTkHelper._updateWidget = []
ttk.TTkHelper._overlay = []
ttk.TTkHelper._shortcut = []
ttk.TTkLog._messageHandler = [message_handler]
def message_handler(mode, context, message):
msgType = "DEBUG"
if mode == ttk.TTkLog.InfoMsg: msgType = "[INFO]"
elif mode == ttk.TTkLog.WarningMsg: msgType = "[WARNING]"
elif mode == ttk.TTkLog.CriticalMsg: msgType = "[CRITICAL]"
elif mode == ttk.TTkLog.FatalMsg: msgType = "[FATAL]"
elif mode == ttk.TTkLog.ErrorMsg: msgType = "[ERROR]"
pyodideProxy.consoleLog(f"{msgType} {context.file} {message}")
# Register the callback to the message handler
ttk.TTkLog.installMessageHandler(message_handler)
`,{ globals: namespace }
);
let ttk_log = namespace.get("ttk_log");
let ttk_input = namespace.get("ttk_input");
let ttk_timer = namespace.get("ttk_timer");
let ttk_resize = namespace.get("ttk_resize");
let ttk_clean = namespace.get("ttk_clean");
term.onResize( (obj) => {
term.reset()
ttk_resize(obj.cols, obj.rows)
});
term.onData((d, evt) => { ttk_input(d) })
pyodide.runPython(`
import sys,os
sys.path.append(os.path.join(sys.path[0],'demo'))
__file__='/home/pyodide/demo/demo.py'
__name__ = "__main__"
os.chdir('/home/pyodide/demo')
`,{ globals: namespace }
);
console.log("Run App")
let content = pyodide.FS.readFile("demo.py", {encoding:'utf8'})
pyodide.runPython(content,{ globals: namespace });
// TODO: I need to get rid of this:
pyodide.runPython(`
# TODO: I need to get rid of this:
ttk.TTkTerm.push(ttk.TTkTerm.ALT_SCREEN + ttk.TTkTerm.CLEAR + ttk.TTkTerm.Cursor.HIDE + ttk.TTkTerm.escTitle(ttk.TTkTerm.title))
ttk.TTkTerm.push(ttk.TTkTerm.Mouse.ON)
`,{ globals: namespace }
);
ttk_log("demo/demo.py - LOADED")
console.log("pippo")
fitAddon.fit()
ttkProxy.preRun()
let file = "demo/demo.py"
let content = ttkProxy.readFile(file)
ttkProxy.run(content, file, 60)
}
main()
</script>

15
tests/sandbox/standalone.html

@ -8,7 +8,9 @@
<link href="www/xterm/xterm.css" rel="stylesheet" />
<script src="www/xterm/xterm.js"></script>
<script src="www/xterm-addon-fit/xterm-addon-fit.js"></script>
<!--
<script src="www/xterm-addon-fit/xterm-addon-fit.js"></script>
-->
<script src="www/xterm-addon-unicode11/xterm-addon-unicode11.js"></script>
<link href="www/fontawesome/fontawesome.min.css" rel="stylesheet">
@ -26,12 +28,12 @@
<script type="text/javascript">
/* xterm.js demo */
/* https://www.npmjs.com/package/xterm-addon-fit */
const fitAddon = new FitAddon.FitAddon();
// const fitAddon = new FitAddon.FitAddon();
/* https://www.npmjs.com/package/xterm-addon-unicode11 */
const unicode11Addon = new Unicode11Addon.Unicode11Addon();
var term = new Terminal({allowProposedApi: true});
term.loadAddon(fitAddon);
// term.loadAddon(fitAddon);
term.loadAddon(unicode11Addon);
term.unicode.activeVersion = '11';
@ -40,7 +42,7 @@
term.write('xterm.js - Loaded\n\r')
fitAddon.fit()
// fitAddon.fit()
/* pyodide demo */
async function main(){
@ -53,14 +55,11 @@
await ttkProxy.loadLib("bin/demo.tgz");
term.write('Demos - Loaded\n\r')
await ttkProxy.loadLib("bin/tutorial.tgz");
term.write('Tutorials - Loaded\n\r')
term.write('Starting Demo...\n\r')
ttkProxy.preRun()
let file = ttkProxy.currentPath()+"/demo/demo.py"
let file = "demo/demo.py"
let content = ttkProxy.readFile(file)
ttkProxy.run(content, file, 60)

Loading…
Cancel
Save