source: sasview/_modules/sas/guiframe/gui_statusbar.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 73.0 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.guiframe.gui_statusbar &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../index.html" />
28    <link rel="up" title="sas.guiframe" href="../guiframe.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../guiframe.html" accesskey="U">sas.guiframe</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.guiframe.gui_statusbar</h1><div class="highlight"><pre>
52<span class="kn">import</span> <span class="nn">wx</span>
53<span class="kn">import</span> <span class="nn">sys</span>
54<span class="kn">from</span> <span class="nn">wx</span> <span class="kn">import</span> <span class="n">StatusBar</span> <span class="k">as</span> <span class="n">wxStatusB</span>
55<span class="kn">from</span> <span class="nn">wx.lib</span> <span class="kn">import</span> <span class="n">newevent</span>
56<span class="kn">import</span> <span class="nn">wx.richtext</span>
57<span class="kn">from</span> <span class="nn">sas.guiframe.gui_style</span> <span class="kn">import</span> <span class="n">GUIFRAME_ICON</span>
58
59<span class="c"># Number of fields on the status bar </span>
60<span class="n">NB_FIELDS</span> <span class="o">=</span> <span class="mi">4</span>
61<span class="c">#position of the status bar&#39;s fields</span>
62<span class="n">ICON_POSITION</span> <span class="o">=</span> <span class="mi">0</span>
63<span class="n">MSG_POSITION</span>  <span class="o">=</span> <span class="mi">1</span>
64<span class="n">GAUGE_POSITION</span>  <span class="o">=</span> <span class="mi">2</span>
65<span class="n">CONSOLE_POSITION</span>  <span class="o">=</span> <span class="mi">3</span>
66<span class="n">BUTTON_SIZE</span> <span class="o">=</span> <span class="mi">40</span>
67<span class="n">STATUS_BAR_ICON_SIZE</span> <span class="o">=</span> <span class="mi">12</span>
68<span class="n">CONSOLE_WIDTH</span> <span class="o">=</span> <span class="mi">500</span>
69<span class="n">CONSOLE_HEIGHT</span> <span class="o">=</span> <span class="mi">300</span>
70<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
71    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
72<span class="k">else</span><span class="p">:</span>
73    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
74
75<span class="n">GREEN</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">95</span><span class="p">,</span> <span class="mi">190</span><span class="p">,</span> <span class="mi">95</span><span class="p">)</span>
76<span class="n">YELLOW</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">247</span><span class="p">,</span> <span class="mi">214</span><span class="p">,</span> <span class="mi">49</span><span class="p">)</span>
77<span class="n">RED</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">234</span><span class="p">,</span> <span class="mi">89</span><span class="p">,</span> <span class="mi">78</span><span class="p">)</span>
78
79<div class="viewcode-block" id="ConsolePanel"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.ConsolePanel">[docs]</a><span class="k">class</span> <span class="nc">ConsolePanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">):</span>
80    <span class="sd">&quot;&quot;&quot;</span>
81<span class="sd">    &quot;&quot;&quot;</span>
82    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</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>
83        <span class="sd">&quot;&quot;&quot;</span>
84<span class="sd">        &quot;&quot;&quot;</span>
85        <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="n">parent</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>
86        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
87        <span class="bp">self</span><span class="o">.</span><span class="n">sizer</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>
88       
89        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">richtext</span><span class="o">.</span><span class="n">RichTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">CONSOLE_WIDTH</span><span class="o">-</span><span class="mi">40</span><span class="p">,</span>
90                                                <span class="n">CONSOLE_HEIGHT</span><span class="o">-</span><span class="mi">60</span><span class="p">),</span>
91                                   <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">VSCROLL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">HSCROLL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
92       
93        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;No message available&#39;</span><span class="p">)</span>
95        <span class="bp">self</span><span class="o">.</span><span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="p">,</span> <span class="mi">1</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">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer</span><span class="p">)</span>
97       
98<div class="viewcode-block" id="ConsolePanel.set_message"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.ConsolePanel.set_message">[docs]</a>    <span class="k">def</span> <span class="nf">set_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
99        <span class="sd">&quot;&quot;&quot;</span>
100<span class="sd">        &quot;&quot;&quot;</span>
101        <span class="n">status</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">status</span><span class="p">)</span>
102        <span class="k">if</span> <span class="n">status</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
103            <span class="k">return</span>
104        <span class="n">color</span> <span class="o">=</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="mi">0</span><span class="p">)</span> <span class="c">#black</span>
105        <span class="n">icon_bmp</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_INFORMATION</span><span class="p">,</span>
106                                             <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
107        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;info&quot;</span><span class="p">):</span>
108            <span class="n">icon_type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
109            <span class="k">if</span> <span class="n">icon_type</span> <span class="o">==</span> <span class="s">&quot;warning&quot;</span><span class="p">:</span>
110                <span class="n">color</span> <span class="o">=</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="mi">255</span><span class="p">)</span> <span class="c"># blue</span>
111                <span class="n">icon_bmp</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_WARNING</span><span class="p">,</span>
112                                                     <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
113            <span class="k">if</span> <span class="n">icon_type</span> <span class="o">==</span> <span class="s">&quot;error&quot;</span><span class="p">:</span>
114                <span class="n">color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">255</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="c"># red</span>
115                <span class="n">icon_bmp</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_ERROR</span><span class="p">,</span> 
116                                                     <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
117            <span class="k">if</span> <span class="n">icon_type</span> <span class="o">==</span> <span class="s">&quot;info&quot;</span><span class="p">:</span>
118                <span class="n">icon_bmp</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_INFORMATION</span><span class="p">,</span>
119                                                     <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
120        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">Newline</span><span class="p">()</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">WriteBitmap</span><span class="p">(</span><span class="n">icon_bmp</span><span class="p">)</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">BeginTextColour</span><span class="p">(</span><span class="n">color</span><span class="p">)</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">WriteText</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t</span><span class="s">&quot;</span><span class="p">)</span>
124        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">AppendText</span><span class="p">(</span><span class="n">status</span><span class="p">)</span>
125        <span class="bp">self</span><span class="o">.</span><span class="n">msg_txt</span><span class="o">.</span><span class="n">EndTextColour</span><span class="p">()</span>
126       
127        </div></div>
128<div class="viewcode-block" id="Console"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.Console">[docs]</a><span class="k">class</span> <span class="nc">Console</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="p">):</span>
129    <span class="sd">&quot;&quot;&quot;</span>
130<span class="sd">    &quot;&quot;&quot;</span>
131    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="s">&quot;&quot;</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">kwds</span><span class="p">):</span>
132        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">CONSOLE_WIDTH</span><span class="p">,</span> <span class="n">CONSOLE_HEIGHT</span><span class="p">)</span>
133        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;Console&quot;</span>
134        <span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="n">parent</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">kwds</span><span class="p">)</span>
135        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
136        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">ConsolePanel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
137        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">set_message</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
138        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_CLOSE</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">)</span>
139       
140<div class="viewcode-block" id="Console.set_multiple_messages"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.Console.set_multiple_messages">[docs]</a>    <span class="k">def</span> <span class="nf">set_multiple_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">messages</span><span class="o">=</span><span class="p">[]):</span>
141        <span class="sd">&quot;&quot;&quot;</span>
142<span class="sd">        &quot;&quot;&quot;</span>
143        <span class="k">if</span> <span class="n">messages</span><span class="p">:</span>
144            <span class="k">for</span> <span class="n">status</span> <span class="ow">in</span> <span class="n">messages</span><span class="p">:</span>
145                <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">set_message</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
146                </div>
147<div class="viewcode-block" id="Console.set_message"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.Console.set_message">[docs]</a>    <span class="k">def</span> <span class="nf">set_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
148        <span class="sd">&quot;&quot;&quot;</span>
149<span class="sd">        &quot;&quot;&quot;</span>
150        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">set_message</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">status</span><span class="p">),</span> <span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
151        </div>
152<div class="viewcode-block" id="Console.Close"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.Console.Close">[docs]</a>    <span class="k">def</span> <span class="nf">Close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
153        <span class="sd">&quot;&quot;&quot;</span>
154<span class="sd">        &quot;&quot;&quot;</span>
155        <span class="bp">self</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
156        </div></div>
157<div class="viewcode-block" id="StatusBar"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar">[docs]</a><span class="k">class</span> <span class="nc">StatusBar</span><span class="p">(</span><span class="n">wxStatusB</span><span class="p">):</span>
158    <span class="sd">&quot;&quot;&quot;</span>
159<span class="sd">        Application status bar</span>
160<span class="sd">    &quot;&quot;&quot;</span>
161    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">):</span>
162        <span class="n">wxStatusB</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">)</span>
163        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
164        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">SetStatusBarPane</span><span class="p">(</span><span class="n">MSG_POSITION</span><span class="p">)</span>
165
166        <span class="c">#Layout of status bar</span>
167        <span class="n">width</span> <span class="o">=</span> <span class="n">STATUS_BAR_ICON_SIZE</span>
168        <span class="n">height</span> <span class="o">=</span> <span class="n">STATUS_BAR_ICON_SIZE</span>
169        <span class="bp">self</span><span class="o">.</span><span class="n">SetFieldsCount</span><span class="p">(</span><span class="n">NB_FIELDS</span><span class="p">)</span> 
170        <span class="c"># Leave some space for the resize handle in the last field</span>
171        <span class="n">console_btn_width</span> <span class="o">=</span> <span class="mi">80</span>
172        <span class="bp">self</span><span class="o">.</span><span class="n">SetStatusWidths</span><span class="p">([</span><span class="n">width</span><span class="o">+</span><span class="mi">4</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">width</span><span class="o">+</span><span class="n">console_btn_width</span><span class="p">])</span>
173        <span class="bp">self</span><span class="o">.</span><span class="n">SetMinHeight</span><span class="p">(</span><span class="n">height</span><span class="p">)</span>
174       
175        <span class="c">#display default message</span>
176        <span class="bp">self</span><span class="o">.</span><span class="n">msg_position</span> <span class="o">=</span> <span class="n">MSG_POSITION</span> 
177       
178        <span class="c"># Create progress bar</span>
179        <span class="n">gauge_width</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">width</span>
180        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Gauge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">gauge_width</span><span class="p">,</span> <span class="n">height</span><span class="p">),</span>
181                               <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">GA_HORIZONTAL</span><span class="p">)</span>
182        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
183       
184        <span class="c"># Create status bar icon reflecting the type of status</span>
185        <span class="c"># for the last message</span>
186        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</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="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="n">label</span><span class="o">=</span><span class="s">&quot;   &quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">15</span><span class="p">))</span>
187        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
188        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
189
190        <span class="c"># Create the button used to show the console dialog</span>
191        <span class="bp">self</span><span class="o">.</span><span class="n">console_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Console&quot;</span><span class="p">,</span> 
192                                 <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">console_btn_width</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
193        <span class="n">font</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">console_button</span><span class="o">.</span><span class="n">GetFont</span><span class="p">()</span>
194        <span class="n">_</span><span class="p">,</span> <span class="n">pixel_h</span> <span class="o">=</span> <span class="n">font</span><span class="o">.</span><span class="n">GetPixelSize</span><span class="p">()</span>
195        <span class="n">font</span><span class="o">.</span><span class="n">SetPixelSize</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">pixel_h</span><span class="o">*</span><span class="mf">0.9</span><span class="p">)))</span>
196        <span class="bp">self</span><span class="o">.</span><span class="n">console_button</span><span class="o">.</span><span class="n">SetFont</span><span class="p">(</span><span class="n">font</span><span class="p">)</span>
197        <span class="bp">self</span><span class="o">.</span><span class="n">console_button</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;History of status bar messages&quot;</span><span class="p">)</span>
198        <span class="bp">self</span><span class="o">.</span><span class="n">console_button</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_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onMonitor</span><span class="p">,</span>
199                                <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">console_button</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
200       
201        <span class="bp">self</span><span class="o">.</span><span class="n">reposition</span><span class="p">()</span>
202        <span class="c">## Current progress value of the bar </span>
203        <span class="bp">self</span><span class="o">.</span><span class="n">nb_start</span> <span class="o">=</span> <span class="mi">0</span>
204        <span class="bp">self</span><span class="o">.</span><span class="n">nb_progress</span> <span class="o">=</span> <span class="mi">0</span>
205        <span class="bp">self</span><span class="o">.</span><span class="n">nb_stop</span> <span class="o">=</span> <span class="mi">0</span>
206        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="bp">None</span>
207        <span class="bp">self</span><span class="o">.</span><span class="n">list_msg</span> <span class="o">=</span> <span class="p">[]</span>
208        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="n">Console</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
209        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="p">,</span> <span class="s">&quot;IsIconized&quot;</span><span class="p">):</span>
210            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">IsIconized</span><span class="p">():</span>
211                <span class="k">try</span><span class="p">:</span>
212                    <span class="n">icon</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">GetIcon</span><span class="p">()</span>
213                    <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">SetIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span>
214                <span class="k">except</span><span class="p">:</span>
215                    <span class="k">try</span><span class="p">:</span>
216                        <span class="n">FRAME_ICON</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Icon</span><span class="p">(</span><span class="n">GUIFRAME_ICON</span><span class="o">.</span><span class="n">FRAME_ICON_PATH</span><span class="p">,</span>
217                                              <span class="n">wx</span><span class="o">.</span><span class="n">BITMAP_TYPE_ICON</span><span class="p">)</span>
218                        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">SetIcon</span><span class="p">(</span><span class="n">FRAME_ICON</span><span class="p">)</span>
219                    <span class="k">except</span><span class="p">:</span>
220                        <span class="k">pass</span>
221        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">set_multiple_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_msg</span><span class="p">)</span>
222        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
223        <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">=</span> <span class="mi">0</span>
224        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Timer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
225        <span class="bp">self</span><span class="o">.</span><span class="n">timer_stop</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Timer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
226        <span class="bp">self</span><span class="o">.</span><span class="n">thread</span> <span class="o">=</span> <span class="bp">None</span>
227        <span class="bp">self</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_TIMER</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_time</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">)</span> 
228        <span class="bp">self</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_TIMER</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_time_stop</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer_stop</span><span class="p">)</span> 
229        <span class="bp">self</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_SIZE</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnSize</span><span class="p">)</span>
230        <span class="bp">self</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_IDLE</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnIdle</span><span class="p">)</span>
231       
232<div class="viewcode-block" id="StatusBar.reposition"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.reposition">[docs]</a>    <span class="k">def</span> <span class="nf">reposition</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
233        <span class="sd">&quot;&quot;&quot;</span>
234<span class="sd">            Place the various fields in their proper position</span>
235<span class="sd">        &quot;&quot;&quot;</span>
236        <span class="n">rect</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetFieldRect</span><span class="p">(</span><span class="n">GAUGE_POSITION</span><span class="p">)</span>
237        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetPosition</span><span class="p">((</span><span class="n">rect</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">y</span><span class="p">))</span>
238        <span class="n">rect</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetFieldRect</span><span class="p">(</span><span class="n">ICON_POSITION</span><span class="p">)</span>
239        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetPosition</span><span class="p">((</span><span class="n">rect</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">y</span><span class="p">))</span>
240        <span class="n">rect</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetFieldRect</span><span class="p">(</span><span class="n">CONSOLE_POSITION</span><span class="p">)</span>
241        <span class="bp">self</span><span class="o">.</span><span class="n">console_button</span><span class="o">.</span><span class="n">SetPosition</span><span class="p">((</span><span class="n">rect</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">y</span><span class="p">))</span>
242        <span class="bp">self</span><span class="o">.</span><span class="n">sizeChanged</span> <span class="o">=</span> <span class="bp">False</span>
243        </div>
244<div class="viewcode-block" id="StatusBar.OnIdle"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.OnIdle">[docs]</a>    <span class="k">def</span> <span class="nf">OnIdle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
245        <span class="sd">&quot;&quot;&quot;</span>
246<span class="sd">        &quot;&quot;&quot;</span>
247        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sizeChanged</span><span class="p">:</span>
248            <span class="bp">self</span><span class="o">.</span><span class="n">reposition</span><span class="p">()</span>
249            </div>
250<div class="viewcode-block" id="StatusBar.OnSize"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.OnSize">[docs]</a>    <span class="k">def</span> <span class="nf">OnSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
251        <span class="sd">&quot;&quot;&quot;</span>
252<span class="sd">        &quot;&quot;&quot;</span>
253        <span class="bp">self</span><span class="o">.</span><span class="n">reposition</span><span class="p">()</span> 
254        <span class="bp">self</span><span class="o">.</span><span class="n">sizeChanged</span> <span class="o">=</span> <span class="bp">True</span>
255        </div>
256<div class="viewcode-block" id="StatusBar.get_msg_position"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.get_msg_position">[docs]</a>    <span class="k">def</span> <span class="nf">get_msg_position</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
257        <span class="sd">&quot;&quot;&quot;</span>
258<span class="sd">        &quot;&quot;&quot;</span>
259        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">msg_position</span>
260    </div>
261<div class="viewcode-block" id="StatusBar.SetStatusText"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.SetStatusText">[docs]</a>    <span class="k">def</span> <span class="nf">SetStatusText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">number</span><span class="o">=</span><span class="n">MSG_POSITION</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
262        <span class="sd">&quot;&quot;&quot;</span>
263<span class="sd">        &quot;&quot;&quot;</span>
264        <span class="n">wxStatusB</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#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="n">number</span><span class="p">)</span>
265        <span class="bp">self</span><span class="o">.</span><span class="n">list_msg</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
266        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
267        <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
268
269        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="p">:</span>
270            <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">set_message</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">text</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
271        </div>
272<div class="viewcode-block" id="StatusBar.PopStatusText"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.PopStatusText">[docs]</a>    <span class="k">def</span> <span class="nf">PopStatusText</span><span class="p">(</span><span class="bp">self</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">kwds</span><span class="p">):</span>
273        <span class="sd">&quot;&quot;&quot;</span>
274<span class="sd">        Override status bar </span>
275<span class="sd">        &quot;&quot;&quot;</span>
276        <span class="n">wxStatusB</span><span class="o">.</span><span class="n">PopStatusText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">MSG_POSITION</span><span class="p">)</span>
277        </div>
278<div class="viewcode-block" id="StatusBar.PushStatusText"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.PushStatusText">[docs]</a>    <span class="k">def</span> <span class="nf">PushStatusText</span><span class="p">(</span><span class="bp">self</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">kwds</span><span class="p">):</span>
279        <span class="sd">&quot;&quot;&quot;</span>
280<span class="sd">        PushStatusText</span>
281<span class="sd">        &quot;&quot;&quot;</span>
282        <span class="n">text</span> <span class="o">=</span> <span class="s">&quot;PushStatusText: What is this string?&quot;</span>
283        <span class="n">wxStatusB</span><span class="o">.</span><span class="n">PushStatusText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">MSG_POSITION</span><span class="p">,</span> <span class="n">string</span><span class="o">=</span><span class="n">text</span><span class="p">)</span>
284        </div>
285<div class="viewcode-block" id="StatusBar.enable_clear_gauge"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.enable_clear_gauge">[docs]</a>    <span class="k">def</span> <span class="nf">enable_clear_gauge</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
286        <span class="sd">&quot;&quot;&quot;</span>
287<span class="sd">        clear the progress bar</span>
288<span class="sd">        &quot;&quot;&quot;</span>
289        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
290        <span class="c"># Why we do this?</span>
291        <span class="c">#if (self.nb_start &lt;= self.nb_stop) or \</span>
292        <span class="c">#    (self.nb_progress &lt;= self.nb_stop):</span>
293        <span class="c">#    flag = True</span>
294        <span class="k">return</span> <span class="n">flag</span>
295    </div>
296    <span class="k">def</span> <span class="nf">_on_time_stop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span> 
297        <span class="sd">&quot;&quot;&quot;</span>
298<span class="sd">        Clear the progress bar</span>
299<span class="sd">        </span>
300<span class="sd">        :param evt: wx.EVT_TIMER </span>
301<span class="sd">  </span>
302<span class="sd">        &quot;&quot;&quot;</span> 
303        <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
304        <span class="k">while</span><span class="p">(</span><span class="n">count</span> <span class="o">&lt;=</span> <span class="mi">100</span><span class="p">):</span>
305            <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
306        <span class="bp">self</span><span class="o">.</span><span class="n">timer_stop</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span> 
307        <span class="bp">self</span><span class="o">.</span><span class="n">clear_gauge</span><span class="p">(</span><span class="n">msg</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">)</span>
308        <span class="bp">self</span><span class="o">.</span><span class="n">nb_progress</span> <span class="o">=</span> <span class="mi">0</span> 
309        <span class="bp">self</span><span class="o">.</span><span class="n">nb_start</span> <span class="o">=</span> <span class="mi">0</span> 
310        <span class="bp">self</span><span class="o">.</span><span class="n">nb_stop</span> <span class="o">=</span> <span class="mi">0</span>
311       
312    <span class="k">def</span> <span class="nf">_on_time</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span> 
313        <span class="sd">&quot;&quot;&quot;</span>
314<span class="sd">        Update the progress bar while the timer is running </span>
315<span class="sd">        </span>
316<span class="sd">        :param evt: wx.EVT_TIMER </span>
317<span class="sd">  </span>
318<span class="sd">        &quot;&quot;&quot;</span> 
319        <span class="c"># Check stop flag that can be set from non main thread </span>
320        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span> 
321            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Pulse</span><span class="p">()</span>
322   
323<div class="viewcode-block" id="StatusBar.clear_gauge"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.clear_gauge">[docs]</a>    <span class="k">def</span> <span class="nf">clear_gauge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">):</span>
324        <span class="sd">&quot;&quot;&quot;</span>
325<span class="sd">        Hide the gauge</span>
326<span class="sd">        &quot;&quot;&quot;</span>
327        <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">=</span> <span class="mi">0</span>
328        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
329        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span> 
330         </div>
331<div class="viewcode-block" id="StatusBar.set_icon"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.set_icon">[docs]</a>    <span class="k">def</span> <span class="nf">set_icon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
332        <span class="sd">&quot;&quot;&quot;</span>
333<span class="sd">        Display icons related to the type of message sent to the statusbar</span>
334<span class="sd">        when available. No icon is displayed if the message is empty</span>
335<span class="sd">        &quot;&quot;&quot;</span>
336        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;status&quot;</span><span class="p">):</span>
337            <span class="n">status</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">status</span><span class="p">)</span>
338            <span class="k">if</span> <span class="n">status</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
339                <span class="k">return</span>
340        <span class="k">else</span><span class="p">:</span>
341            <span class="k">return</span>
342        <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;info&quot;</span><span class="p">):</span>
343            <span class="k">return</span> 
344       
345        <span class="c"># Get the size of the button images</span>
346        <span class="n">height</span> <span class="o">=</span> <span class="n">STATUS_BAR_ICON_SIZE</span>
347       
348        <span class="n">msg</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
349        <span class="k">if</span> <span class="n">msg</span> <span class="o">==</span> <span class="s">&quot;warning&quot;</span><span class="p">:</span>
350            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">YELLOW</span><span class="p">)</span>
351            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">YELLOW</span><span class="p">)</span>
352        <span class="k">elif</span> <span class="n">msg</span> <span class="o">==</span> <span class="s">&quot;error&quot;</span><span class="p">:</span>
353            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">RED</span><span class="p">)</span>
354            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">RED</span><span class="p">)</span>
355        <span class="k">else</span><span class="p">:</span>
356            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
357            <span class="bp">self</span><span class="o">.</span><span class="n">status_color</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">GREEN</span><span class="p">)</span>
358    </div>
359<div class="viewcode-block" id="StatusBar.set_dialog"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.set_dialog">[docs]</a>    <span class="k">def</span> <span class="nf">set_dialog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
360        <span class="sd">&quot;&quot;&quot;</span>
361<span class="sd">        Display dialogbox</span>
362<span class="sd">        &quot;&quot;&quot;</span>
363        <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;info&quot;</span><span class="p">):</span>
364            <span class="k">return</span> 
365        <span class="n">msg</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
366        <span class="k">if</span> <span class="n">msg</span> <span class="o">==</span> <span class="s">&quot;error&quot;</span><span class="p">:</span>
367            <span class="n">e_msg</span> <span class="o">=</span> <span class="s">&quot;Error(s) Occurred:</span><span class="se">\n</span><span class="s">&quot;</span>
368            <span class="n">e_msg</span> <span class="o">+=</span> <span class="n">event</span><span class="o">.</span><span class="n">status</span>
369            <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">e_msg</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">ICON_ERROR</span><span class="p">)</span>
370</div>
371<div class="viewcode-block" id="StatusBar.set_message"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.set_message">[docs]</a>    <span class="k">def</span> <span class="nf">set_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
372        <span class="sd">&quot;&quot;&quot;</span>
373<span class="sd">        display received message on the statusbar</span>
374<span class="sd">        &quot;&quot;&quot;</span>
375        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;status&quot;</span><span class="p">):</span>
376            <span class="bp">self</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">status</span><span class="p">),</span> <span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
377       </div>
378<div class="viewcode-block" id="StatusBar.set_gauge"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.set_gauge">[docs]</a>    <span class="k">def</span> <span class="nf">set_gauge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
379        <span class="sd">&quot;&quot;&quot;</span>
380<span class="sd">        change the state of the gauge according the state of the current job</span>
381<span class="sd">        &quot;&quot;&quot;</span>
382        <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="s">&quot;type&quot;</span><span class="p">):</span>
383            <span class="k">return</span>
384        <span class="nb">type</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">type</span>
385        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
386        <span class="k">if</span> <span class="nb">type</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;start&quot;</span><span class="p">:</span>
387            <span class="bp">self</span><span class="o">.</span><span class="n">nb_start</span> <span class="o">+=</span> <span class="mi">1</span>
388            <span class="c">#self.timer.Stop()</span>
389            <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">+=</span> <span class="mi">5</span>
390            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">progress</span><span class="p">))</span> 
391            <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">+=</span> <span class="mi">5</span>
392            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">GetRange</span><span class="p">()</span> <span class="o">-</span> <span class="mi">20</span><span class="p">:</span>
393                <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">progress</span><span class="p">))</span> 
394        <span class="k">if</span> <span class="nb">type</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;progress&quot;</span><span class="p">:</span>
395            <span class="bp">self</span><span class="o">.</span><span class="n">nb_progress</span> <span class="o">+=</span> <span class="mi">1</span>
396            <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Start</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
397            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Pulse</span><span class="p">()</span>
398        <span class="k">if</span> <span class="nb">type</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;update&quot;</span><span class="p">:</span>
399            <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">+=</span> <span class="mi">5</span>
400            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">GetRange</span><span class="p">()</span><span class="o">-</span> <span class="mi">20</span><span class="p">:</span>
401                <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">progress</span><span class="p">))</span>   
402        <span class="k">if</span> <span class="nb">type</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;stop&quot;</span><span class="p">:</span>
403            <span class="bp">self</span><span class="o">.</span><span class="n">nb_stop</span> <span class="o">+=</span> <span class="mi">1</span>
404            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
405            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">enable_clear_gauge</span><span class="p">():</span>
406                <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span>
407                <span class="bp">self</span><span class="o">.</span><span class="n">progress</span> <span class="o">=</span> <span class="mi">0</span>
408                <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> 
409                <span class="bp">self</span><span class="o">.</span><span class="n">timer_stop</span><span class="o">.</span><span class="n">Start</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> 
410                    </div>
411<div class="viewcode-block" id="StatusBar.set_status"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.StatusBar.set_status">[docs]</a>    <span class="k">def</span> <span class="nf">set_status</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
412        <span class="sd">&quot;&quot;&quot;</span>
413<span class="sd">        Update the status bar .</span>
414<span class="sd">        </span>
415<span class="sd">        :param type: type of message send.</span>
416<span class="sd">            type  must be in [&quot;start&quot;,&quot;progress&quot;,&quot;update&quot;,&quot;stop&quot;]</span>
417<span class="sd">        :param msg: the message itself  as string</span>
418<span class="sd">        :param thread: if updatting using a thread status </span>
419<span class="sd">        </span>
420<span class="sd">        &quot;&quot;&quot;</span>
421        <span class="bp">self</span><span class="o">.</span><span class="n">set_message</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
422        <span class="bp">self</span><span class="o">.</span><span class="n">set_icon</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
423        <span class="bp">self</span><span class="o">.</span><span class="n">set_gauge</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
424        <span class="c"># dialog on error</span>
425        <span class="bp">self</span><span class="o">.</span><span class="n">set_dialog</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span>
426        </div>
427    <span class="k">def</span> <span class="nf">_onMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
428        <span class="sd">&quot;&quot;&quot;</span>
429<span class="sd">        Pop up a frame with messages sent to the status bar</span>
430<span class="sd">        &quot;&quot;&quot;</span>
431        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
432        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
433       
434        </div>
435<div class="viewcode-block" id="SPageStatusbar"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.gui_statusbar.SPageStatusbar">[docs]</a><span class="k">class</span> <span class="nc">SPageStatusbar</span><span class="p">(</span><span class="n">wxStatusB</span><span class="p">):</span>
436    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="bp">None</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">kwds</span><span class="p">):</span>
437        <span class="n">wxStatusB</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</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">kwds</span><span class="p">)</span>
438        <span class="bp">self</span><span class="o">.</span><span class="n">SetFieldsCount</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 
439        <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span>
440        <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">GetSizeTuple</span><span class="p">()</span>
441        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Gauge</span><span class="p">(</span><span class="bp">self</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">GA_HORIZONTAL</span><span class="p">,</span> 
442                              <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="o">/</span><span class="mi">10</span><span class="p">))</span>
443        <span class="n">rect</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetFieldRect</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
444        <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetPosition</span><span class="p">((</span><span class="n">rect</span><span class="o">.</span><span class="n">x</span> <span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">y</span> <span class="p">))</span>
445        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
446            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">SetRange</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timeout</span><span class="p">))</span>
447        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Timer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> 
448        <span class="bp">self</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_TIMER</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_time</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">)</span> 
449        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Start</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
450        <span class="bp">self</span><span class="o">.</span><span class="n">pos</span> <span class="o">=</span> <span class="mi">0</span>
451       
452    <span class="k">def</span> <span class="nf">_on_time</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span> 
453        <span class="sd">&quot;&quot;&quot;</span>
454<span class="sd">        Update the progress bar while the timer is running </span>
455<span class="sd">        </span>
456<span class="sd">        :param evt: wx.EVT_TIMER </span>
457<span class="sd">  </span>
458<span class="sd">        &quot;&quot;&quot;</span> 
459        <span class="c"># Check stop flag that can be set from non main thread </span>
460        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span> 
461            <span class="bp">self</span><span class="o">.</span><span class="n">gauge</span><span class="o">.</span><span class="n">Pulse</span><span class="p">()</span>
462           
463        </div>
464<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
465    <span class="n">app</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">PySimpleApp</span><span class="p">()</span>
466    <span class="n">frame</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span> <span class="s">&#39;test frame&#39;</span><span class="p">)</span>
467    <span class="c">#statusBar = StatusBar(frame, wx.ID_ANY)</span>
468    <span class="n">statusBar</span> <span class="o">=</span> <span class="n">SPageStatusbar</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
469    <span class="n">frame</span><span class="o">.</span><span class="n">SetStatusBar</span><span class="p">(</span><span class="n">statusBar</span><span class="p">)</span>
470    <span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
471    <span class="c">#event = MessageEvent()</span>
472    <span class="c">#event.type = &quot;progress&quot;</span>
473    <span class="c">#event.status  = &quot;statusbar....&quot;</span>
474    <span class="c">#event.info = &quot;error&quot;</span>
475    <span class="c">#statusBar.set_status(event=event)</span>
476    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>
477</pre></div>
478
479          </div>
480        </div>
481      </div>
482      <div class="sphinxsidebar">
483        <div class="sphinxsidebarwrapper">
484<div id="searchbox" style="display: none">
485  <h3>Quick search</h3>
486    <form class="search" action="../../../search.html" method="get">
487      <input type="text" name="q" />
488      <input type="submit" value="Go" />
489      <input type="hidden" name="check_keywords" value="yes" />
490      <input type="hidden" name="area" value="default" />
491    </form>
492    <p class="searchtip" style="font-size: 90%">
493    Enter search terms or a module, class or function name.
494    </p>
495</div>
496<script type="text/javascript">$('#searchbox').show(0);</script>
497        </div>
498      </div>
499      <div class="clearer"></div>
500    </div>
501    <div class="related">
502      <h3>Navigation</h3>
503      <ul>
504        <li class="right" style="margin-right: 10px">
505          <a href="../../../genindex.html" title="General Index"
506             >index</a></li>
507        <li class="right" >
508          <a href="../../../py-modindex.html" title="Python Module Index"
509             >modules</a> |</li>
510        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
511          <li><a href="../../index.html" >Module code</a> &raquo;</li>
512          <li><a href="../guiframe.html" >sas.guiframe</a> &raquo;</li> 
513      </ul>
514    </div>
515    <div class="footer">
516        &copy; Copyright 2013, The SasView Project.
517      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
518    </div>
519  </body>
520</html>
Note: See TracBrowser for help on using the repository browser.