diff --git a/js/x11/core/examples/simple/getprop.js b/js/x11/core/examples/simple/getprop.js new file mode 100644 index 0000000..61d51e3 --- /dev/null +++ b/js/x11/core/examples/simple/getprop.js @@ -0,0 +1,30 @@ +// ChangeProperty/GetProperty / PropertyChange event example + +var x11 = require('../../lib'); +var PropertyChange = x11.eventMask.PropertyChange; + +x11.createClient(function(err, display) { + var X = display.client; + var root = display.screen[0].root; + var wid = X.AllocID(); + X.CreateWindow(wid, root, 0, 0, 400, 300, 0, 0, 0, 0, { eventMask: PropertyChange }); + X.MapWindow(wid); + + // mode: 0 replace, 1 prepend, 2 append + // mode, wid, name, type, format, data + X.ChangeProperty(0, wid, X.atoms.WM_NAME, X.atoms.STRING, 8, 'Hello, NodeJS'); + var interval = setInterval(function() { + X.ChangeProperty(0, wid, X.atoms.WM_NAME, X.atoms.STRING, 8, 'Hello, NodeJS ' + new Date()); + }, 1000); + + X.on('event', function(ev) { + X.GetProperty(0, wid, X.atoms.WM_NAME, X.atoms.STRING, 0, 10000000, function(err, prop) { + if (prop.type == X.atoms.STRING) + prop.data = prop.data.toString(); + console.log(prop.data); + }); + }); + X.on('end', function() { + clearInterval(interval); + }); +});