Ignore:
Timestamp:
Mar 14, 2015 5:35:03 PM (8 years ago)
Author:
toby
Message:

change sphinx docs links; rebuild & fixing minor formatting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sphinxdocs/build/html/_modules/GSASIIimgGUI.html

    r1513 r1709  
    5252<span class="c">#GSASII - image data display routines</span>
    5353<span class="c">########### SVN repository information ###################</span>
    54 <span class="c"># $Date: 2014-08-20 13:31:24 -0500 (Wed, 20 Aug 2014) $</span>
    55 <span class="c"># $Author: toby $</span>
    56 <span class="c"># $Revision: 1472 $</span>
    57 <span class="c"># $URL: https://subversion.xor.aps.anl.gov/pyGSAS/trunk/GSASIIimgGUI.py $</span>
    58 <span class="c"># $Id: GSASIIimgGUI.py 1472 2014-08-20 18:31:24Z toby $</span>
     54<span class="c"># $Date: 2015-02-24 07:09:20 +0900 (Tue, 24 Feb 2015) $</span>
     55<span class="c"># $Author: vondreele $</span>
     56<span class="c"># $Revision: 1667 $</span>
     57<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIimgGUI.py $</span>
     58<span class="c"># $Id: GSASIIimgGUI.py 1667 2015-02-23 22:09:20Z vondreele $</span>
    5959<span class="c">########### SVN repository information ###################</span>
    6060<span class="sd">&#39;&#39;&#39;</span>
     
    6565
    6666<span class="sd">&#39;&#39;&#39;</span>
     67<span class="kn">import</span> <span class="nn">os.path</span>
    6768<span class="kn">import</span> <span class="nn">wx</span>
    6869<span class="kn">import</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">as</span> <span class="nn">wxscroll</span>
     
    7273<span class="kn">import</span> <span class="nn">copy</span>
    7374<span class="kn">import</span> <span class="nn">GSASIIpath</span>
    74 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1472 $&quot;</span><span class="p">)</span>
     75<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1667 $&quot;</span><span class="p">)</span>
    7576<span class="kn">import</span> <span class="nn">GSASIIimage</span> <span class="kn">as</span> <span class="nn">G2img</span>
    7677<span class="kn">import</span> <span class="nn">GSASIImath</span> <span class="kn">as</span> <span class="nn">G2mth</span>
     
    7879<span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span>
    7980<span class="kn">import</span> <span class="nn">GSASIIgrid</span> <span class="kn">as</span> <span class="nn">G2gd</span>
     81<span class="kn">import</span> <span class="nn">GSASIIctrls</span> <span class="kn">as</span> <span class="nn">G2G</span>
    8082<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
    8183
     
    9294<span class="c">##### Image Data</span>
    9395<span class="c">################################################################################</span>
     96
    9497<span class="k">def</span> <span class="nf">UpdateImageData</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span>
    9598   
     
    103106        <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%.3f</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;pixelSize&#39;</span><span class="p">][</span><span class="nb">id</span><span class="p">]))</span>
    104107        <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    105        
    106        
    107108       
    108109    <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">:</span>
     
    146147    <span class="k">if</span> <span class="s">&#39;DetDepth&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
    147148        <span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.</span>
    148         <span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepthRef&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
    149149    <span class="k">if</span> <span class="s">&#39;SampleAbs&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
    150150        <span class="n">data</span><span class="p">[</span><span class="s">&#39;SampleShape&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;Cylinder&#39;</span>
     
    155155        <span class="k">elif</span> <span class="s">&#39;SASD&#39;</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;type&#39;</span><span class="p">]:</span>
    156156            <span class="n">data</span><span class="p">[</span><span class="s">&#39;binType&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;log(q)&#39;</span>
     157    <span class="k">if</span> <span class="s">&#39;varyList&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
     158        <span class="n">data</span><span class="p">[</span><span class="s">&#39;varyList&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;dist&#39;</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">&#39;det-X&#39;</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">&#39;det-Y&#39;</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">&#39;tilt&#39;</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">&#39;phi&#39;</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">&#39;dep&#39;</span><span class="p">:</span><span class="bp">False</span><span class="p">,</span><span class="s">&#39;wave&#39;</span><span class="p">:</span><span class="bp">False</span><span class="p">}</span>
    157159<span class="c">#end patch</span>
    158160   
     
    166168    <span class="k">def</span> <span class="nf">OnRecalibrate</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    167169        <span class="n">G2img</span><span class="o">.</span><span class="n">ImageRecalibrate</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
    168         <span class="n">UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
     170        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
    169171       
    170172    <span class="k">def</span> <span class="nf">OnClearCalib</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     
    176178           
    177179    <span class="k">def</span> <span class="nf">OnIntegrate</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     180        <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">masks</span><span class="p">)</span>
    178181        <span class="n">blkSize</span> <span class="o">=</span> <span class="mi">128</span>   <span class="c">#this seems to be optimal; will break in polymask if &gt;1024</span>
    179182        <span class="n">Nx</span><span class="p">,</span><span class="n">Ny</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;size&#39;</span><span class="p">]</span>
     
    268271                                    <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span>
    269272                                        <span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span><span class="p">,</span> <span class="s">&#39;Masks&#39;</span><span class="p">),</span><span class="n">Masks</span><span class="p">)</span>
     273                                <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">Masks</span><span class="p">)</span>
    270274                                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">backImage</span><span class="p">):</span>                               
    271275                                    <span class="n">G2frame</span><span class="o">.</span><span class="n">Integrate</span> <span class="o">=</span> <span class="n">G2img</span><span class="o">.</span><span class="n">ImageIntegrate</span><span class="p">(</span><span class="n">image</span><span class="o">+</span><span class="n">backImage</span><span class="p">,</span><span class="n">Data</span><span class="p">,</span><span class="n">Masks</span><span class="p">,</span><span class="n">blkSize</span><span class="p">,</span><span class="n">dlgp</span><span class="p">)</span>
     
    336340            <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
    337341                <span class="n">filename</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span>
     342                <span class="c"># make sure extension is .imctrl</span>
     343                <span class="n">filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s">&#39;.imctrl&#39;</span>
    338344                <span class="n">File</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">&#39;w&#39;</span><span class="p">)</span>
    339345                <span class="n">save</span> <span class="o">=</span> <span class="p">{}</span>
     
    384390                <span class="n">data</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">save</span><span class="p">)</span>
    385391                <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span><span class="p">,</span> <span class="s">&#39;Image Controls&#39;</span><span class="p">),</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
    386                 <span class="n">UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
     392                <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
    387393                <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    388394               
     
    512518    <span class="k">def</span> <span class="nf">CalibCoeffSizer</span><span class="p">():</span>
    513519       
    514         <span class="k">def</span> <span class="nf">OnWavelength</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    515             <span class="k">try</span><span class="p">:</span>
    516                 <span class="n">wave</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">waveSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
    517                 <span class="k">if</span> <span class="n">wave</span> <span class="o">&lt;</span> <span class="o">.</span><span class="mo">01</span><span class="p">:</span>
     520        <span class="k">def</span> <span class="nf">OnCalRef</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     521            <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
     522            <span class="n">name</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="p">]</span>
     523            <span class="n">data</span><span class="p">[</span><span class="s">&#39;varyList&#39;</span><span class="p">][</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
     524           
     525        <span class="k">def</span> <span class="nf">OnCalVal</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     526            <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
     527            <span class="n">name</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="p">]</span>
     528            <span class="k">try</span><span class="p">:</span>
     529                <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
     530                <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;wave&#39;</span> <span class="ow">and</span> <span class="n">value</span> <span class="o">&lt;</span> <span class="mf">0.01</span><span class="p">:</span>
    518531                    <span class="k">raise</span> <span class="ne">ValueError</span>
    519                 <span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wave</span>
    520532            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    521                 <span class="k">pass</span>
    522             <span class="n">waveSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%7.5f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">]))</span>          <span class="c">#reset in case of error</span>
    523            
    524         <span class="k">def</span> <span class="nf">OnDetDepthRef</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    525             <span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepthRef&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">penSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
    526            
    527         <span class="k">def</span> <span class="nf">OnDetDepth</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    528             <span class="k">try</span><span class="p">:</span>
    529                 <span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">penVal</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
    530             <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    531                 <span class="k">pass</span>
    532             <span class="n">penVal</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%6.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">]))</span>          <span class="c">#reset in case of error                      </span>
     533                <span class="n">value</span> <span class="o">=</span> <span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
     534            <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;dist&#39;</span><span class="p">:</span>
     535                <span class="n">data</span><span class="p">[</span><span class="s">&#39;distance&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     536            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;det-X&#39;</span><span class="p">:</span>
     537                <span class="n">data</span><span class="p">[</span><span class="s">&#39;center&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     538            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;det-Y&#39;</span><span class="p">:</span>
     539                <span class="n">data</span><span class="p">[</span><span class="s">&#39;center&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     540            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;tilt&#39;</span><span class="p">:</span>
     541                <span class="n">data</span><span class="p">[</span><span class="s">&#39;tilt&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     542            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;phi&#39;</span><span class="p">:</span>
     543                <span class="n">data</span><span class="p">[</span><span class="s">&#39;rotation&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     544            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;wave&#39;</span><span class="p">:</span>
     545                <span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     546            <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;dep&#39;</span><span class="p">:</span>
     547                <span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>                               
     548            <span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
     549            <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">%</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
    533550           
    534551        <span class="n">calibSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
     
    536553        <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    537554        <span class="n">cent</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;center&#39;</span><span class="p">]</span>
    538         <span class="k">for</span> <span class="n">axis</span><span class="p">,</span><span class="n">cnt</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">([</span><span class="s">&#39;X&#39;</span><span class="p">,</span><span class="s">&#39;Y&#39;</span><span class="p">],</span><span class="n">cent</span><span class="p">):</span>
    539             <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Beam center &#39;</span><span class="o">+</span><span class="n">axis</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    540             <span class="n">centText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%7.2f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">cnt</span><span class="p">)),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    541             <span class="n">centText</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    542             <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">centText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>       
    543         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Wavelength&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    544         <span class="n">waveSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%7.5f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">])),</span>
    545             <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
    546         <span class="n">waveSel</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnWavelength</span><span class="p">)</span>
    547         <span class="n">waveSel</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnWavelength</span><span class="p">)</span>
    548         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">waveSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>             
    549         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Distance&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    550         <span class="n">distSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8.2f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;distance&#39;</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    551         <span class="n">distSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    552         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">distSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    553         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Tilt angle&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    554         <span class="n">tiltSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%9.3f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;tilt&#39;</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    555         <span class="n">tiltSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    556         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tiltSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    557         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Tilt rotation&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    558         <span class="n">rotSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%9.3f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;rotation&#39;</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    559         <span class="n">rotSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    560         <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">rotSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
     555        <span class="n">Names</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;det-X&#39;</span><span class="p">,</span><span class="s">&#39;det-Y&#39;</span><span class="p">,</span><span class="s">&#39;wave&#39;</span><span class="p">,</span><span class="s">&#39;dist&#39;</span><span class="p">,</span><span class="s">&#39;tilt&#39;</span><span class="p">,</span><span class="s">&#39;phi&#39;</span><span class="p">]</span>
    561556        <span class="k">if</span> <span class="s">&#39;PWDR&#39;</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;type&#39;</span><span class="p">]:</span>
    562             <span class="n">penSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;Penetration?&#39;</span><span class="p">)</span>
    563             <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">penSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    564             <span class="n">penSel</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span> <span class="n">OnDetDepthRef</span><span class="p">)</span>
    565             <span class="n">penSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepthRef&#39;</span><span class="p">])</span>
    566             <span class="n">penVal</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%6.5f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">])),</span>
    567                 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
    568             <span class="n">penVal</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnDetDepth</span><span class="p">)</span>
    569             <span class="n">penVal</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnDetDepth</span><span class="p">)</span>
    570             <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">penVal</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>             
    571        
     557            <span class="n">Names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;dep&#39;</span><span class="p">)</span>
     558        <span class="n">Parms</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;dist&#39;</span><span class="p">:[</span><span class="s">&#39;Distance&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.3f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;distance&#39;</span><span class="p">]],</span><span class="s">&#39;det-X&#39;</span><span class="p">:[</span><span class="s">&#39;Beam center X&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.3f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;center&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]],</span>
     559            <span class="s">&#39;det-Y&#39;</span><span class="p">:[</span><span class="s">&#39;Beam center X&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.3f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;center&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">]],</span><span class="s">&#39;tilt&#39;</span><span class="p">:[</span><span class="s">&#39;Tilt angle&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.3f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;tilt&#39;</span><span class="p">]],</span>
     560            <span class="s">&#39;phi&#39;</span><span class="p">:[</span><span class="s">&#39;Tilt rotation&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.2f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;rotation&#39;</span><span class="p">]],</span><span class="s">&#39;dep&#39;</span><span class="p">:[</span><span class="s">&#39;Penetration&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.2f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;DetDepth&#39;</span><span class="p">]],</span>
     561            <span class="s">&#39;wave&#39;</span><span class="p">:[</span><span class="s">&#39;Wavelength&#39;</span><span class="p">,</span><span class="s">&#39;</span><span class="si">%.6f</span><span class="s">&#39;</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">]]}</span>
     562        <span class="n">Indx</span> <span class="o">=</span> <span class="p">{}</span>
     563        <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">Names</span><span class="p">:</span>
     564            <span class="n">calSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
     565            <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">calSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
     566            <span class="n">calSel</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span> <span class="n">OnCalRef</span><span class="p">)</span>
     567            <span class="n">calSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;varyList&#39;</span><span class="p">][</span><span class="n">name</span><span class="p">])</span>
     568            <span class="n">Indx</span><span class="p">[</span><span class="n">calSel</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
     569            <span class="n">calVal</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">%</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
     570            <span class="n">calVal</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnCalVal</span><span class="p">)</span>
     571            <span class="n">calVal</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnCalVal</span><span class="p">)</span>
     572            <span class="n">Indx</span><span class="p">[</span><span class="n">calVal</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
     573            <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">calVal</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    572574        <span class="k">return</span> <span class="n">calibSizer</span>
    573575   
     
    576578        <span class="k">def</span> <span class="nf">OnNewBinType</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    577579            <span class="n">data</span><span class="p">[</span><span class="s">&#39;binType&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">binSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
     580            <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
    578581       
    579582        <span class="k">def</span> <span class="nf">OnIOtth</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     
    582585            <span class="k">if</span> <span class="n">Ltth</span> <span class="o">&gt;</span> <span class="n">Utth</span><span class="p">:</span>
    583586                <span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span> <span class="o">=</span> <span class="n">Utth</span><span class="p">,</span><span class="n">Ltth</span>
    584             <span class="n">data</span><span class="p">[</span><span class="s">&#39;IOtth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span><span class="p">]</span>
     587            <span class="k">if</span> <span class="s">&#39;q&#39;</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;binType&#39;</span><span class="p">]:</span>
     588                <span class="n">data</span><span class="p">[</span><span class="s">&#39;IOtth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.</span><span class="o">*</span><span class="n">asind</span><span class="p">(</span><span class="n">Ltth</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">)),</span><span class="mf">2.</span><span class="o">*</span><span class="n">asind</span><span class="p">(</span><span class="n">Utth</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">))]</span>
     589            <span class="k">else</span><span class="p">:</span>
     590                <span class="n">data</span><span class="p">[</span><span class="s">&#39;IOtth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span><span class="p">]</span>
    585591            <span class="n">G2frame</span><span class="o">.</span><span class="n">InnerTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Ltth</span><span class="p">))</span>
    586             <span class="n">G2frame</span><span class="o">.</span><span class="n">OuterTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8.2f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Utth</span><span class="p">))</span>
     592            <span class="n">G2frame</span><span class="o">.</span><span class="n">OuterTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Utth</span><span class="p">))</span>
    587593            <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    588594       
     
    672678                <span class="n">data</span><span class="p">[</span><span class="s">&#39;fullIntegrate&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span>
    673679                <span class="n">data</span><span class="p">[</span><span class="s">&#39;LRazimuth&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Lazm</span><span class="p">,</span><span class="n">Lazm</span><span class="o">+</span><span class="mi">360</span><span class="p">]</span>
    674             <span class="n">UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
     680            <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>
    675681            <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    676682           
     
    719725        <span class="n">binSel</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">,</span> <span class="n">OnNewBinType</span><span class="p">)</span>
    720726        <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">binSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    721         <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Inner/Outer 2-theta&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>           
    722         <span class="n">IOtth</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;IOtth&#39;</span><span class="p">]</span>
     727        <span class="n">binType</span> <span class="o">=</span> <span class="s">&#39;2-theta&#39;</span>
     728        <span class="k">if</span> <span class="s">&#39;q&#39;</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;binType&#39;</span><span class="p">]:</span>
     729            <span class="n">binType</span> <span class="o">=</span> <span class="s">&#39;q&#39;</span>
     730        <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Inner/Outer &#39;</span><span class="o">+</span><span class="n">binType</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>           
     731        <span class="n">IOtth</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;IOtth&#39;</span><span class="p">][:]</span>
     732        <span class="k">if</span> <span class="s">&#39;q&#39;</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;binType&#39;</span><span class="p">]:</span>
     733            <span class="n">wave</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;wavelength&#39;</span><span class="p">]</span>
     734            <span class="n">IOtth</span> <span class="o">=</span> <span class="p">[</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">IOtth</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">wave</span><span class="p">,</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">IOtth</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">wave</span><span class="p">]</span>
    723735        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
    724736        <span class="n">G2frame</span><span class="o">.</span><span class="n">InnerTth</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
     
    10661078<span class="c">################################################################################</span>
    10671079<span class="c">##### Masks</span>
    1068 <span class="c">################################################################################</span>
     1080<span class="c">################################################################################</span></div>
     1081<div class="viewcode-block" id="CleanupMasks"><a class="viewcode-back" href="../GSASIIGUI.html#GSASIIimgGUI.CleanupMasks">[docs]</a><span class="k">def</span> <span class="nf">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
     1082    <span class="sd">&#39;&#39;&#39;If a mask creation is not completed, an empty mask entry is created in the</span>
     1083<span class="sd">    masks array. This cleans them out. It is called when the masks page is first loaded</span>
     1084<span class="sd">    and before saving them or after reading them in. This should also probably be done</span>
     1085<span class="sd">    before they are used for integration.</span>
     1086<span class="sd">    &#39;&#39;&#39;</span>
     1087    <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">,</span><span class="s">&#39;Rings&#39;</span><span class="p">,</span><span class="s">&#39;Arcs&#39;</span><span class="p">,</span><span class="s">&#39;Polygons&#39;</span><span class="p">]:</span>
     1088        <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">,[])</span>
     1089        <span class="n">l1</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
     1090        <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">if</span> <span class="n">i</span><span class="p">]</span>
     1091        <span class="n">l2</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
     1092        <span class="k">if</span> <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">GetConfigValue</span><span class="p">(</span><span class="s">&#39;debug&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">l1</span> <span class="o">!=</span> <span class="n">l2</span><span class="p">:</span>
     1093            <span class="k">print</span> <span class="s">&#39;Mask Cleanup:&#39;</span><span class="p">,</span><span class="n">key</span><span class="p">,</span><span class="s">&#39;was&#39;</span><span class="p">,</span><span class="n">l1</span><span class="p">,</span><span class="s">&#39;entries&#39;</span><span class="p">,</span><span class="s">&#39;now&#39;</span><span class="p">,</span><span class="n">l2</span>
    10691094    </div>
    10701095<div class="viewcode-block" id="UpdateMasks"><a class="viewcode-back" href="../GSASIIGUI.html#GSASIIimgGUI.UpdateMasks">[docs]</a><span class="k">def</span> <span class="nf">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span>
    1071     <span class="sd">&#39;&#39;&#39;Shows and handles the controls on the &quot;Masks&quot;</span>
    1072 <span class="sd">    data tree entry</span>
     1096    <span class="sd">&#39;&#39;&#39;Shows and handles the controls on the &quot;Masks&quot; data tree entry</span>
    10731097<span class="sd">    &#39;&#39;&#39;</span>
    10741098   
     
    10761100        <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    10771101        <span class="n">Obj</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&#39;Drag this mask on 2D Powder Image with mouse to change &#39;</span><span class="p">)</span>
    1078        
    1079     <span class="k">def</span> <span class="nf">OnThreshold</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1080         <span class="k">try</span><span class="p">:</span>
    1081             <span class="n">lower</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">lowerThreshold</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
    1082         <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    1083             <span class="n">lower</span> <span class="o">=</span> <span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
    1084         <span class="k">try</span><span class="p">:</span>
    1085             <span class="n">upper</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">upperThreshold</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
    1086         <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    1087             <span class="n">upper</span> <span class="o">=</span> <span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
    1088         <span class="n">data</span><span class="p">[</span><span class="s">&#39;Thresholds&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">lower</span><span class="p">,</span><span class="n">upper</span><span class="p">]</span>
    1089         <span class="n">lowerThreshold</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">lower</span><span class="p">))</span>
    1090         <span class="n">upperThreshold</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">upper</span><span class="p">))</span>
     1102
     1103    <span class="k">def</span> <span class="nf">Replot</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
     1104        <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>       
     1105
     1106    <span class="k">def</span> <span class="nf">onDeleteMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     1107        <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
     1108        <span class="n">typ</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">locationcode</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;+&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
     1109        <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">locationcode</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;+&#39;</span><span class="p">)[</span><span class="mi">2</span><span class="p">])</span>
     1110        <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">typ</span><span class="p">][</span><span class="n">num</span><span class="p">])</span>
     1111        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    10911112        <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1092        
    1093     <span class="k">def</span> <span class="nf">OnSpotDiameter</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1094         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1095         <span class="k">try</span><span class="p">:</span>
    1096             <span class="n">diameter</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.1</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span>
    1097         <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    1098             <span class="n">diameter</span> <span class="o">=</span> <span class="mf">1.0</span>
    1099         <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.2f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">diameter</span><span class="p">))</span>
    1100         <span class="n">data</span><span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">][</span><span class="n">spotIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">diameter</span>
    1101         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1102        
    1103     <span class="k">def</span> <span class="nf">OnDeleteSpot</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1104         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1105         <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">][</span><span class="n">delSpotId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span>
    1106         <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    1107         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1108        
    1109     <span class="k">def</span> <span class="nf">OnRingThickness</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1110         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1111         <span class="k">try</span><span class="p">:</span>
    1112             <span class="n">thick</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">1.0</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span>
    1113         <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    1114             <span class="n">thick</span> <span class="o">=</span> <span class="mf">0.1</span>
    1115         <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">thick</span><span class="p">))</span>
    1116         <span class="n">data</span><span class="p">[</span><span class="s">&#39;Rings&#39;</span><span class="p">][</span><span class="n">ringIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">thick</span>
    1117         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1118        
    1119     <span class="k">def</span> <span class="nf">OnDeleteRing</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1120         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1121         <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;Rings&#39;</span><span class="p">][</span><span class="n">delRingId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span>
    1122         <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    1123         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1124 
    1125     <span class="k">def</span> <span class="nf">OnArcThickness</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1126         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1127         <span class="k">try</span><span class="p">:</span>
    1128             <span class="n">thick</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">20.0</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span>
    1129         <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
    1130             <span class="n">thick</span> <span class="o">=</span> <span class="mf">0.1</span>
    1131         <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">thick</span><span class="p">))</span>
    1132         <span class="n">data</span><span class="p">[</span><span class="s">&#39;Arcs&#39;</span><span class="p">][</span><span class="n">arcIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">thick</span>
    1133         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1134        
    1135     <span class="k">def</span> <span class="nf">OnDeleteArc</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1136         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1137         <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;Arcs&#39;</span><span class="p">][</span><span class="n">delArcId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span>
    1138         <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    1139         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1140 
    1141     <span class="k">def</span> <span class="nf">OnDeletePoly</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    1142         <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
    1143         <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">&#39;Polygons&#39;</span><span class="p">][</span><span class="n">delPolyId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span>
    1144         <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    1145         <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    1146 
    1147     <span class="k">def</span> <span class="nf">OnDeleteFrame</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     1113
     1114    <span class="k">def</span> <span class="nf">onDeleteFrame</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    11481115        <span class="n">data</span><span class="p">[</span><span class="s">&#39;Frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
    1149         <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
     1116        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    11501117        <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
    11511118
     
    11621129                        <span class="n">Source</span> <span class="o">=</span> <span class="n">name</span>
    11631130                        <span class="n">Mask</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;Masks&#39;</span><span class="p">)))</span>
    1164                         <span class="n">Mask</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;Thresholds&#39;</span><span class="p">)</span>  <span class="c">#remove Thresholds from source mask</span>
     1131                        <span class="n">Thresh</span> <span class="o">=</span> <span class="n">Mask</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;Thresholds&#39;</span><span class="p">)</span>  <span class="c">#remove Thresholds from source mask &amp; save it for later</span>
    11651132                    <span class="k">else</span><span class="p">:</span>
    11661133                        <span class="n">TextList</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="bp">False</span><span class="p">,</span><span class="n">name</span><span class="p">,</span><span class="nb">id</span><span class="p">])</span>
     
    11821149<span class="c">#                            Mask[&#39;Thresholds&#39;][0] = mask[&#39;Thresholds&#39;][0]</span>
    11831150<span class="c">#                            Mask[&#39;Thresholds&#39;][1][1] = min(mask[&#39;Thresholds&#39;][1][1],Mask[&#39;Thresholds&#39;][1][1])</span>
    1184                             <span class="n">mask</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">Mask</span><span class="p">)</span>                               
     1151                            <span class="n">mask</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">Mask</span><span class="p">)</span>
     1152                            <span class="n">mask</span><span class="p">[</span><span class="s">&#39;Thresholds&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">Thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>  <span class="c">#copy only lower threshold                             </span>
    11851153                            <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;Masks&#39;</span><span class="p">),</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">mask</span><span class="p">))</span>
    11861154            <span class="k">finally</span><span class="p">:</span>
     
    11881156               
    11891157    <span class="k">def</span> <span class="nf">OnSaveMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     1158        <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
    11901159        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span> <span class="s">&#39;Choose image mask file&#39;</span><span class="p">,</span> <span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span>
    11911160            <span class="s">&#39;image mask files (*.immask)|*.immask&#39;</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">FD_SAVE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">FD_OVERWRITE_PROMPT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span>
     
    12031172       
    12041173    <span class="k">def</span> <span class="nf">OnLoadMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     1174        <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">Id</span> <span class="o">==</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOADNOT</span><span class="p">:</span>
     1175            <span class="n">ignoreThreshold</span> <span class="o">=</span> <span class="bp">True</span>
     1176        <span class="k">else</span><span class="p">:</span>
     1177            <span class="n">ignoreThreshold</span> <span class="o">=</span> <span class="bp">False</span>
    12051178        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span> <span class="s">&#39;Choose image mask file&#39;</span><span class="p">,</span> <span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span>
    12061179            <span class="s">&#39;image mask files (*.immask)|*.immask&#39;</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">OPEN</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span>
     
    12181191                    <span class="p">[</span><span class="n">key</span><span class="p">,</span><span class="n">val</span><span class="p">]</span> <span class="o">=</span> <span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)</span>
    12191192                    <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">,</span><span class="s">&#39;Rings&#39;</span><span class="p">,</span><span class="s">&#39;Arcs&#39;</span><span class="p">,</span><span class="s">&#39;Polygons&#39;</span><span class="p">,</span><span class="s">&#39;Frames&#39;</span><span class="p">,</span><span class="s">&#39;Thresholds&#39;</span><span class="p">]:</span>
     1193                        <span class="k">if</span> <span class="n">ignoreThreshold</span> <span class="ow">and</span> <span class="n">key</span> <span class="o">==</span> <span class="s">&#39;Thresholds&#39;</span><span class="p">:</span>
     1194                            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
     1195                            <span class="k">continue</span>
    12201196                        <span class="n">save</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="n">val</span><span class="p">)</span>
    12211197                        <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s">&#39;Thresholds&#39;</span><span class="p">:</span>
     
    12231199                            <span class="n">save</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">oldThreshold</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">save</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
    12241200                    <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
     1201                <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    12251202                <span class="n">data</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">save</span><span class="p">)</span>
    1226                 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
     1203                <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
     1204                <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>
    12271205                <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>               
    1228                 <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    12291206        <span class="k">finally</span><span class="p">:</span>
    12301207            <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
     
    12541231        <span class="n">G2frame</span><span class="o">.</span><span class="n">MaskKey</span> <span class="o">=</span> <span class="s">&#39;f&#39;</span>
    12551232        <span class="n">G2plt</span><span class="o">.</span><span class="n">OnStartMask</span><span class="p">(</span><span class="n">G2frame</span><span class="p">)</span>
    1256                
     1233
     1234    <span class="n">startScroll</span> <span class="o">=</span> <span class="bp">None</span>
    12571235    <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">:</span>
     1236        <span class="n">startScroll</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">GetScrollPos</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span> <span class="c"># save scroll position</span>
    12581237        <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
     1238    <span class="k">else</span><span class="p">:</span>
     1239        <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="c"># posting page for 1st time; clean out anything unfinished</span>
    12591240    <span class="n">G2gd</span><span class="o">.</span><span class="n">SetDataMenuBar</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">MaskMenu</span><span class="p">)</span>
    12601241    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnCopyMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKCOPY</span><span class="p">)</span>
    12611242    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnLoadMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOAD</span><span class="p">)</span>
     1243    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnLoadMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOADNOT</span><span class="p">)</span>
    12621244    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnSaveMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKSAVE</span><span class="p">)</span>
    12631245    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnNewSpotMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_NEWMASKSPOT</span><span class="p">)</span>
     
    12791261        <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">&#39;Ring mask active - LB pick ring location&#39;</span><span class="p">)</span>
    12801262    <span class="k">else</span><span class="p">:</span>
    1281         <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">&quot;To add mask: On 2D Powder Image, key a:arc, r:ring, s:spot, p:polygon, f:frame&quot;</span><span class="p">)</span>
    1282     <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span>
     1263        <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">&quot;To add mask: press a,r,s,p or f on 2D image for arc/ring/spot/polygon/frame&quot;</span><span class="p">)</span>
     1264    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">wxscroll</span><span class="o">.</span><span class="n">ScrolledPanel</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span>
    12831265    <span class="n">mainSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
    12841266    <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">10</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    12851267
    12861268    <span class="n">thresh</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Thresholds&#39;</span><span class="p">]</span>         <span class="c">#min/max intensity range</span>
    1287     <span class="n">spots</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">]</span>               <span class="c">#x,y,radius in mm</span>
    1288     <span class="n">rings</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Rings&#39;</span><span class="p">]</span>               <span class="c">#radius, thickness</span>
    1289     <span class="n">polygons</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Polygons&#39;</span><span class="p">]</span>         <span class="c">#3+ x,y pairs</span>
     1269    <span class="n">Spots</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Points&#39;</span><span class="p">]</span>               <span class="c">#x,y,radius in mm</span>
     1270    <span class="n">Rings</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Rings&#39;</span><span class="p">]</span>               <span class="c">#radius, thickness</span>
     1271    <span class="n">Polygons</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Polygons&#39;</span><span class="p">]</span>         <span class="c">#3+ x,y pairs</span>
    12901272    <span class="k">if</span> <span class="s">&#39;Frames&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
    12911273        <span class="n">data</span><span class="p">[</span><span class="s">&#39;Frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
    12921274    <span class="n">frame</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Frames&#39;</span><span class="p">]</span>             <span class="c">#3+ x,y pairs</span>
    1293     <span class="n">arcs</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Arcs&#39;</span><span class="p">]</span>                 <span class="c">#radius, start/end azimuth, thickness</span>
     1275    <span class="n">Arcs</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">&#39;Arcs&#39;</span><span class="p">]</span>                 <span class="c">#radius, start/end azimuth, thickness</span>
    12941276   
    12951277    <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    12961278    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Lower/Upper limits &#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1297     <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
     1279    <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    12981280    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Text</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    12991281    <span class="n">Text</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    1300     <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
     1282    <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    13011283    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Text</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13021284    <span class="n">Text</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    13031285    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Lower/Upper thresholds &#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1304     <span class="n">lowerThreshold</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
    1305         <span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
    1306     <span class="n">lowerThreshold</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span>
    1307     <span class="n">lowerThreshold</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span>
     1286    <span class="n">lowerThreshold</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
     1287                                           <span class="nb">min</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
    13081288    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lowerThreshold</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1309     <span class="n">upperThreshold</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
    1310         <span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%8d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
    1311     <span class="n">upperThreshold</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span>
    1312     <span class="n">upperThreshold</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span>
     1289    <span class="n">upperThreshold</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
     1290                                           <span class="nb">max</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
    13131291    <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">upperThreshold</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13141292    <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    1315     <span class="n">spotIds</span> <span class="o">=</span> <span class="p">[]</span>
    1316     <span class="n">delSpotId</span> <span class="o">=</span> <span class="p">[]</span>
    1317     <span class="k">if</span> <span class="n">spots</span><span class="p">:</span>
     1293    <span class="k">if</span> <span class="n">Spots</span><span class="p">:</span>
     1294        <span class="n">lbl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Spot masks&#39;</span><span class="p">)</span>
     1295        <span class="n">lbl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span>
     1296        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    13181297        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    1319         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Spot masks:&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1320         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1321         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    13221298        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; position, mm&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13231299        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; diameter, mm&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13241300        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1325         <span class="k">for</span> <span class="n">spot</span> <span class="ow">in</span> <span class="n">spots</span><span class="p">:</span>
    1326             <span class="k">if</span> <span class="n">spot</span><span class="p">:</span>
    1327                 <span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">d</span> <span class="o">=</span> <span class="n">spot</span>
     1301        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Spots</span><span class="p">)):</span>
     1302            <span class="k">if</span> <span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
     1303                <span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">d</span> <span class="o">=</span> <span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
    13281304                <span class="n">spotText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.2f</span><span class="s">,</span><span class="si">%.2f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)),</span>
    13291305                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
     
    13311307                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13321308                <span class="n">spotText</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span>
    1333                 <span class="n">spotDiameter</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.2f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">d</span><span class="p">)),</span>
    1334                     <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
     1309                <span class="n">spotDiameter</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
     1310                                           <span class="nb">max</span><span class="o">=</span><span class="mf">100.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span>
    13351311                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotDiameter</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1336                 <span class="n">spotDiameter</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnSpotDiameter</span><span class="p">)</span>
    1337                 <span class="n">spotDiameter</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnSpotDiameter</span><span class="p">)</span>
    1338                 <span class="n">spotIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">spotDiameter</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
    1339                 <span class="n">spotDelete</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">)</span>
    1340                 <span class="n">spotDelete</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span><span class="n">OnDeleteSpot</span><span class="p">)</span>
    1341                 <span class="n">delSpotId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">spotDelete</span><span class="p">)</span>
     1312                <span class="n">spotDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">,</span>
     1313                                            <span class="n">locationcode</span><span class="o">=</span><span class="s">&#39;Delete+Points+&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
     1314                                            <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span>
    13421315                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13431316        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    1344     <span class="n">ringIds</span> <span class="o">=</span> <span class="p">[]</span>
    1345     <span class="n">delRingId</span> <span class="o">=</span> <span class="p">[]</span>
    1346     <span class="k">if</span> <span class="n">rings</span><span class="p">:</span>
     1317    <span class="k">if</span> <span class="n">Rings</span><span class="p">:</span>
     1318        <span class="n">lbl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Ring masks&#39;</span><span class="p">)</span>
     1319        <span class="n">lbl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span>
     1320        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    13471321        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    1348         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Ring masks:&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1349         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1350         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    13511322        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; 2-theta,deg&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13521323        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; thickness, deg&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13531324        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1354         <span class="k">for</span> <span class="n">ring</span> <span class="ow">in</span> <span class="n">rings</span><span class="p">:</span>
    1355             <span class="k">if</span> <span class="n">ring</span><span class="p">:</span>
    1356                 <span class="n">tth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n">ring</span>
    1357                 <span class="n">ringText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">tth</span><span class="p">)),</span>
     1325        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Rings</span><span class="p">)):</span>
     1326            <span class="k">if</span> <span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
     1327                <span class="n">ringText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span>
    13581328                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
    13591329                <span class="n">ringText</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span>
    13601330                <span class="n">ringText</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span>
    13611331                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1362                 <span class="n">ringThick</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thick</span><span class="p">)),</span>
    1363                     <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
     1332                <span class="n">ringThick</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
     1333                                           <span class="nb">min</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">max</span><span class="o">=</span><span class="mf">1.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span>
    13641334                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringThick</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1365                 <span class="n">ringThick</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnRingThickness</span><span class="p">)</span>
    1366                 <span class="n">ringThick</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnRingThickness</span><span class="p">)</span>
    1367                 <span class="n">ringIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ringThick</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
    1368                 <span class="n">ringDelete</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">)</span>
    1369                 <span class="n">ringDelete</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span><span class="n">OnDeleteRing</span><span class="p">)</span>
    1370                 <span class="n">delRingId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ringDelete</span><span class="p">)</span>
     1335                <span class="n">ringDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">,</span>
     1336                                            <span class="n">locationcode</span><span class="o">=</span><span class="s">&#39;Delete+Rings+&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
     1337                                            <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span>
    13711338                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13721339        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    1373     <span class="n">arcIds</span> <span class="o">=</span> <span class="p">[]</span>
    1374     <span class="n">delArcId</span> <span class="o">=</span> <span class="p">[]</span>
    1375     <span class="k">if</span> <span class="n">arcs</span><span class="p">:</span>
     1340    <span class="k">if</span> <span class="n">Arcs</span><span class="p">:</span>
     1341        <span class="n">lbl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Arc masks&#39;</span><span class="p">)</span>
     1342        <span class="n">lbl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span>
     1343        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    13761344        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    1377         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Arc masks:&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1378         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1379         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1380         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    13811345        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; 2-theta,deg&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13821346        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; azimuth, deg&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13831347        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; thickness, deg&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    13841348        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1385         <span class="k">for</span> <span class="n">arc</span> <span class="ow">in</span> <span class="n">arcs</span><span class="p">:</span>
    1386             <span class="k">if</span> <span class="n">arc</span><span class="p">:</span>
    1387                 <span class="n">tth</span><span class="p">,</span><span class="n">azimuth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n">arc</span>
     1349        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Arcs</span><span class="p">)):</span>
     1350            <span class="k">if</span> <span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
     1351                <span class="n">tth</span><span class="p">,</span><span class="n">azimuth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
    13881352                <span class="n">arcText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">tth</span><span class="p">)),</span>
    13891353                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>
     
    13961360                <span class="n">azmText</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span>
    13971361                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">azmText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1398                 <span class="n">arcThick</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.3f</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">thick</span><span class="p">)),</span>
    1399                     <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>
     1362                <span class="n">arcThick</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
     1363                                           <span class="nb">min</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">max</span><span class="o">=</span><span class="mf">20.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span>
    14001364                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">arcThick</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1401                 <span class="n">arcThick</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnArcThickness</span><span class="p">)</span>
    1402                 <span class="n">arcThick</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnArcThickness</span><span class="p">)</span>
    1403                 <span class="n">arcIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arcThick</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
    1404                 <span class="n">arcDelete</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">)</span>
    1405                 <span class="n">arcDelete</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span><span class="n">OnDeleteArc</span><span class="p">)</span>
    1406                 <span class="n">delArcId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arcDelete</span><span class="p">)</span>
     1365                <span class="n">arcDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">,</span>
     1366                                            <span class="n">locationcode</span><span class="o">=</span><span class="s">&#39;Delete+Arcs+&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
     1367                                            <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span>
    14071368                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">arcDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    14081369        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    1409     <span class="n">polyIds</span> <span class="o">=</span> <span class="p">[]</span>
    1410     <span class="n">delPolyId</span> <span class="o">=</span> <span class="p">[]</span>
    1411     <span class="n">delFrameId</span> <span class="o">=</span> <span class="p">[]</span>
    1412     <span class="k">if</span> <span class="n">polygons</span><span class="p">:</span>
     1370    <span class="k">if</span> <span class="n">Polygons</span><span class="p">:</span>
     1371        <span class="n">lbl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
     1372            <span class="n">label</span><span class="o">=</span><span class="s">&#39; Polygon masks (on plot RB vertex drag to move,</span><span class="se">\n</span><span class="s">LB vertex drag to insert)&#39;</span><span class="p">)</span>
     1373        <span class="n">lbl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span>
     1374        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    14131375        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    1414         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Polygon masks:&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1415         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    1416         <span class="k">for</span> <span class="n">polygon</span> <span class="ow">in</span> <span class="n">polygons</span><span class="p">:</span>
    1417             <span class="k">if</span> <span class="n">polygon</span><span class="p">:</span>
     1376        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Polygons</span><span class="p">)):</span>
     1377            <span class="k">if</span> <span class="n">Polygons</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
    14181378                <span class="n">polyList</span> <span class="o">=</span> <span class="p">[]</span>
    1419                 <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n">polygon</span><span class="p">:</span>
     1379                <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n">Polygons</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
    14201380                    <span class="n">polyList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.2f</span><span class="s">, </span><span class="si">%.2f</span><span class="s">&quot;</span><span class="o">%</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">))</span>
    14211381                <span class="n">polyText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="n">polyList</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">choices</span><span class="o">=</span><span class="n">polyList</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
    14221382                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">polyText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1423                 <span class="n">polyDelete</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">)</span>
    1424                 <span class="n">polyDelete</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span><span class="n">OnDeletePoly</span><span class="p">)</span>
    1425                 <span class="n">delPolyId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">polyDelete</span><span class="p">)</span>
     1383                <span class="n">polyDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">,</span>
     1384                                            <span class="n">locationcode</span><span class="o">=</span><span class="s">&#39;Delete+Polygons+&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
     1385                                            <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span>
    14261386                <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">polyDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    14271387        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    14281388    <span class="k">if</span> <span class="n">frame</span><span class="p">:</span>
     1389        <span class="n">lbl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
     1390            <span class="n">label</span><span class="o">=</span><span class="s">&#39; Frame mask (on plot RB vertex drag to move,LB vertex drag to insert)&#39;</span><span class="p">)</span>
     1391        <span class="n">lbl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span>
     1392        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    14291393        <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    1430         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Frame mask:&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span>
    1431             <span class="n">WACV</span><span class="p">)</span>
    1432         <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>
    14331394        <span class="n">frameList</span> <span class="o">=</span> <span class="p">[]</span>
    14341395        <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n">frame</span><span class="p">:</span>
     
    14361397        <span class="n">frameText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="n">frameList</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">choices</span><span class="o">=</span><span class="n">frameList</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
    14371398        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">frameText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1438         <span class="n">frameDelete</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">)</span>
    1439         <span class="n">frameDelete</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span><span class="n">OnDeleteFrame</span><span class="p">)</span>
    1440         <span class="n">delFrameId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frameDelete</span><span class="p">)</span>
     1399        <span class="n">frameDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39;delete?&#39;</span><span class="p">,</span>
     1400                                            <span class="n">locationcode</span><span class="o">=</span><span class="s">&#39;Delete+Frame&#39;</span><span class="p">,</span>
     1401                                            <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteFrame</span><span class="p">)</span>
    14411402        <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">frameDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    14421403        <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span>
    1443     <span class="k">if</span> <span class="p">(</span><span class="n">frame</span> <span class="ow">or</span> <span class="n">polygons</span><span class="p">):</span>
    1444         <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>
    1445             <span class="n">label</span><span class="o">=</span><span class="s">&#39; For frame and polygons: on plot RB vertex drag to move, LB vertex drag to insert&#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    14461404    <span class="n">mainSizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>   
    14471405    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">mainSizer</span><span class="p">)</span>
    14481406    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">mainSizer</span><span class="o">.</span><span class="n">Fit</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">))</span>
     1407    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>
    14491408    <span class="n">Size</span> <span class="o">=</span> <span class="n">mainSizer</span><span class="o">.</span><span class="n">Fit</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span>
    1450     <span class="n">Size</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">450</span>
     1409    <span class="n">Size</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">50</span> <span class="c"># room for scrollbar &amp; status msg</span>
     1410    <span class="n">Size</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">Size</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="mi">500</span><span class="p">)</span>
     1411    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span>
    14511412    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">setSizePosLeft</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span>   
     1413    <span class="n">wx</span><span class="o">.</span><span class="n">Yield</span><span class="p">()</span>
     1414    <span class="k">if</span> <span class="n">startScroll</span><span class="p">:</span> <span class="c"># reset scroll to saved position</span>
     1415        <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">Scroll</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">startScroll</span><span class="p">)</span> <span class="c"># set to saved scroll position</span>
     1416        <span class="n">wx</span><span class="o">.</span><span class="n">Yield</span><span class="p">()</span>
    14521417
    14531418<span class="c">################################################################################</span>
     
    15501515        <span class="k">finally</span><span class="p">:</span>
    15511516            <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
    1552 
     1517           
     1518    <span class="k">def</span> <span class="nf">OnStrStaSample</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
     1519        <span class="n">filename</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
     1520        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span> <span class="s">&#39;Choose multihistogram metadata text file&#39;</span><span class="p">,</span> <span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span>
     1521            <span class="s">&#39;metadata file (*.*)|*.*&#39;</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">OPEN</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span>
     1522        <span class="k">try</span><span class="p">:</span>
     1523            <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
     1524                <span class="n">filename</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span>
     1525                <span class="n">File</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">&#39;r&#39;</span><span class="p">)</span>
     1526                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
     1527                <span class="n">newItems</span> <span class="o">=</span> <span class="p">[]</span>
     1528                <span class="n">itemNames</span> <span class="o">=</span> <span class="p">[]</span>
     1529                <span class="n">Comments</span> <span class="o">=</span> <span class="p">[]</span>
     1530                <span class="k">while</span> <span class="n">S</span><span class="p">:</span>
     1531                    <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
     1532                        <span class="n">Comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
     1533                        <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
     1534                        <span class="k">continue</span>
     1535                    <span class="n">S</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">,</span><span class="s">&#39; &#39;</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\t</span><span class="s">&#39;</span><span class="p">,</span><span class="s">&#39; &#39;</span><span class="p">)</span>
     1536                    <span class="n">Stuff</span> <span class="o">=</span> <span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
     1537                    <span class="n">itemNames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Stuff</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
     1538                    <span class="n">newItems</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Stuff</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
     1539                    <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>               
     1540                <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
     1541        <span class="k">finally</span><span class="p">:</span>
     1542            <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
     1543        <span class="k">if</span> <span class="ow">not</span> <span class="n">filename</span><span class="p">:</span>
     1544            <span class="n">G2frame</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span><span class="s">&#39;Nothing to do&#39;</span><span class="p">,</span><span class="s">&#39;No file selected&#39;</span><span class="p">)</span>
     1545            <span class="k">return</span>
     1546        <span class="n">dataDict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">itemNames</span><span class="p">,</span><span class="n">newItems</span><span class="p">))</span>
     1547        <span class="n">ifany</span> <span class="o">=</span> <span class="bp">False</span>
     1548        <span class="n">Names</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39; &#39;</span><span class="p">,</span><span class="s">&#39;Sample phi&#39;</span><span class="p">,</span><span class="s">&#39;Sample z&#39;</span><span class="p">,</span><span class="s">&#39;Sample load&#39;</span><span class="p">]</span>
     1549        <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2ColumnIDDialog</span><span class="p">(</span> <span class="n">G2frame</span><span class="p">,</span><span class="s">&#39; Choose multihistogram metadata columns:&#39;</span><span class="p">,</span>
     1550            <span class="s">&#39;Select columns&#39;</span><span class="p">,</span><span class="n">Comments</span><span class="p">,</span><span class="n">Names</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">newItems</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">)</span>
     1551        <span class="k">try</span><span class="p">:</span>
     1552            <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
     1553                <span class="n">colNames</span><span class="p">,</span><span class="n">newData</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
     1554                <span class="n">dataDict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">itemNames</span><span class="p">,</span><span class="n">newData</span><span class="o">.</span><span class="n">T</span><span class="p">))</span>
     1555                <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">colNames</span><span class="p">:</span>
     1556                    <span class="k">if</span> <span class="n">item</span> <span class="o">!=</span> <span class="s">&#39; &#39;</span><span class="p">:</span>
     1557                        <span class="n">ifany</span> <span class="o">=</span> <span class="bp">True</span>
     1558        <span class="k">finally</span><span class="p">:</span>
     1559            <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
     1560        <span class="k">if</span> <span class="ow">not</span> <span class="n">ifany</span><span class="p">:</span>
     1561            <span class="n">G2frame</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span><span class="s">&#39;Nothing to do&#39;</span><span class="p">,</span><span class="s">&#39;No columns identified&#39;</span><span class="p">)</span>
     1562            <span class="k">return</span>
     1563        <span class="n">histList</span> <span class="o">=</span> <span class="p">[]</span>
     1564        <span class="n">item</span><span class="p">,</span> <span class="n">cookie</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetFirstChild</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">)</span>       
     1565        <span class="k">while</span> <span class="n">item</span><span class="p">:</span>
     1566            <span class="n">name</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
     1567            <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;IMG&#39;</span><span class="p">):</span>
     1568                <span class="n">histList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
     1569            <span class="n">item</span><span class="p">,</span> <span class="n">cookie</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetNextChild</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span> <span class="n">cookie</span><span class="p">)</span>
     1570        <span class="n">colIds</span> <span class="o">=</span> <span class="p">{}</span>
     1571        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">colNames</span><span class="p">):</span>
     1572            <span class="k">if</span> <span class="n">name</span> <span class="o">!=</span> <span class="s">&#39; &#39;</span><span class="p">:</span>
     1573                <span class="n">colIds</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
     1574        <span class="k">for</span> <span class="n">hist</span> <span class="ow">in</span> <span class="n">histList</span><span class="p">:</span>
     1575            <span class="n">name</span> <span class="o">=</span> <span class="n">hist</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span>  <span class="c">#this is file name</span>
     1576            <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">dataDict</span><span class="p">:</span>
     1577                <span class="n">newItems</span> <span class="o">=</span> <span class="p">{}</span>
     1578                <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">colIds</span><span class="p">:</span>
     1579                    <span class="n">newItems</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">dataDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">colIds</span><span class="p">[</span><span class="n">item</span><span class="p">]])</span>
     1580                <span class="n">Id</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">hist</span><span class="p">)</span>
     1581                <span class="n">stsrData</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">Id</span><span class="p">,</span><span class="s">&#39;Stress/Strain&#39;</span><span class="p">))</span>
     1582                <span class="n">stsrData</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">newItems</span><span class="p">)</span>       
     1583        <span class="n">UpdateStressStrain</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>       
     1584   
    15531585    <span class="k">def</span> <span class="nf">OnFitStrSta</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
    15541586        <span class="n">Controls</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span>
     
    16121644                        <span class="n">variables</span> <span class="o">+=</span> <span class="n">item</span><span class="p">[</span><span class="s">&#39;Emat&#39;</span><span class="p">]</span>
    16131645                        <span class="n">sig</span> <span class="o">+=</span> <span class="n">item</span><span class="p">[</span><span class="s">&#39;Esig&#39;</span><span class="p">]</span>
    1614                         <span class="n">varylist</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;</span><span class="si">%d%s%s</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="s">&#39;:&#39;</span><span class="p">,</span><span class="n">Name</span><span class="p">)</span> <span class="k">for</span> <span class="n">Name</span> <span class="ow">in</span> <span class="n">varyNames</span><span class="p">]</span>
     1646                        <span class="n">varylist</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;</span><span class="si">%d%s%s</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="s">&#39;;&#39;</span><span class="p">,</span><span class="n">Name</span><span class="p">)</span> <span class="k">for</span> <span class="n">Name</span> <span class="ow">in</span> <span class="n">varyNames</span><span class="p">]</span>
    16151647                        <span class="n">varyList</span> <span class="o">+=</span> <span class="n">varylist</span>
    16161648                        <span class="n">parmDict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">varylist</span><span class="p">,</span><span class="n">item</span><span class="p">[</span><span class="s">&#39;Emat&#39;</span><span class="p">])))</span>
     
    16831715        <span class="n">samZ</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_KILL_FOCUS</span><span class="p">,</span><span class="n">OnSamZ</span><span class="p">)</span>
    16841716        <span class="n">samSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">&#39; Sample load(MPa): &#39;</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
    1685         <span class="n">samLoad</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="s">&#39;Sample load&#39;</span><span class="p">,</span>
     1717        <span class="n">samLoad</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="s">&#39;Sample load&#39;</span><span class="p">,</span>
    16861718                <span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">float</span><span class="p">,)</span>
    16871719        <span class="n">samSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">samLoad</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>
     
    17951827    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnCopyStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTACOPY</span><span class="p">)</span>
    17961828    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnLoadStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTALOAD</span><span class="p">)</span>
    1797     <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnSaveStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTASAVE</span><span class="p">)</span>   
     1829    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnSaveStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTASAVE</span><span class="p">)</span>
     1830    <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">,</span> <span class="n">OnStrStaSample</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTSAMPLE</span><span class="p">)</span>       
    17981831    <span class="k">if</span> <span class="ow">not</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">():</span>
    17991832        <span class="n">Status</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">CreateStatusBar</span><span class="p">()</span>
Note: See TracChangeset for help on using the changeset viewer.