mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
First Checked In.
This commit is contained in:
parent
f59a89b5e3
commit
40f9b7bd7c
28 changed files with 8612 additions and 0 deletions
162
Mac/Tools/IDE/Splash.py
Normal file
162
Mac/Tools/IDE/Splash.py
Normal file
|
@ -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()
|
Loading…
Add table
Add a link
Reference in a new issue