diff -r 000000000000 -r ae805ac0140d python-2.5.2/win32/tcl/tk8.4/text.tcl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python-2.5.2/win32/tcl/tk8.4/text.tcl Fri Apr 03 17:19:34 2009 +0100 @@ -0,0 +1,1162 @@ +# text.tcl -- +# +# This file defines the default bindings for Tk text widgets and provides +# procedures that help in implementing the bindings. +# +# RCS: @(#) $Id: text.tcl,v 1.24.2.7 2005/09/10 14:54:17 das Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1998 by Scriptics Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of ::tk::Priv that are used in this file: +# +# afterId - If non-null, it means that auto-scanning is underway +# and it gives the "after" id for the next auto-scan +# command to be executed. +# char - Character position on the line; kept in order +# to allow moving up or down past short lines while +# still remembering the desired position. +# mouseMoved - Non-zero means the mouse has moved a significant +# amount since the button went down (so, for example, +# start dragging out a selection). +# prevPos - Used when moving up or down lines via the keyboard. +# Keeps track of the previous insert position, so +# we can distinguish a series of ups and downs, all +# in a row, from a new up or down. +# selectMode - The style of selection currently underway: +# char, word, or line. +# x, y - Last known mouse coordinates for scanning +# and auto-scanning. +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for text widgets. +#------------------------------------------------------------------------- + +# Standard Motif bindings: + +bind Text <1> { + tk::TextButton1 %W %x %y + %W tag remove sel 0.0 end +} +bind Text { + set tk::Priv(x) %x + set tk::Priv(y) %y + tk::TextSelectTo %W %x %y +} +bind Text { + set tk::Priv(selectMode) word + tk::TextSelectTo %W %x %y + catch {%W mark set insert sel.last} +} +bind Text { + set tk::Priv(selectMode) line + tk::TextSelectTo %W %x %y + catch {%W mark set insert sel.last} +} +bind Text { + tk::TextResetAnchor %W @%x,%y + set tk::Priv(selectMode) char + tk::TextSelectTo %W %x %y +} +bind Text { + set tk::Priv(selectMode) word + tk::TextSelectTo %W %x %y 1 +} +bind Text { + set tk::Priv(selectMode) line + tk::TextSelectTo %W %x %y +} +bind Text { + set tk::Priv(x) %x + set tk::Priv(y) %y + tk::TextAutoScan %W +} +bind Text { + tk::CancelRepeat +} +bind Text { + tk::CancelRepeat +} +bind Text { + %W mark set insert @%x,%y +} +bind Text { + tk::TextSetCursor %W insert-1c +} +bind Text { + tk::TextSetCursor %W insert+1c +} +bind Text { + tk::TextSetCursor %W [tk::TextUpDownLine %W -1] +} +bind Text { + tk::TextSetCursor %W [tk::TextUpDownLine %W 1] +} +bind Text { + tk::TextKeySelect %W [%W index {insert - 1c}] +} +bind Text { + tk::TextKeySelect %W [%W index {insert + 1c}] +} +bind Text { + tk::TextKeySelect %W [tk::TextUpDownLine %W -1] +} +bind Text { + tk::TextKeySelect %W [tk::TextUpDownLine %W 1] +} +bind Text { + tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextPara %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextScrollPages %W -1] +} +bind Text { + tk::TextKeySelect %W [tk::TextScrollPages %W -1] +} +bind Text { + tk::TextSetCursor %W [tk::TextScrollPages %W 1] +} +bind Text { + tk::TextKeySelect %W [tk::TextScrollPages %W 1] +} +bind Text { + %W xview scroll -1 page +} +bind Text { + %W xview scroll 1 page +} + +bind Text { + tk::TextSetCursor %W {insert linestart} +} +bind Text { + tk::TextKeySelect %W {insert linestart} +} +bind Text { + tk::TextSetCursor %W {insert lineend} +} +bind Text { + tk::TextKeySelect %W {insert lineend} +} +bind Text { + tk::TextSetCursor %W 1.0 +} +bind Text { + tk::TextKeySelect %W 1.0 +} +bind Text { + tk::TextSetCursor %W {end - 1 char} +} +bind Text { + tk::TextKeySelect %W {end - 1 char} +} + +bind Text { + if { [string equal [%W cget -state] "normal"] } { + tk::TextInsert %W \t + focus %W + break + } +} +bind Text { + # Needed only to keep binding from triggering; doesn't + # have to actually do anything. + break +} +bind Text { + focus [tk_focusNext %W] +} +bind Text { + focus [tk_focusPrev %W] +} +bind Text { + tk::TextInsert %W \t +} +bind Text { + tk::TextInsert %W \n + if {[%W cget -autoseparators]} {%W edit separator} +} +bind Text { + if {[%W tag nextrange sel 1.0 end] ne ""} { + %W delete sel.first sel.last + } else { + %W delete insert + %W see insert + } +} +bind Text { + if {[%W tag nextrange sel 1.0 end] ne ""} { + %W delete sel.first sel.last + } elseif {[%W compare insert != 1.0]} { + %W delete insert-1c + %W see insert + } +} + +bind Text { + %W mark set anchor insert +} +bind Text