56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var x11 = require('../core/x11');
 | |
| 
 | |
| var Exposure = x11.eventMask.Exposure;
 | |
| var PointerMotion = x11.eventMask.PointerMotion;
 | |
| var KeyPress = x11.eventMask.KeyPress;
 | |
| var ButtonPress = x11.eventMask.ButtonPress;
 | |
| var ButtonRelease= x11.eventMask.ButtonRelease;
 | |
| 
 | |
| x11.createClient(function(err, display) {
 | |
|   if (!err) {
 | |
|     var X = display.client;
 | |
|     var root = display.screen[0].root;
 | |
|     var wid = X.AllocID();
 | |
|     X.CreateWindow(
 | |
|       wid,
 | |
|       root, // new window id, parent
 | |
|       0,
 | |
|       0,
 | |
|       400,
 | |
|       500, // x, y, w, h
 | |
|       0,
 | |
|       0,
 | |
|       0,
 | |
|       0, // border, depth, class, visual
 | |
|       { eventMask: Exposure | PointerMotion | KeyPress | ButtonPress | ButtonRelease} // other parameters
 | |
|     );
 | |
|     X.MapWindow(wid);
 | |
|     var gc = X.AllocID();
 | |
|     X.CreateGC(gc, wid);
 | |
|     var white = display.screen[0].white_pixel;
 | |
|     var black = display.screen[0].black_pixel;
 | |
|     cidBlack = X.AllocID();
 | |
|     cidWhite = X.AllocID();
 | |
|     X.CreateGC(cidBlack, wid, { foreground: black, background: white });
 | |
|     X.CreateGC(cidWhite, wid, { foreground: white, background: black });
 | |
|     X.on('event', function(ev) {
 | |
|       // print(ev)
 | |
|       switch (ev.type) {
 | |
|         case x11.eventType.Expose:
 | |
|           X.PolyFillRectangle(wid, cidWhite, [0, 0, 500, 500]);
 | |
|           X.PolyText8(wid, cidBlack, 50, 50, ['Hello World, Node.JS!']);
 | |
|           X.PolyText8(wid, cidBlack, 50, 70, ['New line']);
 | |
|           break;
 | |
|         case x11.eventType.KeyPress:
 | |
|           if (ev.keycode == 24 /*q*/) process.exit()
 | |
|           break;  
 | |
|       }
 | |
|     });
 | |
|     X.on('error', function(e) {
 | |
|       console.log(e);
 | |
|     });
 | |
|   } else {
 | |
|     console.log(err);
 | |
|   }
 | |
| });
 |