jam/js/x11/core/examples/simple/getprop.js

31 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-07-21 23:02:04 +02:00
// 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);
});
});