diff --git a/js/x11/examples/simple/embed.js b/js/x11/examples/simple/embed.js new file mode 100644 index 0000000..45bde0c --- /dev/null +++ b/js/x11/examples/simple/embed.js @@ -0,0 +1,37 @@ +var spawn = require('child_process').spawn; +var x11 = require('../../lib'); + +x11.createClient(function(err, display) { + var X = display.client; + var wid = X.AllocID(); + X.CreateWindow(wid, display.screen[0].root, 100, 100, 900, 700, 0, 0, 0, 0, {backgroundPixel: display.screen[0].black_pixel}); + X.MapWindow(wid); + var wid1 = X.AllocID(); + X.CreateWindow(wid1, wid, 10, 10, 380, 680, 0, 0, 0, 0, {backgroundPixel: display.screen[0].white_pixel}); + X.MapWindow(wid1); + var surf = spawn('ssh', ['-X', '-p', '2222', 'laplace@127.0.0.1', 'surf -x -e ' + wid1 + ' http://192.168.43.149:4000']); + surf.winbuf = ''; + surf.stdout.on('data', + function handleWid(buf) + { + surf.winbuf += buf.toString(); + var nl = surf.winbuf.indexOf('\n'); + if (nl != -1) { + var swid = parseInt(surf.winbuf.substring(0, nl)); + X.MoveResizeWindow(swid, 10, 10, 380, 680); + X.MapWindow(swid); + surf.stdout.removeListener('data', handleWid); + //surf.stdout.pipe(process.stdout); + //surf.stderr.pipe(process.stdout); + } + } + ); + var wid2 = X.AllocID(); + X.CreateWindow(wid2, wid, 510, 10, 380, 680, 0, 0, 0, 0, {backgroundPixel: display.screen[0].white_pixel}); + X.MapWindow(wid2); + var xterm = spawn('xterm', ['-into', wid2]); + //console.log(wid, wid1); + // X.on('error', function(err) { console.log(err) }); + // X.on('event', console.log); +}); +