xref: /inferno-os/appl/charon/gui.m (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.ForsythGui: module {
2*37da2899SCharles.Forsyth	PATH: con "/dis/charon/gui.dis";
3*37da2899SCharles.Forsyth
4*37da2899SCharles.Forsyth	Progressmsg : adt {
5*37da2899SCharles.Forsyth		bsid : int;
6*37da2899SCharles.Forsyth		state : int;
7*37da2899SCharles.Forsyth		pcnt : int;
8*37da2899SCharles.Forsyth		s : string;
9*37da2899SCharles.Forsyth	};
10*37da2899SCharles.Forsyth
11*37da2899SCharles.Forsyth	# clients should never capture Popup.image
12*37da2899SCharles.Forsyth	# other than during drawing operations
13*37da2899SCharles.Forsyth	Popup: adt {
14*37da2899SCharles.Forsyth		r: Draw->Rect;
15*37da2899SCharles.Forsyth		image: ref Draw->Image;
16*37da2899SCharles.Forsyth		window: ref Draw->Image;
17*37da2899SCharles.Forsyth
18*37da2899SCharles.Forsyth		flush: fn(p: self ref Popup, r: Draw->Rect);
19*37da2899SCharles.Forsyth	};
20*37da2899SCharles.Forsyth
21*37da2899SCharles.Forsyth	# Progress states
22*37da2899SCharles.Forsyth	Punused, Pstart, Pconnected, Psslconnected, Phavehdr,
23*37da2899SCharles.Forsyth	Phavedata, Pdone, Perr, Paborted : con iota;
24*37da2899SCharles.Forsyth
25*37da2899SCharles.Forsyth	display: ref Draw->Display;
26*37da2899SCharles.Forsyth	mainwin: ref Draw->Image;
27*37da2899SCharles.Forsyth	progress: chan of Progressmsg;
28*37da2899SCharles.Forsyth
29*37da2899SCharles.Forsyth	init: fn(ctxt: ref Draw->Context, cu: CharonUtils): ref Draw->Context;
30*37da2899SCharles.Forsyth
31*37da2899SCharles.Forsyth	snarfput: fn(s: string);
32*37da2899SCharles.Forsyth	setstatus: fn(s: string);
33*37da2899SCharles.Forsyth	seturl: fn(s: string);
34*37da2899SCharles.Forsyth	auth: fn(realm: string) : (int, string, string);
35*37da2899SCharles.Forsyth	alert: fn(msg: string);
36*37da2899SCharles.Forsyth	confirm: fn(msg: string) : int;
37*37da2899SCharles.Forsyth	prompt: fn(msg, dflt: string) : (int, string);
38*37da2899SCharles.Forsyth	backbutton: fn(enable : int);
39*37da2899SCharles.Forsyth	fwdbutton: fn (enable : int);
40*37da2899SCharles.Forsyth
41*37da2899SCharles.Forsyth	flush: fn (r : Draw->Rect);
42*37da2899SCharles.Forsyth	clientfocus: fn();
43*37da2899SCharles.Forsyth
44*37da2899SCharles.Forsyth	getpopup: fn(r: Draw->Rect): ref Popup;
45*37da2899SCharles.Forsyth	cancelpopup: fn(): int;
46*37da2899SCharles.Forsyth
47*37da2899SCharles.Forsyth	exitcharon: fn();
48*37da2899SCharles.Forsyth};
49