From e0ec2a5235bcc0da03b55ba03edba439cc3470d3 Mon Sep 17 00:00:00 2001 From: carmen rocco Date: Tue, 24 May 2005 23:38:22 +0000 Subject: . svn path=/trunk/; revision=3083 --- extensions/gui/ix/kbd.wid | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'extensions/gui/ix/kbd.wid') diff --git a/extensions/gui/ix/kbd.wid b/extensions/gui/ix/kbd.wid index bf624964..177f503b 100755 --- a/extensions/gui/ix/kbd.wid +++ b/extensions/gui/ix/kbd.wid @@ -1,4 +1,12 @@ namespace eval ::ix { + proc kbd_list {p t args} { + variable _ + set w $p.f[expr [lindex $args 0] / 12].[lindex $args 0] + if {[llength $args] == 1} {set v 1;if {$_($t:lp) != -1 && $_($t:lp) ne $w} {kbd_action $_($t:lp) $t 0}} {set v [lindex $args 1]} + kbd_action $w $t $v + set _($t:lp) $w + } + proc kbd_play {t m b x y} { variable _ foreach a {{rs {0 sunken 1 raised}} {v {0 0 1 {($y - [winfo rooty $w]) / ([winfo height $w] + 0.0)}}}} {array set [lindex $a 0] [lindex $a 1]} @@ -15,8 +23,8 @@ namespace eval ::ix { proc kbd_off {p t octaves} { for {set o 0} {$o < $octaves} {incr o} { for {set on 0} {$on < 12} {incr on} { - set no [expr $o * 12 + $on] - if {[$p.f$o.$no cget -relief] eq "sunken"} {kbd_action $p.f$o.$no $t 0}}}} + set w $p.f$o.[expr $o * 12 + $on] + if {[$w cget -relief] eq "sunken"} {kbd_action $w $t 0}}}} proc kbd {path t octaves b f} { if {![winfo exists $path.f0]} { @@ -36,5 +44,6 @@ namespace eval ::ix { #> kbd frame #. -height 100 -width 60 #. #octaves 6 #bg black #fg white - +#. @list ::ix::kbd_list .- .| .#args +#. @float ::ix::kbd_list .- .| .#args ::ix::kbd .- .| .#octaves .#bg .#fg -- cgit v1.2.1