52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
|
var x11 = require('../../lib');
|
||
|
var Window = require('./wndwrap');
|
||
|
|
||
|
x11.createClient(function(err, display) {
|
||
|
|
||
|
var pts = [];
|
||
|
new Window(display.client, 0, 0, 700, 500)
|
||
|
.handle({
|
||
|
|
||
|
map: function(ev) {
|
||
|
this.pixmap = this.createPixmap(700, 500);
|
||
|
},
|
||
|
|
||
|
mousemove: function(ev) {
|
||
|
if (this.pressed)
|
||
|
{
|
||
|
var lastpoly = pts[pts.length - 1];
|
||
|
lastpoly.push(ev.x);
|
||
|
lastpoly.push(ev.y);
|
||
|
if (lastpoly.length > 3)
|
||
|
this.gc.polyLine(lastpoly.slice(-4));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
mousedown: function(ev) {
|
||
|
if (ev.keycode == 1) // left button
|
||
|
{
|
||
|
this.pressed = true;
|
||
|
pts.push([]);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
mouseup: function(ev) {
|
||
|
if (ev.keycode == 1) // left button
|
||
|
this.pressed = false;
|
||
|
},
|
||
|
|
||
|
expose: function(ev) {
|
||
|
for (var i=0; i < pts.length ; ++i) {
|
||
|
this.pixmap.gc.polyLine(pts[i]);
|
||
|
}
|
||
|
// todo: resize
|
||
|
this.gc.copy(this.pixmap, 0, 0, 0, 0, 700, 500);
|
||
|
}
|
||
|
|
||
|
})
|
||
|
.map()
|
||
|
.title = 'Hello, world!';
|
||
|
}).on('error', function(err) {
|
||
|
console.error(err);
|
||
|
});
|