[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.218.117.12: ~ $
Writing an IDLE extension
=========================

An IDLE extension can define new key bindings and menu entries for IDLE
edit windows.  There is a simple mechanism to load extensions when IDLE
starts up and to attach them to each edit window. (It is also possible
to make other changes to IDLE, but this must be done by editing the IDLE
source code.)

The list of extensions loaded at startup time is configured by editing
the file config-extensions.def.  See below for details.

An IDLE extension is defined by a class.  Methods of the class define
actions that are invoked by event bindings or menu entries. Class (or
instance) variables define the bindings and menu additions; these are
automatically applied by IDLE when the extension is linked to an edit
window.

An IDLE extension class is instantiated with a single argument,
`editwin', an EditorWindow instance. The extension cannot assume much
about this argument, but it is guaranteed to have the following instance
variables:

    text	a Text instance (a widget)
    io		an IOBinding instance (more about this later)
    flist	the FileList instance (shared by all edit windows)

(There are a few more, but they are rarely useful.)

The extension class must not directly bind Window Manager (e.g. X) events.
Rather, it must define one or more virtual events, e.g. <<zoom-height>>, and
corresponding methods, e.g. zoom_height_event().  The virtual events will be
bound to the corresponding methods, and Window Manager events can then be bound
to the virtual events. (This indirection is done so that the key bindings can
easily be changed, and so that other sources of virtual events can exist, such
as menu entries.)

An extension can define menu entries.  This is done with a class or instance
variable named menudefs; it should be a list of pairs, where each pair is a
menu name (lowercase) and a list of menu entries. Each menu entry is either
None (to insert a separator entry) or a pair of strings (menu_label,
virtual_event).  Here, menu_label is the label of the menu entry, and
virtual_event is the virtual event to be generated when the entry is selected.
An underscore in the menu label is removed; the character following the
underscore is displayed underlined, to indicate the shortcut character (for
Windows).

At the moment, extensions cannot define whole new menus; they must define
entries in existing menus.  Some menus are not present on some windows; such
entry definitions are then ignored, but key bindings are still applied.  (This
should probably be refined in the future.)

Extensions are not required to define menu entries for all the events they
implement.  (They are also not required to create keybindings, but in that
case there must be empty bindings in cofig-extensions.def)

Here is a complete example:

class ZoomHeight:

    menudefs = [
        ('edit', [
            None, # Separator
            ('_Zoom Height', '<<zoom-height>>'),
         ])
    ]

    def __init__(self, editwin):
        self.editwin = editwin

    def zoom_height_event(self, event):
        "...Do what you want here..."

The final piece of the puzzle is the file "config-extensions.def", which is
used to configure the loading of extensions and to establish key (or, more
generally, event) bindings to the virtual events defined in the extensions.

See the comments at the top of config-extensions.def for information.  It's
currently necessary to manually modify that file to change IDLE's extension
loading or extension key bindings.

For further information on binding refer to the Tkinter Resources web page at
python.org and to the Tk Command "bind" man page.

Filemanager

Name Type Size Permission Actions
Icons Folder 0755
.AutoComplete.pyo.40009 File 7.69 KB 0644
.AutoExpand.pyo.40009 File 2.5 KB 0644
.Bindings.pyo.40009 File 4.76 KB 0644
.CallTipWindow.pyo.40009 File 6.14 KB 0644
.CallTips.pyo.40009 File 10.14 KB 0644
.ClassBrowser.pyo.40009 File 8.95 KB 0644
.ColorDelegator.pyo.40009 File 8.71 KB 0644
.Debugger.pyo.40009 File 16.55 KB 0644
.Delegator.pyo.40009 File 1.58 KB 0644
.FormatParagraph.pyo.40009 File 4.69 KB 0644
.GrepDialog.pyo.40009 File 4.9 KB 0644
.HyperParser.pyo.40009 File 6.49 KB 0644
.IOBinding.pyo.40009 File 17.16 KB 0644
.IdleHistory.pyo.40009 File 3.13 KB 0644
.MultiStatusBar.pyo.40009 File 1.49 KB 0644
.ObjectBrowser.pyo.40009 File 6.56 KB 0644
.OutputWindow.pyo.40009 File 5.11 KB 0644
.ParenMatch.pyo.40009 File 6.82 KB 0644
.PathBrowser.pyo.40009 File 4.02 KB 0644
.RemoteObjectBrowser.pyo.40009 File 2.1 KB 0644
.ReplaceDialog.pyo.40009 File 6.32 KB 0644
.RstripExtension.pyo.40009 File 1.45 KB 0644
.ScriptBinding.pyo.40009 File 7.96 KB 0644
.ScrolledList.pyo.40009 File 6.03 KB 0644
.SearchDialog.pyo.40009 File 2.93 KB 0644
.SearchDialogBase.pyo.40009 File 5.37 KB 0644
.SearchEngine.pyo.40009 File 7.02 KB 0644
.StackViewer.pyo.40009 File 5.79 KB 0644
.ToolTip.pyo.40009 File 4.05 KB 0644
.TreeWidget.pyo.40009 File 17.48 KB 0644
.UndoDelegator.pyo.40009 File 12.27 KB 0644
.WidgetRedirector.pyo.40009 File 5.23 KB 0644
.WindowList.pyo.40009 File 3.55 KB 0644
.ZoomHeight.pyo.40009 File 1.61 KB 0644
.__init__.pyo.40009 File 127 B 0644
.aboutDialog.pyo.40009 File 6.63 KB 0644
.configDialog.pyo.40009 File 43.81 KB 0644
.configHandler.pyo.40009 File 26.83 KB 0644
.configHelpSourceEdit.pyo.40009 File 6.56 KB 0644
.configSectionNameDialog.pyo.40009 File 4.21 KB 0644
.dynOptionMenuWidget.pyo.40009 File 1.66 KB 0644
.idle.pyo.40009 File 406 B 0644
.idlever.pyo.40009 File 159 B 0644
.keybindingDialog.pyo.40009 File 12.05 KB 0644
.macosxSupport.pyo.40009 File 6.25 KB 0644
.tabbedpages.pyo.40009 File 17.67 KB 0644
.textView.pyo.40009 File 4.2 KB 0644
AutoComplete.py File 8.79 KB 0644
AutoComplete.pyc File 7.69 KB 0644
AutoComplete.pyo File 7.69 KB 0644
AutoCompleteWindow.py File 16.8 KB 0644
AutoCompleteWindow.pyc File 12.15 KB 0644
AutoCompleteWindow.pyo File 12.09 KB 0644
AutoExpand.py File 2.42 KB 0644
AutoExpand.pyc File 2.5 KB 0644
AutoExpand.pyo File 2.5 KB 0644
Bindings.py File 3.22 KB 0644
Bindings.pyc File 4.76 KB 0644
Bindings.pyo File 4.76 KB 0644
CREDITS.txt File 1.82 KB 0644
CallTipWindow.py File 5.98 KB 0644
CallTipWindow.pyc File 6.14 KB 0644
CallTipWindow.pyo File 6.14 KB 0644
CallTips.py File 7.75 KB 0644
CallTips.pyc File 10.14 KB 0644
CallTips.pyo File 10.14 KB 0644
ChangeLog File 55.07 KB 0644
ClassBrowser.py File 6.22 KB 0644
ClassBrowser.pyc File 8.95 KB 0644
ClassBrowser.pyo File 8.95 KB 0644
CodeContext.py File 8.15 KB 0644
CodeContext.pyc File 6.52 KB 0644
CodeContext.pyo File 6.47 KB 0644
ColorDelegator.py File 10.13 KB 0644
ColorDelegator.pyc File 8.71 KB 0644
ColorDelegator.pyo File 8.71 KB 0644
Debugger.py File 15.45 KB 0644
Debugger.pyc File 16.55 KB 0644
Debugger.pyo File 16.55 KB 0644
Delegator.py File 831 B 0644
Delegator.pyc File 1.58 KB 0644
Delegator.pyo File 1.58 KB 0644
EditorWindow.py File 63.29 KB 0644
EditorWindow.pyc File 55.13 KB 0644
EditorWindow.pyo File 55.03 KB 0644
FileList.py File 3.57 KB 0644
FileList.pyc File 3.86 KB 0644
FileList.pyo File 3.82 KB 0644
FormatParagraph.py File 5.66 KB 0644
FormatParagraph.pyc File 4.69 KB 0644
FormatParagraph.pyo File 4.69 KB 0644
GrepDialog.py File 3.96 KB 0644
GrepDialog.pyc File 4.9 KB 0644
GrepDialog.pyo File 4.9 KB 0644
HISTORY.txt File 10.08 KB 0644
HyperParser.py File 10.31 KB 0644
HyperParser.pyc File 6.49 KB 0644
HyperParser.pyo File 6.49 KB 0644
IOBinding.py File 20.69 KB 0644
IOBinding.pyc File 17.16 KB 0644
IOBinding.pyo File 17.16 KB 0644
IdleHistory.py File 3.07 KB 0644
IdleHistory.pyc File 3.13 KB 0644
IdleHistory.pyo File 3.13 KB 0644
MultiCall.py File 17.07 KB 0644
MultiCall.pyc File 15.55 KB 0644
MultiCall.pyo File 15.48 KB 0644
MultiStatusBar.py File 783 B 0644
MultiStatusBar.pyc File 1.49 KB 0644
MultiStatusBar.pyo File 1.49 KB 0644
NEWS.txt File 28.32 KB 0644
ObjectBrowser.py File 4.05 KB 0644
ObjectBrowser.pyc File 6.56 KB 0644
ObjectBrowser.pyo File 6.56 KB 0644
OutputWindow.py File 4.47 KB 0644
OutputWindow.pyc File 5.11 KB 0644
OutputWindow.pyo File 5.11 KB 0644
ParenMatch.py File 6.47 KB 0644
ParenMatch.pyc File 6.82 KB 0644
ParenMatch.pyo File 6.82 KB 0644
PathBrowser.py File 2.58 KB 0644
PathBrowser.pyc File 4.02 KB 0644
PathBrowser.pyo File 4.02 KB 0644
Percolator.py File 2.55 KB 0644
Percolator.pyc File 3.55 KB 0644
Percolator.pyo File 3.37 KB 0644
PyParse.py File 19.05 KB 0644
PyParse.pyc File 9.77 KB 0644
PyParse.pyo File 9.34 KB 0644
PyShell.py File 54.81 KB 0644
PyShell.pyc File 49.14 KB 0644
PyShell.pyo File 49.04 KB 0644
README.txt File 2.56 KB 0644
RemoteDebugger.py File 11.38 KB 0644
RemoteDebugger.pyc File 15.97 KB 0644
RemoteDebugger.pyo File 15.82 KB 0644
RemoteObjectBrowser.py File 942 B 0644
RemoteObjectBrowser.pyc File 2.1 KB 0644
RemoteObjectBrowser.pyo File 2.1 KB 0644
ReplaceDialog.py File 5.69 KB 0644
ReplaceDialog.pyc File 6.32 KB 0644
ReplaceDialog.pyo File 6.32 KB 0644
RstripExtension.py File 824 B 0644
RstripExtension.pyc File 1.45 KB 0644
RstripExtension.pyo File 1.45 KB 0644
ScriptBinding.py File 8.22 KB 0644
ScriptBinding.pyc File 7.96 KB 0644
ScriptBinding.pyo File 7.96 KB 0644
ScrolledList.py File 3.9 KB 0644
ScrolledList.pyc File 6.03 KB 0644
ScrolledList.pyo File 6.03 KB 0644
SearchDialog.py File 1.99 KB 0644
SearchDialog.pyc File 2.93 KB 0644
SearchDialog.pyo File 2.93 KB 0644
SearchDialogBase.py File 4.28 KB 0644
SearchDialogBase.pyc File 5.37 KB 0644
SearchDialogBase.pyo File 5.37 KB 0644
SearchEngine.py File 6.57 KB 0644
SearchEngine.pyc File 7.02 KB 0644
SearchEngine.pyo File 7.02 KB 0644
StackViewer.py File 3.77 KB 0644
StackViewer.pyc File 5.79 KB 0644
StackViewer.pyo File 5.79 KB 0644
TODO.txt File 8.28 KB 0644
ToolTip.py File 2.67 KB 0644
ToolTip.pyc File 4.05 KB 0644
ToolTip.pyo File 4.05 KB 0644
TreeWidget.py File 14.87 KB 0644
TreeWidget.pyc File 17.48 KB 0644
TreeWidget.pyo File 17.48 KB 0644
UndoDelegator.py File 10.04 KB 0644
UndoDelegator.pyc File 12.27 KB 0644
UndoDelegator.pyo File 12.27 KB 0644
WidgetRedirector.py File 4.37 KB 0644
WidgetRedirector.pyc File 5.23 KB 0644
WidgetRedirector.pyo File 5.23 KB 0644
WindowList.py File 2.42 KB 0644
WindowList.pyc File 3.55 KB 0644
WindowList.pyo File 3.55 KB 0644
ZoomHeight.py File 1.28 KB 0644
ZoomHeight.pyc File 1.61 KB 0644
ZoomHeight.pyo File 1.61 KB 0644
__init__.py File 37 B 0644
__init__.pyc File 127 B 0644
__init__.pyo File 127 B 0644
aboutDialog.py File 6.42 KB 0644
aboutDialog.pyc File 6.63 KB 0644
aboutDialog.pyo File 6.63 KB 0644
config-extensions.def File 2.72 KB 0644
config-highlight.def File 1.7 KB 0644
config-keys.def File 7.35 KB 0644
config-main.def File 2.45 KB 0644
configDialog.py File 52.23 KB 0644
configDialog.pyc File 43.81 KB 0644
configDialog.pyo File 43.81 KB 0644
configHandler.py File 28.68 KB 0644
configHandler.pyc File 26.83 KB 0644
configHandler.pyo File 26.83 KB 0644
configHelpSourceEdit.py File 6.52 KB 0644
configHelpSourceEdit.pyc File 6.56 KB 0644
configHelpSourceEdit.pyo File 6.56 KB 0644
configSectionNameDialog.py File 3.63 KB 0644
configSectionNameDialog.pyc File 4.21 KB 0644
configSectionNameDialog.pyo File 4.21 KB 0644
dynOptionMenuWidget.py File 1.27 KB 0644
dynOptionMenuWidget.pyc File 1.66 KB 0644
dynOptionMenuWidget.pyo File 1.66 KB 0644
extend.txt File 3.56 KB 0644
help.txt File 11.72 KB 0644
idle.py File 400 B 0644
idle.pyc File 406 B 0644
idle.pyo File 406 B 0644
idle.pyw File 664 B 0644
idlever.py File 23 B 0644
idlever.pyc File 159 B 0644
idlever.pyo File 159 B 0644
keybindingDialog.py File 12.12 KB 0644
keybindingDialog.pyc File 12.05 KB 0644
keybindingDialog.pyo File 12.05 KB 0644
macosxSupport.py File 6.08 KB 0644
macosxSupport.pyc File 6.25 KB 0644
macosxSupport.pyo File 6.25 KB 0644
rpc.py File 19.75 KB 0644
rpc.pyc File 21.26 KB 0644
rpc.pyo File 21.16 KB 0644
run.py File 11.54 KB 0644
run.pyc File 12.14 KB 0644
run.pyo File 12.08 KB 0644
tabbedpages.py File 17.76 KB 0644
tabbedpages.pyc File 17.67 KB 0644
tabbedpages.pyo File 17.67 KB 0644
textView.py File 3.46 KB 0644
textView.pyc File 4.2 KB 0644
textView.pyo File 4.2 KB 0644