]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/tcl/windows/dlg_params.tcl
creaMaracasVisu Library
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / tcl / windows / dlg_params.tcl
1 namespace eval dlg_params {
2
3     # public interface
4     namespace export \
5         show
6
7     # variables
8     variable widgets
9     variable widgetsGeneral
10     variable widgetsAxes
11     variable widgetsContours
12     variable widgetsQuantification
13
14     # values to load
15     variable gen_debug      0
16     variable con_debug      0
17     variable quant_type     0
18     variable stenosis_type  0
19     variable alg_type       0
20     variable voxel_typ      0
21     variable params_to_save {}
22
23 }
24
25 proc dlg_params::reset { parent } {
26
27     # For programming facilities
28     upvar dlg_params::widgets               widgets
29     upvar dlg_params::widgetsGeneral        widgetsGeneral
30     upvar dlg_params::widgetsAxes           widgetsAxes
31     upvar dlg_params::widgetsContours       widgetsContours
32     upvar dlg_params::widgetsQuantification widgetsQuantification
33     upvar dlg_params::gen_debug             gen_debug
34     upvar dlg_params::con_debug             con_debug
35     upvar dlg_params::quant_type            quant_type
36     upvar dlg_params::alg_type              alg_type
37     upvar dlg_params::stenosis_type         stenosis_type
38     upvar dlg_params::params_to_save        params_to_save
39
40     set widgets(base)           "$parent\.dlg_params"
41     set widgets(tabs)           "$parent\.dlg_params.tabs"
42     set widgets(buttons)        "$parent\.dlg_params.buttons"
43     set widgets(general)        "$parent\.dlg_params.general"
44     set widgets(axis)           "$parent\.dlg_params.axis"
45     set widgets(contour)        "$parent\.dlg_params.contour"
46     set widgets(quantification) "$parent\.dlg_params.quantification"
47     set widgets(btnGeneral)     "$parent\.dlg_params.tabs.btnGeneral"
48     set widgets(btnAxis)        "$parent\.dlg_params.tabs.btnAxis"
49     set widgets(btnContour)     "$parent\.dlg_params.tabs.btnContour"
50     set widgets(btnQuant)       "$parent\.dlg_params.tabs.btnQuant"
51     set widgets(btnOk)          "$parent\.dlg_params.buttons.btnOk"
52     set widgets(btnCancel)      "$parent\.dlg_params.buttons.btnCancel"
53
54     set widgetsGeneral(genDataPaths)    "$parent\.dlg_params.general.dataPaths"
55     set widgetsGeneral(genWork)         "$parent\.dlg_params.general.dataPaths.cpd24"
56     set widgetsGeneral(genWork01)       "$parent\.dlg_params.general.dataPaths.cpd24.01"
57     set widgetsGeneral(genWork02)       "$parent\.dlg_params.general.dataPaths.cpd24.02"
58     set widgetsGeneral(genImages)       "$parent\.dlg_params.general.dataPaths.cpd25"
59     set widgetsGeneral(genImages01)     "$parent\.dlg_params.general.dataPaths.cpd25.01"
60     set widgetsGeneral(genImages02)     "$parent\.dlg_params.general.dataPaths.cpd25.02"
61     set widgetsGeneral(genBtnBrwWork)   "$parent\.dlg_params.general.dataPaths.btnBrwWork"
62     set widgetsGeneral(genBtnBrwImages) "$parent\.dlg_params.general.dataPaths.btnBrwImages"
63     set widgetsGeneral(genDebug)        "$parent\.dlg_params.general.debug"
64     set widgetsGeneral(genBtnWndVis)    "$parent\.dlg_params.general.debug.btnWndVis"
65     set widgetsGeneral(genBtnConVis)    "$parent\.dlg_params.general.debug.btnConVis"
66     set widgetsGeneral(genBtnMIPDef)    "$parent\.dlg_params.general.debug.btnMIPDef"
67     set widgetsGeneral(genBtnAllSlc)    "$parent\.dlg_params.general.debug.btnAllSlc"
68     set widgetsGeneral(genBtnColor)     "$parent\.dlg_params.general.debug.btnColor"
69     set widgetsGeneral(genlbl009)       "$parent\.dlg_params.general.debug.lbl009"
70     set widgetsGeneral(genlbl001)       "$parent\.dlg_params.general.lbl001"
71     set widgetsGeneral(genlbl078)       "$parent\.dlg_params.general.lbl078"
72
73     set widgetsAxes(axVoxelX)        "$parent\.dlg_params.axis.cpd26"
74     set widgetsAxes(axVoxelX01)      "$parent\.dlg_params.axis.cpd26.01"
75     set widgetsAxes(axVoxelX02)      "$parent\.dlg_params.axis.cpd26.02"
76     set widgetsAxes(axVoxelY)        "$parent\.dlg_params.axis.cpd28"
77     set widgetsAxes(axVoxelY01)      "$parent\.dlg_params.axis.cpd28.01"
78     set widgetsAxes(axVoxelY02)      "$parent\.dlg_params.axis.cpd28.02"
79     set widgetsAxes(axVoxelZ)        "$parent\.dlg_params.axis.cpd29"
80     set widgetsAxes(axVoxelZ01)      "$parent\.dlg_params.axis.cpd29.01"
81     set widgetsAxes(axVoxelZ02)      "$parent\.dlg_params.axis.cpd29.02"
82     set widgetsAxes(axStep)          "$parent\.dlg_params.axis.cpd30"
83     set widgetsAxes(axStep01)        "$parent\.dlg_params.axis.cpd30.01"
84     set widgetsAxes(axStep02)        "$parent\.dlg_params.axis.cpd30.02"
85     set widgetsAxes(axAxisStep)      "$parent\.dlg_params.axis.cpd31"
86     set widgetsAxes(axAxisStep01)    "$parent\.dlg_params.axis.cpd31.01"
87     set widgetsAxes(axAxisStep02)    "$parent\.dlg_params.axis.cpd31.02"
88     set widgetsAxes(axROIDim)        "$parent\.dlg_params.axis.cpd32"
89     set widgetsAxes(axROIDim01)      "$parent\.dlg_params.axis.cpd32.01"
90     set widgetsAxes(axROIDim02)      "$parent\.dlg_params.axis.cpd32.02"
91     set widgetsAxes(axMassPower)     "$parent\.dlg_params.axis.cpd33"
92     set widgetsAxes(axMassPower01)   "$parent\.dlg_params.axis.cpd33.01"
93     set widgetsAxes(axMassPower02)   "$parent\.dlg_params.axis.cpd33.02"
94     set widgetsAxes(axTension)       "$parent\.dlg_params.axis.cpd34"
95     set widgetsAxes(axTension01)     "$parent\.dlg_params.axis.cpd34.01"
96     set widgetsAxes(axTension02)     "$parent\.dlg_params.axis.cpd34.02"
97     set widgetsAxes(axPas)           "$parent\.dlg_params.axis.cpd35"
98     set widgetsAxes(axPas01)         "$parent\.dlg_params.axis.cpd35.01"
99     set widgetsAxes(axPas02)         "$parent\.dlg_params.axis.cpd35.02"
100     set widgetsAxes(axDistCDG)       "$parent\.dlg_params.axis.cpd36"
101     set widgetsAxes(axDistCDG01)     "$parent\.dlg_params.axis.cpd36.01"
102     set widgetsAxes(axDistCDG02)     "$parent\.dlg_params.axis.cpd36.02"
103     set widgetsAxes(axCell)          "$parent\.dlg_params.axis.cpd37"
104     set widgetsAxes(axCell01)        "$parent\.dlg_params.axis.cpd37.01"
105     set widgetsAxes(axCell02)        "$parent\.dlg_params.axis.cpd37.02"
106     set widgetsAxes(axFlex)          "$parent\.dlg_params.axis.cpd38"
107     set widgetsAxes(axFlex01)        "$parent\.dlg_params.axis.cpd38.01"
108     set widgetsAxes(axFlex02)        "$parent\.dlg_params.axis.cpd38.02"
109     set widgetsAxes(axMaskSize)      "$parent\.dlg_params.axis.cpd39"
110     set widgetsAxes(axMaskSize01)    "$parent\.dlg_params.axis.cpd39.01"
111     set widgetsAxes(axMaskSize02)    "$parent\.dlg_params.axis.cpd39.02"
112     set widgetsAxes(axDistInt)       "$parent\.dlg_params.axis.cpd40"
113     set widgetsAxes(axDistInt01)     "$parent\.dlg_params.axis.cpd40.01"
114     set widgetsAxes(axDistInt02)     "$parent\.dlg_params.axis.cpd40.02"
115     set widgetsAxes(axCoefCellMax)   "$parent\.dlg_params.axis.axCoefCellMax"
116     set widgetsAxes(axCoefCellMax01) "$parent\.dlg_params.axis.axCoefCellMax.01"
117     set widgetsAxes(axCoefCellMax02) "$parent\.dlg_params.axis.axCoefCellMax.02"
118     set widgetsAxes(axBtnMinVoxel)   "$parent\.dlg_params.axis.btnMinVoxel"
119     set widgetsAxes(axBtnNorVoxel)   "$parent\.dlg_params.axis.btnNorVoxel"
120     set widgetsAxes(axlblColor)      "$parent\.dlg_params.axis.lblColor"
121     set widgetsAxes(axBtnColor)      "$parent\.dlg_params.axis.btnColor"
122     set widgetsAxes(axLblDebug)      "$parent\.dlg_params.axis.lblDebug"
123     set widgetsAxes(axFrDebug)       "$parent\.dlg_params.axis.frDebug"
124     set widgetsAxes(axBtnShowCell)   "$parent\.dlg_params.axis.frDebug.btnShowCell"
125     set widgetsAxes(axBtnShowICell)  "$parent\.dlg_params.axis.frDebug.btnShowICell"
126
127     set widgetsContours(conFrSlice)               "$parent\.dlg_params.contour.frSlice"
128     set widgetsContours(conFrScale)               "$parent\.dlg_params.contour.frSlice.frScale"
129     set widgetsContours(conLblScale)              "$parent\.dlg_params.contour.frSlice.frScale.lblScale"
130     set widgetsContours(conEdtScale)              "$parent\.dlg_params.contour.frSlice.frScale.edtScale"
131     set widgetsContours(conFrSample)              "$parent\.dlg_params.contour.frSlice.frSample"
132     set widgetsContours(conLblSample)             "$parent\.dlg_params.contour.frSlice.frSample.lblSample"
133     set widgetsContours(conEdtSample)             "$parent\.dlg_params.contour.frSlice.frSample.edtSample"
134     set widgetsContours(conFrDebug)               "$parent\.dlg_params.contour.frDebug"
135     set widgetsContours(conBtnIsoconturs)         "$parent\.dlg_params.contour.frDebug.btnIsoconturs"
136     set widgetsContours(conBtnDiameters)          "$parent\.dlg_params.contour.frDebug.btnDiameters"
137     set widgetsContours(conBtnFillContours)       "$parent\.dlg_params.contour.frDebug.btnFillContours"
138     set widgetsContours(conFrIso)                 "$parent\.dlg_params.contour.frIso"
139     set widgetsContours(conFrThrIso)              "$parent\.dlg_params.contour.frIso.frThrIso"
140     set widgetsContours(conLblThrIso)             "$parent\.dlg_params.contour.frIso.frThrIso.lblThrIso"
141     set widgetsContours(conEdtThrIso)             "$parent\.dlg_params.contour.frIso.frThrIso.edtThrIso"
142     set widgetsContours(conFrSnakeIso)            "$parent\.dlg_params.contour.frSnakeIso"
143     set widgetsContours(conFrThrSnakeIso)         "$parent\.dlg_params.contour.frSnakeIso.frThrSnakeIso"
144     set widgetsContours(conLblThrSnakeIso)        "$parent\.dlg_params.contour.frSnakeIso.frThrSnakeIso.lblThrSnakeIso"
145     set widgetsContours(conEdtThrSnakeIso)        "$parent\.dlg_params.contour.frSnakeIso.frThrSnakeIso.edtThrSnakeIso"
146     set widgetsContours(conFrIterSnakeIso)        "$parent\.dlg_params.contour.frSnakeIso.frIterSnakeIso"
147     set widgetsContours(conLblIterSnakeIso)       "$parent\.dlg_params.contour.frSnakeIso.frIterSnakeIso.lblIterSnakeIso"
148     set widgetsContours(conEdtIterSnakeIso)       "$parent\.dlg_params.contour.frSnakeIso.frIterSnakeIso.edtIterSnakeIso"
149     set widgetsContours(conFrCoefExternSnakeIso)  "$parent\.dlg_params.contour.frSnakeIso.frCoefExternSnakeIso"
150     set widgetsContours(conLblCoefExternSnakeIso) "$parent\.dlg_params.contour.frSnakeIso.frCoefExternSnakeIso.lblCoefExternSnakeIso"
151     set widgetsContours(conEdtCoefExternSnakeIso) "$parent\.dlg_params.contour.frSnakeIso.frCoefExternSnakeIso.edtCoefExternSnakeIso"
152     set widgetsContours(conFrSnakeDer)            "$parent\.dlg_params.contour.frSnakeDer"
153     set widgetsContours(conFrIterSnakeDer)        "$parent\.dlg_params.contour.frSnakeDer.frIterSnakeDer"
154     set widgetsContours(conLblIterSnakeDer)       "$parent\.dlg_params.contour.frSnakeDer.frIterSnakeDer.lblIterSnakeDer"
155     set widgetsContours(conEdtIterSnakeDer)       "$parent\.dlg_params.contour.frSnakeDer.frIterSnakeDer.edtIterSnakeDer"
156     set widgetsContours(conFrCoefGradSnakeDer)    "$parent\.dlg_params.contour.frSnakeDer.frCoefGradSnakeDer"
157     set widgetsContours(conLblCoefGradSnakeDer)   "$parent\.dlg_params.contour.frSnakeDer.frCoefGradSnakeDer.lblCoefGradSnakeDer"
158     set widgetsContours(conEdtCoefGradSnakeDer)   "$parent\.dlg_params.contour.frSnakeDer.frCoefGradSnakeDer.edtCoefGradSnakeDer"
159     set widgetsContours(conFrCoefBallonSnakeDer)  "$parent\.dlg_params.contour.frSnakeDer.frBallonCoefSnakeDer"
160     set widgetsContours(conLblCoefBallonSnakeDer) "$parent\.dlg_params.contour.frSnakeDer.frBallonCoefSnakeDer.lblCoefBallonSnakeDer"
161     set widgetsContours(conEdtCoefBallonSnakeDer) "$parent\.dlg_params.contour.frSnakeDer.frBallonCoefSnakeDer.edtCoefBallonSnakeDer"
162     set widgetsContours(conFrSigmaSnakeDer)       "$parent\.dlg_params.contour.frSnakeDer.frSigmaSnakeDer"
163     set widgetsContours(conLblSigmaSnakeDer)      "$parent\.dlg_params.contour.frSnakeDer.frSigmaSnakeDer.lblSigmaSnakeDer"
164     set widgetsContours(conEdtSigmaSnakeDer)      "$parent\.dlg_params.contour.frSnakeDer.frSigmaSnakeDer.edtSigmaSnakeDer"
165     set widgetsContours(conLbl001)                "$parent\.dlg_params.contour.lbl001"
166     set widgetsContours(conLbl002)                "$parent\.dlg_params.contour.lbl002"
167     set widgetsContours(conBtnIso)                "$parent\.dlg_params.contour.btnIso"
168     set widgetsContours(conBtnSnakeIso)           "$parent\.dlg_params.contour.btnSnakeIso"
169     set widgetsContours(conBtnSnakeDer)           "$parent\.dlg_params.contour.btnSnakeDer"
170
171     set widgetsQuantification(quantMeasures)    "$parent\.dlg_params.quantification.measures"
172     set widgetsQuantification(quantBtnAreaM)    "$parent\.dlg_params.quantification.measures.btnAreaM"
173     set widgetsQuantification(quantBtnPeriM)    "$parent\.dlg_params.quantification.measures.btnPeriM"
174     set widgetsQuantification(quantBtnDiaAreaM) "$parent\.dlg_params.quantification.measures.btnDiaAreaM"
175     set widgetsQuantification(quantBtnDiaPeriM) "$parent\.dlg_params.quantification.measures.btnDiaPeriM"
176     set widgetsQuantification(quantBtnDiaMinM)  "$parent\.dlg_params.quantification.measures.btnDiaMinM"
177     set widgetsQuantification(quantBtnDiaMaxM)  "$parent\.dlg_params.quantification.measures.btnDiaMaxM"
178     set widgetsQuantification(quantBtnDiaAvgM)  "$parent\.dlg_params.quantification.measures.btnDiaAvgM"
179     set widgetsQuantification(quantStenosis)    "$parent\.dlg_params.quantification.stenosis"
180     set widgetsQuantification(quantBtnAreaS)    "$parent\.dlg_params.quantification.stenosis.btnAreaS"
181     set widgetsQuantification(quantBtnPeriS)    "$parent\.dlg_params.quantification.stenosis.btnPeriS"
182     set widgetsQuantification(quantBtnDiaAreaS) "$parent\.dlg_params.quantification.stenosis.btnDiaAreaS"
183     set widgetsQuantification(quantBtnDiaPeriS) "$parent\.dlg_params.quantification.stenosis.btnDiaPeriS"
184     set widgetsQuantification(quantBtnDiaMinS)  "$parent\.dlg_params.quantification.stenosis.btnDiaMinS"
185     set widgetsQuantification(quantBtnDiaMaxS)  "$parent\.dlg_params.quantification.stenosis.btnDiaMaxS"
186     set widgetsQuantification(quantBtnDiaAvgS)  "$parent\.dlg_params.quantification.stenosis.btnDiaAvgS"
187     set widgetsQuantification(quantlbl22)       "$parent\.dlg_params.quantification.lbl22"
188     set widgetsQuantification(quantlbl23)       "$parent\.dlg_params.quantification.lbl23"
189
190     set gen_debug      0
191     set con_debug      0
192     set quant_type     0
193     set stenosis_type  0
194     set alg_type       0
195     set params_to_save {}
196
197 }
198
199 proc dlg_params::show { parent params } {       
200
201     # For programming facilities
202     upvar dlg_params::widgets               widgets
203     upvar dlg_params::widgetsGeneral        widgetsGeneral
204     upvar dlg_params::widgetsAxes           widgetsAxes
205     upvar dlg_params::widgetsContours       widgetsContours
206     upvar dlg_params::widgetsQuantification widgetsQuantification
207     upvar dlg_params::gen_debug             gen_debug
208     upvar dlg_params::con_debug             con_debug
209     upvar dlg_params::quant_type            quant_type
210     upvar dlg_params::alg_type              alg_type
211     upvar dlg_params::stenosis_type         stenosis_type
212     upvar dlg_params::params_to_save        params_to_save
213
214     dlg_params::reset $parent
215
216     # toplevel
217     toplevel            $widgets(base) -class Toplevel
218     wm focusmodel       $widgets(base) passive
219     wm geometry         $widgets(base) 519x384+357+190
220     wm maxsize          $widgets(base) 1030 755
221     wm minsize          $widgets(base) 106 2
222     wm overrideredirect $widgets(base) 0
223     wm resizable        $widgets(base) 0 0
224     wm deiconify        $widgets(base)
225     wm title            $widgets(base) "$string_table::str_title_params"
226
227     # frames
228     frame $widgets(tabs)           -height 75 -width 125 
229     frame $widgets(buttons)        -height 47 -width 125 
230     frame $widgets(general)        -borderwidth 2 -height 75 -relief groove -width 125 
231     frame $widgets(axis)           -borderwidth 2 -height 75 -relief groove -width 125 
232     frame $widgets(contour)        -borderwidth 2 -height 75 -relief groove -width 125 
233     frame $widgets(quantification) -borderwidth 2 -height 75 -relief groove -width 125 
234
235     frame $widgetsGeneral(genDataPaths) -borderwidth 2 -height 75 -relief groove -width 125 
236     frame $widgetsGeneral(genWork)      -borderwidth 1 -height 30 -width 30 
237     frame $widgetsGeneral(genImages)    -borderwidth 1 -height 30 -width 30 
238     frame $widgetsGeneral(genDebug)     -borderwidth 2 -height 75 -relief groove -width 125 
239
240     frame $widgetsAxes(axVoxelX)      -borderwidth 1 -height 30 -width 30 
241     frame $widgetsAxes(axVoxelY)      -borderwidth 1 -height 30 -width 30 
242     frame $widgetsAxes(axVoxelZ)      -borderwidth 1 -height 30 -width 30 
243     frame $widgetsAxes(axStep)        -borderwidth 1 -height 30 -width 30 
244     frame $widgetsAxes(axAxisStep)    -borderwidth 1 -height 30 -width 30 
245     frame $widgetsAxes(axROIDim)      -borderwidth 1 -height 30 -width 30 
246     frame $widgetsAxes(axMassPower)   -borderwidth 1 -height 30 -width 30 
247     frame $widgetsAxes(axTension)     -borderwidth 1 -height 30 -width 30 
248     frame $widgetsAxes(axPas)         -borderwidth 1 -height 30 -width 30 
249     frame $widgetsAxes(axDistCDG)     -borderwidth 1 -height 30 -width 30 
250     frame $widgetsAxes(axCell)        -borderwidth 1 -height 30 -width 30 
251     frame $widgetsAxes(axFlex)        -borderwidth 1 -height 30 -width 30 
252     frame $widgetsAxes(axMaskSize)    -borderwidth 1 -height 30 -width 30 
253     frame $widgetsAxes(axDistInt)     -borderwidth 1 -height 30 -width 30 
254     frame $widgetsAxes(axCoefCellMax) -borderwidth 1 -height 30 -width 30 
255     frame $widgetsAxes(axFrDebug)     -borderwidth 2 -height 30 -width 30 -relief groove
256
257     frame $widgetsContours(conFrSlice)               -borderwidth 2 -height 30 -width 30 -relief groove
258     frame $widgetsContours(conFrScale)               -borderwidth 1 -height 30 -width 30
259     frame $widgetsContours(conFrSample)              -borderwidth 1 -height 30 -width 30
260     frame $widgetsContours(conFrDebug)               -borderwidth 2 -height 30 -width 30 -relief groove
261     frame $widgetsContours(conFrIso)                 -borderwidth 2 -height 30 -width 30 -relief groove
262     frame $widgetsContours(conFrThrIso)              -borderwidth 1 -height 30 -width 30
263     frame $widgetsContours(conFrSnakeIso)            -borderwidth 2 -height 30 -width 30 -relief groove
264     frame $widgetsContours(conFrThrSnakeIso)         -borderwidth 1 -height 30 -width 30
265     frame $widgetsContours(conFrIterSnakeIso)        -borderwidth 1 -height 30 -width 30
266     frame $widgetsContours(conFrCoefExternSnakeIso)  -borderwidth 1 -height 30 -width 30
267     frame $widgetsContours(conFrSnakeDer)            -borderwidth 2 -height 30 -width 30 -relief groove
268     frame $widgetsContours(conFrIterSnakeDer)        -borderwidth 1 -height 30 -width 30
269     frame $widgetsContours(conFrCoefGradSnakeDer)    -borderwidth 1 -height 30 -width 30
270     frame $widgetsContours(conFrCoefBallonSnakeDer)  -borderwidth 1 -height 30 -width 30
271     frame $widgetsContours(conFrSigmaSnakeDer)       -borderwidth 1 -height 30 -width 30
272
273     frame $widgetsQuantification(quantMeasures) -borderwidth 2 -height 75 -relief groove -width 125 
274     frame $widgetsQuantification(quantStenosis) -borderwidth 2 -height 75 -relief groove -width 125 
275
276     # tabs
277     radiobutton $widgets(btnGeneral) -indicatoron 0 -text $string_table::str_general        -variable tab_value -value 1 -command "dlg_params::cb_show_general"
278     radiobutton $widgets(btnAxis)    -indicatoron 0 -text $string_table::str_axis           -variable tab_value -value 2 -command "dlg_params::cb_show_axis"
279     radiobutton $widgets(btnContour) -indicatoron 0 -text $string_table::str_contour        -variable tab_value -value 3 -command "dlg_params::cb_show_contour"
280     radiobutton $widgets(btnQuant)   -indicatoron 0 -text $string_table::str_quantification -variable tab_value -value 4 -command "dlg_params::cb_show_quant"
281
282     # entries
283     entry $widgetsGeneral(genWork02)
284     entry $widgetsGeneral(genImages02)
285     
286     entry $widgetsAxes(axVoxelX02)
287     entry $widgetsAxes(axVoxelY02)
288     entry $widgetsAxes(axVoxelZ02)
289     label $widgetsAxes(axStep02)
290     entry $widgetsAxes(axAxisStep02)
291     label $widgetsAxes(axROIDim02)
292     label $widgetsAxes(axMassPower02)
293     entry $widgetsAxes(axTension02)
294     label $widgetsAxes(axPas02)
295     entry $widgetsAxes(axDistCDG02)
296     label $widgetsAxes(axCell02)
297     entry $widgetsAxes(axFlex02)
298     entry $widgetsAxes(axMaskSize02)
299     label $widgetsAxes(axDistInt02)
300     label $widgetsAxes(axCoefCellMax02)
301
302     entry $widgetsContours(conEdtScale)
303     entry $widgetsContours(conEdtSample)
304     entry $widgetsContours(conEdtThrIso)
305     entry $widgetsContours(conEdtThrSnakeIso)
306     entry $widgetsContours(conEdtIterSnakeIso)
307     entry $widgetsContours(conEdtCoefExternSnakeIso)
308     entry $widgetsContours(conEdtIterSnakeDer)
309     entry $widgetsContours(conEdtCoefGradSnakeDer)
310     entry $widgetsContours(conEdtCoefBallonSnakeDer)
311     entry $widgetsContours(conEdtSigmaSnakeDer)
312
313     # checkbuttons
314     checkbutton $widgetsGeneral(genBtnWndVis) -text $string_table::str_debug_window_visible   -variable btnWndVis  -command { dlg_params::cb_gen_debug $btnWndVis  0x01 }
315     checkbutton $widgetsGeneral(genBtnConVis) -text $string_table::str_console_window_visible -variable btnConsole -command { dlg_params::cb_gen_debug $btnConsole 0x02 }
316     checkbutton $widgetsGeneral(genBtnMIPDef) -text $string_table::str_calculate_mip_default  -variable btnMIP     -command { dlg_params::cb_gen_debug $btnMIP     0x04 }
317     checkbutton $widgetsGeneral(genBtnAllSlc) -text $string_table::str_all_slices_selected    -variable btnSlices  -command { dlg_params::cb_gen_debug $btnSlices  0x08 }
318
319     checkbutton $widgetsAxes(axBtnShowCell)  -text $string_table::str_show_cell    -variable btnDebug01 
320     checkbutton $widgetsAxes(axBtnShowICell) -text $string_table::str_show_i_cell  -variable btnDebug02 
321
322     checkbutton $widgetsContours(conBtnIsoconturs)   -text $string_table::str_isocontours    -variable btn001 -command { dlg_params::cb_con_debug $btn001 0x01 }
323     checkbutton $widgetsContours(conBtnDiameters)    -text $string_table::str_diameters      -variable btn002 -command { dlg_params::cb_con_debug $btn001 0x02 }
324     checkbutton $widgetsContours(conBtnFillContours) -text $string_table::str_filled_contour -variable btn003 -command { dlg_params::cb_con_debug $btn001 0x04 }
325
326     checkbutton $widgetsQuantification(quantBtnAreaM)    -text $string_table::str_area      -variable btnArea    -command { dlg_params::cb_quant_type $btnArea    0x01 quantBtnAreaS }
327     checkbutton $widgetsQuantification(quantBtnPeriM)    -text $string_table::str_peri      -variable btnPeri    -command { dlg_params::cb_quant_type $btnPeri    0x02 quantBtnPeriS }
328     checkbutton $widgetsQuantification(quantBtnDiaAreaM) -text $string_table::str_diam_area -variable btnDiaArea -command { dlg_params::cb_quant_type $btnDiaArea 0x04 quantBtnDiaAreaS }
329     checkbutton $widgetsQuantification(quantBtnDiaPeriM) -text $string_table::str_diam_peri -variable btnDiaPeri -command { dlg_params::cb_quant_type $btnDiaPeri 0x08 quantBtnDiaPeriS }
330     checkbutton $widgetsQuantification(quantBtnDiaMinM)  -text $string_table::str_diam_min  -variable btnDiaMin  -command { dlg_params::cb_quant_type $btnDiaMin  0x10 quantBtnDiaMinS }
331     checkbutton $widgetsQuantification(quantBtnDiaMaxM)  -text $string_table::str_diam_max  -variable btnDiaMax  -command { dlg_params::cb_quant_type $btnDiaMax  0x20 quantBtnDiaMaxS }
332     checkbutton $widgetsQuantification(quantBtnDiaAvgM)  -text $string_table::str_diam_avg  -variable btnDiaAvg  -command { dlg_params::cb_quant_type $btnDiaAvg  0x40 quantBtnDiaAvgS }
333
334     # radiobuttons
335     radiobutton $widgetsAxes(axBtnMinVoxel)  -borderwidth 0 -text $string_table::str_minimum_voxel -variable dlg_params::voxel_typ -value 1 
336     radiobutton $widgetsAxes(axBtnNorVoxel)  -borderwidth 0 -text $string_table::str_normal_voxel  -variable dlg_params::voxel_typ -value 2
337
338     radiobutton $widgetsContours(conBtnIso)      -text $string_table::str_isocontour -variable dlg_params::alg_type -value 1 -borderwidth 0 -relief flat
339     radiobutton $widgetsContours(conBtnSnakeIso) -text $string_table::str_snake_iso  -variable dlg_params::alg_type -value 2 -borderwidth 0 -relief flat
340     radiobutton $widgetsContours(conBtnSnakeDer) -text $string_table::str_snake_der  -variable dlg_params::alg_type -value 3 -borderwidth 0 -relief flat
341
342     radiobutton $widgetsQuantification(quantBtnAreaS)    -text $string_table::str_area      -variable v_stenosis_type -value 1 -command { dlg_params::set_stenosis_type $v_stenosis_type }
343     radiobutton $widgetsQuantification(quantBtnPeriS)    -text $string_table::str_peri      -variable v_stenosis_type -value 2 -command { dlg_params::set_stenosis_type $v_stenosis_type }
344     radiobutton $widgetsQuantification(quantBtnDiaAreaS) -text $string_table::str_diam_area -variable v_stenosis_type -value 3 -command { dlg_params::set_stenosis_type $v_stenosis_type }
345     radiobutton $widgetsQuantification(quantBtnDiaPeriS) -text $string_table::str_diam_peri -variable v_stenosis_type -value 4 -command { dlg_params::set_stenosis_type $v_stenosis_type }
346     radiobutton $widgetsQuantification(quantBtnDiaMaxS)  -text $string_table::str_diam_max  -variable v_stenosis_type -value 5 -command { dlg_params::set_stenosis_type $v_stenosis_type }
347     radiobutton $widgetsQuantification(quantBtnDiaMinS)  -text $string_table::str_diam_min  -variable v_stenosis_type -value 6 -command { dlg_params::set_stenosis_type $v_stenosis_type }
348     radiobutton $widgetsQuantification(quantBtnDiaAvgS)  -text $string_table::str_diam_avg  -variable v_stenosis_type -value 7 -command { dlg_params::set_stenosis_type $v_stenosis_type }
349
350     # labels
351     label $widgetsGeneral(genWork01)   -anchor w      -text $string_table::str_work_directory
352     label $widgetsGeneral(genImages01) -anchor w      -text $string_table::str_images_directory
353     label $widgetsGeneral(genlbl009)   -borderwidth 0 -text $string_table::str_3D_back_color 
354     label $widgetsGeneral(genlbl001)   -borderwidth 0 -text $string_table::str_directories 
355     label $widgetsGeneral(genlbl078)   -borderwidth 0 -text $string_table::str_user_defined 
356
357     label $widgetsAxes(axVoxelX01)      -anchor w      -text $string_table::str_dim_voxel_x
358     label $widgetsAxes(axVoxelY01)      -anchor w      -text $string_table::str_dim_voxel_y
359     label $widgetsAxes(axVoxelZ01)      -anchor w      -text $string_table::str_dim_voxel_z
360     label $widgetsAxes(axStep01)        -anchor w      -text $string_table::str_step -state disabled
361     label $widgetsAxes(axAxisStep01)    -anchor w      -text $string_table::str_axis_step
362     label $widgetsAxes(axROIDim01)      -anchor w      -text $string_table::str_roi_dim -state disabled
363     label $widgetsAxes(axMassPower01)   -anchor w      -text $string_table::str_mass_power -state disabled
364     label $widgetsAxes(axTension01)     -anchor w      -text $string_table::str_coef_tension
365     label $widgetsAxes(axPas01)         -anchor w      -text $string_table::str_coef_pas -state disabled
366     label $widgetsAxes(axDistCDG01)     -anchor w      -text $string_table::str_distance_cdg -state disabled
367     label $widgetsAxes(axCell01)        -anchor w      -text $string_table::str_coef_cell -state disabled
368     label $widgetsAxes(axFlex01)        -anchor w      -text $string_table::str_coef_flex
369     label $widgetsAxes(axMaskSize01)    -anchor w      -text $string_table::str_mask_size
370     label $widgetsAxes(axDistInt01)     -anchor w      -text $string_table::str_dist_int -state disabled
371     label $widgetsAxes(axlblColor)      -borderwidth 0 -text $string_table::str_axis_color 
372     label $widgetsAxes(axCoefCellMax01) -anchor w      -text $string_table::str_coef_cell_max_int -state disabled
373     label $widgetsAxes(axLblDebug)      -anchor w -text $string_table::str_debug
374
375
376     label $widgetsContours(conLblScale)              -anchor w -text $string_table::str_scale
377     label $widgetsContours(conLblSample)             -anchor w -text $string_table::str_sample
378     label $widgetsContours(conLblThrIso)             -anchor w -text $string_table::str_threshold
379     label $widgetsContours(conLblThrSnakeIso)        -anchor w -text $string_table::str_threshold
380     label $widgetsContours(conLblIterSnakeIso)       -anchor w -text $string_table::str_iter
381     label $widgetsContours(conLblCoefExternSnakeIso) -anchor w -text $string_table::str_coef_extern
382     label $widgetsContours(conLblIterSnakeDer)       -anchor w -text $string_table::str_iter
383     label $widgetsContours(conLblCoefGradSnakeDer)   -anchor w -text $string_table::str_coef_grad
384     label $widgetsContours(conLblCoefBallonSnakeDer) -anchor w -text $string_table::str_coef_ballon
385     label $widgetsContours(conLblSigmaSnakeDer)      -anchor w -text $string_table::str_sigma
386     label $widgetsContours(conLbl001)                -anchor w -text $string_table::str_slice
387     label $widgetsContours(conLbl002)                -anchor w -text $string_table::str_debug
388    
389     label $widgetsQuantification(quantlbl22) -borderwidth 0 -text $string_table::str_data_types 
390     label $widgetsQuantification(quantlbl23) -borderwidth 0 -text $string_table::str_stenosis_type 
391
392     # buttons
393     button $widgets(btnOk)     -text $string_table::str_ok          -command "dlg_params::save_params"
394     button $widgets(btnCancel) -text $string_table::str_cancel      -command "dlg_params::cancel_params"
395     
396     button $widgetsGeneral(genBtnBrwWork)   -text $string_table::str_browse -command "dlg_params::cb_browse_path $widgetsGeneral(genWork02)"
397     button $widgetsGeneral(genBtnBrwImages) -text $string_table::str_browse -command "dlg_params::cb_browse_path $widgetsGeneral(genImages02)"
398     button $widgetsGeneral(genBtnColor)                                     -command "dlg_params::cb_choose_color $widgetsGeneral(genBtnColor)"
399
400     button $widgetsAxes(axBtnColor) -command "dlg_params::cb_choose_color $widgetsAxes(axBtnColor)"
401
402     # packing
403     dlg_params::positionate
404
405     # init
406     dlg_params::init_params $params
407
408     # set global focus input to dialog
409     grab set $widgets(base)
410
411     # waits for dialog destruction, i.e. waits for user interaction with dialog
412     tkwait window $widgets(base)
413
414     return $params_to_save
415
416 }
417
418 proc dlg_params::positionate { } {
419
420     # For programming facilities
421     upvar dlg_params::widgets               widgets
422     upvar dlg_params::widgetsGeneral        widgetsGeneral
423     upvar dlg_params::widgetsAxes           widgetsAxes
424     upvar dlg_params::widgetsContours       widgetsContours
425     upvar dlg_params::widgetsQuantification widgetsQuantification
426     upvar dlg_params::gen_debug             gen_debug
427     upvar dlg_params::con_debug             con_debug
428     upvar dlg_params::quant_type            quant_type
429     upvar dlg_params::alg_type              alg_type
430     upvar dlg_params::stenosis_type         stenosis_type
431     upvar dlg_params::params_to_save        params_to_save
432
433     pack  $widgets(tabs)       -expand 0 -fill x -side top 
434     pack  $widgets(btnGeneral) -anchor nw -expand 0 -fill none -side left 
435     pack  $widgets(btnAxis)    -anchor nw -expand 0 -fill none -side left 
436     pack  $widgets(btnContour) -anchor nw -expand 0 -fill none -side left 
437     pack  $widgets(btnQuant)   -anchor nw -expand 0 -fill none -side left 
438
439     $widgets(btnGeneral) deselect
440     $widgets(btnAxis)    deselect
441     $widgets(btnContour) deselect
442     $widgets(btnQuant)   deselect
443     $widgets(btnGeneral) invoke
444
445 }
446
447 proc dlg_params::init_params { params } {
448
449     # For programming facilities
450     upvar dlg_params::widgets               widgets
451     upvar dlg_params::widgetsGeneral        widgetsGeneral
452     upvar dlg_params::widgetsAxes           widgetsAxes
453     upvar dlg_params::widgetsContours       widgetsContours
454     upvar dlg_params::widgetsQuantification widgetsQuantification
455     upvar dlg_params::gen_debug             gen_debug
456     upvar dlg_params::con_debug             con_debug
457     upvar dlg_params::quant_type            quant_type
458     upvar dlg_params::alg_type              alg_type
459     upvar dlg_params::stenosis_type         stenosis_type
460     upvar dlg_params::params_to_save        params_to_save
461
462     set params_to_save $params
463     array set arr $params
464
465     $widgetsGeneral(genWork02)   delete 0 end
466     $widgetsGeneral(genImages02) delete 0 end
467
468     $widgetsAxes(axVoxelX02) delete 0 end
469     $widgetsAxes(axVoxelY02) delete 0 end
470     $widgetsAxes(axVoxelZ02) delete 0 end
471     $widgetsAxes(axAxisStep02) delete 0 end
472     $widgetsAxes(axTension02) delete 0 end
473     $widgetsAxes(axDistCDG02) delete 0 end
474     $widgetsAxes(axFlex02) delete 0 end
475     $widgetsAxes(axMaskSize02) delete 0 end
476
477     $widgetsContours(conEdtScale)              delete 0 end
478     $widgetsContours(conEdtSample)             delete 0 end
479     $widgetsContours(conEdtThrIso)             delete 0 end
480     $widgetsContours(conEdtThrSnakeIso)        delete 0 end
481     $widgetsContours(conEdtIterSnakeIso)       delete 0 end
482     $widgetsContours(conEdtCoefExternSnakeIso) delete 0 end
483     $widgetsContours(conEdtIterSnakeDer)       delete 0 end
484     $widgetsContours(conEdtCoefGradSnakeDer)   delete 0 end
485     $widgetsContours(conEdtCoefBallonSnakeDer) delete 0 end
486     $widgetsContours(conEdtSigmaSnakeDer)      delete 0 end
487
488     $widgetsGeneral(genWork02)   insert 0 $arr(e_installation_directory)
489     $widgetsGeneral(genImages02) insert 0 $arr(e_dicom_images_directory)
490
491     $widgetsAxes(axVoxelX02)      insert 0 $arr(e_voxel_x_dimension)
492     $widgetsAxes(axVoxelY02)      insert 0 $arr(e_voxel_y_dimension)
493     $widgetsAxes(axVoxelZ02)      insert 0 $arr(e_voxel_z_dimension)
494     $widgetsAxes(axAxisStep02)    insert 0 [ change_float_precision $arr(e_axis_discret_step) 2 ]
495     $widgetsAxes(axTension02)     insert 0 [ change_float_precision $arr(e_tension_coeficient) 2 ]
496     $widgetsAxes(axDistCDG02)     insert 0 [ change_float_precision $arr(e_gravity_distance) 2 ]
497     $widgetsAxes(axFlex02)        insert 0 [ change_float_precision $arr(e_flexion_coeficient) 2 ]
498     $widgetsAxes(axMaskSize02)    insert 0 [ change_float_precision $arr(e_mask_size) 2 ]
499
500     $widgetsAxes(axStep02) configure -text [ change_float_precision $arr(e_step) 2 ]
501     $widgetsAxes(axROIDim02) configure -text [ change_float_precision $arr(e_roi_dimension) 2 ]
502     $widgetsAxes(axMassPower02) configure -text [ change_float_precision $arr(e_mass_power) 2 ]
503     $widgetsAxes(axPas02) configure -text [ change_float_precision $arr(e_step_coeficient) 2 ]
504     $widgetsAxes(axCell02) configure -text [ change_float_precision $arr(e_cell_coeficient) 2 ]
505     $widgetsAxes(axDistInt02) configure -text [ change_float_precision $arr(e_distance_to_maximum_intensity) 2 ]
506     $widgetsAxes(axCoefCellMax02) configure -text $arr(e_coef_cell_max_int)
507
508     $widgetsContours(conEdtScale)              insert 0 [ change_float_precision $arr(e_scale) 2 ]
509     $widgetsContours(conEdtSample)             insert 0 [ change_float_precision $arr(e_sampling) 2 ]
510     $widgetsContours(conEdtThrIso)             insert 0 [ change_float_precision $arr(e_threshold_isocontour) 2 ]
511     $widgetsContours(conEdtThrSnakeIso)        insert 0 [ change_float_precision $arr(e_threshold_snake_isocontour) 2 ]
512     $widgetsContours(conEdtIterSnakeIso)       insert 0 [ change_float_precision $arr(e_number_of_iterations_snake_isocontour) 2 ]
513     $widgetsContours(conEdtCoefExternSnakeIso) insert 0 [ change_float_precision $arr(e_extern_coeficient) 2 ]
514     $widgetsContours(conEdtIterSnakeDer)       insert 0 [ change_float_precision $arr(e_number_of_iterations_snake_deriche) 2 ]
515     $widgetsContours(conEdtCoefGradSnakeDer)   insert 0 [ change_float_precision $arr(e_gradient_coeficient) 2 ]
516     $widgetsContours(conEdtCoefBallonSnakeDer) insert 0 [ change_float_precision $arr(e_ballon_coeficient) 2 ]
517     $widgetsContours(conEdtSigmaSnakeDer)      insert 0 [ change_float_precision $arr(e_sigma) 2 ]
518     
519     $widgetsAxes(axBtnMinVoxel) deselect
520     $widgetsAxes(axBtnNorVoxel) deselect
521     if { $arr(e_voxel_type) == 1 } { $widgetsAxes(axBtnMinVoxel) invoke }
522     if { $arr(e_voxel_type) == 2 } { $widgetsAxes(axBtnNorVoxel) invoke }
523
524     $widgetsGeneral(genBtnWndVis) deselect
525     $widgetsGeneral(genBtnConVis) deselect
526     $widgetsGeneral(genBtnMIPDef) deselect
527     $widgetsGeneral(genBtnAllSlc) deselect
528     set gen_debug 0
529     if { $arr(e_calculate_mip_default)     == 1 } { $widgetsGeneral(genBtnMIPDef) invoke }
530     if { $arr(e_choose_all_slices_default) == 1 } { $widgetsGeneral(genBtnAllSlc) invoke }
531     if { $arr(e_debug_window_visible)      == 1 } { $widgetsGeneral(genBtnWndVis) invoke }
532     if { $arr(e_debug_console_visible)     == 1 } { $widgetsGeneral(genBtnConVis) invoke }
533
534     set alg_type $arr(e_algorithm_type)
535     if { $alg_type == 1 } { $widgetsContours(conBtnIso)      invoke }
536     if { $alg_type == 2 } { $widgetsContours(conBtnSnakeIso) invoke }
537     if { $alg_type == 3 } { $widgetsContours(conBtnSnakeDer) invoke }
538
539     $widgetsContours(conBtnIsoconturs)   deselect
540     $widgetsContours(conBtnDiameters)    deselect
541     $widgetsContours(conBtnFillContours) deselect
542     set con_debug 0
543     if { $arr(e_debug_isocontour) == 1 } { $widgetsContours(conBtnIsoconturs)   invoke }
544     if { $arr(e_debug_diameters)  == 1 } { $widgetsContours(conBtnDiameters)    invoke }
545     if { $arr(e_debug_fill_area)  == 1 } { $widgetsContours(conBtnFillContours) invoke }
546
547 #    $widgetsGeneral(genBtnColor) configure -background $arr(e_back_color_3D)
548
549 #    $widgetsAxes(axBtnColor) configure -background $arr(e_axis_color)
550     
551     $widgetsQuantification(quantBtnAreaM)    deselect; $widgetsQuantification(quantBtnAreaS)    configure -state disabled
552     $widgetsQuantification(quantBtnPeriM)    deselect; $widgetsQuantification(quantBtnPeriS)    configure -state disabled
553     $widgetsQuantification(quantBtnDiaAreaM) deselect; $widgetsQuantification(quantBtnDiaAreaS) configure -state disabled
554     $widgetsQuantification(quantBtnDiaPeriM) deselect; $widgetsQuantification(quantBtnDiaPeriS) configure -state disabled
555     $widgetsQuantification(quantBtnDiaMinM)  deselect; $widgetsQuantification(quantBtnDiaMinS)  configure -state disabled
556     $widgetsQuantification(quantBtnDiaMaxM)  deselect; $widgetsQuantification(quantBtnDiaMaxS)  configure -state disabled
557     $widgetsQuantification(quantBtnDiaAvgM)  deselect; $widgetsQuantification(quantBtnDiaAvgS)  configure -state disabled
558     set quant_type 0
559     if { ( $arr(e_quantification_type) & 0x01 ) == 0x01 } { $widgetsQuantification(quantBtnAreaM)    invoke }
560     if { ( $arr(e_quantification_type) & 0x02 ) == 0x02 } { $widgetsQuantification(quantBtnPeriM)    invoke }
561     if { ( $arr(e_quantification_type) & 0x04 ) == 0x04 } { $widgetsQuantification(quantBtnDiaAreaM) invoke }
562     if { ( $arr(e_quantification_type) & 0x08 ) == 0x08 } { $widgetsQuantification(quantBtnDiaPeriM) invoke }
563     if { ( $arr(e_quantification_type) & 0x10 ) == 0x10 } { $widgetsQuantification(quantBtnDiaMinM)  invoke }
564     if { ( $arr(e_quantification_type) & 0x20 ) == 0x20 } { $widgetsQuantification(quantBtnDiaMaxM)  invoke }
565     if { ( $arr(e_quantification_type) & 0x40 ) == 0x40 } { $widgetsQuantification(quantBtnDiaAvgM)  invoke }
566
567     $widgetsQuantification(quantBtnAreaS)    deselect
568     $widgetsQuantification(quantBtnPeriS)    deselect
569     $widgetsQuantification(quantBtnDiaAreaS) deselect
570     $widgetsQuantification(quantBtnDiaPeriS) deselect
571     $widgetsQuantification(quantBtnDiaMinS)  deselect
572     $widgetsQuantification(quantBtnDiaMaxS)  deselect
573     $widgetsQuantification(quantBtnDiaAvgS)  deselect
574     set stenosis_type 0
575     if { $arr(e_stenosis_type) == 1 } { $widgetsQuantification(quantBtnAreaS)    invoke }
576     if { $arr(e_stenosis_type) == 2 } { $widgetsQuantification(quantBtnPeriS)    invoke }
577     if { $arr(e_stenosis_type) == 3 } { $widgetsQuantification(quantBtnDiaAreaS) invoke }
578     if { $arr(e_stenosis_type) == 4 } { $widgetsQuantification(quantBtnDiaPeriS) invoke }
579     if { $arr(e_stenosis_type) == 5 } { $widgetsQuantification(quantBtnDiaMaxS)  invoke }
580     if { $arr(e_stenosis_type) == 6 } { $widgetsQuantification(quantBtnDiaMinS)  invoke }
581     if { $arr(e_stenosis_type) == 7 } { $widgetsQuantification(quantBtnDiaAvgS)  invoke }
582
583 }
584
585 proc dlg_params::cb_show_general { } {
586
587     # For programming facilities
588     upvar dlg_params::widgets               widgets
589     upvar dlg_params::widgetsGeneral        widgetsGeneral
590     upvar dlg_params::widgetsAxes           widgetsAxes
591     upvar dlg_params::widgetsContours       widgetsContours
592     upvar dlg_params::widgetsQuantification widgetsQuantification
593     upvar dlg_params::gen_debug             gen_debug
594     upvar dlg_params::con_debug             con_debug
595     upvar dlg_params::quant_type            quant_type
596     upvar dlg_params::alg_type              alg_type
597     upvar dlg_params::stenosis_type         stenosis_type
598     upvar dlg_params::params_to_save        params_to_save
599
600     dlg_params::p_hide_general
601     dlg_params::p_hide_axis
602     dlg_params::p_hide_contour
603     dlg_params::p_hide_quant
604
605     pack  $widgets(general)                -anchor center -expand 1 -fill both -side top 
606     place $widgetsGeneral(genDataPaths)    -x 10 -y 25 -width 415 -height 110 -anchor nw -bordermode ignore 
607     place $widgetsGeneral(genWork)         -x 15 -y 20 -width 320 -height 25 -anchor nw -bordermode ignore 
608     pack  $widgetsGeneral(genWork01)       -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
609     pack  $widgetsGeneral(genWork02)       -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
610     place $widgetsGeneral(genImages)       -x 15 -y 60 -width 320 -height 25 -anchor nw -bordermode ignore 
611     pack  $widgetsGeneral(genImages01)     -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
612     pack  $widgetsGeneral(genImages02)     -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
613     place $widgetsGeneral(genBtnBrwWork)   -x 340 -y 20 -anchor nw -bordermode ignore 
614     place $widgetsGeneral(genBtnBrwImages) -x 340 -y 60 -anchor nw -bordermode ignore 
615     place $widgetsGeneral(genDebug)        -x 10 -y 145 -width 415 -height 130 -anchor nw -bordermode ignore 
616     place $widgetsGeneral(genBtnWndVis)    -x 5 -y 5 -anchor nw -bordermode ignore 
617     place $widgetsGeneral(genBtnConVis)    -x 5 -y 35 -anchor nw -bordermode ignore 
618     place $widgetsGeneral(genBtnMIPDef)    -x 5 -y 65 -anchor nw -bordermode ignore 
619     place $widgetsGeneral(genBtnAllSlc)    -x 5 -y 95 -anchor nw -bordermode ignore 
620     place $widgetsGeneral(genBtnColor)     -x 215 -y 50 -width 185 -height 28 -anchor nw -bordermode ignore 
621     place $widgetsGeneral(genlbl009)       -x 215 -y 30 -anchor nw -bordermode ignore 
622     place $widgetsGeneral(genlbl001)       -x 15 -y 15 -anchor nw -bordermode ignore 
623     place $widgetsGeneral(genlbl078)       -x 15 -y 135 -anchor nw -bordermode ignore 
624     pack  $widgets(buttons)                -anchor center -expand 0 -fill x -side top 
625     place $widgets(btnOk)                  -x 155 -y 10 -anchor nw -bordermode ignore 
626     place $widgets(btnCancel)              -x 235 -y 10 -anchor nw -bordermode ignore 
627
628 }
629
630 proc dlg_params::cb_show_axis { } {
631
632     # For programming facilities
633     upvar dlg_params::widgets               widgets
634     upvar dlg_params::widgetsGeneral        widgetsGeneral
635     upvar dlg_params::widgetsAxes           widgetsAxes
636     upvar dlg_params::widgetsContours       widgetsContours
637     upvar dlg_params::widgetsQuantification widgetsQuantification
638     upvar dlg_params::gen_debug             gen_debug
639     upvar dlg_params::con_debug             con_debug
640     upvar dlg_params::quant_type            quant_type
641     upvar dlg_params::alg_type              alg_type
642     upvar dlg_params::stenosis_type         stenosis_type
643     upvar dlg_params::params_to_save        params_to_save
644
645     dlg_params::p_hide_general
646     dlg_params::p_hide_axis
647     dlg_params::p_hide_contour
648     dlg_params::p_hide_quant
649
650     pack  $widgets(axis)                -anchor center -expand 1 -fill both -side top 
651     place $widgetsAxes(axDistCDG)       -x 25 -y 35 -width 145 -height 25 -anchor nw -bordermode ignore 
652     pack  $widgetsAxes(axDistCDG01)     -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
653     pack  $widgetsAxes(axDistCDG02)     -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
654     place $widgetsAxes(axCell)          -x 25 -y 65 -width 145 -height 25 -anchor nw -bordermode ignore 
655     pack  $widgetsAxes(axCell01)        -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
656     pack  $widgetsAxes(axCell02)        -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
657     place $widgetsAxes(axFlex)          -x 25 -y 95 -width 145 -height 25 -anchor nw -bordermode ignore 
658     pack  $widgetsAxes(axFlex01)        -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
659     pack  $widgetsAxes(axFlex02)        -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
660     place $widgetsAxes(axMaskSize)      -x 25 -y 125 -width 145 -height 25 -anchor nw -bordermode ignore 
661     pack  $widgetsAxes(axMaskSize01)    -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
662     pack  $widgetsAxes(axMaskSize02)    -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
663     place $widgetsAxes(axDistInt)       -x 195 -y 35 -width 145 -height 25 -anchor nw -bordermode ignore 
664     pack  $widgetsAxes(axDistInt01)     -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
665     pack  $widgetsAxes(axDistInt02)     -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
666     place $widgetsAxes(axMassPower)     -x 195 -y 125 -width 145 -height 25 -anchor nw -bordermode ignore 
667     pack  $widgetsAxes(axMassPower01)   -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
668     pack  $widgetsAxes(axMassPower02)   -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
669     place $widgetsAxes(axTension)       -x 195 -y 95 -width 145 -height 25 -anchor nw -bordermode ignore 
670     pack  $widgetsAxes(axTension01)     -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
671     pack  $widgetsAxes(axTension02)     -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
672     place $widgetsAxes(axPas)           -x 195 -y 65 -width 145 -height 25 -anchor nw -bordermode ignore 
673     pack  $widgetsAxes(axPas01)         -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
674     pack  $widgetsAxes(axPas02)         -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
675     place $widgetsAxes(axROIDim)        -x 25 -y 160 -width 115 -height 25 -anchor nw -bordermode ignore 
676     pack  $widgetsAxes(axROIDim01)      -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
677     pack  $widgetsAxes(axROIDim02)      -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
678     place $widgetsAxes(axStep)          -x 165 -y 160 -width 115 -height 25 -anchor nw -bordermode ignore 
679     pack  $widgetsAxes(axStep01)        -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
680     pack  $widgetsAxes(axStep02)        -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
681     place $widgetsAxes(axAxisStep)      -x 305 -y 160 -width 145 -height 25 -anchor nw -bordermode ignore 
682     pack  $widgetsAxes(axAxisStep01)    -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
683     pack  $widgetsAxes(axAxisStep02)    -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
684     place $widgetsAxes(axVoxelX)        -x 25 -y 190 -width 115 -height 25 -anchor nw -bordermode ignore 
685     pack  $widgetsAxes(axVoxelX01)      -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
686     pack  $widgetsAxes(axVoxelX02)      -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
687     place $widgetsAxes(axVoxelY)        -x 165 -y 190 -width 115 -height 25 -anchor nw -bordermode ignore 
688     pack  $widgetsAxes(axVoxelY01)      -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
689     pack  $widgetsAxes(axVoxelY02)      -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
690     place $widgetsAxes(axVoxelZ)        -x 305 -y 190 -width 115 -height 25 -anchor nw -bordermode ignore 
691     pack  $widgetsAxes(axVoxelZ01)      -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
692     pack  $widgetsAxes(axVoxelZ02)      -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
693     place $widgetsAxes(axBtnColor)      -x 180 -y 245 -width 180 -height 28 -anchor nw -bordermode ignore 
694     place $widgetsAxes(axlblColor)      -x 175 -y 225 -anchor nw -bordermode ignore 
695     place $widgetsAxes(axBtnMinVoxel)   -x 30 -y 220 -anchor nw -bordermode ignore 
696     place $widgetsAxes(axBtnNorVoxel)   -x 30 -y 240 -anchor nw -bordermode ignore 
697     place $widgetsAxes(axCoefCellMax)   -x 350 -y 35 -width 145 -height 25 -anchor nw -bordermode ignore 
698     pack  $widgetsAxes(axCoefCellMax01) -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
699     pack  $widgetsAxes(axCoefCellMax02) -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
700     place $widgetsAxes(axFrDebug)       -x 375 -y 230 -width 135 -height 55 -anchor nw -bordermode ignore 
701     place $widgetsAxes(axBtnShowCell)   -x 5 -y 5 -anchor nw -bordermode ignore 
702     place $widgetsAxes(axBtnShowICell)  -x 5 -y 25 -anchor nw -bordermode ignore 
703     place $widgetsAxes(axLblDebug)      -x 380 -y 220 -anchor nw -bordermode ignore 
704     pack  $widgets(buttons)             -anchor center -expand 0 -fill x -side top 
705     place $widgets(btnOk)               -x 155 -y 10 -anchor nw -bordermode ignore 
706     place $widgets(btnCancel)           -x 235 -y 10 -anchor nw -bordermode ignore 
707
708 }
709
710 proc dlg_params::cb_show_contour { } {
711
712     # For programming facilities
713     upvar dlg_params::widgets               widgets
714     upvar dlg_params::widgetsGeneral        widgetsGeneral
715     upvar dlg_params::widgetsAxes           widgetsAxes
716     upvar dlg_params::widgetsContours       widgetsContours
717     upvar dlg_params::widgetsQuantification widgetsQuantification
718     upvar dlg_params::gen_debug             gen_debug
719     upvar dlg_params::con_debug             con_debug
720     upvar dlg_params::quant_type            quant_type
721     upvar dlg_params::alg_type              alg_type
722     upvar dlg_params::stenosis_type         stenosis_type
723     upvar dlg_params::params_to_save        params_to_save
724
725     dlg_params::p_hide_general
726     dlg_params::p_hide_axis
727     dlg_params::p_hide_contour
728     dlg_params::p_hide_quant
729
730     pack  $widgets(contour)                           -anchor center -expand 1 -fill both -side top 
731     place $widgetsContours(conFrSlice)               -x 10 -y 20 -width 160 -height 80 -anchor nw -bordermode ignore 
732     place $widgetsContours(conFrDebug)               -x 10 -y 110 -width 160 -height 80 -anchor nw -bordermode ignore 
733     place $widgetsContours(conFrIso)                 -x 175 -y 40 -width 250 -height 35 -anchor nw -bordermode ignore 
734     place $widgetsContours(conFrSnakeIso)            -x 175 -y 105 -width 250 -height 85 -anchor nw -bordermode ignore 
735     place $widgetsContours(conFrSnakeDer)            -x 10 -y 220 -width 415 -height 60 -anchor nw -bordermode ignore 
736     place $widgetsContours(conBtnIso)                -x 170 -y 15 -anchor nw -bordermode ignore 
737     place $widgetsContours(conBtnSnakeIso)           -x 170 -y 80 -anchor nw -bordermode ignore 
738     place $widgetsContours(conBtnSnakeDer)           -x 170 -y 195 -anchor nw -bordermode ignore 
739     place $widgetsContours(conLbl001)                -x 15 -y 10 -anchor nw -bordermode ignore 
740     place $widgetsContours(conLbl002)                -x 15 -y 100 -anchor nw -bordermode ignore 
741     place $widgetsContours(conFrScale)               -x 10 -y 15 -width 135 -height 25 -anchor nw -bordermode ignore 
742     pack  $widgetsContours(conLblScale)              -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
743     pack  $widgetsContours(conEdtScale)              -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
744     place $widgetsContours(conFrSample)              -x 10 -y 45 -width 135 -height 25 -anchor nw -bordermode ignore 
745     pack  $widgetsContours(conLblSample)             -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
746     pack  $widgetsContours(conEdtSample)             -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
747     place $widgetsContours(conBtnIsoconturs)         -x 20 -y 10 -anchor nw -bordermode ignore 
748     place $widgetsContours(conBtnDiameters)          -x 20 -y 30 -anchor nw -bordermode ignore 
749     place $widgetsContours(conBtnFillContours)       -x 20 -y 50 -anchor nw -bordermode ignore 
750     place $widgetsContours(conFrThrIso)              -x 5 -y 5 -width 240 -height 25 -anchor nw -bordermode ignore 
751     pack  $widgetsContours(conLblThrIso)             -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
752     pack  $widgetsContours(conEdtThrIso)             -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
753     place $widgetsContours(conFrThrSnakeIso)         -x 5 -y 5 -width 240 -height 25 -anchor nw -bordermode ignore 
754     pack  $widgetsContours(conLblThrSnakeIso)        -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
755     pack  $widgetsContours(conEdtThrSnakeIso)        -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
756     place $widgetsContours(conFrIterSnakeIso)        -x 5 -y 30 -width 240 -height 25 -anchor nw -bordermode ignore 
757     pack  $widgetsContours(conLblIterSnakeIso)       -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
758     pack  $widgetsContours(conEdtIterSnakeIso)       -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
759     place $widgetsContours(conFrCoefExternSnakeIso)  -x 5 -y 55 -width 240 -height 25 -anchor nw -bordermode ignore 
760     pack  $widgetsContours(conLblCoefExternSnakeIso) -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
761     pack  $widgetsContours(conEdtCoefExternSnakeIso) -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
762     place $widgetsContours(conFrIterSnakeDer)        -x 5 -y 5 -width 240 -height 25 -anchor nw -bordermode ignore 
763     pack  $widgetsContours(conLblIterSnakeDer)       -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
764     pack  $widgetsContours(conEdtIterSnakeDer)       -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
765     place $widgetsContours(conFrCoefGradSnakeDer)    -x 5 -y 30 -width 240 -height 25 -anchor nw -bordermode ignore 
766     pack  $widgetsContours(conLblCoefGradSnakeDer)   -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
767     pack  $widgetsContours(conEdtCoefGradSnakeDer)   -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
768     place $widgetsContours(conFrCoefBallonSnakeDer)  -x 245 -y 5 -width 165 -height 25 -anchor nw -bordermode ignore 
769     pack  $widgetsContours(conLblCoefBallonSnakeDer) -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
770     pack  $widgetsContours(conEdtCoefBallonSnakeDer) -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
771     place $widgetsContours(conFrSigmaSnakeDer)       -x 245 -y 30 -width 165 -height 25 -anchor nw -bordermode ignore 
772     pack  $widgetsContours(conLblSigmaSnakeDer)      -anchor center -expand 0 -fill none -padx 2 -pady 2 -side left 
773     pack  $widgetsContours(conEdtSigmaSnakeDer)      -anchor center -expand 1 -fill x -padx 2 -pady 2 -side right 
774     pack  $widgets(buttons)                           -anchor center -expand 0 -fill x -side top 
775     place $widgets(btnOk)                             -x 155 -y 10 -anchor nw -bordermode ignore 
776     place $widgets(btnCancel)                         -x 235 -y 10 -anchor nw -bordermode ignore 
777
778 }
779
780 proc dlg_params::cb_show_quant { } {
781
782     # For programming facilities
783     upvar dlg_params::widgets               widgets
784     upvar dlg_params::widgetsGeneral        widgetsGeneral
785     upvar dlg_params::widgetsAxes           widgetsAxes
786     upvar dlg_params::widgetsContours       widgetsContours
787     upvar dlg_params::widgetsQuantification widgetsQuantification
788     upvar dlg_params::gen_debug             gen_debug
789     upvar dlg_params::con_debug             con_debug
790     upvar dlg_params::quant_type            quant_type
791     upvar dlg_params::alg_type              alg_type
792     upvar dlg_params::stenosis_type         stenosis_type
793     upvar dlg_params::params_to_save        params_to_save
794
795     dlg_params::p_hide_general
796     dlg_params::p_hide_axis
797     dlg_params::p_hide_contour
798     dlg_params::p_hide_quant
799
800     pack  $widgets(quantification)                 -anchor center -expand 1 -fill both -side top 
801     place $widgetsQuantification(quantMeasures)    -x 15 -y 60 -width 185 -height 170 -anchor nw -bordermode ignore 
802     place $widgetsQuantification(quantBtnAreaM)    -x 5 -y 10 -anchor nw -bordermode ignore 
803     place $widgetsQuantification(quantBtnPeriM)    -x 5 -y 30 -anchor nw -bordermode ignore 
804     place $widgetsQuantification(quantBtnDiaAreaM) -x 5 -y 50 -anchor nw -bordermode ignore 
805     place $widgetsQuantification(quantBtnDiaPeriM) -x 5 -y 70 -anchor nw -bordermode ignore 
806     place $widgetsQuantification(quantBtnDiaMinM)  -x 5 -y 90 -anchor nw -bordermode ignore 
807     place $widgetsQuantification(quantBtnDiaMaxM)  -x 5 -y 110 -anchor nw -bordermode ignore 
808     place $widgetsQuantification(quantBtnDiaAvgM)  -x 5 -y 130 -anchor nw -bordermode ignore 
809     place $widgetsQuantification(quantStenosis)    -x 220 -y 60 -width 190 -height 170 -anchor nw -bordermode ignore 
810     place $widgetsQuantification(quantBtnAreaS)    -x 5 -y 10 -anchor nw -bordermode ignore 
811     place $widgetsQuantification(quantBtnPeriS)    -x 5 -y 30 -anchor nw -bordermode ignore 
812     place $widgetsQuantification(quantBtnDiaAreaS) -x 5 -y 50 -anchor nw -bordermode ignore 
813     place $widgetsQuantification(quantBtnDiaPeriS) -x 5 -y 70 -anchor nw -bordermode ignore 
814     place $widgetsQuantification(quantBtnDiaMinS)  -x 5 -y 90 -anchor nw -bordermode ignore 
815     place $widgetsQuantification(quantBtnDiaMaxS)  -x 5 -y 110 -anchor nw -bordermode ignore 
816     place $widgetsQuantification(quantBtnDiaAvgS)  -x 5 -y 130 -anchor nw -bordermode ignore 
817     place $widgetsQuantification(quantlbl22)       -x 20 -y 50 -anchor nw -bordermode ignore 
818     place $widgetsQuantification(quantlbl23)       -x 225 -y 50 -anchor nw -bordermode ignore 
819     pack  $widgets(buttons)                        -anchor center -expand 0 -fill x -side top 
820     place $widgets(btnOk)                          -x 155 -y 10 -anchor nw -bordermode ignore 
821     place $widgets(btnCancel)                      -x 235 -y 10 -anchor nw -bordermode ignore 
822
823 }
824
825 proc dlg_params::p_hide_general { } {
826
827     # For programming facilities
828     upvar dlg_params::widgets               widgets
829     upvar dlg_params::widgetsGeneral        widgetsGeneral
830     upvar dlg_params::widgetsAxes           widgetsAxes
831     upvar dlg_params::widgetsContours       widgetsContours
832     upvar dlg_params::widgetsQuantification widgetsQuantification
833     upvar dlg_params::gen_debug             gen_debug
834     upvar dlg_params::con_debug             con_debug
835     upvar dlg_params::quant_type            quant_type
836     upvar dlg_params::alg_type              alg_type
837     upvar dlg_params::stenosis_type         stenosis_type
838     upvar dlg_params::params_to_save        params_to_save
839
840     place forget $widgets(btnCancel)
841     place forget $widgets(btnOk)
842     pack  forget $widgets(buttons)
843     place forget $widgetsGeneral(genlbl078)
844     place forget $widgetsGeneral(genlbl001)
845     place forget $widgetsGeneral(genlbl009)
846     place forget $widgetsGeneral(genBtnColor)
847     place forget $widgetsGeneral(genBtnAllSlc)
848     place forget $widgetsGeneral(genBtnMIPDef)
849     place forget $widgetsGeneral(genBtnConVis)
850     place forget $widgetsGeneral(genBtnWndVis)
851     place forget $widgetsGeneral(genDebug)
852     place forget $widgetsGeneral(genBtnBrwImages)
853     place forget $widgetsGeneral(genBtnBrwWork)
854     pack  forget $widgetsGeneral(genImages02)
855     pack  forget $widgetsGeneral(genImages01)
856     place forget $widgetsGeneral(genImages)
857     pack  forget $widgetsGeneral(genWork02)
858     pack  forget $widgetsGeneral(genWork01)
859     place forget $widgetsGeneral(genWork)
860     place forget $widgetsGeneral(genDataPaths)
861     pack  forget $widgets(general)
862
863 }
864
865 proc dlg_params::p_hide_axis { } {
866
867     # For programming facilities
868     upvar dlg_params::widgets               widgets
869     upvar dlg_params::widgetsGeneral        widgetsGeneral
870     upvar dlg_params::widgetsAxes           widgetsAxes
871     upvar dlg_params::widgetsContours       widgetsContours
872     upvar dlg_params::widgetsQuantification widgetsQuantification
873     upvar dlg_params::gen_debug             gen_debug
874     upvar dlg_params::con_debug             con_debug
875     upvar dlg_params::quant_type            quant_type
876     upvar dlg_params::alg_type              alg_type
877     upvar dlg_params::stenosis_type         stenosis_type
878     upvar dlg_params::params_to_save        params_to_save
879
880     place forget $widgets(btnCancel)
881     place forget $widgets(btnOk)
882     pack  forget $widgets(buttons)
883     place forget $widgetsAxes(axBtnNorVoxel)
884     place forget $widgetsAxes(axBtnMinVoxel)
885     place forget $widgetsAxes(axlblColor)
886     place forget $widgetsAxes(axBtnColor)
887     pack  forget $widgetsAxes(axVoxelZ02)
888     pack  forget $widgetsAxes(axVoxelZ01)
889     place forget $widgetsAxes(axVoxelZ)
890     pack  forget $widgetsAxes(axVoxelY02)
891     pack  forget $widgetsAxes(axVoxelY01)
892     place forget $widgetsAxes(axVoxelY)
893     pack  forget $widgetsAxes(axVoxelX02)
894     pack  forget $widgetsAxes(axVoxelX01)
895     place forget $widgetsAxes(axVoxelX)
896     pack  forget $widgetsAxes(axAxisStep02)
897     pack  forget $widgetsAxes(axAxisStep01)
898     place forget $widgetsAxes(axAxisStep)
899     pack  forget $widgetsAxes(axStep02)
900     pack  forget $widgetsAxes(axStep01)
901     place forget $widgetsAxes(axStep)
902     pack  forget $widgetsAxes(axROIDim02)
903     pack  forget $widgetsAxes(axROIDim01)
904     place forget $widgetsAxes(axROIDim)
905     pack  forget $widgetsAxes(axPas02)
906     pack  forget $widgetsAxes(axPas01)
907     place forget $widgetsAxes(axPas)
908     pack  forget $widgetsAxes(axTension02)
909     pack  forget $widgetsAxes(axTension01)
910     place forget $widgetsAxes(axTension)
911     pack  forget $widgetsAxes(axMassPower02)
912     pack  forget $widgetsAxes(axMassPower01)
913     place forget $widgetsAxes(axMassPower)
914     pack  forget $widgetsAxes(axDistInt02)
915     pack  forget $widgetsAxes(axDistInt01)
916     place forget $widgetsAxes(axDistInt)
917     pack  forget $widgetsAxes(axMaskSize02)
918     pack  forget $widgetsAxes(axMaskSize01)
919     place forget $widgetsAxes(axMaskSize)
920     pack  forget $widgetsAxes(axFlex02)
921     pack  forget $widgetsAxes(axFlex01)
922     place forget $widgetsAxes(axFlex)
923     pack  forget $widgetsAxes(axCell02)
924     pack  forget $widgetsAxes(axCell01)
925     place forget $widgetsAxes(axCell)
926     pack  forget $widgetsAxes(axDistCDG02)
927     pack  forget $widgetsAxes(axDistCDG01)
928     place forget $widgetsAxes(axDistCDG)
929     pack  forget $widgets(axis)
930
931 }
932
933 proc dlg_params::p_hide_contour { } {
934
935     # For programming facilities
936     upvar dlg_params::widgets               widgets
937     upvar dlg_params::widgetsGeneral        widgetsGeneral
938     upvar dlg_params::widgetsAxes           widgetsAxes
939     upvar dlg_params::widgetsContours       widgetsContours
940     upvar dlg_params::widgetsQuantification widgetsQuantification
941     upvar dlg_params::gen_debug             gen_debug
942     upvar dlg_params::con_debug             con_debug
943     upvar dlg_params::quant_type            quant_type
944     upvar dlg_params::alg_type              alg_type
945     upvar dlg_params::stenosis_type         stenosis_type
946     upvar dlg_params::params_to_save        params_to_save
947
948     place forget $widgets(btnCancel)
949     place forget $widgets(btnOk)
950     pack  forget $widgets(buttons)
951     pack  forget $widgetsContours(conEdtSigmaSnakeDer)
952     pack  forget $widgetsContours(conLblSigmaSnakeDer)
953     place forget $widgetsContours(conFrSigmaSnakeDer)
954     pack  forget $widgetsContours(conEdtCoefBallonSnakeDer)
955     pack  forget $widgetsContours(conLblCoefBallonSnakeDer)
956     place forget $widgetsContours(conFrCoefBallonSnakeDer)
957     pack  forget $widgetsContours(conEdtCoefGradSnakeDer)
958     pack  forget $widgetsContours(conLblCoefGradSnakeDer)
959     place forget $widgetsContours(conFrCoefGradSnakeDer)
960     pack  forget $widgetsContours(conEdtIterSnakeDer)
961     pack  forget $widgetsContours(conLblIterSnakeDer)
962     place forget $widgetsContours(conFrIterSnakeDer)
963     pack  forget $widgetsContours(conEdtCoefExternSnakeIso)
964     pack  forget $widgetsContours(conLblCoefExternSnakeIso)
965     place forget $widgetsContours(conFrCoefExternSnakeIso)
966     pack  forget $widgetsContours(conEdtIterSnakeIso)
967     pack  forget $widgetsContours(conLblIterSnakeIso)
968     place forget $widgetsContours(conFrIterSnakeIso)
969     pack  forget $widgetsContours(conEdtThrSnakeIso)
970     pack  forget $widgetsContours(conLblThrSnakeIso)
971     place forget $widgetsContours(conFrThrSnakeIso)
972     pack  forget $widgetsContours(conEdtThrIso)
973     pack  forget $widgetsContours(conLblThrIso)
974     place forget $widgetsContours(conFrThrIso)
975     place forget $widgetsContours(conBtnFillContours)
976     place forget $widgetsContours(conBtnDiameters)
977     place forget $widgetsContours(conBtnIsoconturs)
978     pack  forget $widgetsContours(conEdtSample)
979     pack  forget $widgetsContours(conLblSample)
980     place forget $widgetsContours(conFrSample)
981     pack  forget $widgetsContours(conEdtScale)
982     pack  forget $widgetsContours(conLblScale)
983     place forget $widgetsContours(conFrScale)
984     place forget $widgetsContours(conLbl002)
985     place forget $widgetsContours(conLbl001)
986     place forget $widgetsContours(conBtnSnakeDer)
987     place forget $widgetsContours(conBtnSnakeIso)
988     place forget $widgetsContours(conBtnIso)
989     place forget $widgetsContours(conFrSnakeDer)
990     place forget $widgetsContours(conFrSnakeIso)
991     place forget $widgetsContours(conFrIso)
992     place forget $widgetsContours(conFrDebug)
993     place forget $widgetsContours(conFrSlice)
994     pack  forget $widgets(contour)
995
996 }
997
998 proc dlg_params::p_hide_quant { } {
999
1000     # For programming facilities
1001     upvar dlg_params::widgets               widgets
1002     upvar dlg_params::widgetsGeneral        widgetsGeneral
1003     upvar dlg_params::widgetsAxes           widgetsAxes
1004     upvar dlg_params::widgetsContours       widgetsContours
1005     upvar dlg_params::widgetsQuantification widgetsQuantification
1006     upvar dlg_params::gen_debug             gen_debug
1007     upvar dlg_params::con_debug             con_debug
1008     upvar dlg_params::quant_type            quant_type
1009     upvar dlg_params::alg_type              alg_type
1010     upvar dlg_params::stenosis_type         stenosis_type
1011     upvar dlg_params::params_to_save        params_to_save
1012
1013     place forget $widgets(btnCancel)
1014     place forget $widgets(btnOk)
1015     pack  forget $widgets(buttons)
1016     place forget $widgetsQuantification(quantlbl23)
1017     place forget $widgetsQuantification(quantlbl22)
1018     place forget $widgetsQuantification(quantBtnDiaAvgS)
1019     place forget $widgetsQuantification(quantBtnDiaMaxS)
1020     place forget $widgetsQuantification(quantBtnDiaMinS)
1021     place forget $widgetsQuantification(quantBtnDiaPeriS)
1022     place forget $widgetsQuantification(quantBtnDiaAreaS)
1023     place forget $widgetsQuantification(quantBtnPeriS)
1024     place forget $widgetsQuantification(quantBtnAreaS)
1025     place forget $widgetsQuantification(quantStenosis)
1026     place forget $widgetsQuantification(quantBtnDiaAvgM)
1027     place forget $widgetsQuantification(quantBtnDiaMaxM)
1028     place forget $widgetsQuantification(quantBtnDiaMinM)
1029     place forget $widgetsQuantification(quantBtnDiaPeriM)
1030     place forget $widgetsQuantification(quantBtnDiaAreaM)
1031     place forget $widgetsQuantification(quantBtnPeriM)
1032     place forget $widgetsQuantification(quantBtnAreaM)
1033     place forget $widgetsQuantification(quantMeasures)
1034     pack  forget $widgets(quantification)
1035
1036 }
1037
1038 proc dlg_params::cancel_params { } {
1039
1040     # For programming facilities
1041     upvar dlg_params::widgets               widgets
1042     upvar dlg_params::widgetsGeneral        widgetsGeneral
1043     upvar dlg_params::widgetsAxes           widgetsAxes
1044     upvar dlg_params::widgetsContours       widgetsContours
1045     upvar dlg_params::widgetsQuantification widgetsQuantification
1046     upvar dlg_params::gen_debug             gen_debug
1047     upvar dlg_params::con_debug             con_debug
1048     upvar dlg_params::quant_type            quant_type
1049     upvar dlg_params::alg_type              alg_type
1050     upvar dlg_params::stenosis_type         stenosis_type
1051     upvar dlg_params::params_to_save        params_to_save
1052
1053     set params_to_save [ array get arr ]
1054     destroy $widgets(base)
1055
1056 }
1057
1058 proc dlg_params::save_params { } {
1059
1060     # For programming facilities
1061     upvar dlg_params::widgets               widgets
1062     upvar dlg_params::widgetsGeneral        widgetsGeneral
1063     upvar dlg_params::widgetsAxes           widgetsAxes
1064     upvar dlg_params::widgetsContours       widgetsContours
1065     upvar dlg_params::widgetsQuantification widgetsQuantification
1066     upvar dlg_params::gen_debug             gen_debug
1067     upvar dlg_params::con_debug             con_debug
1068     upvar dlg_params::quant_type            quant_type
1069     upvar dlg_params::alg_type              alg_type
1070     upvar dlg_params::stenosis_type         stenosis_type
1071     upvar dlg_params::params_to_save        params_to_save
1072     upvar dlg_params::voxel_typ             voxel_typ
1073
1074     array set arr $params_to_save
1075
1076     set arr(e_installation_directory)         [ $widgetsGeneral(genWork02)   get ]
1077     set arr(e_dicom_images_directory)        [ $widgetsGeneral(genImages02) get ]
1078
1079     set arr(e_voxel_x_dimension)             [ $widgetsAxes(axVoxelX02)    get ]
1080     set arr(e_voxel_y_dimension)             [ $widgetsAxes(axVoxelY02)    get ]
1081     set arr(e_voxel_z_dimension)             [ $widgetsAxes(axVoxelZ02)    get ]
1082     #set arr(e_step)                          [ $widgetsAxes(axStep02)      get ]
1083     set arr(e_axis_discret_step)             [ $widgetsAxes(axAxisStep02)  get ]
1084     #set arr(e_roi_dimension)                 [ $widgetsAxes(axROIDim02)    get ]
1085     #set arr(e_mass_power)                    [ $widgetsAxes(axMassPower02) get ]
1086     set arr(e_tension_coeficient)            [ $widgetsAxes(axTension02)   get ]
1087     #set arr(e_step_coeficient)               [ $widgetsAxes(axPas02)       get ]
1088     set arr(e_gravity_distance)              [ $widgetsAxes(axDistCDG02)   get ]
1089     #set arr(e_cell_coeficient)               [ $widgetsAxes(axCell02)      get ]
1090     set arr(e_flexion_coeficient)            [ $widgetsAxes(axFlex02)      get ]
1091     set arr(e_mask_size)                     [ $widgetsAxes(axMaskSize02)  get ]
1092     #set arr(e_distance_to_maximum_intensity) [ $widgetsAxes(axDistInt02)   get ]
1093     #set arr(e_coef_cell_max_int)             [ $widgetsAxes(axCoefCellMax02) get ]
1094
1095     set arr(e_scale)                                 [ $widgetsContours(conEdtScale)              get ]
1096     set arr(e_sampling)                              [ $widgetsContours(conEdtSample)             get ]
1097     set arr(e_threshold_isocontour)                  [ $widgetsContours(conEdtThrIso)             get ]
1098     set arr(e_threshold_snake_isocontour)            [ $widgetsContours(conEdtThrSnakeIso)        get ]
1099     set arr(e_number_of_iterations_snake_isocontour) [ $widgetsContours(conEdtIterSnakeIso)       get ]
1100     set arr(e_extern_coeficient)                     [ $widgetsContours(conEdtCoefExternSnakeIso) get ]
1101     set arr(e_number_of_iterations_snake_deriche)    [ $widgetsContours(conEdtIterSnakeDer)       get ]
1102     set arr(e_gradient_coeficient)                   [ $widgetsContours(conEdtCoefGradSnakeDer)   get ]
1103     set arr(e_ballon_coeficient)                     [ $widgetsContours(conEdtCoefBallonSnakeDer) get ]
1104     set arr(e_sigma)                                 [ $widgetsContours(conEdtSigmaSnakeDer)      get ]
1105
1106     set arr(e_voxel_type) $voxel_typ
1107
1108     set arr(e_debug_window_visible)      [ expr ( ( $gen_debug & 0x01 ) == 0x01 ) ]
1109     set arr(e_debug_console_visible)     [ expr ( ( $gen_debug & 0x02 ) == 0x02 ) ]
1110     set arr(e_calculate_mip_default)     [ expr ( ( $gen_debug & 0x04 ) == 0x04 ) ]
1111     set arr(e_choose_all_slices_default) [ expr ( ( $gen_debug & 0x08 ) == 0x08 ) ]
1112
1113     set arr(e_algorithm_type)    $alg_type
1114     set arr(e_debug_isocontour) [ expr ( ( $con_debug & 0x01 ) == 0x01 ) ]
1115     set arr(e_debug_diameters)  [ expr ( ( $con_debug & 0x02 ) == 0x02 ) ]
1116     set arr(e_debug_fill_area)  [ expr ( ( $con_debug & 0x04 ) == 0x04 ) ]
1117
1118 #    set arr(e_back_color_3D) [ $widgetsGeneral(genBtnColor) cget -background ]
1119
1120 #    set arr(e_axis_color)    [ $widgetsAxes(axBtnColor)  cget -background ]
1121
1122     set arr(e_quantification_type) $quant_type
1123     set arr(e_stenosis_type)       $stenosis_type
1124
1125     set params_to_save [ array get arr ]
1126     destroy $widgets(base)
1127
1128 }
1129
1130 proc dlg_params::cb_browse_path { entry_widget } {
1131
1132     # For programming facilities
1133     upvar dlg_params::widgets               widgets
1134     upvar dlg_params::widgetsGeneral        widgetsGeneral
1135     upvar dlg_params::widgetsAxes           widgetsAxes
1136     upvar dlg_params::widgetsContours       widgetsContours
1137     upvar dlg_params::widgetsQuantification widgetsQuantification
1138     upvar dlg_params::gen_debug             gen_debug
1139     upvar dlg_params::con_debug             con_debug
1140     upvar dlg_params::quant_type            quant_type
1141     upvar dlg_params::alg_type              alg_type
1142     upvar dlg_params::stenosis_type         stenosis_type
1143     upvar dlg_params::params_to_save        params_to_save
1144
1145     set nDir [ tk_chooseDirectory \
1146                     -initialdir [ $entry_widget get ] \
1147                     -parent $widgets(base) \
1148                     -title "$string_table::str_chooseadirectory" \
1149                     -mustexist true \
1150     ]
1151     if { $nDir != "" } {
1152
1153         $entry_widget delete 0 end
1154         $entry_widget insert 0 $nDir
1155
1156     }
1157
1158 }
1159
1160 proc dlg_params::cb_gen_debug { value mask } {
1161
1162     # For programming facilities
1163     upvar dlg_params::widgets               widgets
1164     upvar dlg_params::widgetsGeneral        widgetsGeneral
1165     upvar dlg_params::widgetsAxes           widgetsAxes
1166     upvar dlg_params::widgetsContours       widgetsContours
1167     upvar dlg_params::widgetsQuantification widgetsQuantification
1168     upvar dlg_params::gen_debug             gen_debug
1169     upvar dlg_params::con_debug             con_debug
1170     upvar dlg_params::quant_type            quant_type
1171     upvar dlg_params::alg_type              alg_type
1172     upvar dlg_params::stenosis_type         stenosis_type
1173     upvar dlg_params::params_to_save        params_to_save
1174
1175     set gen_debug [ expr ( $value == 1 )? \
1176                          ( $gen_debug | $mask ): \
1177                          ( $gen_debug & ( ~$mask ) ) \
1178     ]
1179
1180 }
1181
1182 proc dlg_params::cb_con_debug { value mask } {
1183
1184     # For programming facilities
1185     upvar dlg_params::widgets               widgets
1186     upvar dlg_params::widgetsGeneral        widgetsGeneral
1187     upvar dlg_params::widgetsAxes           widgetsAxes
1188     upvar dlg_params::widgetsContours       widgetsContours
1189     upvar dlg_params::widgetsQuantification widgetsQuantification
1190     upvar dlg_params::gen_debug             gen_debug
1191     upvar dlg_params::con_debug             con_debug
1192     upvar dlg_params::quant_type            quant_type
1193     upvar dlg_params::alg_type              alg_type
1194     upvar dlg_params::stenosis_type         stenosis_type
1195     upvar dlg_params::params_to_save        params_to_save
1196
1197     set con_debug [ expr ( $value == 1 )? \
1198                          ( $con_debug | $mask ): \
1199                          ( $con_debug & ( ~$mask ) ) \
1200     ]
1201
1202 }
1203
1204 proc dlg_params::cb_quant_type { value mask partner } {
1205
1206     # For programming facilities
1207     upvar dlg_params::widgets               widgets
1208     upvar dlg_params::widgetsGeneral        widgetsGeneral
1209     upvar dlg_params::widgetsAxes           widgetsAxes
1210     upvar dlg_params::widgetsContours       widgetsContours
1211     upvar dlg_params::widgetsQuantification widgetsQuantification
1212     upvar dlg_params::gen_debug             gen_debug
1213     upvar dlg_params::con_debug             con_debug
1214     upvar dlg_params::quant_type            quant_type
1215     upvar dlg_params::alg_type              alg_type
1216     upvar dlg_params::stenosis_type         stenosis_type
1217     upvar dlg_params::params_to_save        params_to_save
1218
1219     set quant_type [ expr ( $value == 1 )? \
1220                           ( $quant_type | $mask ): \
1221                           ( $quant_type & ( ~$mask ) ) \
1222     ]
1223     set partner2 ""
1224     if { [ string compare $partner "quantBtnAreaS"    ] == 0 } { set partner2 $widgetsQuantification(quantBtnAreaS) }
1225     if { [ string compare $partner "quantBtnPeriS"    ] == 0 } { set partner2 $widgetsQuantification(quantBtnPeriS) }
1226     if { [ string compare $partner "quantBtnDiaAreaS" ] == 0 } { set partner2 $widgetsQuantification(quantBtnDiaAreaS) }
1227     if { [ string compare $partner "quantBtnDiaPeriS" ] == 0 } { set partner2 $widgetsQuantification(quantBtnDiaPeriS) }
1228     if { [ string compare $partner "quantBtnDiaMinS"  ] == 0 } { set partner2 $widgetsQuantification(quantBtnDiaMinS) }
1229     if { [ string compare $partner "quantBtnDiaMaxS"  ] == 0 } { set partner2 $widgetsQuantification(quantBtnDiaMaxS) }
1230     if { [ string compare $partner "quantBtnDiaAvgS"  ] == 0 } { set partner2 $widgetsQuantification(quantBtnDiaAvgS) }
1231
1232     if { $value == 1 } { $partner2 configure -state normal }
1233     if { $value == 0 } { $partner2 configure -state disabled }
1234
1235 }
1236
1237 proc dlg_params::cb_choose_color { button_chooser } {
1238
1239     # For programming facilities
1240     upvar dlg_params::widgets               widgets
1241     upvar dlg_params::widgetsGeneral        widgetsGeneral
1242     upvar dlg_params::widgetsAxes           widgetsAxes
1243     upvar dlg_params::widgetsContours       widgetsContours
1244     upvar dlg_params::widgetsQuantification widgetsQuantification
1245     upvar dlg_params::gen_debug             gen_debug
1246     upvar dlg_params::con_debug             con_debug
1247     upvar dlg_params::quant_type            quant_type
1248     upvar dlg_params::alg_type              alg_type
1249     upvar dlg_params::stenosis_type         stenosis_type
1250     upvar dlg_params::params_to_save        params_to_save
1251
1252     set col [ $button_chooser cget -background ]
1253     set col [ \
1254         tk_chooseColor \
1255             -initialcolor $col \
1256             -parent $button_chooser \
1257             -title "Choose a color..."
1258     ]
1259     if { $col != "" } { $button_chooser configure -background $col }
1260
1261 }
1262
1263 proc dlg_params::set_alg_type { v_alg_type } {
1264
1265     # For programming facilities
1266     upvar dlg_params::widgets               widgets
1267     upvar dlg_params::widgetsGeneral        widgetsGeneral
1268     upvar dlg_params::widgetsAxes           widgetsAxes
1269     upvar dlg_params::widgetsContours       widgetsContours
1270     upvar dlg_params::widgetsQuantification widgetsQuantification
1271     upvar dlg_params::gen_debug             gen_debug
1272     upvar dlg_params::con_debug             con_debug
1273     upvar dlg_params::quant_type            quant_type
1274     upvar dlg_params::alg_type              alg_type
1275     upvar dlg_params::stenosis_type         stenosis_type
1276     upvar dlg_params::params_to_save        params_to_save
1277
1278     set alg_type $v_alg_type
1279
1280 }
1281
1282 proc dlg_params::set_stenosis_type { v_stenosis_type } {
1283
1284     # For programming facilities
1285     upvar dlg_params::widgets               widgets
1286     upvar dlg_params::widgetsGeneral        widgetsGeneral
1287     upvar dlg_params::widgetsAxes           widgetsAxes
1288     upvar dlg_params::widgetsContours       widgetsContours
1289     upvar dlg_params::widgetsQuantification widgetsQuantification
1290     upvar dlg_params::gen_debug             gen_debug
1291     upvar dlg_params::con_debug             con_debug
1292     upvar dlg_params::quant_type            quant_type
1293     upvar dlg_params::alg_type              alg_type
1294     upvar dlg_params::stenosis_type         stenosis_type
1295     upvar dlg_params::params_to_save        params_to_save
1296
1297     set stenosis_type $v_stenosis_type
1298
1299 }
1300
1301 # EOF -- dlg_params.tcl