/usr/share/xcircuit/mousehint.tcl is in xcircuit 3.8.78.dfsg-1+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #------------------------------------------------------------------------
# Mouse button hints---written by James Vernon March 2006
#------------------------------------------------------------------------
#------------------------------------------------------------------------
# Write 3 strings corresponding to the 3 mouse button functions
# Use the "bindkey -compat" to get the current button bindings
#------------------------------------------------------------------------
proc xcircuit::automousehint {window} {
set frame [winfo top $window]
set btext [bindkey $window -compat Button1]
${frame}.infobar.mousehints.left configure -text $btext
set btext [bindkey $window -compat Button2]
${frame}.infobar.mousehints.middle configure -text $btext
set btext [bindkey $window -compat Button3]
${frame}.infobar.mousehints.right configure -text $btext
}
#------------------------------------------------------------------------
# Creates a canvas showing the 3 buttons of a 3 button mouse
# and adds labels that can contain strings telling the user what
# the current function of those buttons is
#------------------------------------------------------------------------
proc xcircuit::mousehint_create {name} {
frame ${name}.infobar.mousehints -background beige
label ${name}.infobar.mousehints.title -background beige -foreground brown4 \
-anchor e -text "Button bindings: "
button ${name}.infobar.mousehints.left -background beige -relief groove
button ${name}.infobar.mousehints.middle -background beige -relief groove
button ${name}.infobar.mousehints.right -background beige -relief groove
grid ${name}.infobar.mousehints.title -row 0 -column 0 -sticky news
grid ${name}.infobar.mousehints.left -row 0 -column 1 -sticky news
grid ${name}.infobar.mousehints.middle -row 0 -column 2 -sticky news
grid ${name}.infobar.mousehints.right -row 0 -column 3 -sticky news
grid columnconfigure ${name}.infobar.mousehints 0 -weight 0
grid columnconfigure ${name}.infobar.mousehints 1 -weight 0
grid columnconfigure ${name}.infobar.mousehints 2 -weight 0
grid columnconfigure ${name}.infobar.mousehints 3 -weight 0
mousehint_bindings ${name} ${name}.infobar.mousehints
xcircuit::mousehint_show ${name}
}
#------------------------------------------------------------------------
# Displays the mouse_canvas that shows a picture of the 3
# buttons on a mouse in the top right corner of the top level window
# and moves the menubar.message widget under the menu buttons
#------------------------------------------------------------------------
proc xcircuit::mousehint_show { name } {
pack forget ${name}.infobar.message2
pack ${name}.infobar.mousehints -padx 2 -side left -ipadx 6 -fill y
pack ${name}.infobar.message2 -side left -padx 2 -ipadx 6 -expand true -fill both
bind ${name}.infobar.mode <ButtonPress-1> "::xcircuit::mousehint_hide ${name}"
}
#------------------------------------------------------------------------
# Hides the mouse_canvas that shows a picture of the 3
# buttons on a mouse and moves the menubar.message label
# back in its place.
#------------------------------------------------------------------------
proc xcircuit::mousehint_hide { name } {
pack forget ${name}.infobar.mousehints
bind ${name}.infobar.mode <ButtonPress-1> "::xcircuit::mousehint_show ${name}"
}
#------------------------------------------------------------------------
# Highlights buttons on the mouse_canvas when the user
# presses the corresponding mouse buttons
# Seems unnescesary, but without it who would guess that those
# rectangles are supposed to look like mouse buttons?
#------------------------------------------------------------------------
proc xcircuit::mousehint_bindings { name mouse_frame } {
bind all <Button-1> "${mouse_frame}.left configure -state active ; \
xcircuit::automousehint ${name}.mainframe.mainarea.drawing"
bind all <Button-2> "${mouse_frame}.middle configure -state active ; \
xcircuit::automousehint ${name}.mainframe.mainarea.drawing"
bind all <Button-3> "${mouse_frame}.right configure -state active ; \
xcircuit::automousehint ${name}.mainframe.mainarea.drawing"
bind all <ButtonRelease-1> "${mouse_frame}.left configure -state normal"
bind all <ButtonRelease-2> "${mouse_frame}.middle configure -state normal"
bind all <ButtonRelease-3> "${mouse_frame}.right configure -state normal"
bind all <KeyPress> "xcircuit::automousehint ${name}.mainframe.mainarea.drawing"
bind ${mouse_frame}.title <ButtonPress-1> "::xcircuit::mousehint_hide ${name}"
}
#------------------------------------------------------------------------
|