/usr/share/xcrysden/Tcl/hbonds.tcl is in xcrysden-data 1.5.60-1build3.
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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #############################################################################
# Author: #
# ------ #
# Anton Kokalj Email: Tone.Kokalj@ijs.si #
# Department of Physical and Organic Chemistry Phone: x 386 1 477 3523 #
# Jozef Stefan Institute Fax: x 386 1 477 3811 #
# Jamova 39, SI-1000 Ljubljana #
# SLOVENIA #
# #
# Source: $XCRYSDEN_TOPDIR/Tcl/hbonds.tcl
# ------ #
# Copyright (c) 1996-2003 by Anton Kokalj #
#############################################################################
proc Hbonds {togl} {
global check
if { $check(Hbonds) } {
xc_hbonds $togl on
$togl render
xcSwapBuffers
} else {
xc_hbonds $togl off
$togl render
xcSwapBuffers
}
}
proc HbondsSetting {togl} {
global check Hbonds
set t .hbond[lindex [split $togl .] end]
if { [winfo exists $t] } {
return
}
_HbondsSetting:Init $togl
# from here on: widget managing
xcToplevel $t "H-bonds: Settings" "H-bonds" . -0 0 1
set f1 [frame $t.f1]
set f2 [frame $t.f2]
set f3 [frame $t.f3]
pack $f1 $f2 $f3 -side top -expand 1 -fill x -padx 3m -pady 3m
# frame-1: simple entries
FillEntries $f1 {
"H-like atom list:"
"O-like atom list:"
"Minimum H-bond length:"
"Maximum H-bond length:"
"Minimum H-bond angle:"
"H-bond line width:"
"H-bond line pattern:"
"H-bond pattern size:"
} {
Hbonds(H_like_list)
Hbonds(O_like_list)
Hbonds(length_min)
Hbonds(length_max)
Hbonds(angle_min)
Hbonds(line_width)
Hbonds(line_pattern)
Hbonds(line_patternsize)
} 23 20 top left
# frame-2: H-bond color
xcModifyColor $f2 "H-bonds color:" [rgb_f2h $Hbonds(color)] \
groove left left 100 100 100 5 20 $Hbonds(colorID)
# frame-3: Close/Update buttons
set b1 [button $f3.close -text "Close" -command [list DestroyWid $t]]
set b2 [button $f3.update -text "Update" -command [list HbondsSetting:update $togl]]
pack $b1 $b2 -side left -padx 3m -pady 3m -expand 1
}
proc HbondsSetting:update {togl} {
global Hbonds
# check the values of the HBonds array here ...
# ...insert...
#--
if { [info exists Hbonds(colorID)] } {
set Hbonds(color) [xcModifyColorGet $Hbonds(colorID) float RGB]
}
xc_hbonds $togl set \
-H_like_list $Hbonds(H_like_list) \
-O_like_list $Hbonds(O_like_list) \
-color $Hbonds(color) \
-length_min $Hbonds(length_min) \
-length_max $Hbonds(length_max) \
-angle_min $Hbonds(angle_min) \
-line_width $Hbonds(line_width) \
-line_pattern $Hbonds(line_pattern) \
-line_patternsize $Hbonds(line_patternsize)
$togl render
xcSwapBuffers
}
proc _HbondsSetting:Init {togl} {
global Hbonds
foreach option {
H_like_list
O_like_list
color
length_min
length_max
angle_min
line_width
line_pattern
line_patternsize
} {
if { ![info exists Hbonds($option)] } {
set Hbonds($option) [xc_hbonds $togl get -$option]
}
}
if { ! [info exists Hbonds(colorID)] } {
set Hbonds(colorID) [xcModifyColorID]
}
}
|