forsyth20121205-174063a80cc13 years agoHistory
100 lines · 2.6 KB · Objective-C
RawDownload
Events: module {	PATH: con "/dis/charon/event.dis";	Event: adt {		pick {			Ekey =>				keychar: int;		# Unicode char for pressed key			Emouse =>				p: Draw->Point;	# coords of pointer				mtype: int;		# Mmove, etc.			Emove =>				p: Draw->Point;	# new top-left of moved window			Ereshape =>				r: Draw->Rect;		# new window place and size			Equit =>				dummy: int;			Estop =>				dummy: int;			Eback =>				dummy: int;			Efwd =>				dummy: int;			Eform =>				frameid: int;		# which frame is form in				formid: int;		# which form in the frame				ftype: int;			# EFsubmit or EFreset			Eformfield =>				frameid: int;		# which frame is form in				formid: int;		# which form in the frame				fieldid: int;		# which formfield in the form				fftype: int;		# EFFblur, EFFfocus, etc.			Ego =>				url: string;			# where to go				target: string;		# frame to replace				delta: int;		# History.go(delta)				gtype: int;			Esubmit =>				subkind: int;		# CU->HGet or CU->HPost				action: ref Url->Parsedurl;				data: string;				target: string;			Escroll or Escrollr =>				frameid: int;				pt: Draw->Point;			Esettext =>				frameid: int;				url: ref Url->Parsedurl;				text: string;			Elostfocus =>			# main window has lost keyboard focus				dummy: int;			Edismisspopup =>		# popup window has been dismissed by gui				dummy: int;		} 		tostring: fn(e: self ref Event) : string;	}; 	# Events sent to scripting engines	ScriptEvent: adt {		kind: int;		frameid: int;		formid: int;		fieldid: int;		anchorid: int;		imageid: int;		x: int;		y: int;		which: int;		script: string;		reply: chan of string;	# onreset/onsubmit reply channel		ms: int;	}; 	# ScriptEvent kinds	SEonclick, SEondblclick, SEonkeydown, SEonkeypress, SEonkeyup,		SEonmousedown, SEonmouseover, SEonmouseout, SEonmouseup, SEonblur, SEonfocus,		SEonchange, SEonload, SEtimeout, SEonabort, SEonerror,		SEonreset, SEonresize, SEonselect, SEonsubmit, SEonunload, SEscript, SEinterval, SEnone : con 1 << iota; 	# some special keychars (use Unicode Private Area)	Kup, Kdown, Khome, Kleft, Kright, Kend, Kaup, Kadown : con (iota + 16rF000); 	# Mouse event subtypes	Mmove, Mlbuttondown, Mlbuttonup, Mldrag, Mldrop,		Mmbuttondown, Mmbuttonup, Mmdrag,		Mrbuttondown, Mrbuttonup, Mrdrag,		Mhold : con iota; 	# Form event subtypes	EFsubmit, EFreset : con iota; 	# FormField event subtypes	EFFblur, EFFfocus, EFFclick, EFFselect, EFFredraw, EFFnone : con iota; 	# Go event subtypes	EGnormal, EGreplace, EGreload, EGforward, EGback, EGdelta, EGlocation: con iota; 	init: fn(evchan : chan of ref Event);	autorepeat: fn(ev : ref Event, idlems, ms : int);	evchan: chan of ref Event;};