| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | import Dlg | 
					
						
							|  |  |  |  | import Res | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | splash = Dlg.GetNewDialog(468, -1) | 
					
						
							|  |  |  |  | splash.DrawDialog() | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | import Qd, TE, Fm, sys | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | _real__import__ = None | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def install_importhook(): | 
					
						
							|  |  |  |  | 	global _real__import__ | 
					
						
							|  |  |  |  | 	import __builtin__ | 
					
						
							|  |  |  |  | 	if _real__import__ is None: | 
					
						
							|  |  |  |  | 		_real__import__ = __builtin__.__import__ | 
					
						
							|  |  |  |  | 		__builtin__.__import__ = my__import__ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def uninstall_importhook(): | 
					
						
							|  |  |  |  | 	global _real__import__ | 
					
						
							|  |  |  |  | 	if _real__import__ is not None: | 
					
						
							|  |  |  |  | 		import __builtin__ | 
					
						
							|  |  |  |  | 		__builtin__.__import__ = _real__import__ | 
					
						
							|  |  |  |  | 		_real__import__ = None | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | _progress = 0 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def importing(module): | 
					
						
							|  |  |  |  | 	global _progress | 
					
						
							|  |  |  |  | 	Qd.SetPort(splash) | 
					
						
							|  |  |  |  | 	fontID = Fm.GetFNum("Python-Sans") | 
					
						
							|  |  |  |  | 	if not fontID: | 
					
						
							|  |  |  |  | 		fontID = geneva | 
					
						
							|  |  |  |  | 	Qd.TextFont(fontID) | 
					
						
							|  |  |  |  | 	Qd.TextSize(9) | 
					
						
							| 
									
										
										
										
											2000-10-20 07:49:00 +00:00
										 |  |  |  | 	rect = (35, 265, 365, 281) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 	if module: | 
					
						
							|  |  |  |  | 		TE.TETextBox('Importing: ' + module, rect, 0) | 
					
						
							|  |  |  |  | 		if not _progress: | 
					
						
							| 
									
										
										
										
											2000-10-20 07:49:00 +00:00
										 |  |  |  | 			Qd.FrameRect((35, 281, 365, 289)) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 		pos = min(36 + 330 * _progress / 44, 364) | 
					
						
							| 
									
										
										
										
											2000-10-20 07:49:00 +00:00
										 |  |  |  | 		Qd.PaintRect((36, 282, pos, 288)) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 		_progress = _progress + 1 | 
					
						
							|  |  |  |  | 	else: | 
					
						
							|  |  |  |  | 		Qd.EraseRect(rect) | 
					
						
							| 
									
										
										
										
											2000-10-20 07:49:00 +00:00
										 |  |  |  | 		Qd.PaintRect((36, 282, pos, 288)) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | def my__import__(name, globals=None, locals=None, fromlist=None): | 
					
						
							|  |  |  |  | 	try: | 
					
						
							|  |  |  |  | 		return sys.modules[name] | 
					
						
							|  |  |  |  | 	except KeyError: | 
					
						
							|  |  |  |  | 		try: | 
					
						
							|  |  |  |  | 			importing(name) | 
					
						
							|  |  |  |  | 		except: | 
					
						
							|  |  |  |  | 			try: | 
					
						
							|  |  |  |  | 				rv = _real__import__(name) | 
					
						
							|  |  |  |  | 			finally: | 
					
						
							|  |  |  |  | 				uninstall_importhook() | 
					
						
							|  |  |  |  | 			return rv | 
					
						
							|  |  |  |  | 		return _real__import__(name) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | install_importhook() | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | kHighLevelEvent = 23 | 
					
						
							|  |  |  |  | import Win | 
					
						
							|  |  |  |  | from Fonts import * | 
					
						
							|  |  |  |  | from QuickDraw import * | 
					
						
							|  |  |  |  | from TextEdit import * | 
					
						
							|  |  |  |  | import string | 
					
						
							|  |  |  |  | import sys | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | _keepsplashscreenopen = 0 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-20 07:35:33 +00:00
										 |  |  |  | abouttext1 = """The Python Integrated Development Environment for the Macintosh<73>
 | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | Version: %s | 
					
						
							| 
									
										
										
										
											1999-12-23 21:49:44 +00:00
										 |  |  |  | Copyright 1997-2000 Just van Rossum, Letterror. <just@letterror.com> | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | Python %s | 
					
						
							|  |  |  |  | %s | 
					
						
							|  |  |  |  | See: <http://www.python.org/> for information and documentation."""
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | flauwekul = [	'Goodday, Bruce.',  | 
					
						
							| 
									
										
										
										
											1999-02-02 22:31:05 +00:00
										 |  |  |  | 			'What<EFBFBD>s new?',  | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 			'Nudge, nudge, say no more!',  | 
					
						
							| 
									
										
										
										
											1999-02-02 22:31:05 +00:00
										 |  |  |  | 			'No, no sir, it<69>s not dead. It<49>s resting.', | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 			'Albatros!', | 
					
						
							| 
									
										
										
										
											1999-02-02 22:31:05 +00:00
										 |  |  |  | 			'It<EFBFBD>s . . .', | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 			'Is your name not Bruce, then?', | 
					
						
							|  |  |  |  | 			"""But Mr F.G. Superman has a secret identity . . . 
 | 
					
						
							|  |  |  |  | when trouble strikes at any time . . .  | 
					
						
							|  |  |  |  | at any place . . . he is ready to become . . .  | 
					
						
							|  |  |  |  | Bicycle Repair Man!"""
 | 
					
						
							|  |  |  |  | 			] | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-20 07:35:33 +00:00
										 |  |  |  | def skipdoublereturns(text): | 
					
						
							|  |  |  |  | 	return string.replace(text, '\n\n', '\n') | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | def nl2return(text): | 
					
						
							| 
									
										
										
										
											2000-10-20 07:35:33 +00:00
										 |  |  |  | 	return string.replace(text, '\n', '\r') | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | def UpdateSplash(drawdialog = 0, what = 0): | 
					
						
							|  |  |  |  | 	if drawdialog: | 
					
						
							|  |  |  |  | 		splash.DrawDialog() | 
					
						
							|  |  |  |  | 	drawtext(what) | 
					
						
							| 
									
										
										
										
											2001-01-23 14:58:20 +00:00
										 |  |  |  | 	splash.GetDialogWindow().ValidWindowRect(splash.GetDialogPort().portRect) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | def drawtext(what = 0): | 
					
						
							|  |  |  |  | 	Qd.SetPort(splash) | 
					
						
							|  |  |  |  | 	fontID = Fm.GetFNum("Python-Sans") | 
					
						
							|  |  |  |  | 	if not fontID: | 
					
						
							|  |  |  |  | 		fontID = geneva | 
					
						
							|  |  |  |  | 	Qd.TextFont(fontID) | 
					
						
							|  |  |  |  | 	Qd.TextSize(9) | 
					
						
							| 
									
										
										
										
											2000-10-20 07:35:33 +00:00
										 |  |  |  | 	rect = (10, 115, 390, 290) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 	if not what: | 
					
						
							|  |  |  |  | 		import __main__ | 
					
						
							| 
									
										
										
										
											2000-10-20 07:35:33 +00:00
										 |  |  |  | 		abouttxt = nl2return(abouttext1 % ( | 
					
						
							|  |  |  |  | 				__main__.__version__, sys.version, skipdoublereturns(sys.copyright))) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 	else: | 
					
						
							|  |  |  |  | 		import random | 
					
						
							|  |  |  |  | 		abouttxt = nl2return(random.choice(flauwekul)) | 
					
						
							|  |  |  |  | 	TE.TETextBox(abouttxt, rect, teJustCenter) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | UpdateSplash(1) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def wait(): | 
					
						
							|  |  |  |  | 	import Evt | 
					
						
							| 
									
										
										
										
											2001-02-09 15:56:19 +00:00
										 |  |  |  | 	import Events | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 	global splash | 
					
						
							|  |  |  |  | 	try: | 
					
						
							|  |  |  |  | 		splash | 
					
						
							|  |  |  |  | 	except NameError: | 
					
						
							|  |  |  |  | 		return | 
					
						
							|  |  |  |  | 	Qd.InitCursor() | 
					
						
							|  |  |  |  | 	time = Evt.TickCount() | 
					
						
							|  |  |  |  | 	whattext = 0 | 
					
						
							|  |  |  |  | 	while _keepsplashscreenopen: | 
					
						
							| 
									
										
										
										
											2001-02-09 15:56:19 +00:00
										 |  |  |  | 		ok, event = Evt.EventAvail(Events.highLevelEventMask) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 		if ok: | 
					
						
							|  |  |  |  | 			# got apple event, back to mainloop | 
					
						
							|  |  |  |  | 			break | 
					
						
							| 
									
										
										
										
											2001-02-09 15:56:19 +00:00
										 |  |  |  | 		ok, event = Evt.EventAvail(Events.mDownMask | Events.keyDownMask | Events.updateMask) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 		if ok: | 
					
						
							| 
									
										
										
										
											2001-02-09 15:56:19 +00:00
										 |  |  |  | 			ok, event = Evt.WaitNextEvent(Events.mDownMask | Events.keyDownMask | Events.updateMask, 30) | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 			if ok: | 
					
						
							|  |  |  |  | 				(what, message, when, where, modifiers) = event | 
					
						
							| 
									
										
										
										
											2001-02-09 15:56:19 +00:00
										 |  |  |  | 				if what == Events.updateEvt: | 
					
						
							| 
									
										
										
										
											1999-01-30 22:39:17 +00:00
										 |  |  |  | 					if Win.WhichWindow(message) == splash: | 
					
						
							|  |  |  |  | 						UpdateSplash(1, whattext) | 
					
						
							|  |  |  |  | 				else: | 
					
						
							|  |  |  |  | 					break | 
					
						
							|  |  |  |  | 		if Evt.TickCount() - time > 360: | 
					
						
							|  |  |  |  | 			whattext = not whattext | 
					
						
							|  |  |  |  | 			drawtext(whattext) | 
					
						
							|  |  |  |  | 			time = Evt.TickCount() | 
					
						
							|  |  |  |  | 	del splash | 
					
						
							|  |  |  |  | 	#Res.CloseResFile(splashresfile) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def about(): | 
					
						
							|  |  |  |  | 	global splash, splashresfile, _keepsplashscreenopen | 
					
						
							|  |  |  |  | 	_keepsplashscreenopen = 1 | 
					
						
							|  |  |  |  | 	splash = Dlg.GetNewDialog(468, -1) | 
					
						
							|  |  |  |  | 	splash.DrawDialog() | 
					
						
							|  |  |  |  | 	wait() |