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