summaryrefslogtreecommitdiff
path: root/lib/python2.7/idlelib/extend.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/idlelib/extend.txt')
-rw-r--r--lib/python2.7/idlelib/extend.txt83
1 files changed, 0 insertions, 83 deletions
diff --git a/lib/python2.7/idlelib/extend.txt b/lib/python2.7/idlelib/extend.txt
deleted file mode 100644
index c9cb2e8..0000000
--- a/lib/python2.7/idlelib/extend.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-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.