60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var x11 = require('../../lib');
 | |
| 
 | |
| var Exposure = x11.eventMask.Exposure;
 | |
| var PointerMotion = x11.eventMask.PointerMotion;
 | |
| var ButtonPress = x11.eventMask.ButtonPress;
 | |
| var ButtonRelease = x11.eventMask.ButtonRelease;
 | |
| 
 | |
| 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, 
 | |
|        10, 10, 400, 300, 
 | |
|        0, 0, 0, 0,
 | |
|        { 
 | |
|            eventMask: Exposure|PointerMotion|ButtonPress|ButtonRelease
 | |
|        }
 | |
|     );
 | |
|     X.MapWindow(wid);
 | |
|   
 | |
|     var gc = X.AllocID();
 | |
|     X.CreateGC(gc, wid, { foreground: black, background: white } );
 | |
|     var gc1 = X.AllocID();
 | |
|     X.CreateGC(gc1, wid, { foreground: white, background: black } );
 | |
| 
 | |
|     var angle = 23040;
 | |
|     
 | |
|     X.on('event', function(ev) {
 | |
|         if (ev.type == 12)
 | |
|         {
 | |
|             X.PolyFillArc(wid, gc, [20, 30, 100, 100, 0, 180]); 
 | |
|             X.PolyFillArc(wid, gc, [100, 100, 100, 100, 0, 360]); 
 | |
|             //X.PolyFillArc(wid, gc, [40, 50, 90, 10]); 
 | |
|             //X.PolyFillArc(wid, gc, [20, 80, 50, 30]); 
 | |
| 
 | |
|          } else if (ev.type == 5) {
 | |
|             //console.log(ev);
 | |
|             if (ev.keycode == 4)
 | |
|                 angle += 5;
 | |
|             if (ev.keycode == 5)
 | |
|                 angle -= 5;
 | |
|             console.log(angle);
 | |
|          }
 | |
| 
 | |
|             X.PolyFillRectangle(wid, gc1, [0, 0, 1000, 1000]); 
 | |
|             X.PolyFillArc(wid, gc, [0, 0, ev.x*2, ev.y*2, 0, angle]); 
 | |
|             //console.log(ev.x, ev.y);
 | |
|             //console.log(X.replies);
 | |
|         
 | |
|     });
 | |
| 
 | |
|     X.on('error', function(e) {
 | |
|         console.log(e);
 | |
|     });
 | |
| });
 |