1 namespace eval global_window {
35 # Loaded button images
38 # Parameters dialog visible?
39 variable show_params -1
41 # Button enable/disable values
42 variable en_quant 0x000001
43 variable en_planes 0x000002
44 variable en_3D 0x000004
45 variable en_subtract 0x000008
46 variable en_ibrw 0x000010
47 variable en_params 0x000020
48 variable en_save 0x000040
49 variable en_load 0x000080
50 variable en_open 0x000100
51 variable en_help 0x000200
52 variable en_rotate 0x000400
53 variable en_bright 0x000800
54 variable en_pan 0x001000
55 variable en_zoom 0x002000
56 variable en_clear 0x004000
57 variable en_intensity 0x008000
58 variable en_linear 0x010000
59 variable en_area 0x020000
60 variable en_back 0x040000
61 variable en_excel 0x080000
62 variable en_wizard 0x100000
68 variable sh_3D_mpr 0x08
69 variable sh_3D_mip 0x10
70 variable sh_3D_sur 0x20
71 variable sh_3D_qua 0x40
77 proc global_window::reset { } {
79 # For programming facilities
80 upvar global_window::widgets widgets
83 set widgets(toolBar) ".frToolBar"
84 set widgets(toolsAllData) ".frToolBar.frTAllData"
85 set widgets(toolsData) ".frToolBar.frTData"
86 set widgets(toolsState) ".frToolBar.frState"
87 set widgets(toolsMouse) ".frToolBar.frMouse"
88 set widgets(toolsProfil) ".frToolBar.frProfil"
89 set widgets(toolsHelp) ".frToolBar.frHelp"
90 set widgets(work) ".frWork"
91 set widgets(btnChooseDataPath) ".frToolBar.frTAllData.btnChooseDataPath"
92 set widgets(btnLoadExperiment) ".frToolBar.frTAllData.btnLoadExperiment"
93 set widgets(btnSaveExperiment) ".frToolBar.frTAllData.btnSaveExperiment"
94 set widgets(btnSaveExcel) ".frToolBar.frTAllData.btnSaveExcel"
95 set widgets(btnParam) ".frToolBar.frTAllData.btnParam"
96 set widgets(btnWizard) ".frToolBar.frTAllData.btnWizard"
97 set widgets(btnIbrw) ".frToolBar.frTData.btnIbrw"
98 set widgets(btnSubtract) ".frToolBar.frTData.btnSubtract"
99 set widgets(btnBack) ".frToolBar.frState.btnBack"
100 set widgets(btn3D) ".frToolBar.frState.btn3D"
101 set widgets(btnPlanes) ".frToolBar.frState.btnPlanes"
102 set widgets(btnQuant) ".frToolBar.frState.btnQuant"
103 set widgets(btnRotate) ".frToolBar.frMouse.btnRotate"
104 set widgets(btnBright) ".frToolBar.frMouse.btnBright"
105 set widgets(btnPan) ".frToolBar.frMouse.btnPan"
106 set widgets(btnZoom) ".frToolBar.frMouse.btnZoom"
107 set widgets(btnClear) ".frToolBar.frProfil.btnClear"
108 set widgets(btnIntensity) ".frToolBar.frProfil.btnIntensity"
109 set widgets(btnLinear) ".frToolBar.frProfil.btnLinear"
110 set widgets(btnArea) ".frToolBar.frProfil.btnArea"
111 set widgets(btnHelp) ".frToolBar.frHelp.btnHelp"
115 proc global_window::show { imgpath } {
117 # For programming facilities
118 upvar global_window::widgets widgets
119 upvar global_window::images images
120 upvar global_window::im1 im1
121 upvar global_window::im2 im2
122 upvar global_window::data_loaded data_loaded
123 upvar global_window::window_shown window_shown
129 set images(connect) [ image create photo -file "$imgpath/connect.gif" ]
130 set images(loadexp) [ image create photo -file "$imgpath/loadexp.gif" ]
131 set images(save) [ image create photo -file "$imgpath/save.gif" ]
132 set images(excel) [ image create photo -file "$imgpath/excel.gif" ]
133 set images(params) [ image create photo -file "$imgpath/params.gif" ]
134 set images(wizard) [ image create photo -file "$imgpath/wizard.gif" ]
135 set images(back) [ image create photo -file "$imgpath/back.gif" ]
136 set images(imagebrowser) [ image create photo -file "$imgpath/imagebrowser.gif" ]
137 set images(subtract) [ image create photo -file "$imgpath/subtract.gif" ]
138 set images(triD) [ image create photo -file "$imgpath/3D.gif" ]
139 set images(plans) [ image create photo -file "$imgpath/plans.gif" ]
140 set images(quant) [ image create photo -file "$imgpath/quant.gif" ]
141 set images(rotate) [ image create photo -file "$imgpath/rotate.gif" ]
142 set images(bright) [ image create photo -file "$imgpath/bright.gif" ]
143 set images(pan) [ image create photo -file "$imgpath/pan.gif" ]
144 set images(zoom) [ image create photo -file "$imgpath/zoom.gif" ]
145 set images(clear) [ image create photo -file "$imgpath/clear.gif" ]
146 set images(intensity) [ image create photo -file "$imgpath/intensity.gif" ]
147 set images(linear) [ image create photo -file "$imgpath/linear.gif" ]
148 set images(area) [ image create photo -file "$imgpath/area.gif" ]
149 set images(help) [ image create photo -file "$imgpath/help.gif" ]
150 set images(extract) [ image create photo -file "$imgpath/extract.gif" ]
151 set images(del_axis) [ image create photo -file "$imgpath/del_axis.gif" ]
152 set images(add) [ image create photo -file "$imgpath/add.gif" ]
153 set images(continue) [ image create photo -file "$imgpath/continue.gif" ]
154 set im1 [ image create photo -file "$imgpath/redgreen.gif" ]
155 set im2 [ image create photo -file "$imgpath/redblue.gif" ]
157 loadParams_dll "params.dat"
159 global_window::create $imgpath
160 data_browser::create $widgets(work) 0x1
161 image_browser::create $widgets(work) 0x2
162 u_3D::create $widgets(work) 0x4
163 planes_window::create $widgets(work) 0x8
165 global_window::positionate
169 proc global_window::create { imgpath } {
171 # For programming facilities
172 upvar global_window::widgets widgets
173 upvar global_window::images images
174 upvar global_window::en_help en_help
175 upvar global_window::en_quant en_quant
176 upvar global_window::en_planes en_planes
177 upvar global_window::en_3D en_3D
178 upvar global_window::en_subtract en_subtract
179 upvar global_window::en_ibrw en_ibrw
180 upvar global_window::en_params en_params
181 upvar global_window::en_save en_save
182 upvar global_window::en_load en_load
183 upvar global_window::en_open en_open
184 upvar global_window::en_excel en_excel
185 upvar global_window::en_wizard en_wizard
190 wm focusmodel $widgets(base) passive
191 wm geometry $widgets(base) 912x564+16+108
192 wm minsize $widgets(base) 50 50
193 wm overrideredirect $widgets(base) 0
194 wm resizable $widgets(base) 1 1
195 wm deiconify $widgets(base)
196 wm title $widgets(base) "$string_table::str_maracas_title"
199 frame $widgets(toolBar) -borderwidth 1 -height 1 -relief flat -width 1
200 frame $widgets(toolsAllData) -borderwidth 2 -height 1 -relief groove -width 1
201 frame $widgets(toolsData) -borderwidth 2 -height 1 -relief groove -width 1
202 frame $widgets(toolsState) -borderwidth 2 -height 1 -relief groove -width 1
203 frame $widgets(toolsMouse) -borderwidth 2 -height 1 -relief groove -width 1
204 frame $widgets(toolsProfil) -borderwidth 2 -height 1 -relief groove -width 1
205 frame $widgets(toolsHelp) -borderwidth 2 -height 1 -relief groove -width 1
206 frame $widgets(work) -borderwidth 1 -height 1 -relief flat -width 1
209 button $widgets(btnChooseDataPath) -relief flat -image $images(connect) -command "global_window::cb_open_data"
210 button $widgets(btnLoadExperiment) -relief flat -image $images(loadexp) -command "global_window::open_data"
211 button $widgets(btnSaveExperiment) -relief flat -image $images(save) -command "global_window::save_data"
212 button $widgets(btnSaveExcel) -relief flat -image $images(excel) -command "global_window::save_data_as_excel"
213 button $widgets(btnParam) -relief flat -image $images(params) -command "global_window::cb_load_params"
214 button $widgets(btnWizard) -relief flat -image $images(wizard) -command "global_window::show_wizard"
215 button $widgets(btnBack) -relief flat -image $images(back) -command "global_window::back"
216 button $widgets(btnIbrw) -relief flat -image $images(imagebrowser) -command "global_window::cb_image_browse"
217 button $widgets(btnSubtract) -relief flat -image $images(subtract) -command "global_window::subtract"
218 button $widgets(btn3D) -relief flat -image $images(triD) -command "global_window::start_3D"
219 button $widgets(btnPlanes) -relief flat -image $images(plans) -command "global_window::show_planes"
220 button $widgets(btnQuant) -relief flat -image $images(quant) -command "global_window::do_quant"
221 button $widgets(btnClear) -image $images(clear) -command "global_window::clear"
222 button $widgets(btnHelp) -relief flat -image $images(help) -command "help_wnd::show_about $imgpath"
224 radiobutton $widgets(btnRotate) -indicatoron 0 -variable left_button -value 1 -relief flat -image $images(rotate) -command "global_window::set_mouse_left_events 0x4"
225 radiobutton $widgets(btnPan) -indicatoron 0 -variable left_button -value 2 -relief flat -image $images(pan) -command "global_window::set_mouse_left_events 0x2"
226 radiobutton $widgets(btnIntensity) -indicatoron 0 -variable left_button -value 3 -relief flat -image $images(intensity) -command "global_window::set_mouse_left_events 0x1"
228 radiobutton $widgets(btnBright) -indicatoron 0 -variable right_button -value 1 -relief flat -image $images(bright) -command "global_window::set_mouse_right_events 0x8"
229 radiobutton $widgets(btnZoom) -indicatoron 0 -variable right_button -value 2 -relief flat -image $images(zoom) -command "global_window::set_mouse_right_events 0x4"
230 radiobutton $widgets(btnLinear) -indicatoron 0 -variable right_button -value 3 -relief flat -image $images(linear) -command "global_window::set_mouse_right_events 0x2"
231 radiobutton $widgets(btnArea) -indicatoron 0 -variable right_button -value 4 -relief flat -image $images(area) -command "global_window::set_mouse_right_events 0x1"
233 bind $widgets(btnChooseDataPath) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
234 bind $widgets(btnLoadExperiment) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
235 bind $widgets(btnSaveExperiment) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
236 bind $widgets(btnSaveExcel) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
237 bind $widgets(btnParam) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
238 bind $widgets(btnWizard) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
239 bind $widgets(btnBack) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
240 bind $widgets(btnIbrw) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
241 bind $widgets(btnSubtract) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
242 bind $widgets(btn3D) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
243 bind $widgets(btnPlanes) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
244 bind $widgets(btnQuant) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
245 bind $widgets(btnRotate) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
246 bind $widgets(btnHelp) <Enter> { if { [ string compare [ %W cget -state ] "normal" ] == 0 } { %W configure -relief raised } }
248 bind $widgets(btnChooseDataPath) <Leave> { %W configure -relief flat }
249 bind $widgets(btnLoadExperiment) <Leave> { %W configure -relief flat }
250 bind $widgets(btnSaveExperiment) <Leave> { %W configure -relief flat }
251 bind $widgets(btnSaveExcel) <Leave> { %W configure -relief flat }
252 bind $widgets(btnParam) <Leave> { %W configure -relief flat }
253 bind $widgets(btnWizard) <Leave> { %W configure -relief flat }
254 bind $widgets(btnBack) <Leave> { %W configure -relief flat }
255 bind $widgets(btnIbrw) <Leave> { %W configure -relief flat }
256 bind $widgets(btnSubtract) <Leave> { %W configure -relief flat }
257 bind $widgets(btn3D) <Leave> { %W configure -relief flat }
258 bind $widgets(btnPlanes) <Leave> { %W configure -relief flat }
259 bind $widgets(btnQuant) <Leave> { %W configure -relief flat }
260 bind $widgets(btnRotate) <Leave> { %W configure -relief flat }
261 bind $widgets(btnHelp) <Leave> { %W configure -relief flat }
263 bind $widgets(base) <Destroy> "global_window::DestroyWindow %W"
265 global_window::controls 0
269 proc global_window::DestroyWindow { widget } {
271 # For programming facilities
272 upvar global_window::widgets widgets
274 if { [ string compare $widget $widgets(base) ] == 0 } {
276 freeAllMaracasInterfaces_dll
282 proc global_window::positionate { } {
284 # For programming facilities
285 upvar global_window::widgets widgets
286 upvar global_window::show_params show_params
290 pack $widgets(toolBar) -anchor n -expand 0 -fill both -side top
291 pack $widgets(toolsAllData) -anchor nw -expand 0 -fill none -side left
292 pack $widgets(btnChooseDataPath) -anchor nw -expand 0 -fill none -side left
293 pack $widgets(btnLoadExperiment) -anchor nw -expand 0 -fill none -side left
294 pack $widgets(btnSaveExperiment) -anchor nw -expand 0 -fill none -side left
295 pack $widgets(btnSaveExcel) -anchor nw -expand 0 -fill none -side left
296 pack $widgets(btnParam) -anchor nw -expand 0 -fill none -side left
297 pack $widgets(btnWizard) -anchor nw -expand 0 -fill none -side left
298 pack $widgets(toolsData) -anchor nw -expand 0 -fill none -side left
299 pack $widgets(btnIbrw) -anchor nw -expand 0 -fill none -side left
300 pack $widgets(btnSubtract) -anchor nw -expand 0 -fill none -side left
301 pack $widgets(toolsState) -anchor nw -expand 0 -fill none -side left
302 pack $widgets(btnBack) -anchor nw -expand 0 -fill none -side left
303 pack $widgets(btn3D) -anchor nw -expand 0 -fill none -side left
304 pack $widgets(btnPlanes) -anchor nw -expand 0 -fill none -side left
305 pack $widgets(btnQuant) -anchor nw -expand 0 -fill none -side left
306 pack $widgets(toolsMouse) -anchor nw -expand 0 -fill none -side left
307 pack $widgets(btnRotate) -anchor nw -expand 0 -fill none -side left
308 pack $widgets(btnBright) -anchor nw -expand 0 -fill none -side left
309 pack $widgets(btnPan) -anchor nw -expand 0 -fill none -side left
310 pack $widgets(btnZoom) -anchor nw -expand 0 -fill none -side left
311 pack $widgets(toolsProfil) -anchor nw -expand 0 -fill none -side left
312 pack $widgets(btnClear) -anchor nw -expand 0 -fill none -side left
313 pack $widgets(btnIntensity) -anchor nw -expand 0 -fill none -side left
314 pack $widgets(btnLinear) -anchor nw -expand 0 -fill none -side left
315 pack $widgets(btnArea) -anchor nw -expand 0 -fill none -side left
316 pack $widgets(toolsHelp) -anchor nw -expand 0 -fill none -side left
317 pack $widgets(btnHelp) -anchor nw -expand 0 -fill none -side left
318 pack $widgets(work) -anchor n -expand 1 -fill both -side top
322 proc global_window::forget { } {
324 # For programming facilities
325 upvar global_window::widgets widgets
327 pack forget $widgets(work)
328 pack forget $widgets(btnHelp)
329 pack forget $widgets(toolsHelp)
330 pack forget $widgets(btnArea)
331 pack forget $widgets(btnLinear)
332 pack forget $widgets(btnIntensity)
333 pack forget $widgets(btnClear)
334 pack forget $widgets(toolsProfil)
335 pack forget $widgets(btnZoom)
336 pack forget $widgets(btnPan)
337 pack forget $widgets(btnBright)
338 pack forget $widgets(btnRotate)
339 pack forget $widgets(toolsMouse)
340 pack forget $widgets(btnQuant)
341 pack forget $widgets(btnPlanes)
342 pack forget $widgets(btn3D)
343 pack forget $widgets(btnBack)
344 pack forget $widgets(toolsState)
345 pack forget $widgets(btnSubtract)
346 pack forget $widgets(btnIbrw)
347 pack forget $widgets(toolsData)
348 pack forget $widgets(btnWizard)
349 pack forget $widgets(btnParam)
350 pack forget $widgets(btnLoadExperiment)
351 pack forget $widgets(btnSaveExcel)
352 pack forget $widgets(btnSaveExperiment)
353 pack forget $widgets(btnChooseDataPath)
354 pack forget $widgets(toolsAllData)
355 pack forget $widgets(toolBar)
359 proc global_window::get_active_controls { } {
361 # For programming facilities
362 upvar global_window::widgets widgets
363 upvar global_window::en_quant en_quant
364 upvar global_window::en_planes en_planes
365 upvar global_window::en_3D en_3D
366 upvar global_window::en_subtract en_subtract
367 upvar global_window::en_ibrw en_ibrw
368 upvar global_window::en_params en_params
369 upvar global_window::en_save en_save
370 upvar global_window::en_load en_load
371 upvar global_window::en_open en_open
372 upvar global_window::en_help en_help
373 upvar global_window::en_rotate en_rotate
374 upvar global_window::en_bright en_bright
375 upvar global_window::en_pan en_pan
376 upvar global_window::en_zoom en_zoom
377 upvar global_window::en_clear en_clear
378 upvar global_window::en_intensity en_intensity
379 upvar global_window::en_linear en_linear
380 upvar global_window::en_area en_area
381 upvar global_window::en_back en_back
382 upvar global_window::en_excel en_excel
383 upvar global_window::en_wizard en_wizard
386 if { [ string compare [ $widgets(btnQuant) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_quant ] }
387 if { [ string compare [ $widgets(btnPlanes) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_planes ] }
388 if { [ string compare [ $widgets(btn3D) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_3D ] }
389 if { [ string compare [ $widgets(btnSubtract) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_subtract ] }
390 if { [ string compare [ $widgets(btnIbrw) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_ibrw ] }
391 if { [ string compare [ $widgets(btnParam) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_params ] }
392 if { [ string compare [ $widgets(btnSaveExperiment) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_save ] }
393 if { [ string compare [ $widgets(btnLoadExperiment) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_load ] }
394 if { [ string compare [ $widgets(btnChooseDataPath) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_open ] }
395 if { [ string compare [ $widgets(btnHelp) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_help ] }
396 if { [ string compare [ $widgets(btnRotate) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_rotate ] }
397 if { [ string compare [ $widgets(btnBright) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_bright ] }
398 if { [ string compare [ $widgets(btnPan) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_pan ] }
399 if { [ string compare [ $widgets(btnZoom) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_zoom ] }
400 if { [ string compare [ $widgets(btnClear) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_clear ] }
401 if { [ string compare [ $widgets(btnIntensity) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_intensity ] }
402 if { [ string compare [ $widgets(btnLinear) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_linear ] }
403 if { [ string compare [ $widgets(btnArea) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_area ] }
404 if { [ string compare [ $widgets(btnBack) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_back ] }
405 if { [ string compare [ $widgets(btnSaveExcel) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_excel ] }
406 if { [ string compare [ $widgets(btnWizard) cget -state ] "normal" ] == 0 } { set ret [ expr $ret | $en_wizard ] }
412 proc global_window::active_controls { mask } {
414 # For programming facilities
415 upvar global_window::widgets widgets
416 upvar global_window::en_quant en_quant
417 upvar global_window::en_planes en_planes
418 upvar global_window::en_3D en_3D
419 upvar global_window::en_subtract en_subtract
420 upvar global_window::en_ibrw en_ibrw
421 upvar global_window::en_params en_params
422 upvar global_window::en_save en_save
423 upvar global_window::en_load en_load
424 upvar global_window::en_open en_open
425 upvar global_window::en_help en_help
426 upvar global_window::en_rotate en_rotate
427 upvar global_window::en_bright en_bright
428 upvar global_window::en_pan en_pan
429 upvar global_window::en_zoom en_zoom
430 upvar global_window::en_clear en_clear
431 upvar global_window::en_intensity en_intensity
432 upvar global_window::en_linear en_linear
433 upvar global_window::en_area en_area
434 upvar global_window::en_back en_back
435 upvar global_window::en_excel en_excel
436 upvar global_window::en_wizard en_wizard
438 if { ( $mask & $en_quant ) == $en_quant } { $widgets(btnQuant) configure -state normal } else { $widgets(btnQuant) configure -state disabled -relief flat }
439 if { ( $mask & $en_planes ) == $en_planes } { $widgets(btnPlanes) configure -state normal } else { $widgets(btnPlanes) configure -state disabled -relief flat }
440 if { ( $mask & $en_3D ) == $en_3D } { $widgets(btn3D) configure -state normal } else { $widgets(btn3D) configure -state disabled -relief flat }
441 if { ( $mask & $en_subtract ) == $en_subtract } { $widgets(btnSubtract) configure -state normal } else { $widgets(btnSubtract) configure -state disabled -relief flat }
442 if { ( $mask & $en_ibrw ) == $en_ibrw } { $widgets(btnIbrw) configure -state normal } else { $widgets(btnIbrw) configure -state disabled -relief flat }
443 if { ( $mask & $en_params ) == $en_params } { $widgets(btnParam) configure -state normal } else { $widgets(btnParam) configure -state disabled -relief flat }
444 if { ( $mask & $en_save ) == $en_save } { $widgets(btnSaveExperiment) configure -state normal } else { $widgets(btnSaveExperiment) configure -state disabled -relief flat }
445 if { ( $mask & $en_load ) == $en_load } { $widgets(btnLoadExperiment) configure -state normal } else { $widgets(btnLoadExperiment) configure -state disabled -relief flat }
446 if { ( $mask & $en_open ) == $en_open } { $widgets(btnChooseDataPath) configure -state normal } else { $widgets(btnChooseDataPath) configure -state disabled -relief flat }
447 if { ( $mask & $en_help ) == $en_help } { $widgets(btnHelp) configure -state normal } else { $widgets(btnHelp) configure -state disabled -relief flat }
448 if { ( $mask & $en_rotate ) == $en_rotate } { $widgets(btnRotate) configure -state normal } else { $widgets(btnRotate) configure -state disabled -relief flat }
449 if { ( $mask & $en_bright ) == $en_bright } { $widgets(btnBright) configure -state normal } else { $widgets(btnBright) configure -state disabled -relief flat }
450 if { ( $mask & $en_pan ) == $en_pan } { $widgets(btnPan) configure -state normal } else { $widgets(btnPan) configure -state disabled -relief flat }
451 if { ( $mask & $en_zoom ) == $en_zoom } { $widgets(btnZoom) configure -state normal } else { $widgets(btnZoom) configure -state disabled -relief flat }
452 if { ( $mask & $en_clear ) == $en_clear } { $widgets(btnClear) configure -state normal } else { $widgets(btnClear) configure -state disabled -relief flat }
453 if { ( $mask & $en_intensity ) == $en_intensity } { $widgets(btnIntensity) configure -state normal } else { $widgets(btnIntensity) configure -state disabled -relief flat }
454 if { ( $mask & $en_linear ) == $en_linear } { $widgets(btnLinear) configure -state normal } else { $widgets(btnLinear) configure -state disabled -relief flat }
455 if { ( $mask & $en_area ) == $en_area } { $widgets(btnArea) configure -state normal } else { $widgets(btnArea) configure -state disabled -relief flat }
456 if { ( $mask & $en_back ) == $en_back } { $widgets(btnBack) configure -state normal } else { $widgets(btnBack) configure -state disabled -relief flat }
457 if { ( $mask & $en_excel ) == $en_excel } { $widgets(btnSaveExcel) configure -state normal } else { $widgets(btnSaveExcel) configure -state disabled -relief flat }
458 if { ( $mask & $en_wizard ) == $en_wizard } { $widgets(btnWizard) configure -state normal } else { $widgets(btnWizard) configure -state disabled -relief flat }
462 proc global_window::cb_load_params { } {
464 # For programming facilities
465 upvar global_window::widgets widgets
466 upvar global_window::sh_none sh_none
467 upvar global_window::sh_data sh_data
468 upvar global_window::sh_ibrw sh_ibrw
469 upvar global_window::sh_3D_mpr sh_3D_mpr
470 upvar global_window::sh_3D_mip sh_3D_mip
471 upvar global_window::sh_3D_sur sh_3D_sur
472 upvar global_window::sh_3D_qua sh_3D_qua
473 upvar global_window::window_shown window_shown
474 upvar global_window::show_params show_params
476 set ac_ctrls [ global_window::get_active_controls ]
480 set p [ dlg_params::show $widgets(work) $p ]
485 saveParams_dll "params.dat"
487 # Recalculate axes, if an
488 u_surf::reload_axis [ expr ( $arrB(e_mask_size) != $arrP(e_mask_size) ) || ( $arrB(e_coef_cell_max_int) != $arrP(e_coef_cell_max_int) ) ] [ expr ( $arrB(e_axis_discret_step) != $arrP(e_axis_discret_step) ) ]
489 planes_window::reload_axis [ expr ( $arrB(e_mask_size) != $arrP(e_mask_size) ) || ( $arrB(e_coef_cell_max_int) != $arrP(e_coef_cell_max_int) ) ] [ expr ( $arrB(e_axis_discret_step) != $arrP(e_axis_discret_step) ) ]
492 global_window::active_controls $ac_ctrls
496 proc global_window::cb_open_data { } {
498 # For programming facilities
499 upvar global_window::data_loaded_from_disk data_loaded_from_disk
504 planes_window::forget
506 image_browser::forget
508 data_browser::set_data
509 set data_loaded_from_disk 0
510 data_browser::positionate
517 proc global_window::cb_image_browse { } {
522 planes_window::forget
524 image_browser::forget
526 image_browser::set_data
527 image_browser::positionate
534 proc global_window::start_3D { } {
539 planes_window::forget
541 image_browser::forget
551 proc global_window::show_planes { } {
556 planes_window::forget
558 image_browser::forget
560 planes_window::set_data
561 planes_window::positionate
568 proc global_window::do_quant { } {
570 planes_window::do_quant
574 proc global_window::subtract { } {
576 # For programming facilities
577 upvar global_window::widgets widgets
579 set sub_data [ data_browser::get_subdata ]
581 if { [ llength $sub_data ] == 2 } {
583 set sub_info [ subtract::show $widgets(work) [ lindex $sub_data 0 ] [ lindex $sub_data 1 ] ]
587 if { [ lindex $sub_info 0 ] == 12 } {
589 subtractSeries_dll [ lindex $sub_data 0 ] [ lindex $sub_data 1 ] [ lindex $sub_info 2 ] [ lindex $sub_info 1 ]
591 } elseif { [ lindex $sub_info 0 ] == 21 } {
593 subtractSeries_dll [ lindex $sub_data 1 ] [ lindex $sub_data 2 ] [ lindex $sub_info 2 ] [ lindex $sub_info 1 ]
603 proc global_window::save_data_as_excel { } {
605 # For programming facilities
606 upvar global_window::widgets widgets
608 set fileName "exp_$data_browser::sel_study\_$data_browser::sel_serie\.xls"
610 array set arr [ params_dll -1 ]
613 -initialdir $arr(e_installation_directory) \
614 -initialfile $fileName \
615 -parent $widgets(work) \
616 -filetypes { { {Excel Files} {.xls} } { {All files} * } } \
617 -defaultextension dat \
618 -title $string_table::str_choose_a_file \
621 if { $fileName != "" } {
625 set res [ saveAsExcel_dll $fileName ]
633 proc global_window::save_data { } {
635 # For programming facilities
636 upvar global_window::widgets widgets
638 set fileName "exp_$data_browser::sel_study\_$data_browser::sel_serie\.dat"
639 set filetext "axis.txt"
640 set fileraw "vol.raw"
642 array set arr [ params_dll ]
645 -initialdir $arr(e_installation_directory) \
646 -initialfile $fileName \
647 -parent $widgets(work) \
648 -filetypes { { {Data Files} {.dat} } { {All files} * } } \
649 -defaultextension dat \
650 -title $string_table::str_choose_a_file \
655 # -initialdir $arr(e_installation_directory) \
656 # -initialfile $fileraw \
657 # -parent $widgets(work) \
658 # -filetypes { { {Raw volumes} {.raw} } } \
659 # -defaultextension raw \
660 # -title $string_table::str_choose_a_file \
663 set filetext "iamnotforyouruse.txt"
666 # -initialdir $arr(e_installation_directory) \
667 # -initialfile $filetext \
668 # -parent $widgets(work) \
669 # -filetypes { { {Text Files} {.txt} } } \
670 # -defaultextension txt \
671 # -title $string_table::str_choose_a_file \
674 if { $fileName != "" } {
678 set res [ SaveExperiment_dll $fileName ]
679 # saveVolumeAsRaw_dll $fileraw
688 proc global_window::open_data { } {
690 # For programming facilities
691 upvar global_window::widgets widgets
692 upvar global_window::data_loaded_from_disk data_loaded_from_disk
694 array set arr [ params_dll -1 ]
697 -initialdir $arr(e_installation_directory) \
698 -parent $widgets(work) \
699 -filetypes { { {Data Files} {.dat} } { {All files} * } } \
700 -defaultextension dat \
701 -title $string_table::str_choose_a_file \
704 if { $fileName != "" } {
708 set res [ loadExperiment_dll $fileName ]
709 set data_loaded_from_disk 1
712 array set ser_data [ seriedata_dll [ getStudy_dll ] [ getSerie_dll ] ]
713 global_window::set_window_title "$ser_data(ID_Patient_Name) - [ getStudy_dll ]/[ getSerie_dll ]"
714 global_window::show_planes
720 proc global_window::set_mouse_left_events { mask } {
722 image_browser::set_mouse_left_events $mask
723 u_mpr::set_mouse_left_events $mask
724 u_mip::set_mouse_left_events $mask
725 u_surf::set_mouse_left_events $mask
726 planes_window::set_mouse_left_events $mask
730 proc global_window::set_mouse_right_events { mask } {
732 image_browser::set_mouse_right_events $mask
733 u_mpr::set_mouse_right_events $mask
734 u_mip::set_mouse_right_events $mask
735 u_surf::set_mouse_right_events $mask
736 planes_window::set_mouse_right_events $mask
740 proc global_window::clear { } {
743 # planes_window::clear
747 proc global_window::show_wizard { } {
749 # For programming facilities
750 upvar global_window::widgets widgets
752 wizardpostaxis::show $widgets(work)
753 wizardpostcontour::show $widgets(work)
757 proc global_window::invoke_buttons { mask } {
759 # For programming facilities
760 upvar global_window::widgets widgets
761 upvar global_window::en_quant en_quant
762 upvar global_window::en_planes en_planes
763 upvar global_window::en_3D en_3D
764 upvar global_window::en_subtract en_subtract
765 upvar global_window::en_ibrw en_ibrw
766 upvar global_window::en_params en_params
767 upvar global_window::en_save en_save
768 upvar global_window::en_load en_load
769 upvar global_window::en_open en_open
770 upvar global_window::en_help en_help
771 upvar global_window::en_rotate en_rotate
772 upvar global_window::en_bright en_bright
773 upvar global_window::en_pan en_pan
774 upvar global_window::en_zoom en_zoom
775 upvar global_window::en_clear en_clear
776 upvar global_window::en_intensity en_intensity
777 upvar global_window::en_linear en_linear
778 upvar global_window::en_area en_area
780 if { ( $mask & $en_quant ) == $en_quant } { $widgets(btnQuant) invoke }
781 if { ( $mask & $en_planes ) == $en_planes } { $widgets(btnPlanes) invoke }
782 if { ( $mask & $en_3D ) == $en_3D } { $widgets(btn3D) invoke }
783 if { ( $mask & $en_subtract ) == $en_subtract } { $widgets(btnSubtract) invoke }
784 if { ( $mask & $en_ibrw ) == $en_ibrw } { $widgets(btnIbrw) invoke }
785 if { ( $mask & $en_params ) == $en_params } { $widgets(btnParam) invoke }
786 if { ( $mask & $en_save ) == $en_save } { $widgets(btnSaveExperiment) invoke }
787 if { ( $mask & $en_load ) == $en_load } { $widgets(btnLoadExperiment) invoke }
788 if { ( $mask & $en_open ) == $en_open } { $widgets(btnChooseDataPath) invoke }
789 if { ( $mask & $en_help ) == $en_help } { $widgets(btnHelp) invoke }
790 if { ( $mask & $en_rotate ) == $en_rotate } { $widgets(btnRotate) invoke }
791 if { ( $mask & $en_bright ) == $en_bright } { $widgets(btnBright) invoke }
792 if { ( $mask & $en_pan ) == $en_pan } { $widgets(btnPan) invoke }
793 if { ( $mask & $en_zoom ) == $en_zoom } { $widgets(btnZoom) invoke }
794 if { ( $mask & $en_clear ) == $en_clear } { $widgets(btnClear) invoke }
795 if { ( $mask & $en_intensity ) == $en_intensity } { $widgets(btnIntensity) invoke }
796 if { ( $mask & $en_linear ) == $en_linear } { $widgets(btnLinear) invoke }
797 if { ( $mask & $en_area ) == $en_area } { $widgets(btnArea) invoke }
801 proc global_window::deselect_buttons { } {
803 # For programming facilities
804 upvar global_window::widgets widgets
806 $widgets(btnRotate) deselect
807 $widgets(btnBright) deselect
808 $widgets(btnPan) deselect
809 $widgets(btnZoom) deselect
810 $widgets(btnIntensity) deselect
811 $widgets(btnLinear) deselect
812 $widgets(btnArea) deselect
816 proc global_window::set_window_title { title } {
818 # For programming facilities
819 upvar global_window::widgets widgets
821 wm title $widgets(base) "$string_table::str_maracas_title - $title"
825 proc global_window::back { } {
827 # For programming facilities
828 upvar global_window::data_loaded_from_disk data_loaded_from_disk
830 if { [ image_browser::back ] == 1 } {
832 global_window::cb_open_data
834 } elseif { [ u_3D::back ] == 1 } {
839 if { $data_loaded_from_disk == 1 } {
841 set data_browser::sel_study [ getStudy_dll ]
842 set data_browser::sel_serie [ getSerie_dll ]
843 image_browser::set_data
847 planes_window::forget
849 image_browser::forget
851 image_browser::positionate
856 } elseif { [ planes_window::back ] == 1 } {
861 if { $data_loaded_from_disk == 1 } {
863 image_browser::set_data2
867 planes_window::forget
869 image_browser::forget
881 proc global_window::controls { { id -1 } } {
884 global_window::active_controls 0
887 global_window::active_controls [ \
889 $global_window::en_params | \
890 $global_window::en_load | \
891 $global_window::en_open | \
892 $global_window::en_help | \
900 # EOF - global_window.tcl