Here is my patches to FileRunner 2.4 (should work with 2.3 too) to add support for scrolling with the scrolling wheel on "intellimouse"-type mouse (logitech and MS) The operation principle is that with the relevant patches to the XFree server (which should make their way into the standard XFree, they are already in the SUSE servers), moving the wheel up sends "button4" events and button5 ones on down motions. I so bound scroll movements to the file lists, view windows, and quickedit windows on these buttons. Scrolling moves by N lines (N is the variable glob(mwheelldelta)), 6 by defaults, but this may be settable in the settings, or by 1 if shift is depressed for fine adjustments This gives a really useful functionality to fr! For more details, I will set up a web page to put all the hacks I come up with to add wheel-scrolling on various X apps at: http://colas.nahaboo.net/mouse-wheel-scroll WARNING: these diffs also add my (old) hack to add menus at the end (last chunck) , feel free to cut off this part. : t$; diff -c FileRunner_2.4/fr /net/koala/global/FileRunner/FileRunner_2.4-colas/fr *** FileRunner_2.4/fr Sun Sep 7 21:31:27 1997 --- /net/koala/global/FileRunner/FileRunner_2.4-colas/fr Mon Dec 29 02:32:57 1997 *************** *** 4,9 **** --- 4,12 ---- set glob(version) 2.4 + # Colas: mouse wheel scrolling listbox delta (with shift, small increments) + set glob(mwheelldelta) 6 + proc bgerror err { global errorInfo env glob tcl_patchLevel tk_patchLevel set info $errorInfo *************** *** 1104,1109 **** --- 1107,1123 ---- lappend glob(gui,color_xx,winlist) $glob(win,$inst).frame_listb.listbox1 lappend glob(gui,tablist) $glob(win,$inst).frame_listb.listbox1 bind $glob(win,$inst).frame_listb.listbox1 {TabBind $glob(gui,tablist);break} + # Colas: Bind mouse 4&5 (mouse wheel) on lists scrolling + bind $glob(win,$inst).frame_listb.listbox1 \ + "$glob(win,$inst).frame_listb.listbox1 yview scroll -1 units" + bind $glob(win,$inst).frame_listb.listbox1 \ + "$glob(win,$inst).frame_listb.listbox1 yview scroll 1 units" + bind $glob(win,$inst).frame_listb.listbox1 <4> \ + "$glob(win,$inst).frame_listb.listbox1 yview scroll -$glob(mwheelldelta) units" + bind $glob(win,$inst).frame_listb.listbox1 <5> \ + "$glob(win,$inst).frame_listb.listbox1 yview scroll $glob(mwheelldelta) units" + # Colas: end + selection handle $glob(win,$inst).frame_listb.listbox1 GetFileListBoxSTRING_Selection STRING label $glob(win,$inst).top.t.stat -text "" -justify center *************** *** 2265,2270 **** --- 2279,2291 ---- bind $w "$w.text yview scroll -1 pages" bind $w "$w.text see 0.0" bind $w "$w.text see end" + # Colas: Bind mouse 4&5 (mouse wheel) on view scrolling + bind $w.text "$w.text yview scroll -1 units" + bind $w.text "$w.text yview scroll 1 units" + bind $w.text <4> "$w.text yview scroll -$glob(mwheelldelta) units" + bind $w.text <5> "$w.text yview scroll $glob(mwheelldelta) units" + # Colas: end + #catch {focus $w.text} #tkwait window $w } *************** *** 2351,2356 **** --- 2372,2383 ---- bind $w "$w.text yview scroll -1 pages" bind $w "$w.text see 0.0" bind $w "$w.text see end" + # Colas: Bind mouse 4&5 (mouse wheel) on editor scrolling + bind $w.text "$w.text yview scroll -1 units" + bind $w.text "$w.text yview scroll 1 units" + bind $w.text <4> "$w.text yview scroll -$glob(mwheelldelta) units" + bind $w.text <5> "$w.text yview scroll $glob(mwheelldelta) units" + # Colas: end } proc EditTextCheckPoint { filename w scriptWhenDone } { *************** *** 3183,3185 **** --- 3210,3231 ---- set glob(init_done) 1 + ############################## Colas start: user menus + # Primitive, but works. Reads ~/.fr/menus after all inits done. + ### Colas: read menu code + if { [file exists $env(HOME)/.fr/menus ] } { + set r [catch { source $env(HOME)/.fr/menus } out] + if { $r != 0 } { + PopErrorSimple "Error loading code from $env(HOME)/.fr/menus:\n\n$out" + exit 1 + } + } + ### Colas: execute a command independently of what is selected + proc ExecCmd { inst } { + set r [catch $inst out] + if {$r} { + PopError "$out" + return + } + } + ############################## Colas end: user menus