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);
 | |
| });
 |