diff options
Diffstat (limited to 'tcl/library/scale.tcl')
-rw-r--r-- | tcl/library/scale.tcl | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/tcl/library/scale.tcl b/tcl/library/scale.tcl deleted file mode 100644 index e9ab3e88a03..00000000000 --- a/tcl/library/scale.tcl +++ /dev/null @@ -1,274 +0,0 @@ -# scale.tcl -- -# -# This file defines the default bindings for Tk scale widgets and provides -# procedures that help in implementing the bindings. -# -# RCS: @(#) $Id$ -# -# Copyright (c) 1994 The Regents of the University of California. -# Copyright (c) 1994-1995 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for entries. -#------------------------------------------------------------------------- - -# Standard Motif bindings: - -bind Scale <Enter> { - if {$tk_strictMotif} { - set tk::Priv(activeBg) [%W cget -activebackground] - %W config -activebackground [%W cget -background] - } - tk::ScaleActivate %W %x %y -} -bind Scale <Motion> { - tk::ScaleActivate %W %x %y -} -bind Scale <Leave> { - if {$tk_strictMotif} { - %W config -activebackground $tk::Priv(activeBg) - } - if {[string equal [%W cget -state] "active"]} { - %W configure -state normal - } -} -bind Scale <1> { - tk::ScaleButtonDown %W %x %y -} -bind Scale <B1-Motion> { - tk::ScaleDrag %W %x %y -} -bind Scale <B1-Leave> { } -bind Scale <B1-Enter> { } -bind Scale <ButtonRelease-1> { - tk::CancelRepeat - tk::ScaleEndDrag %W - tk::ScaleActivate %W %x %y -} -bind Scale <2> { - tk::ScaleButton2Down %W %x %y -} -bind Scale <B2-Motion> { - tk::ScaleDrag %W %x %y -} -bind Scale <B2-Leave> { } -bind Scale <B2-Enter> { } -bind Scale <ButtonRelease-2> { - tk::CancelRepeat - tk::ScaleEndDrag %W - tk::ScaleActivate %W %x %y -} -if {[string equal $tcl_platform(platform) "windows"]} { - # On Windows do the same with button 3, as that is the right mouse button - bind Scale <3> [bind Scale <2>] - bind Scale <B3-Motion> [bind Scale <B2-Motion>] - bind Scale <B3-Leave> [bind Scale <B2-Leave>] - bind Scale <B3-Enter> [bind Scale <B2-Enter>] - bind Scale <ButtonRelease-3> [bind Scale <ButtonRelease-2>] -} -bind Scale <Control-1> { - tk::ScaleControlPress %W %x %y -} -bind Scale <Up> { - tk::ScaleIncrement %W up little noRepeat -} -bind Scale <Down> { - tk::ScaleIncrement %W down little noRepeat -} -bind Scale <Left> { - tk::ScaleIncrement %W up little noRepeat -} -bind Scale <Right> { - tk::ScaleIncrement %W down little noRepeat -} -bind Scale <Control-Up> { - tk::ScaleIncrement %W up big noRepeat -} -bind Scale <Control-Down> { - tk::ScaleIncrement %W down big noRepeat -} -bind Scale <Control-Left> { - tk::ScaleIncrement %W up big noRepeat -} -bind Scale <Control-Right> { - tk::ScaleIncrement %W down big noRepeat -} -bind Scale <Home> { - %W set [%W cget -from] -} -bind Scale <End> { - %W set [%W cget -to] -} - -# ::tk::ScaleActivate -- -# This procedure is invoked to check a given x-y position in the -# scale and activate the slider if the x-y position falls within -# the slider. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates. - -proc ::tk::ScaleActivate {w x y} { - if {[string equal [$w cget -state] "disabled"]} { - return - } - if {[string equal [$w identify $x $y] "slider"]} { - set state active - } else { - set state normal - } - if {[string compare [$w cget -state] $state]} { - $w configure -state $state - } -} - -# ::tk::ScaleButtonDown -- -# This procedure is invoked when a button is pressed in a scale. It -# takes different actions depending on where the button was pressed. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates of button press. - -proc ::tk::ScaleButtonDown {w x y} { - variable ::tk::Priv - set Priv(dragging) 0 - set el [$w identify $x $y] - if {[string equal $el "trough1"]} { - ScaleIncrement $w up little initial - } elseif {[string equal $el "trough2"]} { - ScaleIncrement $w down little initial - } elseif {[string equal $el "slider"]} { - set Priv(dragging) 1 - set Priv(initValue) [$w get] - set coords [$w coords] - set Priv(deltaX) [expr {$x - [lindex $coords 0]}] - set Priv(deltaY) [expr {$y - [lindex $coords 1]}] - $w configure -sliderrelief sunken - } -} - -# ::tk::ScaleDrag -- -# This procedure is called when the mouse is dragged with -# mouse button 1 down. If the drag started inside the slider -# (i.e. the scale is active) then the scale's value is adjusted -# to reflect the mouse's position. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates. - -proc ::tk::ScaleDrag {w x y} { - variable ::tk::Priv - if {!$Priv(dragging)} { - return - } - $w set [$w get [expr {$x-$Priv(deltaX)}] [expr {$y-$Priv(deltaY)}]] -} - -# ::tk::ScaleEndDrag -- -# This procedure is called to end an interactive drag of the -# slider. It just marks the drag as over. -# -# Arguments: -# w - The scale widget. - -proc ::tk::ScaleEndDrag {w} { - variable ::tk::Priv - set Priv(dragging) 0 - $w configure -sliderrelief raised -} - -# ::tk::ScaleIncrement -- -# This procedure is invoked to increment the value of a scale and -# to set up auto-repeating of the action if that is desired. The -# way the value is incremented depends on the "dir" and "big" -# arguments. -# -# Arguments: -# w - The scale widget. -# dir - "up" means move value towards -from, "down" means -# move towards -to. -# big - Size of increments: "big" or "little". -# repeat - Whether and how to auto-repeat the action: "noRepeat" -# means don't auto-repeat, "initial" means this is the -# first action in an auto-repeat sequence, and "again" -# means this is the second repetition or later. - -proc ::tk::ScaleIncrement {w dir big repeat} { - variable ::tk::Priv - if {![winfo exists $w]} return - if {[string equal $big "big"]} { - set inc [$w cget -bigincrement] - if {$inc == 0} { - set inc [expr {abs([$w cget -to] - [$w cget -from])/10.0}] - } - if {$inc < [$w cget -resolution]} { - set inc [$w cget -resolution] - } - } else { - set inc [$w cget -resolution] - } - if {([$w cget -from] > [$w cget -to]) ^ [string equal $dir "up"]} { - set inc [expr {-$inc}] - } - $w set [expr {[$w get] + $inc}] - - if {[string equal $repeat "again"]} { - set Priv(afterId) [after [$w cget -repeatinterval] \ - [list tk::ScaleIncrement $w $dir $big again]] - } elseif {[string equal $repeat "initial"]} { - set delay [$w cget -repeatdelay] - if {$delay > 0} { - set Priv(afterId) [after $delay \ - [list tk::ScaleIncrement $w $dir $big again]] - } - } -} - -# ::tk::ScaleControlPress -- -# This procedure handles button presses that are made with the Control -# key down. Depending on the mouse position, it adjusts the scale -# value to one end of the range or the other. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates where the button was pressed. - -proc ::tk::ScaleControlPress {w x y} { - set el [$w identify $x $y] - if {[string equal $el "trough1"]} { - $w set [$w cget -from] - } elseif {[string equal $el "trough2"]} { - $w set [$w cget -to] - } -} - -# ::tk::ScaleButton2Down -# This procedure is invoked when button 2 is pressed over a scale. -# It sets the value to correspond to the mouse position and starts -# a slider drag. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates within the widget. - -proc ::tk::ScaleButton2Down {w x y} { - variable ::tk::Priv - - if {[string equal [$w cget -state] "disabled"]} { - return - } - $w configure -state active - $w set [$w get $x $y] - set Priv(dragging) 1 - set Priv(initValue) [$w get] - set coords "$x $y" - set Priv(deltaX) 0 - set Priv(deltaY) 0 -} |