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