diff options
Diffstat (limited to 'lib/python2.7/idlelib/extend.txt')
-rw-r--r-- | lib/python2.7/idlelib/extend.txt | 83 |
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. |