Sha256: f172ff0cabced183b681febb923edc4a4fe439e44dc3362d965902e2b837f8b9

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

# scale.tcl - Copyright (C) 2004 Pat Thoyts <patthoyts@users.sourceforge.net>
#
# Bindings for the TScale widget
#
# scale.tcl,v 1.11 2006/11/05 18:40:48 jenglish Exp

namespace eval ttk::scale {
    variable State
    array set State  {
	dragging 0
    }
}

bind TScale <ButtonPress-1>   { ttk::scale::Press %W %x %y }
bind TScale <B1-Motion>       { ttk::scale::Drag %W %x %y }
bind TScale <ButtonRelease-1> { ttk::scale::Release %W %x %y }

proc ttk::scale::Press {w x y} {
    variable State
    set State(dragging) 0

    switch -glob -- [$w identify $x $y] {
	*track -
        *trough {
	    if {[$w get $x $y] <= [$w get]} {
		ttk::Repeatedly Increment $w -1
	    } else {
		ttk::Repeatedly Increment $w 1
	    }
        }
        *slider {
            set State(dragging) 1
            set State(initial) [$w get]
        }
    }
}

proc ttk::scale::Drag {w x y} {
    variable State
    if {$State(dragging)} {
	$w set [$w get $x $y]
    }
}

proc ttk::scale::Release {w x y} {
    variable State
    set State(dragging) 0
    ttk::CancelRepeat
}

proc ttk::scale::Increment {w delta} {
    if {![winfo exists $w]} return
    $w set [expr {[$w get] + $delta}]
}

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
Pratt-1.6.8 pkgs/tile-0.8.2/library/scale.tcl
Pratt-1.6.5 pkgs/tile-0.8.2/library/scale.tcl
Pratt-1.6.4 pkgs/tile-0.8.2/library/scale.tcl
Pratt-1.6.2 pkgs/tile-0.8.2/library/scale.tcl
Pratt-1.5.8 pkgs/tile-0.8.2/library/scale.tcl
Pratt-1.5.6 pkgs/tile-0.8.2/library/scale.tcl