Changeset 133 for trunk/expgui
- Timestamp:
- Dec 4, 2009 5:00:57 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expgui
- Property rcs:date changed from 1999/11/19 00:03:25 to 2000/05/17 16:17:21
- Property rcs:lines changed from +15 -27 to +730 -518
- Property rcs:rev changed from 1.22 to 1.23
r123 r133 38 38 append expgui(expfile) ".EXP" 39 39 } 40 if {[file dirname $expgui(expfile)] == "."} {41 set expgui(expfile) [string toupper $expgui(expfile)]42 } else {43 set expgui(expfile) [file join \44 [file dirname $expgui(expfile)] \45 [file tail [string toupper $expgui(expfile)]]46 ]47 }48 40 } else { 49 41 set expgui(expfile) {} … … 54 46 #set expgui(debug) 1 55 47 56 set expgui(havetix) 157 # for debugging non-Tix version set environment variable NOTIX58 catch {if $env(NOTIX) {set expgui(havetix) 0}}59 if $expgui(havetix) {60 if [catch {package require Tix}] {set expgui(havetix) 0}61 }62 48 # default for archive mode = on 63 49 set expgui(archive) 1 … … 116 102 set expgui(gsasexe) [file join $expgui(gsasdir) exe] 117 103 #---------------------------------------------------------------- 104 lappend auto_path $expgui(scriptdir) 105 set expgui(havetix) 0 106 set expgui(haveBW) 1 107 # for debugging non-BWidget version set environment variable NOBWIDGET 108 catch {if $env(NOBWIDGET) {set expgui(haveBW) 0}} 109 if $expgui(haveBW) { 110 if [catch {package require BWidget}] {set expgui(haveBW) 0} 111 } 112 # get the notebook widget if not using BWidgets 113 if {!$expgui(haveBW)} {source $expgui(scriptdir)/notebook.tcl} 114 #---------------------------------------------------------------- 115 if [file exists [file join $expgui(scriptdir) opts.tcl]] { 116 source [file join $expgui(scriptdir) opts.tcl] 117 } 118 118 # fetch EXP file processing routines 119 119 source [file join $expgui(scriptdir) readexp.tcl] … … 124 124 # commands for adding phases, histograms & atoms 125 125 source [file join $expgui(scriptdir) addcmds.tcl] 126 # get the notebook widget if not using Tix127 if {!$expgui(havetix)} {source $expgui(scriptdir)/notebook.tcl}128 126 #--------------------------------------------------------------------------- 129 127 # override options with locally defined values … … 178 176 # load exp file and set up dialogs 179 177 proc loadexp {expfile} { 180 global expgui expmap entryvar entrycmd 181 global exparray 178 global expgui expmap entryvar entrycmd tcl_platform 179 set exploadtime [time {set fmt [expload $expfile]}] 180 if $expgui(debug) {puts "expload $exploadtime"} 181 # if the file was not in the correct format, force a rewrite before use 182 if {$fmt < 0} { 183 # read error 184 return 185 } elseif {$fmt == 0 && $tcl_platform(platform) == "windows"} { 186 set expgui(changed) 1 187 } elseif {$fmt == 1 && $tcl_platform(platform) == "unix"} { 188 set expgui(changed) 1 189 } else { 190 set expgui(changed) 0 191 } 192 193 # force exp files to be upper case, force save if name changes 194 set filetail [file tail $expfile] 195 set filetailcaps [string toupper $filetail] 196 if {$tcl_platform(platform) == "unix" && $filetail != $filetailcaps} { 197 set expgui(changed) 1 198 } 199 if {[file dirname $expfile] == "."} { 200 set expgui(expfile) $filetailcaps 201 } else { 202 set expgui(expfile) [file join \ 203 [file dirname $expfile] $filetailcaps] 204 } 205 206 mapexp 207 set expgui(expModifiedLast) 0 182 208 catch { 183 unset exparray 184 } 185 set exploadtime [time {expload $expfile}] 186 if $expgui(debug) {puts "expload $exploadtime"} 187 set expgui(changed) 0 188 mapexp 189 set expgui(expModifiedLast) [file mtime $expfile] 209 set expgui(expModifiedLast) [file mtime $expgui(expfile)] 210 } 190 211 set expgui(last_History) [string range [string trim [lindex [exphistory last] 1]] 0 50 ] 191 212 # set the window/icon title … … 239 260 trace variable entryvar w entvartrace 240 261 241 # set fo ext action on LS page262 # set fo extraction on LS page 242 263 SetupExtractHist 243 264 … … 376 397 } 377 398 foreach a { 378 exp array expmap expgui entryvar entrycmd399 expmap expgui entryvar entrycmd 379 400 expgui_menulist expgui_cmdlist expgui_helplist 380 401 } { … … 427 448 } 428 449 450 # This is called every 2 seconds to check for changes to the .EXP file 429 451 proc whenidle {} { 430 452 global expgui … … 435 457 } 436 458 } 437 if {[file mtime $expgui(expfile)] != $expgui(expModifiedLast) && \ 438 $expgui(expModifiedLast) != 0} { 439 if {$expgui(changed) == 0} { 440 set ans [tk_dialog .expFileErrorMsg "Reload?" \ 441 "File [file tail $expgui(expfile)] has been modified by another program. \ 442 Do you want to load the newer version or lose the modifications \ 443 by editing the current version?" \ 444 warning 0 "Load new" "Continue editing"] 445 } else { 446 set ans [tk_dialog .expFileErrorMsg "Reload?" \ 447 "File [file tail $expgui(expfile)] has been modified by another program \ 448 and you have made $expgui(changed) changes to this version. \ 449 Do you want to load the newer version or lose the modifications \ 450 by continuing to edit the current version?" \ 451 warning 0 "Load new" "Continue editing" "Save edited version"] 452 } 459 if {$expgui(expModifiedLast) == 0} { 460 after 2000 afterawhile 461 return 462 } 463 if {[file mtime $expgui(expfile)] != $expgui(expModifiedLast)} { 464 set ans [ReloadExpMsg [file tail $expgui(expfile)] $expgui(changed)] 453 465 if {$ans == 0} { 454 466 loadexp $expgui(expfile) … … 462 474 after 2000 afterawhile 463 475 } 476 477 # place a message about changes over the main window 478 proc ReloadExpMsg {file changes} { 479 global expgui tcl_platform 480 set msg "File $file has been modified by another program" 481 if {$changes == 1} { 482 append msg " and you have made a change to this version.\n" 483 } elseif {$changes > 0} { 484 append msg " and you have made $changes changes to this version.\n" 485 } else { 486 append msg ".\n" 487 } 488 append msg "Do you want to load the newer version or lose the modification by editing the current version?" 489 set w .ask 490 catch {destroy $w} 491 toplevel $w -class Dialog 492 wm title $w "Reload?" 493 wm iconname $w "Reload?" 494 wm protocol $w WM_DELETE_WINDOW { } 495 wm transient $w . 496 frame $w.bot 497 pack $w.bot -side bottom 498 frame $w.top 499 pack $w.top -side top -fill both -expand 1 500 label $w.top.msg -justify left \ 501 -wraplength 5i -font {Times 18} \ 502 -text $msg 503 if {$tcl_platform(platform) == "windows"} { 504 $w.top.msg config -font {Times 14} 505 } 506 pack $w.top.msg -side right -expand 1 -fill both -padx 3m -pady 3m 507 pack [button $w.bot.1 -text "Load new" \ 508 -default active -command "set expgui(dialogbutton) 0" \ 509 ] -side left -expand 1 -padx 3m -pady 2m 510 pack [button $w.bot.2 -text "Continue editing" \ 511 -command "set expgui(dialogbutton) 1"] \ 512 -side left -expand 1 -padx 3m -pady 2m 513 if {$changes > 0} { 514 pack [button $w.bot.3 -text "Save edited version" \ 515 -command "set expgui(dialogbutton) 2"] \ 516 -side left -expand 1 -padx 3m -pady 2m 517 } 518 # Create a binding for <Return> on the dialog 519 bind $w <Return> "tkButtonInvoke $w.bot.1" 520 wm withdraw $w 521 update idletasks 522 523 # for windows put the box in the upper left, for 524 # unix center it over the parent (in unix it appears later) 525 #if {$tcl_platform(platform) == "windows"} { 526 #wm geom $w +0+0 527 #} else { 528 529 # for now, always center the message over the main window 530 # center the new window in the middle of the parent 531 set x [expr [winfo x .] + [winfo width .]/2 - \ 532 [winfo reqwidth $w]/2 - [winfo vrootx .]] 533 set y [expr [winfo y .] + [winfo height .]/2 - \ 534 [winfo reqheight $w]/2 - [winfo vrooty .]] 535 wm geom $w +$x+$y 536 #} 537 wm deiconify $w 538 539 # Grab the focus 540 set oldFocus [focus] 541 set oldGrab [grab current $w] 542 if {[string compare $oldGrab ""]} { 543 set grabStatus [grab status $oldGrab] 544 } 545 grab $w 546 focus $w.bot.1 547 # for windows rearrange window stacking 548 if {$tcl_platform(platform) == "windows"} { 549 lower . 550 raise $w . 551 } 552 update idletasks 553 554 tkwait variable expgui(dialogbutton) 555 catch {focus $oldFocus} 556 destroy $w 557 if {[string compare $oldGrab ""]} { 558 if {![string compare $grabStatus "global"]} { 559 grab -global $oldGrab 560 } else { 561 grab $oldGrab 562 } 563 } 564 raise . 565 return $expgui(dialogbutton) 566 } 567 464 568 # -------- called to confirm before exiting 465 569 proc catchQuit {} { … … 486 590 proc archiveexp {} { 487 591 global expgui tcl_platform 592 # is there a file to archive 593 if {![file exists $expgui(expfile)]} return 488 594 catch { 489 595 set expnam [file rootname $expgui(expfile)] … … 562 668 } 563 669 564 # set the number of phaseson the phase page670 # setup buttons for each phase on the phase page 565 671 proc setphases {} { 566 672 global expgui expmap 567 673 eval destroy [pack slaves $expgui(phaseFrame).top.ps] 568 foreach num $expmap(phaselist) {674 foreach num $expmap(phaselist) type $expmap(phasetype) { 569 675 pack [button $expgui(phaseFrame).top.ps.$num -text $num \ 570 676 -command "SelectOnePhase $num"] -side left 677 if {$type > 3} { 678 $expgui(phaseFrame).top.ps.$num config -state disabled 679 } 571 680 } 572 681 } … … 576 685 proc SelectOnePhase {num} { 577 686 global entryvar entrycmd expmap expgui 578 foreach n $expmap(phaselist) { 579 if {$n == $num} { 580 $expgui(phaseFrame).top.ps.$num config -relief sunken 687 set crsPhase {} 688 foreach n $expmap(phaselist) type $expmap(phasetype) { 689 if {$n == $num && $type <= 3} { 690 $expgui(phaseFrame).top.ps.$num config -relief sunken 691 set crsPhase $num 692 if {$type == 3} { 693 set expgui(phasetype) "Magnetic\nOnly" 694 } elseif {$type == 2} { 695 set expgui(phasetype) "Magnetic\n& Nuclear" 696 } elseif {$type == 4} { 697 # this is not used at present 698 set expgui(phasetype) "Macromolecular" 699 } else { 700 set expgui(phasetype) "" 701 } 581 702 } else { 582 703 $expgui(phaseFrame).top.ps.$n config -relief raised 583 704 } 584 705 } 585 set crsPhase $num586 706 # no phase is selected 587 707 if {$crsPhase == "" || [llength $expmap(phaselist)] == 0} { … … 1511 1631 eval destroy [grid slaves $phaseFractf1] 1512 1632 if {$expgui(globalmode) != 0} { 1513 grid [label $phaseFractf1.txt -anchor center \ 1514 -text "Phase Fractions for Histograms: [CompressList $histlist]"] \ 1633 set txt "Phase Fractions for Histograms: [CompressList $histlist]" 1634 } else { 1635 set txt "Phase Fractions" 1636 } 1637 if $expgui(haveBW) { 1638 $expgui(fracFrame).f1.phaseFrac configure -text $txt 1639 } else { 1640 grid [label $phaseFractf1.txt -anchor center -text $txt] \ 1515 1641 -column 0 -row 0 -sticky news 1516 } else {1517 grid [label $phaseFractf1.txt -anchor center \1518 -text "Phase Fractions"] -column 0 -row 0 -sticky news1519 1642 } 1520 1643 # Create the frame inside the canvas, One frame for each Phase. … … 1532 1655 if {$expgui(globalmode) != 0} { 1533 1656 grid [label $framePF.l1 \ 1534 -text "Phase $i Hist: [CompressList $phasehistlist($i)] Fraction"] \1657 -text "Phase $i Hist: [CompressList $phasehistlist($i)]"] \ 1535 1658 -column 0 -row 0 -sticky nws 1536 1659 grid [button $framePF.but1 -text "Set Globally" \ … … 1539 1662 ] -column 1 -row 0 1540 1663 } else { 1541 grid [label $framePF.l1 -text "Phase $i fraction"] \1664 grid [label $framePF.l1 -text "Phase $i"] \ 1542 1665 -column 0 -row 0 -sticky nws 1543 1666 grid [entry $framePF.ent -textvariable entryvar(frac$i) -width 15]\ … … 1601 1724 foreach i $expmap(phaselist_$hist) { 1602 1725 incr ind 1603 grid [frame $expgui(ProfileBox).f.$i -relief groove -bd 4] \1604 -column 0 -row $ind -sticky ew1605 grid [frame $expgui(ProfileBox).f.$i.1] \1606 -column 0 -row 0 -columnspan 10 -sticky ew1607 1726 # Label Heading for each phase. 1608 1727 set ptype [string trim [hapinfo $hist $i proftype]] 1609 pack [label $expgui(ProfileBox).f.$i.1.l \ 1610 -text "Phase $i -- type $ptype Damping"]\ 1611 -side left 1612 tk_optionMenu $expgui(ProfileBox).f.$i.1.tkOptDamp entryvar(pdamp_$i) \ 1728 if {$expgui(haveBW)} { 1729 grid [TitleFrame $expgui(ProfileBox).f.$i \ 1730 -text "Hist $hist -- Phase $i (type $ptype)" \ 1731 -relief groove -bd 2] \ 1732 -column 0 -row $ind -sticky ew 1733 set ProfileFrame [$expgui(ProfileBox).f.$i getframe] 1734 grid [frame $ProfileFrame.1] \ 1735 -column 0 -row 0 -columnspan 10 1736 pack [label $ProfileFrame.1.l \ 1737 -text Damping]\ 1738 -side left 1739 } else { 1740 grid [frame $expgui(ProfileBox).f.$i -relief groove -bd 4] \ 1741 -column 0 -row $ind -sticky ew 1742 set ProfileFrame $expgui(ProfileBox).f.$i 1743 grid [frame $ProfileFrame.1] \ 1744 -column 0 -row 0 -columnspan 10 -sticky ew 1745 pack [label $ProfileFrame.1.l \ 1746 -text "Phase $i (type $ptype) Damping"]\ 1747 -side left 1748 } 1749 tk_optionMenu $ProfileFrame.1.tkOptDamp entryvar(pdamp_$i) \ 1613 1750 0 1 2 3 4 5 6 7 8 9 1614 1751 set entrycmd(pdamp_$i) "hapinfo $hist $i pdamp" 1615 1752 set entryvar(pdamp_$i) [hapinfo $hist $i pdamp] 1616 pack $ expgui(ProfileBox).f.$i.1.tkOptDamp -side left1617 pack [label $ expgui(ProfileBox).f.$i.1.l1 \1753 pack $ProfileFrame.1.tkOptDamp -side left 1754 pack [label $ProfileFrame.1.l1 \ 1618 1755 -text " Peak cutoff"]\ 1619 1756 -side left 1620 pack [entry $ expgui(ProfileBox).f.$i.1.e1 \1757 pack [entry $ProfileFrame.1.e1 \ 1621 1758 -width 10 -textvariable entryvar(pcut_$i)]\ 1622 1759 -side left … … 1636 1773 if {$term == ""} {set term $num} 1637 1774 incr col 1638 grid [label $ expgui(ProfileBox).f.$i.l${num}_${i} -text "$term"] \1775 grid [label $ProfileFrame.l${num}_${i} -text "$term"] \ 1639 1776 -row $row -column $col 1640 1777 incr col 1641 grid [checkbutton $ expgui(ProfileBox).f.$i.ref${num}_${i} \1778 grid [checkbutton $ProfileFrame.ref${num}_${i} \ 1642 1779 -variable entryvar(pref${num}_$i)] -row $row -column $col 1643 1780 set entrycmd(pref${num}_$i) "hapinfo $hist $i pref$num" 1644 1781 set entryvar(pref${num}_$i) [hapinfo $hist $i pref$num] 1645 1782 incr col 1646 grid [entry $ expgui(ProfileBox).f.$i.ent${num}_${i} \1783 grid [entry $ProfileFrame.ent${num}_${i} \ 1647 1784 -textvariable entryvar(pterm${num}_$i)\ 1648 1785 -width 12] -row $row -column $col … … 1697 1834 incr i 1698 1835 set boxtitle "Phase $p, hist [CompressList $histarray($key)]" 1699 grid [frame $expgui(ProfileBox).f.$i -relief groove -bd 4] \ 1700 -column 0 -row $i -sticky ew 1701 grid [frame $expgui(ProfileBox).f.$i.0] \ 1702 -column 0 -row 0 -columnspan 20 -sticky ew 1703 grid [label $expgui(ProfileBox).f.$i.0.0 \ 1704 -text "Profile Type $ptype "] -row 0 -column 0 1705 grid [label $expgui(ProfileBox).f.$i.0.1 \ 1836 if {$expgui(haveBW)} { 1837 grid [TitleFrame $expgui(ProfileBox).f.$i \ 1838 -text "Histogram [CompressList $histarray($key)] (type $ptype)" \ 1839 -relief groove -bd 2] \ 1840 -column 0 -row $i -sticky ew 1841 set ProfileFrame [$expgui(ProfileBox).f.$i getframe] 1842 grid [frame $ProfileFrame.0] \ 1843 -column 0 -row 0 -columnspan 20 -sticky ew 1844 } else { 1845 grid [frame $expgui(ProfileBox).f.$i \ 1846 -relief groove -bd 4] \ 1847 -column 0 -row $i -sticky ew 1848 set ProfileFrame $expgui(ProfileBox).f.$i 1849 grid [frame $ProfileFrame.0] \ 1850 -column 0 -row 0 -columnspan 20 -sticky ew 1851 grid [label $ProfileFrame.0.0 \ 1852 -text "Profile Type $ptype "] -row 0 -column 0 1853 } 1854 grid [label $ProfileFrame.0.1 \ 1706 1855 -anchor w] -row 0 -column 1 1707 grid [frame $ expgui(ProfileBox).f.$i.1] \1856 grid [frame $ProfileFrame.1] \ 1708 1857 -column 0 -row 1 -columnspan 20 -sticky ew 1709 grid [label $ expgui(ProfileBox).f.$i.1.2 \1858 grid [label $ProfileFrame.1.2 \ 1710 1859 -text "Damping"] -row 0 -column 2 1711 tk_optionMenu $ expgui(ProfileBox).f.$i.1.tkOptDamp \1860 tk_optionMenu $ProfileFrame.1.tkOptDamp \ 1712 1861 entryvar(pdamp_$i) 0 1 2 3 4 5 6 7 8 9 1713 grid $ expgui(ProfileBox).f.$i.1.tkOptDamp -row 0 -column 31714 grid [button $ expgui(ProfileBox).f.$i.1.edit \1862 grid $ProfileFrame.1.tkOptDamp -row 0 -column 3 1863 grid [button $ProfileFrame.1.edit \ 1715 1864 -text "Global Edit"] -row 0 -column 4 -sticky w 1716 1865 set entryvar(pdamp_$i) [hapinfo $hist $phase pdamp] … … 1722 1871 if {$term == ""} {set term $num} 1723 1872 incr col 1724 grid [label $ expgui(ProfileBox).f.$i.l${num}_${i} \1873 grid [label $ProfileFrame.l${num}_${i} \ 1725 1874 -text "$term"] -row $row -column $col 1726 1875 incr col 1727 grid [checkbutton $ expgui(ProfileBox).f.$i.ref${num}_${i} \1876 grid [checkbutton $ProfileFrame.ref${num}_${i} \ 1728 1877 -variable entryvar(pref${num}_$i)] \ 1729 1878 -row $row -column $col … … 1738 1887 append boxtitle "\nPhase $p, hist [CompressList $histarray($key)]" 1739 1888 } 1740 $ expgui(ProfileBox).f.$i.0.1 config -text $boxtitle1741 $ expgui(ProfileBox).f.$i.1.edit config -command "\1889 $ProfileFrame.0.1 config -text $boxtitle 1890 $ProfileFrame.1.edit config -command "\ 1742 1891 EditProfile \"\n$boxtitle\" \ 1743 1892 [list $curhistlist] \ … … 1759 1908 $expgui(ProfileBox) config -width [lindex [grid bbox $expgui(ProfileBox).f] 2] 1760 1909 update idletasks 1910 ResizeNotebook 1761 1911 # enable traces on entryvar now 1762 1912 set entrycmd(trace) 1 … … 1828 1978 if {[llength $histlist] == 0 || [string trim $histlist] == ""} { 1829 1979 foreach phase {1 2 3 4 5 6 7 8 9} { 1830 $expgui( lsFrame).f1.a.l$phase config -fg grey1980 $expgui(FobsExtractFrame).l$phase config -fg grey 1831 1981 set expgui(Fextract$phase) {} 1832 1982 foreach item $expgui(ExtractSettingsRadiobuttons) { … … 1841 1991 # is the phase present? 1842 1992 if {[lsearch -exact $expmap(phaselist_$histlist) $phase] == -1} { 1843 $expgui( lsFrame).f1.a.l$phase config -fg grey1993 $expgui(FobsExtractFrame).l$phase config -fg grey 1844 1994 set expgui(Fextract$phase) {} 1845 1995 foreach item $expgui(ExtractSettingsRadiobuttons) { … … 1847 1997 } 1848 1998 } else { 1849 $expgui( lsFrame).f1.a.l$phase config -fg black1999 $expgui(FobsExtractFrame).l$phase config -fg black 1850 2000 foreach item $expgui(ExtractSettingsRadiobuttons) { 1851 2001 ${item}$phase config -state normal -bd 2 … … 1869 2019 set expgui(Fextract$phase) {} 1870 2020 if $gotphase($phase) { 1871 $expgui( lsFrame).f1.a.l$phase config -fg black2021 $expgui(FobsExtractFrame).l$phase config -fg black 1872 2022 foreach item $expgui(ExtractSettingsRadiobuttons) { 1873 2023 ${item}$phase config -state normal -bd 2 1874 2024 } 1875 2025 } else { 1876 $expgui( lsFrame).f1.a.l$phase config -fg grey2026 $expgui(FobsExtractFrame).l$phase config -fg grey 1877 2027 foreach item $expgui(ExtractSettingsRadiobuttons) { 1878 2028 ${item}$phase config -state disabled -bd 1 … … 2256 2406 # Creating the notebook with 5 panes: Phase, Histogram, Scaling, Profile 2257 2407 # & LS controls 2258 if $expgui(have tix) {2259 pack [ tixNoteBook .n] -expand yes -fill both2260 .n add lsFrame -label "LS Controls"2261 .n pageconfigure lsFrame -raisecmd\2262 "set expgui(pagenow) lsFrame; SetupExtractHist"2408 if $expgui(haveBW) { 2409 pack [NoteBook .n -bd 2] -expand yes -fill both 2410 set expgui(lsFrame) [\ 2411 .n insert end lsFrame -text "LS Controls" \ 2412 -raisecmd "set expgui(pagenow) lsFrame; SetupExtractHist"] 2263 2413 lappend expgui(frameactionlist) "lsFrame SetupExtractHist" 2264 .n add phasePane -label "Phase" 2265 .n pageconfigure phasePane -raisecmd \ 2266 "set expgui(pagenow) phaseFrame; DisplayAllAtoms noreset" 2414 set expgui(phaseFrame) [\ 2415 .n insert end phasePane -text "Phase" \ 2416 -raisecmd "set expgui(pagenow) phaseFrame; \ 2417 DisplayAllAtoms noreset"] 2267 2418 # lappend expgui(frameactionlist) "phaseFrame {DisplayAllAtoms noreset}" 2268 .n add histPane -label "Histogram" 2269 .n pageconfigure histPane -raisecmd \ 2270 "set expgui(pagenow) histFrame; DisplayHistogram" 2419 set expgui(histFrame) [\ 2420 .n insert end histPane -text "Histogram" \ 2421 -raisecmd "set expgui(pagenow) histFrame; DisplayHistogram" \ 2422 -createcmd MakeHistPane] 2271 2423 lappend expgui(frameactionlist) "histFrame DisplayHistogram" 2272 lappend expgui(GlobalModeAllDisable) "histFrame {.n pageconfigure histPane}" 2273 .n add fracPane -label "Scaling" 2274 .n pageconfigure fracPane -raisecmd \ 2275 "set expgui(pagenow) fracFrame; DisplayFrac" 2424 lappend expgui(GlobalModeAllDisable) "histFrame {.n itemconfigure histPane}" 2425 set expgui(fracFrame) [\ 2426 .n insert end fracPane -text "Scaling" \ 2427 -raisecmd "set expgui(pagenow) fracFrame; DisplayFrac" \ 2428 -createcmd MakeScalingPane] 2276 2429 lappend expgui(frameactionlist) "fracFrame DisplayFrac" 2277 .n add profPane -label Profile 2278 .n pageconfigure profPane -raisecmd \ 2279 "set expgui(pagenow) profFrame; DisplayProfile" 2430 set expgui(profFrame) [\ 2431 .n insert end profPane -text Profile \ 2432 -raisecmd "set expgui(pagenow) profFrame; DisplayProfile"\ 2433 -createcmd MakeProfilePane] 2280 2434 lappend expgui(frameactionlist) "profFrame DisplayProfile" 2281 lappend expgui(GlobalModeAllDisable) "profFrame {.n pageconfigure profPane}" 2282 # Finding the pathname to the subwidget frames. 2283 set expgui(phaseFrame) [.n subwidget phasePane] 2284 set expgui(histFrame) [.n subwidget histPane] 2285 set expgui(fracFrame) [.n subwidget fracPane] 2286 set expgui(profFrame) [.n subwidget profPane] 2287 set expgui(lsFrame) [.n subwidget lsFrame] 2435 lappend expgui(GlobalModeAllDisable) "profFrame {.n itemconfigure profPane}" 2288 2436 } else { 2289 2437 Notebook:create .n -pages {lsFrame phaseFrame histFrame fracFrame profFrame} … … 2307 2455 proc RaisePage {nextpage} { 2308 2456 global expgui 2309 if $expgui(havetix) { 2457 if $expgui(haveBW) { 2458 .n see $nextpage 2310 2459 .n raise $nextpage 2311 2460 set expgui(pagenow) $nextpage … … 2315 2464 } 2316 2465 } 2317 # this is only called when Tix is not present2466 # this is only called when BWidget is not in use 2318 2467 proc InitPage {nextpage} { 2319 2468 global expgui 2320 2469 set expgui(pagenow) $nextpage 2321 2470 foreach set $expgui(frameactionlist) { 2322 if {$expgui(pagenow) == [lindex $set 0]} [lindex $set 1] 2471 # don't worry about errors 2472 catch { 2473 if {$expgui(pagenow) == [lindex $set 0]} [lindex $set 1] 2474 } 2475 } 2476 } 2477 # resize the notebook to fit all the tabs and the largest page 2478 proc ResizeNotebook {} { 2479 global expgui 2480 if {$expgui(haveBW)} { 2481 .n compute_size 2482 } else { 2483 Notebook:resize .n 2323 2484 } 2324 2485 } 2325 2486 2326 2487 #---------------------------------------------------------------------------- 2327 #\/ \/ \/ \/ \/ \/ \/ BEGINNING OF PHASE PANE CODE \/ \/ \/ \/ \/ \/ \/ \/ \/ 2328 # Setup major frames here 2329 frame $expgui(phaseFrame).top 2330 set frameLatt [frame $expgui(phaseFrame).frameLatt] 2331 # This is a big frame in the Phase notebook pane to hold a list of CRS data. 2332 set fbig [frame $expgui(phaseFrame).fbig -width 180 -relief raised -borderwidth 4 -bg beige] 2333 # This is a frame just below the big frame: fbig to allow edit of CRS data, One record at a time. 2334 set frame3 [frame $expgui(phaseFrame).frame3 -width 100 -relief raised -borderwidth 4 -bg beige] 2335 2336 grid $expgui(phaseFrame).top -sticky news -row 0 -column 0 2337 grid $frameLatt -sticky news -row 2 -column 0 2338 grid $fbig -sticky news -row 3 -column 0 2339 # give extra space to the atoms box 2340 grid columnconfigure $expgui(phaseFrame) 0 -weight 1 2341 grid rowconfigure $expgui(phaseFrame) 3 -weight 1 2342 grid $frame3 -sticky news -row 4 -column 0 2343 grid columnconfigure $expgui(phaseFrame) 0 -weight 1 2344 grid rowconfigure $expgui(phaseFrame) 3 -weight 1 2345 grid [frame $expgui(phaseFrame).top.ps] -column 0 -row 0 -sticky w 2346 # this is where the buttons will go 2347 pack [label $expgui(phaseFrame).top.ps.0 -text "Phases: "] -side left 2348 2349 grid [label $expgui(phaseFrame).top.lA -text " Phase name:" \ 2350 -fg blue ] -column 1 -row 0 -sticky e 2351 grid [entry $expgui(phaseFrame).top.lB -textvariable entryvar(phasename) \ 2352 -fg blue -width 45] -column 2 -row 0 -sticky e 2353 grid columnconfigure $expgui(phaseFrame).top 1 -weight 1 2354 # ------------- Lattice Parameter Box ------------------ 2355 set e1 [entry $frameLatt.e1 -textvariable entryvar(a) -width 10] 2356 set e2 [entry $frameLatt.e2 -textvariable entryvar(b) -width 10] 2357 set e3 [entry $frameLatt.e3 -textvariable entryvar(c) -width 10] 2358 set e4 [entry $frameLatt.e4 -textvariable entryvar(alpha) -width 10] 2359 set e5 [entry $frameLatt.e5 -textvariable entryvar(beta) -width 10] 2360 set e6 [entry $frameLatt.e6 -textvariable entryvar(gamma) -width 10] 2361 set l1 [label $frameLatt.l1 -text "a"] 2362 set l2 [label $frameLatt.l2 -text "b"] 2363 set l3 [label $frameLatt.l3 -text "c"] 2364 set l4 [label $frameLatt.l4 -text a -font symbol] 2365 set l5 [label $frameLatt.l5 -text b -font symbol] 2366 set l6 [label $frameLatt.l6 -text g -font symbol] 2367 grid $e1 -column 1 -row 0 -padx 5 2368 grid $e2 -column 3 -row 0 -padx 5 2369 grid $e3 -column 5 -row 0 -padx 5 2370 grid $e4 -column 1 -row 1 -padx 5 2371 grid $e5 -column 3 -row 1 -padx 5 2372 grid $e6 -column 5 -row 1 -padx 5 2373 grid $l1 -column 0 -row 0 -padx 5 -sticky e 2374 grid $l2 -column 2 -row 0 -padx 5 -sticky e 2375 grid $l3 -column 4 -row 0 -padx 5 -sticky e 2376 grid $l4 -column 0 -row 1 -padx 5 -sticky e 2377 grid $l5 -column 2 -row 1 -padx 5 -sticky e 2378 grid $l6 -column 4 -row 1 -padx 5 -sticky e 2379 2380 grid [label $frameLatt.lr -text "Refine Cell"] -column 6 -row 0 -padx 5 -sticky e 2381 grid [label $frameLatt.ld -text "Cell damping"] -column 6 -row 1 -padx 5 -sticky e 2382 set cFlag [checkbutton $frameLatt.c -text "" -variable entryvar(cellref)] 2383 grid $cFlag -column 7 -row 0 -padx 5 -sticky e 2384 tk_optionMenu $frameLatt.om entryvar(celldamp) 0 1 2 3 4 5 6 7 8 9 2385 grid $frameLatt.om -column 7 -row 1 -padx 5 -sticky e 2386 if [file executable $expgui(exptool)] { 2387 button $frameLatt.newp -text Add\nPhase -command MakeAddPhaseBox 2388 grid $frameLatt.newp -column 0 -row 0 -rowspan 2 -sticky w 2488 proc MakePhasePane {} { 2489 #\/ \/ \/ \/ \/ \/ \/ BEGINNING OF PHASE PANE CODE \/ \/ \/ \/ \/ \/ \/ 2490 global expgui 2491 frame $expgui(phaseFrame).top 2492 set frameLatt [frame $expgui(phaseFrame).frameLatt] 2493 # This is a big frame in the Phase notebook pane to hold atomic data. 2494 set fbig [frame $expgui(phaseFrame).fbig -width 180 \ 2495 -relief raised -borderwidth 4 -bg beige] 2496 # This is a frame just below the big frame: for edits 2497 set frame3 [frame $expgui(phaseFrame).frame3 -width 100 \ 2498 -relief raised -borderwidth 4 -bg beige] 2499 2500 grid $expgui(phaseFrame).top -sticky news -row 0 -column 0 2501 grid $frameLatt -sticky news -row 2 -column 0 2502 grid $fbig -sticky news -row 3 -column 0 2503 # give extra space to the atoms box 2504 grid columnconfigure $expgui(phaseFrame) 0 -weight 1 2505 grid rowconfigure $expgui(phaseFrame) 3 -weight 1 2506 grid $frame3 -sticky news -row 4 -column 0 2507 grid columnconfigure $expgui(phaseFrame) 0 -weight 1 2508 grid rowconfigure $expgui(phaseFrame) 3 -weight 1 2509 grid [frame $expgui(phaseFrame).top.ps] -column 0 -row 0 -sticky w 2510 # this is where the buttons will go 2511 pack [label $expgui(phaseFrame).top.ps.0 -text "No Phases"] -side left 2512 2513 grid [label $expgui(phaseFrame).top.lA -text " Phase name:" \ 2514 -fg blue ] -column 1 -row 0 -sticky e 2515 grid [entry $expgui(phaseFrame).top.lB -textvariable entryvar(phasename) \ 2516 -fg blue -width 45] -column 2 -row 0 -sticky e 2517 grid columnconfigure $expgui(phaseFrame).top 1 -weight 1 2518 # ------------- Lattice Parameter Box ------------------ 2519 set row 0 2520 foreach col {2 4 6} var {a b c} lbl {a b c} { 2521 grid [label $frameLatt.l$var -text $lbl] \ 2522 -column $col -row $row -padx 5 -sticky e 2523 incr col 2524 grid [entry $frameLatt.e$var -textvariable entryvar($var) -width 10] \ 2525 -column $col -row $row -padx 5 2526 } 2527 incr row 2528 foreach col {2 4 6} var {alpha beta gamma} lbl {a b g} { 2529 grid [label $frameLatt.l$var -text $lbl -font symbol] \ 2530 -column $col -row $row -padx 5 -sticky e 2531 incr col 2532 grid [entry $frameLatt.e$var -textvariable entryvar($var) -width 10] \ 2533 -column $col -row $row -padx 5 2534 } 2535 2536 grid [label $frameLatt.lr -text "Refine Cell"] -column 8 -row 0 -padx 5 -sticky e 2537 grid [label $frameLatt.ld -text "Cell damping"] -column 8 -row 1 -padx 5 -sticky e 2538 set cFlag [checkbutton $frameLatt.c -text "" -variable entryvar(cellref)] 2539 grid $cFlag -column 9 -row 0 -padx 5 -sticky e 2540 tk_optionMenu $frameLatt.om entryvar(celldamp) 0 1 2 3 4 5 6 7 8 9 2541 grid $frameLatt.om -column 9 -row 1 -padx 5 -sticky e 2542 grid [label $frameLatt.phasetype -textvariable expgui(phasetype) -fg blue] \ 2543 -column 1 -row 0 -rowspan 2 2544 if [file executable $expgui(exptool)] { 2545 button $frameLatt.newp -text Add\nPhase -command MakeAddPhaseBox 2546 grid $frameLatt.newp -column 0 -row 0 -rowspan 2 -sticky w 2547 } 2548 grid columnconfig $frameLatt 1 -weight 1 2389 2549 grid columnconfig $frameLatt 0 -weight 1 2390 } 2391 #-------------- Begin Atom Coordinates Box --------------------------------- 2392 grid [listbox $fbig.title -height 1 -relief flat] \ 2393 -row 0 -column 0 -sticky ew 2394 set expgui(atomtitle) $fbig.title 2395 $expgui(atomtitle) configure -font $expgui(coordfont) -selectmode extended 2396 grid [listbox $fbig.lbox -height 10 \ 2397 -xscrollcommand " $fbig.bscr set"\ 2398 -yscrollcommand " $fbig.rscr set"\ 2399 ] -row 1 -column 0 -sticky news 2400 set expgui(atomlistbox) $fbig.lbox 2401 $expgui(atomlistbox) configure -font $expgui(coordfont) -selectmode extended 2402 grid [scrollbar $fbig.bscr -orient horizontal \ 2403 -command "move2boxes \" $fbig.title $fbig.lbox \" " \ 2404 ] -row 2 -column 0 -sticky ew 2405 grid [scrollbar $fbig.rscr -command "$fbig.lbox yview" \ 2406 ] -row 1 -column 1 -sticky ns 2407 # give extra space to the atoms box 2408 grid columnconfigure $fbig 0 -weight 1 2409 grid rowconfigure $fbig 1 -weight 1 2550 #-------------- Begin Atom Coordinates Box ------------------------------ 2551 grid [listbox $fbig.title -height 1 -relief flat] \ 2552 -row 0 -column 0 -sticky ew 2553 set expgui(atomtitle) $fbig.title 2554 $expgui(atomtitle) configure -font $expgui(coordfont) -selectmode extended 2555 grid [listbox $fbig.lbox -height 10 \ 2556 -xscrollcommand " $fbig.bscr set"\ 2557 -yscrollcommand " $fbig.rscr set"\ 2558 ] -row 1 -column 0 -sticky news 2559 set expgui(atomlistbox) $fbig.lbox 2560 $expgui(atomlistbox) configure -font $expgui(coordfont) -selectmode extended 2561 grid [scrollbar $fbig.bscr -orient horizontal \ 2562 -command "move2boxes \" $fbig.title $fbig.lbox \" " \ 2563 ] -row 2 -column 0 -sticky ew 2564 grid [scrollbar $fbig.rscr -command "$fbig.lbox yview" \ 2565 ] -row 1 -column 1 -sticky ns 2566 # give extra space to the atoms box 2567 grid columnconfigure $fbig 0 -weight 1 2568 grid rowconfigure $fbig 1 -weight 1 2569 2570 # BIND mouse in editbox 2571 bind $expgui(atomlistbox) <ButtonRelease-1> editRecord 2572 bind $expgui(atomlistbox) <Button-3> SelectAllAtoms 2573 2574 #-------------- End Atoms Section --------------------------------- 2575 2576 # --------------------------- Begin Edit Box ------------------------ 2577 grid [set expgui(EditingAtoms) [label $frame3.top -bg beige -fg blue]] \ 2578 -column 0 -row 0 -padx 2 -pady 3 -columnspan 10 -sticky w 2579 if [file executable $expgui(exptool)] { 2580 button $frame3.newa -text "Add New Atom" \ 2581 -command {MakeAddAtomsBox $expgui(curPhase)} 2582 grid $frame3.newa -column 11 -row 0 2583 } 2584 2585 set f3l1 [label $frame3.l1 -text "Refinement Flags " -bg beige] 2586 grid $f3l1 -column 0 -row 1 -padx 2 -sticky nsw -pady 3 2587 2588 set f3cFlag1 [checkbutton $frame3.cf1 -text "X" -variable entryvar(xref) -bg beige] 2589 set f3cFlag2 [checkbutton $frame3.cf2 -text "U" -variable entryvar(uref) -bg beige] 2590 set f3cFlag3 [checkbutton $frame3.cf3 -text "F" -variable entryvar(fref) -bg beige] 2591 grid $f3cFlag1 -column 1 -row 1 -padx 2 -pady 3 -sticky w 2592 grid $f3cFlag2 -column 2 -row 1 -padx 2 -pady 3 -sticky w 2593 grid $f3cFlag3 -column 3 -row 1 -padx 2 -pady 3 -sticky w 2594 2595 set f3l4 [label $frame3.l4 -text "Damping Factors " -bg beige] 2596 grid $f3l4 -column 4 -row 1 -padx 2 -sticky nsw -pady 3 2597 2598 tk_optionMenu $frame3.om2 entryvar(xdamp) 0 1 2 3 4 5 6 7 8 9 2599 tk_optionMenu $frame3.om3 entryvar(udamp) 0 1 2 3 4 5 6 7 8 9 2600 tk_optionMenu $frame3.om4 entryvar(fdamp) 0 1 2 3 4 5 6 7 8 9 2601 grid [label $frame3.lom2 -text X -bg beige] -column 5 -row 1 -padx 2 -pady 3 -sticky w 2602 grid $frame3.om2 -column 6 -row 1 -padx 2 -pady 3 -sticky w 2603 grid [label $frame3.lom3 -text U -bg beige] -column 7 -row 1 -padx 2 -pady 3 -sticky w 2604 grid $frame3.om3 -column 8 -row 1 -padx 2 -pady 3 -sticky w 2605 grid [label $frame3.lom4 -text F -bg beige] -column 9 -row 1 -padx 2 -pady 3 -sticky w 2606 grid $frame3.om4 -column 10 -row 1 -padx 2 -pady 3 -sticky w 2607 2608 set expgui(atomreflbl) "$frame3.l1 $frame3.l4 $frame3.lom2 $frame3.lom3 $frame3.lom4 " 2609 set expgui(atomref) "$frame3.cf1 $frame3.cf2 $frame3.cf3 $frame3.om2 $frame3.om3 $frame3.om4" 2610 2611 set coords [frame $frame3.coords -width 100 -borderwidth 0 -bg beige] 2612 grid $coords -column 0 -row 6 -columnspan 12 -sticky nsew 2613 2614 set f3l1 [label $frame3.coords.l1 -text "Label" -bg beige] 2615 set f3e1 [entry $frame3.coords.e1 -textvariable entryvar(label) -width 6] 2616 set f3l8 [label $frame3.coords.l8 -text "Coordinates" -bg beige] 2617 set f3e8 [entry $frame3.coords.e8 -textvariable entryvar(x) -width 10] 2618 set f3e9 [entry $frame3.coords.e9 -textvariable entryvar(y) -width 10] 2619 set f3e10 [entry $frame3.coords.e10 -textvariable entryvar(z) -width 10] 2620 set f3l11 [label $frame3.coords.l11 -text "Occupancy" -bg beige] 2621 set f3e11 [entry $frame3.coords.e11 -textvariable entryvar(frac) -width 10] 2622 set expgui(atomlabels) "$frame3.coords.l1 $frame3.coords.l8 $frame3.coords.l11" 2623 set expgui(atomentry) "$frame3.coords.e1 $frame3.coords.e8 $frame3.coords.e9 $frame3.coords.e10 $frame3.coords.e11" 2624 2625 grid $f3l1 -column 0 -row 4 -padx 2 -sticky nsw -pady 3 2626 grid $f3e1 -column 1 -row 4 -padx 2 -sticky nsw -pady 3 2627 grid $f3l8 -column 2 -row 4 -padx 2 -sticky nsw -pady 3 2628 grid $f3e8 -column 3 -row 4 -padx 2 -sticky nsw -pady 3 2629 grid $f3e9 -column 4 -row 4 -padx 2 -sticky nsw -pady 3 2630 grid $f3e10 -column 5 -row 4 -padx 2 -sticky nsw -pady 3 2631 grid $f3l11 -column 6 -row 4 -padx 2 -sticky nsw -pady 3 2632 grid $f3e11 -column 7 -row 4 -padx 2 -sticky nsw -pady 3 2633 2634 set f3f31 [frame $frame3.f3f31 -width 100 -borderwidth 0 -bg beige] 2635 grid $f3f31 -column 0 -row 7 -columnspan 12 2636 set expgui(anisolabels) {} 2637 lappend expgui(anisolabels) [label $f3f31.l13 -text "Uiso" -bg beige] 2638 lappend expgui(anisolabels) [label $f3f31.l14 -text "U22" -bg beige] 2639 lappend expgui(anisolabels) [label $f3f31.l15 -text "U33" -bg beige] 2640 lappend expgui(anisolabels) [label $f3f31.l16 -text "U12" -bg beige] 2641 lappend expgui(anisolabels) [label $f3f31.l17 -text "U13" -bg beige] 2642 lappend expgui(anisolabels) [label $f3f31.l18 -text "U23" -bg beige] 2643 2644 set expgui(anisoentry) {} 2645 lappend expgui(anisoentry) [entry $f3f31.e13 -textvariable entryvar(U11) -width 10] 2646 lappend expgui(anisoentry) [entry $f3f31.e14 -textvariable entryvar(U22) -width 10] 2647 lappend expgui(anisoentry) [entry $f3f31.e15 -textvariable entryvar(U33) -width 10] 2648 lappend expgui(anisoentry) [entry $f3f31.e16 -textvariable entryvar(U12) -width 10] 2649 lappend expgui(anisoentry) [entry $f3f31.e17 -textvariable entryvar(U13) -width 10] 2650 lappend expgui(anisoentry) [entry $f3f31.e18 -textvariable entryvar(U23) -width 10] 2651 2652 set col 0 2653 foreach item1 $expgui(anisolabels) item2 $expgui(anisoentry) { 2654 grid $item1 -column $col -row 0 -sticky nsw -pady 3 2655 incr col 2656 grid $item2 -column $col -row 0 -sticky nsw -pady 3 2657 incr col 2658 } 2659 # --------------------------- End Edit Box ------------------------- 2660 2661 #/\ /\ /\ /\ /\ /\ /\ END OF PHASE PANE CODE /\ /\ /\ /\ /\ /\ /\ /\ / 2662 # resize in case the pane needs more space 2663 ResizeNotebook 2664 } 2410 2665 2411 2666 proc move2boxes {boxlist args} { … … 2414 2669 } 2415 2670 } 2416 # BIND mouse in editbox 2417 bind $expgui(atomlistbox) <ButtonRelease-1> editRecord 2418 bind $expgui(atomlistbox) <Button-3> SelectAllAtoms 2419 2420 #-------------- End Atoms Section --------------------------------- 2421 2422 # --------------------------- Begin Edit Box ------------------------------- 2423 grid [set expgui(EditingAtoms) [label $frame3.top -bg beige -fg blue]] \ 2424 -column 0 -row 0 -padx 2 -pady 3 -columnspan 10 -sticky w 2425 if [file executable $expgui(exptool)] { 2426 button $frame3.newa -text "Add New Atom" \ 2427 -command {MakeAddAtomsBox $expgui(curPhase)} 2428 grid $frame3.newa -column 11 -row 0 2429 } 2430 2431 set f3l1 [label $frame3.l1 -text "Refinement Flags " -bg beige] 2432 grid $f3l1 -column 0 -row 1 -padx 2 -sticky nsw -pady 3 2433 2434 set f3cFlag1 [checkbutton $frame3.cf1 -text "X" -variable entryvar(xref) -bg beige] 2435 set f3cFlag2 [checkbutton $frame3.cf2 -text "U" -variable entryvar(uref) -bg beige] 2436 set f3cFlag3 [checkbutton $frame3.cf3 -text "F" -variable entryvar(fref) -bg beige] 2437 grid $f3cFlag1 -column 1 -row 1 -padx 2 -pady 3 -sticky w 2438 grid $f3cFlag2 -column 2 -row 1 -padx 2 -pady 3 -sticky w 2439 grid $f3cFlag3 -column 3 -row 1 -padx 2 -pady 3 -sticky w 2440 2441 set f3l4 [label $frame3.l4 -text "Damping Factors " -bg beige] 2442 grid $f3l4 -column 4 -row 1 -padx 2 -sticky nsw -pady 3 2443 2444 tk_optionMenu $frame3.om2 entryvar(xdamp) 0 1 2 3 4 5 6 7 8 9 2445 tk_optionMenu $frame3.om3 entryvar(udamp) 0 1 2 3 4 5 6 7 8 9 2446 tk_optionMenu $frame3.om4 entryvar(fdamp) 0 1 2 3 4 5 6 7 8 9 2447 grid [label $frame3.lom2 -text X -bg beige] -column 5 -row 1 -padx 2 -pady 3 -sticky w 2448 grid $frame3.om2 -column 6 -row 1 -padx 2 -pady 3 -sticky w 2449 grid [label $frame3.lom3 -text U -bg beige] -column 7 -row 1 -padx 2 -pady 3 -sticky w 2450 grid $frame3.om3 -column 8 -row 1 -padx 2 -pady 3 -sticky w 2451 grid [label $frame3.lom4 -text F -bg beige] -column 9 -row 1 -padx 2 -pady 3 -sticky w 2452 grid $frame3.om4 -column 10 -row 1 -padx 2 -pady 3 -sticky w 2453 2454 set expgui(atomreflbl) "$frame3.l1 $frame3.l4 $frame3.lom2 $frame3.lom3 $frame3.lom4 " 2455 set expgui(atomref) "$frame3.cf1 $frame3.cf2 $frame3.cf3 $frame3.om2 $frame3.om3 $frame3.om4" 2456 2457 set coords [frame $frame3.coords -width 100 -borderwidth 0 -bg beige] 2458 grid $coords -column 0 -row 6 -columnspan 12 -sticky nsew 2459 2460 set f3l1 [label $frame3.coords.l1 -text "Label" -bg beige] 2461 set f3e1 [entry $frame3.coords.e1 -textvariable entryvar(label) -width 6] 2462 set f3l8 [label $frame3.coords.l8 -text "Coordinates" -bg beige] 2463 set f3e8 [entry $frame3.coords.e8 -textvariable entryvar(x) -width 10] 2464 set f3e9 [entry $frame3.coords.e9 -textvariable entryvar(y) -width 10] 2465 set f3e10 [entry $frame3.coords.e10 -textvariable entryvar(z) -width 10] 2466 set f3l11 [label $frame3.coords.l11 -text "Occupancy" -bg beige] 2467 set f3e11 [entry $frame3.coords.e11 -textvariable entryvar(frac) -width 10] 2468 set expgui(atomlabels) "$frame3.coords.l1 $frame3.coords.l8 $frame3.coords.l11" 2469 set expgui(atomentry) "$frame3.coords.e1 $frame3.coords.e8 $frame3.coords.e9 $frame3.coords.e10 $frame3.coords.e11" 2470 2471 grid $f3l1 -column 0 -row 4 -padx 2 -sticky nsw -pady 3 2472 grid $f3e1 -column 1 -row 4 -padx 2 -sticky nsw -pady 3 2473 grid $f3l8 -column 2 -row 4 -padx 2 -sticky nsw -pady 3 2474 grid $f3e8 -column 3 -row 4 -padx 2 -sticky nsw -pady 3 2475 grid $f3e9 -column 4 -row 4 -padx 2 -sticky nsw -pady 3 2476 grid $f3e10 -column 5 -row 4 -padx 2 -sticky nsw -pady 3 2477 grid $f3l11 -column 6 -row 4 -padx 2 -sticky nsw -pady 3 2478 grid $f3e11 -column 7 -row 4 -padx 2 -sticky nsw -pady 3 2479 2480 2481 set f3f31 [frame $frame3.f3f31 -width 100 -borderwidth 0 -bg beige] 2482 grid $f3f31 -column 0 -row 7 -columnspan 12 2483 set expgui(anisolabels) {} 2484 lappend expgui(anisolabels) [label $f3f31.l13 -text "Uiso" -bg beige] 2485 lappend expgui(anisolabels) [label $f3f31.l14 -text "U22" -bg beige] 2486 lappend expgui(anisolabels) [label $f3f31.l15 -text "U33" -bg beige] 2487 lappend expgui(anisolabels) [label $f3f31.l16 -text "U12" -bg beige] 2488 lappend expgui(anisolabels) [label $f3f31.l17 -text "U13" -bg beige] 2489 lappend expgui(anisolabels) [label $f3f31.l18 -text "U23" -bg beige] 2490 2491 set expgui(anisoentry) {} 2492 lappend expgui(anisoentry) [entry $f3f31.e13 -textvariable entryvar(U11) -width 10] 2493 lappend expgui(anisoentry) [entry $f3f31.e14 -textvariable entryvar(U22) -width 10] 2494 lappend expgui(anisoentry) [entry $f3f31.e15 -textvariable entryvar(U33) -width 10] 2495 lappend expgui(anisoentry) [entry $f3f31.e16 -textvariable entryvar(U12) -width 10] 2496 lappend expgui(anisoentry) [entry $f3f31.e17 -textvariable entryvar(U13) -width 10] 2497 lappend expgui(anisoentry) [entry $f3f31.e18 -textvariable entryvar(U23) -width 10] 2498 2499 set col 0 2500 foreach item1 $expgui(anisolabels) item2 $expgui(anisoentry) { 2501 grid $item1 -column $col -row 0 -sticky nsw -pady 3 2502 incr col 2503 grid $item2 -column $col -row 0 -sticky nsw -pady 3 2504 incr col 2505 } 2506 # --------------------------- End Edit Box -------------------------------- 2507 2508 #/\ /\ /\ /\ /\ /\ /\ END OF PHASE PANE CODE /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ 2671 # make the phase pane 2672 MakePhasePane 2509 2673 #----------------------------------------------------------------------------- 2510 #v v v v v v v v v v BEGINNING OF HISTOGRAM PANE CODE v v v v v v v v v v v v 2511 grid [frame $expgui(histFrame).hs] \ 2512 -column 0 -row 0 -rowspan 10 -sticky nsew 2513 grid columnconfigure $expgui(histFrame) 0 -weight 1 2514 grid rowconfigure $expgui(histFrame) 1 -weight 1 2515 grid rowconfigure $expgui(histFrame) 2 -weight 1 2516 grid rowconfigure $expgui(histFrame) 3 -weight 1 2517 grid [listbox $expgui(histFrame).hs.title -height 1 -relief flat \ 2518 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2519 grid [listbox $expgui(histFrame).hs.lbox -height 10 -width 25 \ 2520 -font $expgui(histfont) \ 2521 -xscrollcommand "$expgui(histFrame).hs.x set" \ 2522 -yscrollcommand "$expgui(histFrame).hs.y set" \ 2523 ] -row 1 -column 0 -sticky news 2524 lappend expgui(HistSelectList) $expgui(histFrame).hs 2525 grid [scrollbar $expgui(histFrame).hs.x -orient horizontal \ 2526 -command "move2boxes \" $expgui(histFrame).hs.title $expgui(histFrame).hs.lbox \" " 2527 ] -row 2 -column 0 -sticky ew 2528 grid [scrollbar $expgui(histFrame).hs.y \ 2529 -command "$expgui(histFrame).hs.lbox yview"] \ 2530 -row 1 -column 1 -sticky ns 2531 grid columnconfigure $expgui(histFrame).hs 0 -weight 1 2532 grid rowconfigure $expgui(histFrame).hs 1 -weight 1 2533 bind $expgui(histFrame).hs.lbox <ButtonRelease-1> { 2534 set expgui(curhist) [$expgui(histFrame).hs.lbox curselection] 2535 DisplayHistogram 2536 } 2537 bind $expgui(histFrame).hs.lbox <Button-3> { 2538 if $expgui(globalmode) { 2539 $expgui(histFrame).hs.lbox selection set 0 end 2674 proc MakeHistPane {} { 2675 #v v v v v v v v v v BEGINNING OF HISTOGRAM PANE CODE v v v v v v v v v v 2676 global expgui 2677 grid [frame $expgui(histFrame).hs] \ 2678 -column 0 -row 0 -rowspan 10 -sticky nsew 2679 grid columnconfigure $expgui(histFrame) 0 -weight 1 2680 grid rowconfigure $expgui(histFrame) 1 -weight 1 2681 grid rowconfigure $expgui(histFrame) 2 -weight 1 2682 grid rowconfigure $expgui(histFrame) 3 -weight 1 2683 grid [listbox $expgui(histFrame).hs.title -height 1 -relief flat \ 2684 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2685 grid [listbox $expgui(histFrame).hs.lbox -height 10 -width 25 \ 2686 -font $expgui(histfont) \ 2687 -xscrollcommand "$expgui(histFrame).hs.x set" \ 2688 -yscrollcommand "$expgui(histFrame).hs.y set" \ 2689 ] -row 1 -column 0 -sticky news 2690 lappend expgui(HistSelectList) $expgui(histFrame).hs 2691 grid [scrollbar $expgui(histFrame).hs.x -orient horizontal \ 2692 -command "move2boxes \" $expgui(histFrame).hs.title $expgui(histFrame).hs.lbox \" " 2693 ] -row 2 -column 0 -sticky ew 2694 grid [scrollbar $expgui(histFrame).hs.y \ 2695 -command "$expgui(histFrame).hs.lbox yview"] \ 2696 -row 1 -column 1 -sticky ns 2697 grid columnconfigure $expgui(histFrame).hs 0 -weight 1 2698 grid rowconfigure $expgui(histFrame).hs 1 -weight 1 2699 bind $expgui(histFrame).hs.lbox <ButtonRelease-1> { 2540 2700 set expgui(curhist) [$expgui(histFrame).hs.lbox curselection] 2541 2701 DisplayHistogram 2542 2702 } 2543 } 2544 2545 2546 frame $expgui(histFrame).top -borderwidth 4 -relief groove 2547 grid [label $expgui(histFrame).top.txt] -row 0 -column 0 2548 if $expgui(havetix) { 2549 foreach item {backBox diffBox} num {2 3} \ 2550 title {Background "Diffractometer Constants"} { 2551 tixLabelFrame $expgui(histFrame).$item \ 2552 -borderwidth 4 -width 600 -height 100 -label $title 2553 grid $expgui(histFrame).$item -column 1 -row $num -sticky nsew 2554 set expgui($item) [$expgui(histFrame).$item subwidget frame] 2555 } 2556 } else { 2557 foreach item {backBox diffBox} num {1 2} \ 2558 title {Background "Diffractometer Constants"} { 2559 frame $expgui(histFrame).$item -borderwidth 4 -relief groove 2560 grid $expgui(histFrame).$item -column 1 -row $num -sticky nsew 2561 set expgui($item) $expgui(histFrame).$item 2562 grid [label $expgui(histFrame).$item.title -text $title] \ 2563 -row 0 -column 0 -columnspan 10 -sticky nw 2564 } 2565 } 2566 if [file executable $expgui(exptool)] { 2567 button $expgui(histFrame).newh -text "Add New Histogram" -command MakeAddHistBox 2568 grid $expgui(histFrame).newh -column 1 -row 6 2569 } 2570 2571 # BACKGROUND information. 2572 # <<<<<<<<<<<<<<<<<<<<<<<<< BACKGROUND <<<<<<<<<<<<<<<<<<<<< 2573 grid [ frame $expgui(backBox).f ] -row 0 -column 0 -columnspan 11 2574 grid [ label $expgui(backBox).f.lBGType -textvariable expgui(backtypelbl)] \ 2575 -row 1 -column 0 -sticky nws -padx 2 -pady 3 2576 grid [ label $expgui(backBox).f.lBGTerms -textvariable expgui(backtermlbl)] \ 2577 -row 1 -column 1 -sticky nws -padx 2 -pady 3 2578 grid [ button $expgui(backBox).f.edit -textvariable expgui(bkglbl) \ 2579 -command editbackground] \ 2580 -row 1 -column 2 -columnspan 3 -sticky w -padx 2 -pady 3 2581 grid [ frame $expgui(backBox).f1 ] -row 1 -column 0 -columnspan 11 -sticky e 2582 grid [ label $expgui(backBox).f1.lfBG -text " Refine background" ] \ 2583 -row 2 -column 1 -sticky news -padx 4 -pady 3 2584 grid [ checkbutton $expgui(backBox).f1.rfBG -text "" \ 2585 -variable entryvar(bref) ] \ 2586 -row 2 -column 2 -sticky news -padx 4 -pady 3 2587 grid [ label $expgui(backBox).f1.lBGDamp -text Damping ] \ 2588 -row 2 -column 3 -sticky w -padx 2 -pady 3 2589 tk_optionMenu $expgui(backBox).f1.om entryvar(bdamp) 0 1 2 3 4 5 6 7 8 9 2590 grid $expgui(backBox).f1.om \ 2591 -row 2 -column 4 -sticky news -padx 4 -pady 3 -sticky e 2592 2593 # DIFFRACTOMETER CONSTANTS SECTION 2594 2595 #^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^END OF HISTOGRAM PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2703 bind $expgui(histFrame).hs.lbox <Button-3> { 2704 if $expgui(globalmode) { 2705 $expgui(histFrame).hs.lbox selection set 0 end 2706 set expgui(curhist) [$expgui(histFrame).hs.lbox curselection] 2707 DisplayHistogram 2708 } 2709 } 2710 2711 frame $expgui(histFrame).top -borderwidth 4 -relief groove 2712 grid [label $expgui(histFrame).top.txt] -row 0 -column 0 2713 if $expgui(haveBW) { 2714 foreach item {backBox diffBox} num {2 3} \ 2715 title {Background "Diffractometer Constants"} { 2716 TitleFrame $expgui(histFrame).$item \ 2717 -borderwidth 4 -side left -relief groove -text $title 2718 set expgui($item) [$expgui(histFrame).$item getframe] 2719 grid $expgui(histFrame).$item -column 1 -row $num -sticky nsew 2720 grid rowconfigure $expgui(histFrame) $num -minsize 100 2721 } 2722 } else { 2723 foreach item {backBox diffBox} num {1 2} \ 2724 title {Background "Diffractometer Constants"} { 2725 frame $expgui(histFrame).$item -borderwidth 4 -relief groove 2726 grid $expgui(histFrame).$item -column 1 -row $num -sticky nsew 2727 set expgui($item) $expgui(histFrame).$item 2728 grid [label $expgui(histFrame).$item.title -text $title] \ 2729 -row 0 -column 0 -columnspan 10 -sticky nw 2730 } 2731 } 2732 if [file executable $expgui(exptool)] { 2733 button $expgui(histFrame).newh -text "Add New Histogram" -command MakeAddHistBox 2734 grid $expgui(histFrame).newh -column 1 -row 6 2735 } 2736 2737 # BACKGROUND information. 2738 # <<<<<<<<<<<<<<<<<<<<<<<<< BACKGROUND <<<<<<<<<<<<<<<<<<<<< 2739 grid [frame $expgui(backBox).frm1 ] -row 0 -column 0 -columnspan 11 2740 grid [label $expgui(backBox).frm1.lBGType \ 2741 -textvariable expgui(backtypelbl)] \ 2742 -row 1 -column 0 -sticky nws -padx 2 -pady 3 2743 grid [label $expgui(backBox).frm1.lBGTerms \ 2744 -textvariable expgui(backtermlbl)] \ 2745 -row 1 -column 1 -sticky nws -padx 2 -pady 3 2746 grid [button $expgui(backBox).frm1.edit -textvariable expgui(bkglbl) \ 2747 -command editbackground] \ 2748 -row 1 -column 2 -columnspan 3 -sticky w -padx 2 -pady 3 2749 grid [frame $expgui(backBox).frm2 ] \ 2750 -row 1 -column 0 -columnspan 11 -sticky e 2751 grid [label $expgui(backBox).frm2.lfBG -text " Refine background" ] \ 2752 -row 2 -column 1 -sticky news -padx 4 -pady 3 2753 grid [checkbutton $expgui(backBox).frm2.rfBG -text "" \ 2754 -variable entryvar(bref) ] \ 2755 -row 2 -column 2 -sticky news -padx 4 -pady 3 2756 grid [label $expgui(backBox).frm2.lBGDamp -text Damping ] \ 2757 -row 2 -column 3 -sticky w -padx 2 -pady 3 2758 tk_optionMenu $expgui(backBox).frm2.om entryvar(bdamp) 0 1 2 3 4 5 6 7 8 9 2759 grid $expgui(backBox).frm2.om \ 2760 -row 2 -column 4 -sticky news -padx 4 -pady 3 -sticky e 2761 #^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^END OF HISTOGRAM PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2762 # insert the histograms & resize in case the pane needs more space 2763 sethistlist 2764 ResizeNotebook 2765 } 2596 2766 ############################################################################### 2597 #v v v v v v v v v v BEGINNING OF SCALING PANE CODE v v v v v v v v v v 2598 2599 pack [frame $expgui(fracFrame).hs] -side left -expand y -fill both 2600 grid [listbox $expgui(fracFrame).hs.title -height 1 -relief flat \ 2601 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2602 grid [listbox $expgui(fracFrame).hs.lbox -height 10 -width 25 \ 2603 -font $expgui(histfont) \ 2604 -xscrollcommand "$expgui(fracFrame).hs.x set" \ 2605 -yscrollcommand "$expgui(fracFrame).hs.y set" \ 2606 ] -row 1 -column 0 -sticky news 2607 lappend expgui(HistSelectList) $expgui(fracFrame).hs 2608 grid [scrollbar $expgui(fracFrame).hs.x -orient horizontal \ 2609 -command "move2boxes \" $expgui(fracFrame).hs.title $expgui(fracFrame).hs.lbox \" " 2610 ] -row 2 -column 0 -sticky ew 2611 grid [scrollbar $expgui(fracFrame).hs.y \ 2612 -command "$expgui(fracFrame).hs.lbox yview"] \ 2613 -row 1 -column 1 -sticky ns 2614 grid columnconfigure $expgui(fracFrame).hs 0 -weight 1 2615 grid rowconfigure $expgui(fracFrame).hs 1 -weight 1 2616 bind $expgui(fracFrame).hs.lbox <ButtonRelease-1> { 2617 set expgui(curhist) [$expgui(fracFrame).hs.lbox curselection] 2618 DisplayFrac 2619 } 2620 bind $expgui(fracFrame).hs.lbox <Button-3> { 2621 if $expgui(globalmode) { 2622 $expgui(fracFrame).hs.lbox selection set 0 end 2767 proc MakeScalingPane {} { 2768 #v v v v v v v v v v BEGINNING OF SCALING PANE CODE v v v v v v v v v v 2769 global expgui 2770 pack [frame $expgui(fracFrame).hs] -side left -expand y -fill both 2771 grid [listbox $expgui(fracFrame).hs.title -height 1 -relief flat \ 2772 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2773 grid [listbox $expgui(fracFrame).hs.lbox -height 10 -width 25 \ 2774 -font $expgui(histfont) \ 2775 -xscrollcommand "$expgui(fracFrame).hs.x set" \ 2776 -yscrollcommand "$expgui(fracFrame).hs.y set" \ 2777 ] -row 1 -column 0 -sticky news 2778 lappend expgui(HistSelectList) $expgui(fracFrame).hs 2779 grid [scrollbar $expgui(fracFrame).hs.x -orient horizontal \ 2780 -command "move2boxes \" $expgui(fracFrame).hs.title $expgui(fracFrame).hs.lbox \" " 2781 ] -row 2 -column 0 -sticky ew 2782 grid [scrollbar $expgui(fracFrame).hs.y \ 2783 -command "$expgui(fracFrame).hs.lbox yview"] \ 2784 -row 1 -column 1 -sticky ns 2785 grid columnconfigure $expgui(fracFrame).hs 0 -weight 1 2786 grid rowconfigure $expgui(fracFrame).hs 1 -weight 1 2787 bind $expgui(fracFrame).hs.lbox <ButtonRelease-1> { 2623 2788 set expgui(curhist) [$expgui(fracFrame).hs.lbox curselection] 2624 2789 DisplayFrac 2625 2790 } 2626 } 2627 pack [frame $expgui(fracFrame).f1] -fill both -expand true 2628 # Create a large canvas area containing a frame for each phase in the data set. 2629 # The canvas and vertical scrollbar are inside a frame called f1 2630 if $expgui(havetix) { 2631 tixLabelFrame $expgui(fracFrame).f1.scaleBox \ 2632 -borderwidth 4 -width 600 -height 100 -label "Scale Factor" 2633 grid $expgui(fracFrame).f1.scaleBox -column 0 -row 0 -sticky nsew -columnspan 2 2634 set expgui(scaleBox) [$expgui(fracFrame).f1.scaleBox subwidget frame] 2635 } else { 2636 frame $expgui(fracFrame).f1.scaleBox -borderwidth 4 -relief groove 2791 bind $expgui(fracFrame).hs.lbox <Button-3> { 2792 if $expgui(globalmode) { 2793 $expgui(fracFrame).hs.lbox selection set 0 end 2794 set expgui(curhist) [$expgui(fracFrame).hs.lbox curselection] 2795 DisplayFrac 2796 } 2797 } 2798 pack [frame $expgui(fracFrame).f1] -fill both -expand true 2799 # Create a large canvas area containing a frame for each phase in the data set. 2800 # The canvas and vertical scrollbar are inside a frame called f1 2801 if $expgui(haveBW) { 2802 TitleFrame $expgui(fracFrame).f1.scaleBox \ 2803 -borderwidth 4 -text "Scale Factor" 2804 # -borderwidth 4 -width 600 -height 100 -label "Scale Factor" 2805 grid $expgui(fracFrame).f1.scaleBox -column 0 -row 0 -sticky nsew -columnspan 2 2806 set expgui(scaleBox) [$expgui(fracFrame).f1.scaleBox getframe] 2807 grid [label $expgui(scaleBox).histSFLabel -text Scale] \ 2808 -row 1 -column 0 -sticky nws -padx 2 -pady 3 2809 } else { 2810 frame $expgui(fracFrame).f1.scaleBox -borderwidth 4 -relief groove 2637 2811 grid $expgui(fracFrame).f1.scaleBox -column 0 -row 0 -sticky nsew -columnspan 2 2638 2812 set expgui(scaleBox) $expgui(fracFrame).f1.scaleBox 2639 } 2640 grid [label $expgui(scaleBox).histSFLabel -text "Scale Factor"] \ 2641 -row 1 -column 0 -sticky nws -padx 2 -pady 3 2642 grid [entry $expgui(scaleBox).ent1 -textvariable entryvar(scale) -width 15] \ 2643 -row 1 -column 1 -sticky ew -padx 4 -pady 3 2644 button $expgui(scaleBox).but1 -text "Set Globally" \ 2645 -command "editglobalparm histinfo scale {Scale Factor}" 2646 2647 grid [label $expgui(scaleBox).histSFRLabel -text " Refine"] \ 2648 -row 1 -column 2 -sticky nws -padx 2 -pady 3 2649 grid [checkbutton $expgui(scaleBox).rf -variable entryvar(sref)] \ 2650 -row 1 -column 3 -sticky news -padx 4 -pady 3 2651 grid [label $expgui(scaleBox).lD1 -text "Damping"] \ 2652 -row 1 -column 4 -sticky w -padx 2 -pady 3 2653 tk_optionMenu $expgui(scaleBox).om entryvar(sdamp) 0 1 2 3 4 5 6 7 8 9 2654 grid $expgui(scaleBox).om \ 2655 -row 1 -column 5 -sticky news -padx 4 -pady 3 2656 grid columnconfigure $expgui(scaleBox) 6 -weight 1 2657 2658 grid [set expgui(FracBox) [canvas $expgui(fracFrame).f1.fracBox \ 2659 -scrollregion {0 0 5000 500} -width 500 -height 350 -bg lightgrey]] \ 2660 -sticky news -row 1 -column 0 2661 grid [scrollbar $expgui(fracFrame).f1.yscroll -orient vertical] \ 2662 -sticky ns -row 1 -column 1 2663 2664 $expgui(FracBox) config -yscrollcommand "$expgui(fracFrame).f1.yscroll set" 2665 $expgui(fracFrame).f1.yscroll config -command { $expgui(FracBox) yview } 2666 2667 grid columnconfigure $expgui(fracFrame).f1 0 -weight 1 2668 grid rowconfigure $expgui(fracFrame).f1 0 -weight 1 2669 frame $expgui(FracBox).f -bd 0 2670 $expgui(FracBox) create window 0 0 -anchor nw -window $expgui(FracBox).f 2671 2672 # the rest of the page is created in DisplayFrac 2673 # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ END OF SCALING PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2813 grid [label $expgui(scaleBox).histSFLabel -text "Scale Factor"] \ 2814 -row 1 -column 0 -sticky nws -padx 2 -pady 3 2815 } 2816 grid [entry $expgui(scaleBox).ent1 -textvariable entryvar(scale) -width 15] \ 2817 -row 1 -column 1 -sticky ew -padx 4 -pady 3 2818 button $expgui(scaleBox).but1 -text "Set Globally" \ 2819 -command "editglobalparm histinfo scale {Scale Factor}" 2820 2821 grid [label $expgui(scaleBox).histSFRLabel -text " Refine"] \ 2822 -row 1 -column 2 -sticky nws -padx 2 -pady 3 2823 grid [checkbutton $expgui(scaleBox).rf -variable entryvar(sref)] \ 2824 -row 1 -column 3 -sticky news -padx 4 -pady 3 2825 grid [label $expgui(scaleBox).lD1 -text "Damping"] \ 2826 -row 1 -column 4 -sticky w -padx 2 -pady 3 2827 tk_optionMenu $expgui(scaleBox).om entryvar(sdamp) 0 1 2 3 4 5 6 7 8 9 2828 grid $expgui(scaleBox).om \ 2829 -row 1 -column 5 -sticky news -padx 4 -pady 3 2830 grid columnconfigure $expgui(scaleBox) 6 -weight 1 2831 2832 if $expgui(haveBW) { 2833 grid [TitleFrame $expgui(fracFrame).f1.phaseFrac -bd 4 \ 2834 -text "Phase Fractions" -relief groove] \ 2835 -sticky news -row 1 -column 0 -columnspan 2 2836 set PhaseFractBox [$expgui(fracFrame).f1.phaseFrac getframe] 2837 } else { 2838 set PhaseFractBox $expgui(fracFrame).f1 2839 } 2840 grid columnconfigure $expgui(fracFrame).f1 0 -weight 1 2841 grid rowconfigure $expgui(fracFrame).f1 1 -weight 1 2842 2843 grid [set expgui(FracBox) [canvas $PhaseFractBox.fracBox \ 2844 -scrollregion {0 0 5000 500} \ 2845 -yscrollcommand "$PhaseFractBox.yscroll set" \ 2846 -width 500 -height 350 -bg lightgrey]] \ 2847 -sticky news -row 1 -column 0 2848 grid [scrollbar $PhaseFractBox.yscroll \ 2849 -command "$expgui(FracBox) yview" \ 2850 -orient vertical] \ 2851 -sticky ns -row 1 -column 1 2852 frame $expgui(FracBox).f -bd 0 2853 $expgui(FracBox) create window 0 0 -anchor nw -window $expgui(FracBox).f 2854 2855 # the rest of the page is created in DisplayFrac 2856 2857 # insert the histograms & resize in case the pane needs more space 2858 sethistlist 2859 ResizeNotebook 2860 # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ END OF SCALING PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2861 } 2674 2862 ############################################################################### 2675 # v v v v v v v v v v BEGINNING OF PROFILE PANE CODE v v v v v v v v v v v v v 2676 pack [frame $expgui(profFrame).hs] -side left -expand y -fill both 2677 grid [listbox $expgui(profFrame).hs.title -height 1 -relief flat \ 2678 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2679 grid [listbox $expgui(profFrame).hs.lbox -height 10 -width 25 \ 2680 -font $expgui(histfont) \ 2681 -xscrollcommand "$expgui(profFrame).hs.x set" \ 2682 -yscrollcommand "$expgui(profFrame).hs.y set" \ 2683 ] -row 1 -column 0 -sticky news 2684 lappend expgui(HistSelectList) $expgui(profFrame).hs 2685 grid [scrollbar $expgui(profFrame).hs.x -orient horizontal \ 2686 -command "move2boxes \" $expgui(profFrame).hs.title $expgui(profFrame).hs.lbox \" " 2687 ] -row 2 -column 0 -sticky ew 2688 grid [scrollbar $expgui(profFrame).hs.y \ 2689 -command "$expgui(profFrame).hs.lbox yview"] \ 2690 -row 1 -column 1 -sticky ns 2691 grid columnconfigure $expgui(profFrame).hs 0 -weight 1 2692 grid rowconfigure $expgui(profFrame).hs 1 -weight 1 2693 bind $expgui(profFrame).hs.lbox <ButtonRelease-1> { 2694 set expgui(curhist) [$expgui(profFrame).hs.lbox curselection] 2695 DisplayProfile 2696 } 2697 bind $expgui(profFrame).hs.lbox <Button-3> { 2698 if $expgui(globalmode) { 2699 $expgui(profFrame).hs.lbox selection set 0 end 2863 proc MakeProfilePane {} { 2864 global expgui 2865 # v v v v v v v v v v BEGINNING OF PROFILE PANE CODE v v v v v v v v v v v 2866 pack [frame $expgui(profFrame).hs] -side left -expand y -fill both 2867 grid [listbox $expgui(profFrame).hs.title -height 1 -relief flat \ 2868 -font $expgui(histfont) ] -row 0 -column 0 -sticky ew 2869 grid [listbox $expgui(profFrame).hs.lbox -height 10 -width 25 \ 2870 -font $expgui(histfont) \ 2871 -xscrollcommand "$expgui(profFrame).hs.x set" \ 2872 -yscrollcommand "$expgui(profFrame).hs.y set" \ 2873 ] -row 1 -column 0 -sticky news 2874 lappend expgui(HistSelectList) $expgui(profFrame).hs 2875 grid [scrollbar $expgui(profFrame).hs.x -orient horizontal \ 2876 -command "move2boxes \" $expgui(profFrame).hs.title $expgui(profFrame).hs.lbox \" " 2877 ] -row 2 -column 0 -sticky ew 2878 grid [scrollbar $expgui(profFrame).hs.y \ 2879 -command "$expgui(profFrame).hs.lbox yview"] \ 2880 -row 1 -column 1 -sticky ns 2881 grid columnconfigure $expgui(profFrame).hs 0 -weight 1 2882 grid rowconfigure $expgui(profFrame).hs 1 -weight 1 2883 bind $expgui(profFrame).hs.lbox <ButtonRelease-1> { 2700 2884 set expgui(curhist) [$expgui(profFrame).hs.lbox curselection] 2701 2885 DisplayProfile 2702 2886 } 2703 } 2704 2705 # Create a large canvas area containing a frame for each phase in the data set. 2706 # The canvas and vertical scrollbar are inside a frame called f1 2707 pack [frame $expgui(profFrame).f1] -fill both -expand true 2708 grid [set expgui(ProfileBox) [canvas $expgui(profFrame).f1.profileBox \ 2709 -scrollregion {0 0 5000 500} -width 500 -height 350 -bg lightgrey]] \ 2710 -sticky news -row 0 -column 0 2711 grid [scrollbar $expgui(profFrame).f1.yscroll -orient vertical] \ 2712 -sticky ns -row 0 -column 1 2713 2714 $expgui(ProfileBox) config -yscrollcommand "$expgui(profFrame).f1.yscroll set" 2715 $expgui(profFrame).f1.yscroll config -command { $expgui(ProfileBox) yview } 2716 2717 grid columnconfigure $expgui(profFrame).f1 1 -weight 1 2718 grid rowconfigure $expgui(profFrame).f1 0 -weight 1 2719 frame $expgui(ProfileBox).f -bd 0 2720 $expgui(ProfileBox) create window 0 0 -anchor nw -window $expgui(ProfileBox).f 2721 2722 # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ END OF PROFILE PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2887 bind $expgui(profFrame).hs.lbox <Button-3> { 2888 if $expgui(globalmode) { 2889 $expgui(profFrame).hs.lbox selection set 0 end 2890 set expgui(curhist) [$expgui(profFrame).hs.lbox curselection] 2891 DisplayProfile 2892 } 2893 } 2894 2895 # Create a large canvas area containing a frame for each phase in the data set. 2896 # The canvas and vertical scrollbar are inside a frame called f1 2897 pack [frame $expgui(profFrame).f1] -fill both -expand true 2898 grid [set expgui(ProfileBox) [canvas $expgui(profFrame).f1.profileBox \ 2899 -scrollregion {0 0 5000 500} -width 500 -height 350 -bg lightgrey]] \ 2900 -sticky news -row 0 -column 0 2901 grid [scrollbar $expgui(profFrame).f1.yscroll -orient vertical] \ 2902 -sticky ns -row 0 -column 1 2903 2904 $expgui(ProfileBox) config -yscrollcommand "$expgui(profFrame).f1.yscroll set" 2905 $expgui(profFrame).f1.yscroll config -command { $expgui(ProfileBox) yview } 2906 2907 grid columnconfigure $expgui(profFrame).f1 1 -weight 1 2908 grid rowconfigure $expgui(profFrame).f1 0 -weight 1 2909 frame $expgui(ProfileBox).f -bd 0 2910 $expgui(ProfileBox) create window 0 0 -anchor nw -window $expgui(ProfileBox).f 2911 2912 # insert the histograms & resize in case the pane needs more space 2913 sethistlist 2914 ResizeNotebook 2915 # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ END OF PROFILE PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2916 } 2917 2723 2918 ############################################################################## 2724 2919 # v v v v v v v v v v BEGINNING OF LS PANE CODE v v v v v v v v v v v v v … … 2767 2962 set row 0 2768 2963 grid [label $expgui(lsFrame).f1.his1 -pady 6 -text "Last History:"] -row $row -column 0 2769 grid [label $expgui(lsFrame).f1.his2 -relief sunken-bd 2 -pady 6 \2964 grid [label $expgui(lsFrame).f1.his2 -relief raised -bd 2 -pady 6 \ 2770 2965 -textvariable expgui(last_History)] \ 2771 2966 -row $row -column 1 -columnspan 5 -sticky w … … 2792 2987 -variable entryvar(printopt$num) 2793 2988 } 2794 grid [frame $expgui(lsFrame).f1.c -bd 4 -relief groove] -row $row -column 32795 grid [label $expgui(lsFrame).f1.c.fol -text "Extract Fobs"] -row 0 -column 22796 grid [checkbutton $expgui(lsFrame).f1.c.foc -variable entryvar(fobsextract)] -row 0 -column 32989 #grid [frame $expgui(lsFrame).f1.c -bd 4 -relief groove] -row $row -column 3 2990 #grid [label $expgui(lsFrame).f1.c.fol -text "Extract Fobs"] -row 0 -column 2 2991 #grid [checkbutton $expgui(lsFrame).f1.c.foc -variable entryvar(fobsextract)] -row 0 -column 3 2797 2992 incr row 2798 grid [frame $expgui(lsFrame).f1.a -bd 4 -relief groove] -row $row -column 0 -columnspan 6 2993 if {$expgui(haveBW)} { 2994 grid [TitleFrame $expgui(lsFrame).f1.a -bd 4 -relief groove \ 2995 -text "Reflection Intensity Extraction" \ 2996 ] -row $row -column 0 -columnspan 6 2997 set expgui(FobsExtractFrame) [$expgui(lsFrame).f1.a getframe] 2998 } else { 2999 grid [frame $expgui(lsFrame).f1.a -bd 4 -relief groove \ 3000 ] -row $row -column 0 -columnspan 6 3001 set expgui(FobsExtractFrame) $expgui(lsFrame).f1.a 3002 } 3003 grid rowconfigure $expgui(lsFrame).f1 $row -pad 16 3004 grid [frame $expgui(FobsExtractFrame).c -bd 4 -relief groove] \ 3005 -row 0 -column 8 -columnspan 3 -sticky e 3006 grid [label $expgui(FobsExtractFrame).c.fol -text "Extract Fobs"] \ 3007 -row 0 -column 2 3008 grid [checkbutton $expgui(FobsExtractFrame).c.foc \ 3009 -variable entryvar(fobsextract)] -row 0 -column 3 2799 3010 foreach num {1 2 3 4 5 6 7 8 9} { 2800 grid [label $expgui( lsFrame).f1.a.l$num -text $num] -row 1 -column $num2801 grid [radiobutton $expgui( lsFrame).f1.a.cc$num \3011 grid [label $expgui(FobsExtractFrame).l$num -text $num] -row 1 -column $num 3012 grid [radiobutton $expgui(FobsExtractFrame).cc$num \ 2802 3013 -command "HistExtractSet $num" \ 2803 3014 -variable expgui(Fextract$num) -value 0] \ 2804 3015 -row 2 -column $num 2805 grid [radiobutton $expgui( lsFrame).f1.a.ca$num \3016 grid [radiobutton $expgui(FobsExtractFrame).ca$num \ 2806 3017 -command "HistExtractSet $num" \ 2807 3018 -variable expgui(Fextract$num) -value 1] \ 2808 3019 -row 3 -column $num 2809 # grid [radiobutton $expgui(lsFrame).f1.a.cb$num \ 2810 # -command "HistExtractSet $num" \ 2811 # -variable expgui(Fextract$num) -value 2] \ 2812 # -row 4 -column $num 2813 } 2814 set expgui(ExtractSettingsRadiobuttons) $expgui(lsFrame).f1.a.cc 2815 lappend expgui(ExtractSettingsRadiobuttons) $expgui(lsFrame).f1.a.ca 2816 #lappend expgui(ExtractSettingsRadiobuttons) $expgui(lsFrame).f1.a.cb 2817 2818 grid [label $expgui(lsFrame).f1.a.t -text "Intensity Extraction Method" -anchor c] \ 2819 -column 0 -columnspan 11 -row 0 2820 grid [label $expgui(lsFrame).f1.a.t0 -text "Phase #" -anchor c] -column 0 -row 1 2821 grid [label $expgui(lsFrame).f1.a.t1 -text "Rietveld" -anchor c] -column 0 -row 2 2822 grid [label $expgui(lsFrame).f1.a.t2 -text "F(calc) Weighted" -anchor c] -column 0 -row 3 2823 #grid [label $expgui(lsFrame).f1.a.t3 -text "Equally Weighted" -anchor c] -column 0 -row 4 2824 grid [label $expgui(lsFrame).f1.a.t2a -text "(Model biased)" -anchor c] -column 10 -row 3 2825 #grid [label $expgui(lsFrame).f1.a.t3a -text "(Le Bail method)" -anchor c] -column 10 -row 4 3020 grid [radiobutton $expgui(FobsExtractFrame).cb$num \ 3021 -command "HistExtractSet $num" \ 3022 -variable expgui(Fextract$num) -value 2] \ 3023 -row 4 -column $num 3024 } 3025 set expgui(ExtractSettingsRadiobuttons) $expgui(FobsExtractFrame).cc 3026 lappend expgui(ExtractSettingsRadiobuttons) $expgui(FobsExtractFrame).ca 3027 lappend expgui(ExtractSettingsRadiobuttons) $expgui(FobsExtractFrame).cb 3028 3029 grid [label $expgui(FobsExtractFrame).t \ 3030 -text "Extraction\nMethod" -anchor c] \ 3031 -column 0 -row 0 -rowspan 2 -sticky s 3032 grid [label $expgui(FobsExtractFrame).t0 -text "Phase #" -anchor sw] \ 3033 -column 1 -row 0 -columnspan 7 -sticky sw 3034 grid [label $expgui(FobsExtractFrame).t1 -text "Rietveld" -anchor c] -column 0 -row 2 3035 grid [label $expgui(FobsExtractFrame).t2 -text "F(calc) Weighted" -anchor c] -column 0 -row 3 3036 grid [label $expgui(FobsExtractFrame).t3 -text "Equally Weighted" -anchor c] -column 0 -row 4 3037 grid [label $expgui(FobsExtractFrame).t2a -text "(Model biased)" -anchor c] -column 10 -row 3 3038 grid [label $expgui(FobsExtractFrame).t3a -text "(Le Bail method)" -anchor c] -column 10 -row 4 2826 3039 # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ END OF LS PANE CODE ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2827 3040 #------------------------------------------------------------------------- … … 3013 3226 3014 3227 # resize the notebook to fit all the tabs and the largest page 3015 if {!$expgui(havetix)} { 3016 Notebook:resize .n 3017 } 3228 ResizeNotebook 3229 3018 3230 RaisePage lsFrame 3019 3231 if {[CountHistory] > 100} {
Note: See TracChangeset
for help on using the changeset viewer.