31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
|
// 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);
|
||
|
});
|
||
|
});
|