Mercurial > hg > orthanc-stone
view Resources/CodeGeneration/testWasmIntegrated/testWasmIntegrated.ts @ 496:8b6ceae45ba0 bgo-commands-codegen
Finished (untested) C++, html, typescript, tsc & browserify production.
author | bgo-osimis |
---|---|
date | Sat, 23 Feb 2019 15:04:29 +0100 |
parents | |
children | 6d62fc8a6988 |
line wrap: on
line source
export var SendMessageToStoneApplication: Function = null; function SelectTool(toolName: string) { var command = { command: "selectTool:" + toolName, commandType: "generic-no-arg-command", args: { } }; SendMessageToStoneApplication(JSON.stringify(command)); } (<any> window).StoneFrameworkModule = { preRun: [ function() { console.log('Loading the Stone Framework using WebAssembly'); } ], postRun: [ function() { // This function is called by ".js" wrapper once the ".wasm" // WebAssembly module has been loaded and compiled by the // browser console.log('WebAssembly is ready'); SendMessageToStoneApplication = (<any> window).StoneFrameworkModule.cwrap('SendMessageToStoneApplication', 'string', ['string']); } ], print: function(text : string) { console.log(text); }, printErr: function(text : string) { console.error(text); }, totalDependencies: 0 }; // install "SelectTool" handlers document.querySelectorAll("[tool-selector]").forEach((e) => { (e as HTMLButtonElement).addEventListener("click", () => { SelectTool(e.attributes["tool-selector"].value); }); }); // this method is called "from the C++ code" when the StoneApplication is updated. // it can be used to update the UI of the application function UpdateWebApplication(statusUpdateMessageString: string) { console.log("updating web application: ", statusUpdateMessageString); let statusUpdateMessage = JSON.parse(statusUpdateMessageString); if ("event" in statusUpdateMessage) { let eventName = statusUpdateMessage["event"]; if (eventName == "appStatusUpdated") { //ui.onAppStatusUpdated(statusUpdateMessage["data"]); } } }