From: <ro...@us...> - 2009-03-25 10:19:58
|
Revision: 2107 http://nscldaq.svn.sourceforge.net/nscldaq/?rev=2107&view=rev Author: ron-fox Date: 2009-03-25 10:19:44 +0000 (Wed, 25 Mar 2009) Log Message: ----------- Add the -option option Modified Paths: -------------- branches/daqclients-8_2/clients/slowControls/caenv812/caenv812Gui.tcl Modified: branches/daqclients-8_2/clients/slowControls/caenv812/caenv812Gui.tcl =================================================================== --- branches/daqclients-8_2/clients/slowControls/caenv812/caenv812Gui.tcl 2009-03-25 10:10:54 UTC (rev 2106) +++ branches/daqclients-8_2/clients/slowControls/caenv812/caenv812Gui.tcl 2009-03-25 10:19:44 UTC (rev 2107) @@ -75,6 +75,12 @@ # -alarmscript Supplies a script that will be invoked if the module has any alarms to report. # Note that this module has no alarm conditions however this option is provided # to unify the interface of all control widgets +# -disable thing Allows elements of the display to be disabled (ghosted). thing can be a list of +# widths - Disable width settings +# majority - Disable majority settings. +# deadtimes- Disable dead time settings. +# typically only deadtimes is used as that's needed for the V895 leading edge +# discriminator. # # Properties: # threshold0 .. threshold15 - The thresholds of the module's 16 channels. @@ -92,6 +98,7 @@ option -name {} option -command {} option -alarmscript {} + option -disable {} variable cfd; # holds the handle to the cfd object. @@ -210,7 +217,7 @@ $self selectChannel 0 - + $self setDisables; # Disable any elements requested. } # destructor: # Called when one of these widgets is destroyed. @@ -221,6 +228,53 @@ catch {$self destroyState} } + # + # Process the -disable switch only if the constructor has completed.. otherwise + # the constructor will process that switch + # + onconfigure -disable value { + set options(-disable) $value + + if {[winfo exists $win.majority]} { + $self setDisables + } + } + + # Private method to modify the GUI to match the set of disables programmed + # by the -disable option. This can be a list containing any of the + # following words: + # widths - Disables the width widget set. + # majority - Disables the majority widget set. + # deadtimes - Disables the deadtime widget set. + # + method setDisables {} { + foreach word [list widths majority deadtimes] { + if {[lsearch -exact $options(-disable) $word] != -1} { + set state normal + } else { + set state disabled + } + $self set${word}State $state + } + } + + # State setting methods setwidthsState, setmajorityState and setdeadtimesState + # each takes a state setting to apply to the specified widget cluster. + # + method setwidthsState setting { + $win.widths.w07 config -state $setting + $win.widths.w815 config -state $setting + } + + method setmajorityState setting { + $win.majority config -state $setting + } + + method setdeadtimesState setting { + $win.deadtimes.d07 config -state $setting + $win.deadtimes.d815 config -state $setting + } + # setThreshold channel threshold # Sets the threshold to a new value. # Parameters: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |