37 lines
		
	
	
		
			838 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			838 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
|  * GCFunction usage example
 | |
|  */
 | |
| var x11 = require('../../lib');
 | |
| 
 | |
| x11.createClient(function(err, display) {
 | |
|   var X = display.client;
 | |
|   var root = display.screen[0].root;
 | |
|   var white = display.screen[0].white_pixel;
 | |
|   var black = display.screen[0].black_pixel;
 | |
| 
 | |
|   var wid = X.AllocID();
 | |
|   X.CreateWindow(wid, root, 0, 0, 400, 300, 0, 0, 0, 0, { 
 | |
|     backgroundPixel: black,
 | |
|     eventMask: x11.eventMask.ButtonPress|x11.eventMask.Exposure });
 | |
|   var gc = X.AllocID();
 | |
|   X.CreateGC(gc, wid, {foreground : white, 'function' : x11.gcFunction.GXinvert});
 | |
|   X.MapWindow(wid);
 | |
| 
 | |
| 
 | |
|   X.on('event', function(ev) {
 | |
| 
 | |
|     if (ev.type === 12) {
 | |
|       X.PolyFillRectangle(wid, gc, [0, 0, 400, 300]);
 | |
|     }
 | |
| 
 | |
|     if (ev.type === 4) {
 | |
|       var x = ev.x;
 | |
|       var y = ev.y;
 | |
| 
 | |
|       X.PolyFillRectangle(wid, gc, [x - 25, y - 25, 50, 50]);
 | |
|     }
 | |
| 
 | |
|   });
 | |
| });
 | |
| 
 |