64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var x11 = require('../../lib');
 | |
| 
 | |
| var xclient = x11.createClient({debug: true});
 | |
| var Exposure = x11.eventMask.Exposure;
 | |
| var PointerMotion = x11.eventMask.PointerMotion;
 | |
| var pts = [];
 | |
| 
 | |
| xclient.on('connect', function(display) {
 | |
|     var X = this;
 | |
|     var root = display.screen[0].root;
 | |
|     var white = display.screen[0].white_pixel;
 | |
|     var black = display.screen[0].black_pixel;
 | |
| 
 | |
|     function createWindow()
 | |
|     {
 | |
|       var wid = X.AllocID();
 | |
|       // id, parentId, x, y, width, height, borderWidth, depth, _class, visual, values
 | |
|       X.CreateWindow(
 | |
|         wid, root, 
 | |
|         10, 10, 400, 300, 
 | |
|         0, 0, 0, 0, { 
 | |
|           backgroundPixel: white, eventMask: Exposure|PointerMotion  
 | |
|       });
 | |
|       X.MapWindow(wid);
 | |
|       return wid;
 | |
|     }
 | |
| 
 | |
|     var wid = createWindow();
 | |
|     var wid1 = createWindow();
 | |
|   
 | |
|     var gc = X.AllocID();
 | |
|     X.CreateGC(gc, wid, { foreground: black, background: white } );
 | |
|     
 | |
|     X.on('event', function(ev) {
 | |
|         //console.log(ev);
 | |
|         if (ev.type == 12)
 | |
|         {
 | |
|             // expose
 | |
|         } else if (ev.type == 6) {
 | |
|             X.PolyPoint(0, ev.wid, gc, [ev.x, ev.y]);
 | |
|             // send copy of event to the second window
 | |
|             if (ev.wid == wid) // don't send it from second window
 | |
|             {
 | |
|                 // set window in the event we are sending
 | |
|                 var n = wid1;
 | |
|                 var offset = 12;
 | |
|                 var buf = ev.rawData;
 | |
|                 buf[offset++] = n & 0xff;
 | |
|                 buf[offset++] = (n >> 8) & 0xff;
 | |
|                 buf[offset++] = (n >> 16) & 0xff;
 | |
|                 buf[offset++] = (n >> 24) & 0xff;
 | |
| 
 | |
|                 X.SendEvent(wid1, 1, PointerMotion, ev.rawData);
 | |
|             } else {
 | |
|                 console.log('GotData!');
 | |
|             }
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     //X.on('error', function(e) {
 | |
|     //    console.log(e);
 | |
|     //});
 | |
| });
 |