66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var x11 = require('../lib');
 | |
| var PointerMotion = x11.eventMask.PointerMotion;
 | |
| var ButtonPress = x11.eventMask.ButtonPress;
 | |
| var ButtonRelease = x11.eventMask.ButtonRelease;
 | |
| 
 | |
| var X, Render;
 | |
| var pressed = false;
 | |
| var gradNo = 0;
 | |
| 
 | |
| var xclient = x11.createClient(function(err, display) {
 | |
|     X = display.client;
 | |
|     var root = display.screen[0].root;
 | |
|     X.require('render', function(err, rendExt) {
 | |
|         Render = rendExt;
 | |
|         var wid = X.AllocID();
 | |
| 
 | |
|         var white = display.screen[0].white_pixel;
 | |
|         var black = display.screen[0].black_pixel;
 | |
|         X.CreateWindow(wid, root, 10, 10, 400, 300, 0, 0, 0, 0, { backgroundPixel: white, eventMask: PointerMotion|ButtonPress|ButtonRelease });
 | |
|         X.MapWindow(wid);
 | |
| 
 | |
|         var pict = X.AllocID();
 | |
|         Render.CreatePicture(pict, wid, Render.rgb24);
 | |
|         var pictGrad = [];
 | |
|         for (var i=0; i < 10; ++i)
 | |
|         {
 | |
|             pictGrad[i] = X.AllocID();
 | |
|             Render.RadialGradient(pictGrad[i], [50,56], [50,50], 0, 50,
 | |
|             [
 | |
|                 [0,   [0,0,0,0x0fff ] ],
 | |
|                 [0.1 + 0.8*i/10,   [0,0,0,0x0fff ] ],
 | |
|                 [0.997,   [0xffff, 0xf, 0, 0x1] ],
 | |
|                 [1,   [0xffff, 0xffff, 0, 0x0] ]
 | |
|             ]);
 | |
|         }
 | |
| 
 | |
|         function draw(x, y) {
 | |
|             Render.Composite(3, pictGrad[gradNo], 0, pict, 0, 0, 0, 0, x-50, y-50, 100, 100);
 | |
|         }
 | |
| 
 | |
|         X.on('event', function(ev) {
 | |
|             if (ev.type == 4 && ev.keycode == 1)
 | |
|                 pressed = true;
 | |
|             else if (ev.type == 5 && ev.keycode == 1)
 | |
|                 pressed = false;
 | |
|             else if (ev.type == 5 && ev.keycode == 4)
 | |
|             {
 | |
|                 gradNo--;
 | |
|                 if (gradNo < 0)
 | |
|                     gradNo = 0;
 | |
|                 console.log(gradNo);
 | |
|             }
 | |
|             else if (ev.type == 5 && ev.keycode == 5)
 | |
|             {
 | |
|                 gradNo++;
 | |
|                 if (gradNo > 9)
 | |
|                     gradNo = 9;
 | |
|                 console.log(gradNo);
 | |
|             }
 | |
|             else if (pressed)
 | |
|                 draw(ev.x, ev.y);
 | |
|             //console.log(ev.type, ev.keycode);
 | |
|         });
 | |
|     });
 | |
| });
 |