I wrote some code that improves (i hope) the behavior of mousewhell scroll over the board: 1) Scrolling back automatically leaves a variation 2) Scrolling forward shows arrows indicating moves for multiple variations
Would you give it a try? Index: src/tkscid.cpp =================================================================== RCS file: /cvsroot/scid/scid/src/tkscid.cpp,v retrieving revision 1.38 diff -u -r1.38 tkscid.cpp --- src/tkscid.cpp 31 Aug 2009 10:14:44 -0000 1.38 +++ src/tkscid.cpp 5 Oct 2009 13:15:10 -0000 @@ -15929,11 +15929,13 @@ int sc_var_list (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { + bool uci = (argc > 2) && ! strCompare("UCI", argv[2]); uint varCount = db->game->GetNumVariations(); char s[100]; for (uint varNumber = 0; varNumber < varCount; varNumber++) { db->game->MoveIntoVariation (varNumber); - db->game->GetSAN (s); + if (uci) db->game->GetNextMoveUCI (s); + else db->game->GetSAN (s); // if (s[0] == 0) { strCopy (s, "(empty)"); } Tcl_AppendElement (ti, s); db->game->MoveExitVariation (); Index: tcl/end.tcl =================================================================== RCS file: /cvsroot/scid/scid/tcl/end.tcl,v retrieving revision 1.60 diff -u -r1.60 end.tcl --- tcl/end.tcl 25 Jul 2009 07:56:56 -0000 1.60 +++ tcl/end.tcl 5 Oct 2009 13:10:38 -0000 @@ -1359,8 +1359,40 @@ # MouseWheel in main window: bind .main <MouseWheel> { - if {[expr -%D] < 0} { ::move::Back } - if {[expr -%D] > 0} { ::move::Forward } + if {[expr -%D] < 0} { + if {[sc_pos isAt vstart]} { .main.fbutton.button.exitVar invoke + } else { ::move::Back } + } + if {[expr -%D] > 0} { + set bMoveForward 1 + set varList [sc_var list UCI] + if {$varList != ""} { + set bMoveForward 1 + set color "darkBlue" + set move [sc_game info nextMoveUCI] + if {$move != ""} { + set varList [linsert $varList 0 $move] + set color "blue" + } + + foreach { move } $varList { + set bDrawArrow 1 + set sq_start [ ::board::sq [ string range $move 0 1 ] ] + set sq_end [ ::board::sq [ string range $move 2 3 ] ] + foreach mark $::board::_mark(.main.board) { + if { [lindex $mark 0] == "arrow" } { + if {[lindex $mark 1] == $sq_start && [lindex $mark 2] == $sq_end && [lindex $mark 3] == $color} { set bDrawArrow 0} + } + } + if {$bDrawArrow} { + set bMoveForward 0 + ::board::mark::add ".main.board" "arrow" $sq_start $sq_end $color + } + set color "darkBlue" + } + } + if { $bMoveForward } {::move::Forward } + } } ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ Scid-users mailing list Scid-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scid-users