summaryrefslogtreecommitdiffstats
path: root/Lib/turtledemo/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/turtledemo/__main__.py')
-rwxr-xr-xLib/turtledemo/__main__.py80
1 files changed, 73 insertions, 7 deletions
diff --git a/Lib/turtledemo/__main__.py b/Lib/turtledemo/__main__.py
index a14684c..958c283 100755
--- a/Lib/turtledemo/__main__.py
+++ b/Lib/turtledemo/__main__.py
@@ -1,12 +1,81 @@
#!/usr/bin/env python3
+
+"""
+ ----------------------------------------------
+
+ turtledemo - Help
+
+ ----------------------------------------------
+
+ This document has two sections:
+
+ (1) How to use the demo viewer
+ (2) How to add your own demos to the demo repository
+
+
+ (1) How to use the demo viewer.
+
+ Select a demoscript from the example menu.
+ The (syntax coloured) source code appears in the left
+ source code window. IT CANNOT BE EDITED, but ONLY VIEWED!
+
+ - Press START button to start the demo.
+ - Stop execution by pressing the STOP button.
+ - Clear screen by pressing the CLEAR button.
+ - Restart by pressing the START button again.
+
+ SPECIAL demos are those which run EVENTDRIVEN.
+ (For example clock.py - or oldTurtleDemo.py which
+ in the end expects a mouse click.):
+
+ Press START button to start the demo.
+
+ - Until the EVENTLOOP is entered everything works
+ as in an ordinary demo script.
+
+ - When the EVENTLOOP is entered, you control the
+ application by using the mouse and/or keys (or it's
+ controlled by some timer events)
+ To stop it you can and must press the STOP button.
+
+ While the EVENTLOOP is running, the examples menu is disabled.
+
+ - Only after having pressed the STOP button, you may
+ restart it or choose another example script.
+
+ * * * * * * * *
+ In some rare situations there may occur interferences/conflicts
+ between events concerning the demo script and those concerning the
+ demo-viewer. (They run in the same process.) Strange behaviour may be
+ the consequence and in the worst case you must close and restart the
+ viewer.
+ * * * * * * * *
+
+
+ (2) How to add your own demos to the demo repository
+
+ - place: same directory as turtledemo/__main__.py
+
+ - requirements on source code:
+ code must contain a main() function which will
+ be executed by the viewer (see provided example scripts)
+ main() may return a string which will be displayed
+ in the Label below the source code window (when execution
+ has finished.)
+
+ !! For programs, which are EVENT DRIVEN, main must return
+ !! the string "EVENTLOOP". This informs the viewer, that the
+ !! script is still running and must be stopped by the user!
+"""
import sys
import os
from tkinter import *
from idlelib.Percolator import Percolator
from idlelib.ColorDelegator import ColorDelegator
-from idlelib.textView import view_file # TextViewer
+from idlelib.textView import view_text # TextViewer
from importlib import reload
+from turtledemo import __doc__ as about_turtledemo
import turtle
import time
@@ -28,16 +97,13 @@ def getExampleEntries():
entry.endswith(".py") and entry[0] != '_']
def showDemoHelp():
- view_file(demo.root, "Help on turtleDemo",
- os.path.join(demo_dir, "demohelp.txt"))
+ view_text(demo.root, "Help on turtledemo", __doc__)
def showAboutDemo():
- view_file(demo.root, "About turtleDemo",
- os.path.join(demo_dir, "about_turtledemo.txt"))
+ view_text(demo.root, "About turtledemo", about_turtledemo)
def showAboutTurtle():
- view_file(demo.root, "About the new turtle module.",
- os.path.join(demo_dir, "about_turtle.txt"))
+ view_text(demo.root, "About the turtle module.", turtle.__doc__)
class DemoWindow(object):