diff --git a/js/x11/core/examples/simple/gcinvert.js b/js/x11/core/examples/simple/gcinvert.js new file mode 100644 index 0000000..b9d5a82 --- /dev/null +++ b/js/x11/core/examples/simple/gcinvert.js @@ -0,0 +1,36 @@ +/* + * 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]); + } + + }); +}); +