1############################################################################# 2# Author: # 3# ------ # 4# Anton Kokalj Email: Tone.Kokalj@ijs.si # 5# Department of Physical and Organic Chemistry Phone: x 386 1 477 3523 # 6# Jozef Stefan Institute Fax: x 386 1 477 3811 # 7# Jamova 39, SI-1000 Ljubljana # 8# SLOVENIA # 9# # 10# Source: $XCRYSDEN_TOPDIR/Tcl/toolbox.tcl 11# ------ # 12# Copyright (c) 1996-2003 by Anton Kokalj # 13############################################################################# 14 15proc FS_Toolbox {toolbox togl spin iband {multiband ""}} { 16 global FS_Interpolation toglZoom fs 17 18 # width == 700 * $xcMisc(resolution_ratio1) 19 20 if { $multiband == "" } { 21 # 22 # Interpolation 23 # 24 if { ! [info exists FS_Interpolation($togl)] } { 25 if { [info exists fs($spin,$iband,interpolationdegree)] } { 26 set FS_Interpolation($togl) [lindex $fs($spin,$iband,interpolationdegree) 0] 27 } else { 28 set FS_Interpolation($togl) 1 29 } 30 } 31 32 set f_int [frame $toolbox.int -relief sunken -bd 1] 33 set l1 [label $f_int.l -text "Degree of\nInterpolation:" -font TkFixedFont -anchor w] 34 set sc1 [scale $f_int.scale -from 1 -to 6 \ 35 -font TkFixedFont \ 36 -length 90 \ 37 -variable FS_Interpolation($togl) \ 38 -orient horizontal \ 39 -tickinterval 1 \ 40 -digits 1 \ 41 -resolution 1 \ 42 -showvalue false \ 43 -width 10] 44 set submit [button $f_int.submit -text Submit -font TkFixedFont \ 45 -command [list FS_Interpolation:submit $togl $spin $iband]] 46 pack $f_int -side left -padx 1m -ipadx 0m -ipady 1m 47 pack $l1 $sc1 $submit -side left -padx 1 -pady 0 -ipadx 0 -ipady 0 48 } 49 50 # 51 # Zoom 52 # 53 if { ! [info exists toglZoom($togl)] } { 54 set toglZoom($togl) 1.0 55 } 56 if { ! [info exists toglZoom($togl,zoomStep)] } { 57 set toglZoom($togl,zoomStep) 0.05 58 } 59 60 set f_zoom [frame $toolbox.zoom -relief sunken -bd 1] 61 62 # SCALE for translationStep 63 64 set l2 [label $f_zoom.l -text "Zoom\nStep:" -font TkFixedFont -anchor w] 65 set sc2 [scale $f_zoom.scale \ 66 -from 0 -to 0.4 \ 67 -font TkFixedFont \ 68 -length 90 \ 69 -variable toglZoom($togl,zoomStep) \ 70 -orient horizontal \ 71 -tickinterval 0.2 \ 72 -digits 1 \ 73 -resolution 0.05 \ 74 -showvalue false \ 75 -width 10] 76 77 # zoom buttons 78 79 set zoom1 [button $f_zoom.zoom1 -text "+" -font TkFixedFont] 80 set zoom2 [button $f_zoom.zoom2 -text "-" -font TkFixedFont] 81 82 #bind $zoom1 <ButtonPress-1> [list toglZoom:zoom $togl $zoom1 +] 83 #bind $zoom2 <ButtonPress-1> [list toglZoom:zoom $togl $zoom2 -] 84 bind $zoom1 <ButtonRelease-1> [list toglZoom:discreteZoom $togl +] 85 bind $zoom2 <ButtonRelease-1> [list toglZoom:discreteZoom $togl -] 86 87 pack $f_zoom -side left -padx 1m -ipadx 0m -ipady 1m 88 pack $l2 $sc2 $zoom1 $zoom2 -side left -padx 1 -pady 0 -ipadx 0 -ipady 0 89 90 if { $multiband == "" } { 91 # Revert Sides + Revert normals buttons 92 set f_revert [frame $toolbox.revert -relief sunken -bd 1] 93 94 set side [button $f_revert.side -text "Revert Sides" -font TkFixedFont \ 95 -command [list FS_RevertIsoSides $spin $iband]] 96 set norm [button $f_revert.norm -text "Revert Normals" -font TkFixedFont \ 97 -command [list FS_RevertIsoNormals $spin $iband]] 98 pack $f_revert -side right -padx 1m -ipadx 1m 99 pack $side $norm -side top -fill x -expand 1 -padx 1 -pady 0 -ipadx 0 -ipady 0 100 } 101} 102 103 104proc FS_RevertIsoSides {spin iband} { 105 global fs 106 107 if { $fs($spin,$iband,frontface) == "CCW" } { 108 set fs($spin,$iband,frontface) "CW" 109 } else { 110 set fs($spin,$iband,frontface) "CCW" 111 } 112 FS_Config $iband $spin 113} 114 115 116proc FS_RevertIsoNormals {spin iband} { 117 global fs 118 119 if { $fs($spin,$iband,revertnormals) } { 120 set fs($spin,$iband,revertnormals) 0 121 } else { 122 set fs($spin,$iband,revertnormals) 1 123 } 124 FS_Config $iband $spin 125} 126