include "draw.m"; draw := load Draw Draw->PATH; Context: adt { display: ref Display; # frame buffer on which windows reside wm: chan of (string, chan of (string, ref Wmcontext)); # wmgr connection }; # connection to window manager for one or more windows (as Images) Wmcontext: adt { kbd: chan of int; # incoming characters from keyboard ptr: chan of ref Pointer; # incoming stream of mouse positions ctl: chan of string; # commands from wm to application wctl: chan of string; # commands from application to wm images: chan of ref Image; # exchange of images connfd: ref Sys->FD; # connection control ctxt: ref Draw->Context; };
include "draw.m" Command: module { init: fn(nil: ref Draw->Context; nil: list of string); };
Most programs do not create Contexts but instead inherit one from their parent, typically a shell or window system.
DRAW-CONTEXT(2 ) | Rev: Tue Mar 31 02:42:39 GMT 2015 |