summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE/Splash.py
diff options
context:
space:
mode:
authorJust van Rossum <just@lettererror.com>1999-01-30 22:39:17 (GMT)
committerJust van Rossum <just@lettererror.com>1999-01-30 22:39:17 (GMT)
commit40f9b7bd7cb54645a7c15668b683a8d830ba5219 (patch)
treebaea660d6ef599cd9c4ecc72d009fa75853de577 /Mac/Tools/IDE/Splash.py
parentf59a89b5e34ac7db9e69b02a5b558c7cb49a4d9a (diff)
downloadcpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.zip
cpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.tar.gz
cpython-40f9b7bd7cb54645a7c15668b683a8d830ba5219.tar.bz2
First Checked In.
Diffstat (limited to 'Mac/Tools/IDE/Splash.py')
-rw-r--r--Mac/Tools/IDE/Splash.py162
1 files changed, 162 insertions, 0 deletions
diff --git a/Mac/Tools/IDE/Splash.py b/Mac/Tools/IDE/Splash.py
new file mode 100644
index 0000000..19f16fc
--- /dev/null
+++ b/Mac/Tools/IDE/Splash.py
@@ -0,0 +1,162 @@
+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)
+ rect = (35, 260, 365, 276)
+ if module:
+ TE.TETextBox('Importing: ' + module, rect, 0)
+ if not _progress:
+ Qd.FrameRect((35, 276, 365, 284))
+ pos = min(36 + 330 * _progress / 44, 364)
+ Qd.PaintRect((36, 277, pos, 283))
+ _progress = _progress + 1
+ else:
+ Qd.EraseRect(rect)
+ Qd.PaintRect((36, 277, pos, 283))
+
+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
+
+abouttext1 = """The Python Integrated Developement Environment for the Macintoshª
+Version: %s
+Copyright 1997-98 Just van Rossum, Letterror. <just@letterror.com>
+
+Python %s
+%s
+Written by Guido van Rossum with Jack Jansen (and others)
+
+See: <http://www.python.org/> for information and documentation."""
+
+flauwekul = [ 'Goodday, Bruce.',
+ 'WhatÕs new?',
+ 'Nudge, nudge, say no more!',
+ 'No, no sir, itÕs not dead. ItÕs resting.',
+ 'Albatros!',
+ 'ItÕs . . .',
+ '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!"""
+ ]
+
+def nl2return(text):
+ return string.join(string.split(text, '\n'), '\r')
+
+def UpdateSplash(drawdialog = 0, what = 0):
+ if drawdialog:
+ splash.DrawDialog()
+ drawtext(what)
+ Win.ValidRect(splash.GetWindowPort().portRect)
+
+def drawtext(what = 0):
+ Qd.SetPort(splash)
+ fontID = Fm.GetFNum("Python-Sans")
+ if not fontID:
+ fontID = geneva
+ Qd.TextFont(fontID)
+ Qd.TextSize(9)
+ rect = (10, 125, 390, 260)
+ if not what:
+ import __main__
+ abouttxt = nl2return(abouttext1 \
+ % (__main__.__version__, sys.version, sys.copyright))
+ else:
+ import random
+ abouttxt = nl2return(random.choice(flauwekul))
+ TE.TETextBox(abouttxt, rect, teJustCenter)
+
+UpdateSplash(1)
+
+def wait():
+ import Evt
+ from Events import *
+ global splash
+ try:
+ splash
+ except NameError:
+ return
+ Qd.InitCursor()
+ time = Evt.TickCount()
+ whattext = 0
+ while _keepsplashscreenopen:
+ ok, event = Evt.EventAvail(highLevelEventMask)
+ if ok:
+ # got apple event, back to mainloop
+ break
+ ok, event = Evt.EventAvail(mDownMask | keyDownMask | updateMask)
+ if ok:
+ ok, event = Evt.WaitNextEvent(mDownMask | keyDownMask | updateMask, 30)
+ if ok:
+ (what, message, when, where, modifiers) = event
+ if what == updateEvt:
+ 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()