Wmclient: module{ PATH: con "/dis/lib/wmclient.dis"; Resize, Hide, Help, OK, Popup, Plain: con 1 << iota; Appl: con Resize | Hide; init: fn(); makedrawcontext: fn(): ref Draw->Context; window: fn(ctxt: ref Draw->Context, title: string, buts: int): ref Window; snarfput: fn(buf: string); snarfget: fn(): string; cursorspec: fn(img: ref Draw->Image): string; Window: adt{ display: ref Draw->Display; r: Draw->Rect; # full rectangle of window, including titlebar. image: ref Draw->Image; displayr: Draw->Rect; ctxt: ref Draw->Wmcontext; bd: int; focused: int; ctl: chan of string; # private from here: titlebar: ref Tk->Toplevel; # XXX i wish this didn't have to be visible to the application... tbsize: Draw->Point; # size requested by titlebar. tbrect: Draw->Rect; screen: ref Draw->Screen; buttons: int; ptrfocus: int; saved: Draw->Point; # saved origin before task startinput: fn(w: self ref Window, devs: list of string); wmctl: fn(w: self ref Window, request: string): string; settitle: fn(w: self ref Window, name: string): string; reshape: fn(w: self ref Window, r: Draw->Rect); onscreen: fn(w: self ref Window, how: string); screenr: fn(w: self ref Window, sr: Draw->Rect): Draw->Rect; imager: fn(w: self ref Window, ir: Draw->Rect): Draw->Rect; pointer: fn(w: self ref Window, p: Draw->Pointer): int; }; };
Wmclient: module
{
PATH: con "/dis/lib/wmclient.dis";
Resize,
Hide,
Help,
OK,
Popup,
Plain: con 1 << iota;
Appl: con Resize | Hide;
init: fn();
makedrawcontext: fn(): ref Draw->Context;
window: fn(ctxt: ref Draw->Context, title: string, buts: int): ref Window;
snarfput: fn(buf: string);
snarfget: fn(): string;
cursorspec: fn(img: ref Draw->Image): string;
Window: adt{
display: ref Draw->Display;
r: Draw->Rect; # full rectangle of window, including titlebar.
image: ref Draw->Image;
displayr: Draw->Rect;
ctxt: ref Draw->Wmcontext;
bd: int;
focused: int;
ctl: chan of string;
# private from here:
titlebar: ref Tk->Toplevel; # XXX i wish this didn't have to be visible to the application...
tbsize: Draw->Point; # size requested by titlebar.
tbrect: Draw->Rect;
screen: ref Draw->Screen;
buttons: int;
ptrfocus: int;
saved: Draw->Point; # saved origin before task
startinput: fn(w: self ref Window, devs: list of string);
wmctl: fn(w: self ref Window, request: string): string;
settitle: fn(w: self ref Window, name: string): string;
reshape: fn(w: self ref Window, r: Draw->Rect);
onscreen: fn(w: self ref Window, how: string);
screenr: fn(w: self ref Window, sr: Draw->Rect): Draw->Rect;
imager: fn(w: self ref Window, ir: Draw->Rect): Draw->Rect;
pointer: fn(w: self ref Window, p: Draw->Pointer): int;
};
};