diff options
Diffstat (limited to 'library')
-rw-r--r-- | library/listbox.tcl | 27 | ||||
-rw-r--r-- | library/scrlbar.tcl | 16 | ||||
-rw-r--r-- | library/text.tcl | 47 |
3 files changed, 63 insertions, 27 deletions
diff --git a/library/listbox.tcl b/library/listbox.tcl index 9143f22..27cb114 100644 --- a/library/listbox.tcl +++ b/library/listbox.tcl @@ -3,7 +3,7 @@ # This file defines the default bindings for Tk listbox widgets # and provides procedures that help in implementing those bindings. # -# RCS: @(#) $Id: listbox.tcl,v 1.14 2005/07/25 09:06:00 dkf Exp $ +# RCS: @(#) $Id: listbox.tcl,v 1.15 2005/09/10 14:53:20 das Exp $ # # Copyright (c) 1994 The Regents of the University of California. # Copyright (c) 1994-1995 Sun Microsystems, Inc. @@ -175,12 +175,27 @@ bind Listbox <B2-Motion> { %W scan dragto %x %y } -# The MouseWheel will typically only fire on Windows. However, -# someone could use the "event generate" command to produce one -# on other platforms. +# The MouseWheel will typically only fire on Windows and Mac OS X. +# However, someone could use the "event generate" command to produce +# one on other platforms. -bind Listbox <MouseWheel> { - %W yview scroll [expr {- (%D / 120) * 4}] units +if {[tk windowingsystem] eq "aqua"} { + bind Listbox <MouseWheel> { + %W yview scroll [expr {- (%D)}] units + } + bind Listbox <Option-MouseWheel> { + %W yview scroll [expr {-10 * (%D)}] units + } + bind Listbox <Shift-MouseWheel> { + %W xview scroll [expr {- (%D)}] units + } + bind Listbox <Shift-Option-MouseWheel> { + %W xview scroll [expr {-10 * (%D)}] units + } +} else { + bind Listbox <MouseWheel> { + %W yview scroll [expr {- (%D / 120) * 4}] units + } } if {"x11" eq [tk windowingsystem]} { diff --git a/library/scrlbar.tcl b/library/scrlbar.tcl index 6be187b..57275f2 100644 --- a/library/scrlbar.tcl +++ b/library/scrlbar.tcl @@ -3,7 +3,7 @@ # This file defines the default bindings for Tk scrollbar widgets. # It also provides procedures that help in implementing the bindings. # -# RCS: @(#) $Id: scrlbar.tcl,v 1.11 2005/07/25 09:06:00 dkf Exp $ +# RCS: @(#) $Id: scrlbar.tcl,v 1.12 2005/09/10 14:53:20 das Exp $ # # Copyright (c) 1994 The Regents of the University of California. # Copyright (c) 1994-1996 Sun Microsystems, Inc. @@ -130,6 +130,20 @@ bind Scrollbar <End> { tk::ScrollToPos %W 1 } } +if {[tk windowingsystem] eq "aqua"} { + bind Scrollbar <MouseWheel> { + tk::ScrollByUnits %W v [expr {- (%D)}] + } + bind Scrollbar <Option-MouseWheel> { + tk::ScrollByUnits %W v [expr {-10 * (%D)}] + } + bind Scrollbar <Shift-MouseWheel> { + tk::ScrollByUnits %W h [expr {- (%D)}] + } + bind Scrollbar <Shift-Option-MouseWheel> { + tk::ScrollByUnits %W h [expr {-10 * (%D)}] + } +} # tk::ScrollButtonDown -- # This procedure is invoked when a button is pressed in a scrollbar. # It changes the way the scrollbar is displayed and takes actions diff --git a/library/text.tcl b/library/text.tcl index 051f9b8..22d96d7 100644 --- a/library/text.tcl +++ b/library/text.tcl @@ -3,7 +3,7 @@ # 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.39 2005/07/26 12:38:19 dkf Exp $ +# RCS: @(#) $Id: text.tcl,v 1.40 2005/09/10 14:53:20 das Exp $ # # Copyright (c) 1992-1994 The Regents of the University of California. # Copyright (c) 1994-1997 Sun Microsystems, Inc. @@ -452,26 +452,33 @@ set ::tk::Priv(prevPos) {} # on other platforms. We must be careful not to round -ve values of %D # down to zero. -# We must make sure that positive and negative movements are rounded -# equally to integers, avoiding the problem that -# (int)1/3 = 0, -# but -# (int)-1/3 = -1 -# The following code ensure equal +/- behaviour. -bind Text <MouseWheel> { - if {%D >= 0} { - %W yview scroll [expr {-%D/3}] pixels - } else { - %W yview scroll [expr {(2-%D)/3}] pixels - } -} if {[tk windowingsystem] eq "aqua"} { -bind Text <Option-MouseWheel> { - %W yview scroll [expr {-150 * %D}] pixels -} -bind Text <MouseWheel> { - %W yview scroll [expr {-15 * %D}] pixels -} + bind Text <MouseWheel> { + %W yview scroll [expr {-15 * (%D)}] pixels + } + bind Text <Option-MouseWheel> { + %W yview scroll [expr {-150 * (%D)}] pixels + } + bind Text <Shift-MouseWheel> { + %W xview scroll [expr {-15 * (%D)}] pixels + } + bind Text <Shift-Option-MouseWheel> { + %W xview scroll [expr {-150 * (%D)}] pixels + } +} else { + # We must make sure that positive and negative movements are rounded + # equally to integers, avoiding the problem that + # (int)1/3 = 0, + # but + # (int)-1/3 = -1 + # The following code ensure equal +/- behaviour. + bind Text <MouseWheel> { + if {%D >= 0} { + %W yview scroll [expr {-%D/3}] pixels + } else { + %W yview scroll [expr {(2-%D)/3}] pixels + } + } } if {"x11" eq [tk windowingsystem]} { |