Sophie

Sophie

distrib > Mageia > 4 > i586 > media > core-release > by-pkgid > c44927308c1c3b2e6eb97a3e8e6f0c4d > files > 175

libyui5-3.0.10-0.git20131124.1.mga4.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>libyui: /home/iurt/rpmbuild/BUILD/libyui-3.0.10-b316a3f/src/YUI.cc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libyui
   &#160;<span id="projectnumber">3.0.10</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('YUI_8cc_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">YUI.cc</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">  Copyright (C) 2000-2012 Novell, Inc</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">  This library is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">  it under the terms of the GNU Lesser General Public License as</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">  published by the Free Software Foundation; either version 2.1 of the</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">  License, or (at your option) version 3.0 of the License. This library</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">  is distributed in the hope that it will be useful, but WITHOUT ANY</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">  WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">  License for more details. You should have received a copy of the GNU</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">  Lesser General Public License along with this library; if not, write</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">  Floor, Boston, MA 02110-1301 USA</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">/*-/</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">  File:         YUI.cc</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">  Author:       Stefan Hundhammer &lt;sh@suse.de&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">/-*/</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define VERBOSE_COMM 0  // VERY verbose thread communication logging</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span>     <span class="comment">// strerror()</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span>     <span class="comment">// pipe()</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span>      <span class="comment">// fcntl()</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span>     <span class="comment">// getenv()</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stack&gt;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define YUILogComponent &quot;ui&quot;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;YUILog.h&quot;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;YUI.h&quot;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;YUILoader.h&quot;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;YUISymbols.h&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;YDialog.h&quot;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &quot;YApplication.h&quot;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;YMacro.h&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;YButtonBox.h&quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;YEnvVar.h&quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;YBuiltinCaller.h&quot;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">using</span> std::endl;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">// Environment variable to determine button order</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">// (set to &quot;KDE&quot; or &quot;GNOME&quot; - case insensitive)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#define ENV_BUTTON_ORDER &quot;Y2_BUTTON_ORDER&quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">// Keep dialog stack before the YUITerminator</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">// so that it is destroyed afterwards.</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">// YUITerminator deletes _yui which calls YUI::~YUI</span></div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">// which accesses the dialog stack to remove all dialogs</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;std::stack&lt;YDialog *&gt; <a class="code" href="classYDialog.html#abed7be3f59987fc5f986f34909fe86f1">YDialog::_dialogStack</a>;</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<a class="code" href="classYUI.html">YUI</a> * YUI::_ui = 0;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> uiDeleted = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> * start_ui_thread( <span class="keywordtype">void</span> * yui );</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classYUI.html#a07f88496e2c55154b7a992c7dd48f488">   69</a></span>&#160;<a class="code" href="classYUI.html#a07f88496e2c55154b7a992c7dd48f488">YUI::YUI</a>( <span class="keywordtype">bool</span> withThreads )</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    : _withThreads( withThreads )</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    , _uiThread( 0 )</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    , _builtinCaller( 0 )</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    , _terminate_ui_thread( false )</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    , _eventsBlocked( false )</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;{</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    yuiMilestone() &lt;&lt; <span class="stringliteral">&quot;This is libyui &quot;</span> &lt;&lt; VERSION &lt;&lt; std::endl;</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    yuiMilestone() &lt;&lt; <span class="stringliteral">&quot;Creating UI &quot;</span> &lt;&lt; ( withThreads ? <span class="stringliteral">&quot;with&quot;</span> : <span class="stringliteral">&quot;without&quot;</span> ) &lt;&lt; <span class="stringliteral">&quot; threads&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    _ui = <span class="keyword">this</span>;</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classYUI.html#a14b269d4033e1cea8b82d97c3587ff78">   82</a></span>&#160;<a class="code" href="classYUI.html#a14b269d4033e1cea8b82d97c3587ff78">YUI::~YUI</a>()</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;{</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">if</span> ( _ui )</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    {</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#a825fcdfc915748c8ad1de46003250d5b">_withThreads</a> &amp;&amp; <a class="code" href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">_uiThread</a> )</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        {</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            yuiError() &lt;&lt; <span class="stringliteral">&quot;shutdownThreads() was never called!&quot;</span>     &lt;&lt; endl;</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            yuiError() &lt;&lt; <span class="stringliteral">&quot;shutting down now - this might segfault&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <a class="code" href="classYUI.html#ab7da57ee81d7efaf5cd1f1cbbf4dd969">shutdownThreads</a>();</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        }</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classYDialog.html#a2e97c0671f759a1ea7cd960b873bffd9">YDialog::openDialogsCount</a>() &gt; 0 )</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            yuiError() &lt;&lt; <a class="code" href="classYDialog.html#a2e97c0671f759a1ea7cd960b873bffd9">YDialog::openDialogsCount</a>() &lt;&lt; <span class="stringliteral">&quot; open dialogs left over&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#a3e047529af4ed391108956817640015c">_builtinCaller</a> )</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            <span class="keyword">delete</span> <a class="code" href="classYUI.html#a3e047529af4ed391108956817640015c">_builtinCaller</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <a class="code" href="classYDialog.html#a64713866719b307d6af95ed2ad2bf02b">YDialog::deleteAllDialogs</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <a class="code" href="classYMacro.html#a6d74cd379e4c4c59eef7a6e05669e0d2">YMacro::deleteRecorder</a>();</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="classYMacro.html#af84bf1aeb4d73cf202bce9c9b4a1e886">YMacro::deletePlayer</a>();</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        _ui = 0;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        uiDeleted = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    }</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classYUI.html#ac85ed5ca0b45586be919bfed07410e61">  111</a></span>&#160;<a class="code" href="classYUI.html#ac85ed5ca0b45586be919bfed07410e61">YUI::uiThreadDestructor</a>()</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;{</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="classYDialog.html#a64713866719b307d6af95ed2ad2bf02b">YDialog::deleteAllDialogs</a>();</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;}</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<a class="code" href="classYUI.html">YUI</a> *</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">  118</a></span>&#160;<a class="code" href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">YUI::ui</a>()</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;{</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <a class="code" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">ensureUICreated</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">return</span> _ui;</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="classYWidgetFactory.html">YWidgetFactory</a> *</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classYUI.html#a8445ba851d8ca034e415867dd3d33c82">  126</a></span>&#160;<a class="code" href="classYUI.html#a8445ba851d8ca034e415867dd3d33c82">YUI::widgetFactory</a>()</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;{</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keyword">static</span> <a class="code" href="classYWidgetFactory.html">YWidgetFactory</a> * factory = 0;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <a class="code" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">ensureUICreated</a>();</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">if</span> ( ! factory )</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        factory = <a class="code" href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">ui</a>()-&gt;<a class="code" href="classYUI.html#a8a57ec8b680c47a219ca4dd610de2164">createWidgetFactory</a>();</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    YUI_CHECK_PTR( factory );</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordflow">return</span> factory;</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;}</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<a class="code" href="classYOptionalWidgetFactory.html">YOptionalWidgetFactory</a> *</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classYUI.html#a93cfbc2a90ed37023aff631bb5b9526c">  141</a></span>&#160;<a class="code" href="classYUI.html#a93cfbc2a90ed37023aff631bb5b9526c">YUI::optionalWidgetFactory</a>()</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;{</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keyword">static</span> <a class="code" href="classYOptionalWidgetFactory.html">YOptionalWidgetFactory</a> * factory = 0;</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <a class="code" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">ensureUICreated</a>();</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordflow">if</span> ( ! factory )</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        factory = <a class="code" href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">ui</a>()-&gt;<a class="code" href="classYUI.html#a779192345ef2d9b1d4ecba10c46f7425">createOptionalWidgetFactory</a>();</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    YUI_CHECK_PTR( factory );</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordflow">return</span> factory;</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;}</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<a class="code" href="classYApplication.html">YApplication</a> *</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classYUI.html#a5534a94a22db059b87a27946a65eb311">  156</a></span>&#160;<a class="code" href="classYUI.html#a5534a94a22db059b87a27946a65eb311">YUI::app</a>()</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keyword">static</span> <a class="code" href="classYApplication.html">YApplication</a> * <a class="code" href="classYUI.html#a5534a94a22db059b87a27946a65eb311">app</a> = 0;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <a class="code" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">ensureUICreated</a>();</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordflow">if</span> ( ! app )</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        app = <a class="code" href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">ui</a>()-&gt;<a class="code" href="classYUI.html#ac311037e0ff3567429e8e7b7c8544908">createApplication</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    YUI_CHECK_PTR( app );</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classYUI.html#a5534a94a22db059b87a27946a65eb311">app</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;}</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">  170</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">YUI::ensureUICreated</a>()</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordflow">if</span> ( _ui )</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordflow">if</span> ( uiDeleted )</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        YUI_THROW( <a class="code" href="classYUIException.html">YUIException</a>( <span class="stringliteral">&quot;UI already deleted&quot;</span> ) );</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="classYUILoader.html#afffb7f173726fe3283380b987997d34c">YUILoader::loadUI</a>();</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;}</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classYUI.html#a001636c06719ab9ea0d330be74e059a3">  182</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#a001636c06719ab9ea0d330be74e059a3">YUI::topmostConstructorHasFinished</a>()</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;{</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="comment">// The ui thread must not be started before the constructor</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="comment">// of the actual user interface is finished. Otherwise there</span></div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="comment">// is a race condition. The ui thread would go into idleLoop()</span></div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="comment">// before the ui is really setup. For example the Qt interface</span></div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="comment">// does a processOneEvent in the idleLoop(). This may do a</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">// repaint operation on the dialog that is just under construction!</span></div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="comment">// Therefore the creation of the thread is delayed and performed in this</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">// method. It must be called at the end of the constructor of the specific</span></div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">// UI (the Qt UI or the NCurses UI).</span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#a825fcdfc915748c8ad1de46003250d5b">_withThreads</a> )</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    {</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordflow">if</span> ( pipe( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a> ) == 0 &amp;&amp;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;             pipe( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>   ) == 0   )</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        {</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            <span class="comment">// Make fd non blockable the ui thread reads from</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            <span class="keywordtype">long</span> arg;</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            arg = fcntl( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0], F_GETFL );</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            <span class="keywordflow">if</span> ( fcntl( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0], F_SETFL, arg | O_NONBLOCK ) &lt; 0 )</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            {</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                yuiError() &lt;&lt; <span class="stringliteral">&quot;Couldn&#39;t set O_NONBLOCK: errno: &quot;</span> &lt;&lt; errno &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; strerror( errno ) &lt;&lt; endl;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                <a class="code" href="classYUI.html#a825fcdfc915748c8ad1de46003250d5b">_withThreads</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                close( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0] );</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                close( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[1] );</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                close( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[0] );</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                close( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[1] );</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            }</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            {</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor"></span>                yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Inter-thread communication pipes set up&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor"></span>                <a class="code" href="classYUI.html#a6902b5389b4c50d3612bbb71a9e39c25">_terminate_ui_thread</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                <a class="code" href="classYUI.html#aed94e4c078090934e6cf5bb8e6c5c010">createUIThread</a>();</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;            }</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        }</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        {</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            yuiError() &lt;&lt; <span class="stringliteral">&quot;pipe() failed: errno: &quot;</span> &lt;&lt; errno &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; strerror( errno ) &lt;&lt; endl;</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            exit(2);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        }</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    }</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    {</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        yuiMilestone() &lt;&lt; <span class="stringliteral">&quot;Running without threads&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;}</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classYUI.html#aed94e4c078090934e6cf5bb8e6c5c010">  235</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#aed94e4c078090934e6cf5bb8e6c5c010">YUI::createUIThread</a>()</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;{</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    pthread_attr_t attr;</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    pthread_attr_init( &amp; attr );</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordtype">int</span> ret = pthread_create( &amp; <a class="code" href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">_uiThread</a>, &amp; attr, start_ui_thread, <span class="keyword">this</span> );</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordflow">if</span> ( ret != 0 )</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        yuiError() &lt;&lt; <span class="stringliteral">&quot;pthread_create() failed: &quot;</span> &lt;&lt; errno &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; strerror( errno ) &lt;&lt; endl;</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classYUI.html#a89e5ff95853d0efe8fc0d00debcc4f82">  246</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#a89e5ff95853d0efe8fc0d00debcc4f82">YUI::terminateUIThread</a>()</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;{</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Sending shutdown message to UI thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <a class="code" href="classYUI.html#a6902b5389b4c50d3612bbb71a9e39c25">_terminate_ui_thread</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <a class="code" href="classYUI.html#a879193b02b85f147c9aaed431f4eb4f3">signalUIThread</a>();</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <a class="code" href="classYUI.html#a8345b48910188cb050fa422c048adb4c">waitForUIThread</a>();</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    pthread_join( <a class="code" href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">_uiThread</a>, 0 );</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;UI thread shut down correctly&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;}</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classYUI.html#ab7da57ee81d7efaf5cd1f1cbbf4dd969">  259</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#ab7da57ee81d7efaf5cd1f1cbbf4dd969">YUI::shutdownThreads</a>()</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">_uiThread</a> )</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    {</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <a class="code" href="classYUI.html#a89e5ff95853d0efe8fc0d00debcc4f82">terminateUIThread</a>();</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <a class="code" href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">_uiThread</a> = 0;</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        close( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0] );</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        close( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[1] );</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        close( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[0] );</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        close( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[1] );</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    }</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;}</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classYUI.html#a879193b02b85f147c9aaed431f4eb4f3">  273</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#a879193b02b85f147c9aaed431f4eb4f3">YUI::signalUIThread</a>()</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> arbitrary = 42;</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">if</span> ( write ( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[1], &amp; arbitrary, 1 ) == -1 )</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        yuiError() &lt;&lt;  <span class="stringliteral">&quot;Writing byte to UI thread failed&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor"></span>    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Wrote byte to UI thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classYUI.html#a8345b48910188cb050fa422c048adb4c">  285</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classYUI.html#a8345b48910188cb050fa422c048adb4c">YUI::waitForUIThread</a>()</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;{</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordtype">char</span> arbitrary;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordtype">int</span> result;</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordflow">do</span> {</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor"></span>        yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Waiting for ui thread...&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor"></span>        result = read( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[0], &amp; arbitrary, 1 );</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keywordflow">if</span> ( result == -1 )</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        {</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;            <span class="keywordflow">if</span> ( errno == EINTR || errno == EAGAIN )</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                yuiError() &lt;&lt;  <span class="stringliteral">&quot;waitForUIThread: errno: &quot;</span> &lt;&lt; errno &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; strerror( errno ) &lt;&lt; endl;</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        }</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    } <span class="keywordflow">while</span> ( result == 0 );</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor"></span>    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Read byte from ui thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="comment">// return true if we really did get a signal byte</span></div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keywordflow">return</span> result != -1;</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;}</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classYUI.html#aeec3b301ca0d98a75fdd2207c5212aee">  313</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#aeec3b301ca0d98a75fdd2207c5212aee">YUI::signalYCPThread</a>()</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;{</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> arbitrary;</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="keywordflow">if</span> ( write( <a class="code" href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">pipe_from_ui</a>[1], &amp; arbitrary, 1 ) == -1 )</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        yuiError() &lt;&lt;  <span class="stringliteral">&quot;Writing byte to YCP thread failed&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor"></span>    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Wrote byte to YCP thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classYUI.html#a4455b1fc0a49d5aefa4ef9f87b0b3f72">  325</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classYUI.html#a4455b1fc0a49d5aefa4ef9f87b0b3f72">YUI::waitForYCPThread</a>()</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;{</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keywordtype">char</span> arbitrary;</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordtype">int</span> result;</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordflow">do</span> {</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor"></span>        yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Waiting for YCP thread...&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor"></span>        result = read( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0], &amp; arbitrary, 1 );</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="keywordflow">if</span> ( result == -1 )</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        {</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;            <span class="keywordflow">if</span> ( errno == EINTR || errno == EAGAIN )</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;                <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;                yuiError() &lt;&lt; <span class="stringliteral">&quot;waitForYCPThread: errno: &quot;</span> &lt;&lt; errno &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; strerror( errno ) &lt;&lt; endl;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        }</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    } <span class="keywordflow">while</span> ( result == 0 );</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="preprocessor"></span>    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Read byte from YCP thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <span class="comment">// return true if we really did get a signal byte</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="keywordflow">return</span> result != -1;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;}</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classYUI.html#a3c64ecbea29c25bcc5cda526fd679a0c">  353</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#a3c64ecbea29c25bcc5cda526fd679a0c">YUI::uiThreadMainLoop</a>()</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;{</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="keywordflow">while</span> ( <span class="keyword">true</span> )</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    {</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <a class="code" href="classYUI.html#a1d378cf89009fcbe88c16392e518dd80">idleLoop</a>( <a class="code" href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">pipe_to_ui</a>[0] );</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="comment">// The pipe is non-blocking, so we have to check if we really read a</span></div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="comment">// signal byte. Although idleLoop already does a select(), this seems to</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="comment">// be necessary.  Anyway: Why do we set the pipe to non-blocking if we</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="comment">// wait in idleLoop for it to become readable? It is needed in</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="comment">// YUIQt::idleLoop for QSocketNotifier.</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keywordflow">if</span> ( ! <a class="code" href="classYUI.html#a4455b1fc0a49d5aefa4ef9f87b0b3f72">waitForYCPThread</a> () )</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;            <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#a6902b5389b4c50d3612bbb71a9e39c25">_terminate_ui_thread</a> )</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        {</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;            <a class="code" href="classYUI.html#ac85ed5ca0b45586be919bfed07410e61">uiThreadDestructor</a>();</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;            <a class="code" href="classYUI.html#aeec3b301ca0d98a75fdd2207c5212aee">signalYCPThread</a>();</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;            yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Shutting down UI main loop&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        }</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classYUI.html#a3e047529af4ed391108956817640015c">_builtinCaller</a> )</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;            <a class="code" href="classYUI.html#a3e047529af4ed391108956817640015c">_builtinCaller</a>-&gt;<a class="code" href="classYBuiltinCaller.html#a3ae52eb585b7b1299fa07e2375ce347a">call</a>();</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;            yuiError() &lt;&lt; <span class="stringliteral">&quot;No builtinCaller set&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <a class="code" href="classYUI.html#aeec3b301ca0d98a75fdd2207c5212aee">signalYCPThread</a>();</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    }</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;}</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div>
<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classYUI.html#abc137296502446fc11f14ce8034af0c5">  386</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classYUI.html#abc137296502446fc11f14ce8034af0c5">YUI::setButtonOrderFromEnvironment</a>()</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;{</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    YButtonOrder buttonOrder    = <a class="code" href="classYButtonBox.html#aed790757d6362470fea32757d5f066ef">YButtonBox::layoutPolicy</a>().buttonOrder;</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    YButtonOrder oldButtonOrder = buttonOrder;</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <a class="code" href="classYEnvVar.html">YEnvVar</a> lastEnv;</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="comment">// $DESKTOP_SESSION</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <a class="code" href="classYEnvVar.html">YEnvVar</a> env( <span class="stringliteral">&quot;DESKTOP_SESSION&quot;</span> );</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    yuiDebug() &lt;&lt; env &lt;&lt; endl;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordflow">if</span> ( env == <span class="stringliteral">&quot;kde&quot;</span> ||</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;         env == <span class="stringliteral">&quot;xfce&quot;</span>  )</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    {</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        buttonOrder = YKDEButtonOrder;</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    }</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( env == <span class="stringliteral">&quot;gnome&quot;</span> )</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    {</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        buttonOrder = YGnomeButtonOrder;</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    }</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="comment">// $WINDOWMANAGER</span></div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    env = <a class="code" href="classYEnvVar.html">YEnvVar</a>( <span class="stringliteral">&quot;WINDOWMANAGER&quot;</span> );</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    yuiDebug() &lt;&lt; env &lt;&lt; endl;</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">if</span> ( env.<a class="code" href="classYEnvVar.html#a269eea5ecc1d84568997efd125f4aec6">contains</a>( <span class="stringliteral">&quot;gnome&quot;</span> ) )</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    {</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        buttonOrder = YGnomeButtonOrder;</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    }</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( env.<a class="code" href="classYEnvVar.html#a269eea5ecc1d84568997efd125f4aec6">contains</a>( <span class="stringliteral">&quot;kde&quot;</span> ) )</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    {</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        buttonOrder = YKDEButtonOrder;</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    }</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="comment">// $Y2_BUTTON_ORDER</span></div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    env = <a class="code" href="classYEnvVar.html">YEnvVar</a>( ENV_BUTTON_ORDER );</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    yuiDebug() &lt;&lt; env &lt;&lt; endl;</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordflow">if</span> ( env == <span class="stringliteral">&quot;gnome&quot;</span> )</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    {</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        buttonOrder = YGnomeButtonOrder;</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    }</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( env == <span class="stringliteral">&quot;kde&quot;</span> )</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    {</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        buttonOrder = YKDEButtonOrder;</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        lastEnv     = env;</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    }</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ! env.<a class="code" href="classYEnvVar.html#a7705ff5c9c0690311989c578b1596582">value</a>().empty() )</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    {</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        yuiWarning() &lt;&lt; <span class="stringliteral">&quot;Ignoring unknown value of &quot;</span> &lt;&lt; env &lt;&lt; endl;</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    }</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordflow">if</span> ( buttonOrder != oldButtonOrder )</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    {</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        std::string buttonOrderStr;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordflow">switch</span> ( buttonOrder )</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        {</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;            <span class="keywordflow">case</span> YKDEButtonOrder:</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                buttonOrderStr = <span class="stringliteral">&quot;KDE&quot;</span>;</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;                <a class="code" href="classYButtonBox.html#adcd04f3e13a065b63b668716dde98502">YButtonBox::setLayoutPolicy</a>( <a class="code" href="classYButtonBox.html#a205f1a7654c8b50bb208d4911c840677">YButtonBox::kdeLayoutPolicy</a>() );</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;            <span class="keywordflow">case</span> YGnomeButtonOrder:</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;                buttonOrderStr = <span class="stringliteral">&quot;GNOME&quot;</span>;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;                <a class="code" href="classYButtonBox.html#adcd04f3e13a065b63b668716dde98502">YButtonBox::setLayoutPolicy</a>( <a class="code" href="classYButtonBox.html#a1360206fd87dacb788472232912d88f3">YButtonBox::gnomeLayoutPolicy</a>() );</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;            <span class="comment">// Intentionally omitting &quot;default&quot; branch so GCC can catch unhandled enums</span></div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        }</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        yuiMilestone() &lt;&lt; <span class="stringliteral">&quot;Switching to &quot;</span> &lt;&lt; buttonOrderStr</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;                       &lt;&lt; <span class="stringliteral">&quot; button order because of &quot;</span> &lt;&lt; lastEnv</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;                       &lt;&lt; endl;</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    }</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;}</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment">// ----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="keywordtype">void</span> * start_ui_thread( <span class="keywordtype">void</span> * yui )</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;{</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <a class="code" href="classYUI.html">YUI</a> * ui = (<a class="code" href="classYUI.html">YUI</a> *) yui;</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">#if VERBOSE_COMM</span></div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor"></span>    yuiDebug() &lt;&lt; <span class="stringliteral">&quot;Starting UI thread&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordflow">if</span> ( ui )</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        ui-&gt;<a class="code" href="classYUI.html#a3c64ecbea29c25bcc5cda526fd679a0c">uiThreadMainLoop</a>();</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;}</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="comment">// ----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="comment"> * Helper class to make sure the UI is properly shut down.</span></div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment"> **/</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classYUITerminator.html">  506</a></span>&#160;<span class="keyword">class </span><a class="code" href="classYUITerminator.html">YUITerminator</a></div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;{</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <a class="code" href="classYUITerminator.html">YUITerminator</a>() {}</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="comment">     * Destructor.</span></div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="comment">     * If there still is a UI, it will be deleted.</span></div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="comment">     * If there is none, this will do nothing.</span></div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="comment">     **/</span></div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <a class="code" href="classYUITerminator.html#a43067875115699b19aa28f9460647e17">~YUITerminator</a>();</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;};</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classYUITerminator.html#a43067875115699b19aa28f9460647e17">  521</a></span>&#160;<a class="code" href="classYUITerminator.html#a43067875115699b19aa28f9460647e17">YUITerminator::~YUITerminator</a>()</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;{</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="keywordflow">if</span> ( YUI::_ui )</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    {</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        yuiMilestone() &lt;&lt; <span class="stringliteral">&quot;Shutting down UI&quot;</span> &lt;&lt; endl;</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keyword">delete</span> YUI::_ui;</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        YUI::_ui = 0;</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    }</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;}</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;<span class="comment"> * Static YUITerminator instance: It will make sure the UI is deleted in its</span></div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="comment"> * global destructor. If the UI is already destroyed, it will do nothing. If</span></div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="comment"> * there still is a UI object, it will be deleted.</span></div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="comment"> * This is particularly important for the NCurses UI so the terminal settings</span></div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="comment"> * are properly restored.</span></div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="comment"> **/</span></div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="keyword">static</span> <a class="code" href="classYUITerminator.html">YUITerminator</a> uiTerminator;</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="comment">// EOF</span></div>
<div class="ttc" id="classYOptionalWidgetFactory_html"><div class="ttname"><a href="classYOptionalWidgetFactory.html">YOptionalWidgetFactory</a></div><div class="ttdef"><b>Definition:</b> <a href="YOptionalWidgetFactory_8h_source.html#l00056">YOptionalWidgetFactory.h:56</a></div></div>
<div class="ttc" id="classYUI_html_abd12830bec2cb7202e94619a3bddb0fc"><div class="ttname"><a href="classYUI.html#abd12830bec2cb7202e94619a3bddb0fc">YUI::pipe_from_ui</a></div><div class="ttdeci">int pipe_from_ui[2]</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00344">YUI.h:344</a></div></div>
<div class="ttc" id="classYUI_html_abc137296502446fc11f14ce8034af0c5"><div class="ttname"><a href="classYUI.html#abc137296502446fc11f14ce8034af0c5">YUI::setButtonOrderFromEnvironment</a></div><div class="ttdeci">void setButtonOrderFromEnvironment()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00386">YUI.cc:386</a></div></div>
<div class="ttc" id="classYUI_html_a8445ba851d8ca034e415867dd3d33c82"><div class="ttname"><a href="classYUI.html#a8445ba851d8ca034e415867dd3d33c82">YUI::widgetFactory</a></div><div class="ttdeci">static YWidgetFactory * widgetFactory()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00126">YUI.cc:126</a></div></div>
<div class="ttc" id="classYUI_html"><div class="ttname"><a href="classYUI.html">YUI</a></div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00048">YUI.h:48</a></div></div>
<div class="ttc" id="classYUI_html_aed94e4c078090934e6cf5bb8e6c5c010"><div class="ttname"><a href="classYUI.html#aed94e4c078090934e6cf5bb8e6c5c010">YUI::createUIThread</a></div><div class="ttdeci">void createUIThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00235">YUI.cc:235</a></div></div>
<div class="ttc" id="classYUI_html_ac311037e0ff3567429e8e7b7c8544908"><div class="ttname"><a href="classYUI.html#ac311037e0ff3567429e8e7b7c8544908">YUI::createApplication</a></div><div class="ttdeci">virtual YApplication * createApplication()=0</div></div>
<div class="ttc" id="classYUI_html_a001636c06719ab9ea0d330be74e059a3"><div class="ttname"><a href="classYUI.html#a001636c06719ab9ea0d330be74e059a3">YUI::topmostConstructorHasFinished</a></div><div class="ttdeci">void topmostConstructorHasFinished()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00182">YUI.cc:182</a></div></div>
<div class="ttc" id="classYUI_html_a4fd19a9c221d5f77302c51caa36daf4b"><div class="ttname"><a href="classYUI.html#a4fd19a9c221d5f77302c51caa36daf4b">YUI::pipe_to_ui</a></div><div class="ttdeci">int pipe_to_ui[2]</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00337">YUI.h:337</a></div></div>
<div class="ttc" id="classYUI_html_a89e5ff95853d0efe8fc0d00debcc4f82"><div class="ttname"><a href="classYUI.html#a89e5ff95853d0efe8fc0d00debcc4f82">YUI::terminateUIThread</a></div><div class="ttdeci">void terminateUIThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00246">YUI.cc:246</a></div></div>
<div class="ttc" id="classYMacro_html_af84bf1aeb4d73cf202bce9c9b4a1e886"><div class="ttname"><a href="classYMacro.html#af84bf1aeb4d73cf202bce9c9b4a1e886">YMacro::deletePlayer</a></div><div class="ttdeci">static void deletePlayer()</div><div class="ttdef"><b>Definition:</b> <a href="YMacro_8cc_source.html#l00105">YMacro.cc:105</a></div></div>
<div class="ttc" id="classYUI_html_a825fcdfc915748c8ad1de46003250d5b"><div class="ttname"><a href="classYUI.html#a825fcdfc915748c8ad1de46003250d5b">YUI::_withThreads</a></div><div class="ttdeci">bool _withThreads</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00316">YUI.h:316</a></div></div>
<div class="ttc" id="classYButtonBox_html_a205f1a7654c8b50bb208d4911c840677"><div class="ttname"><a href="classYButtonBox.html#a205f1a7654c8b50bb208d4911c840677">YButtonBox::kdeLayoutPolicy</a></div><div class="ttdeci">static YButtonBoxLayoutPolicy kdeLayoutPolicy()</div><div class="ttdef"><b>Definition:</b> <a href="YButtonBox_8cc_source.html#l00096">YButtonBox.cc:96</a></div></div>
<div class="ttc" id="classYUITerminator_html"><div class="ttname"><a href="classYUITerminator.html">YUITerminator</a></div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00506">YUI.cc:506</a></div></div>
<div class="ttc" id="classYUI_html_a879193b02b85f147c9aaed431f4eb4f3"><div class="ttname"><a href="classYUI.html#a879193b02b85f147c9aaed431f4eb4f3">YUI::signalUIThread</a></div><div class="ttdeci">void signalUIThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00273">YUI.cc:273</a></div></div>
<div class="ttc" id="classYUI_html_ada7814d3b6bb12b6a7e428fde9e9fabb"><div class="ttname"><a href="classYUI.html#ada7814d3b6bb12b6a7e428fde9e9fabb">YUI::ensureUICreated</a></div><div class="ttdeci">static void ensureUICreated()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00170">YUI.cc:170</a></div></div>
<div class="ttc" id="classYUI_html_a779192345ef2d9b1d4ecba10c46f7425"><div class="ttname"><a href="classYUI.html#a779192345ef2d9b1d4ecba10c46f7425">YUI::createOptionalWidgetFactory</a></div><div class="ttdeci">virtual YOptionalWidgetFactory * createOptionalWidgetFactory()=0</div></div>
<div class="ttc" id="classYUI_html_ac85ed5ca0b45586be919bfed07410e61"><div class="ttname"><a href="classYUI.html#ac85ed5ca0b45586be919bfed07410e61">YUI::uiThreadDestructor</a></div><div class="ttdeci">virtual void uiThreadDestructor()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00111">YUI.cc:111</a></div></div>
<div class="ttc" id="classYUI_html_ab7da57ee81d7efaf5cd1f1cbbf4dd969"><div class="ttname"><a href="classYUI.html#ab7da57ee81d7efaf5cd1f1cbbf4dd969">YUI::shutdownThreads</a></div><div class="ttdeci">void shutdownThreads()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00259">YUI.cc:259</a></div></div>
<div class="ttc" id="classYUI_html_a4455b1fc0a49d5aefa4ef9f87b0b3f72"><div class="ttname"><a href="classYUI.html#a4455b1fc0a49d5aefa4ef9f87b0b3f72">YUI::waitForYCPThread</a></div><div class="ttdeci">bool waitForYCPThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00325">YUI.cc:325</a></div></div>
<div class="ttc" id="classYButtonBox_html_aed790757d6362470fea32757d5f066ef"><div class="ttname"><a href="classYButtonBox.html#aed790757d6362470fea32757d5f066ef">YButtonBox::layoutPolicy</a></div><div class="ttdeci">static YButtonBoxLayoutPolicy layoutPolicy()</div><div class="ttdef"><b>Definition:</b> <a href="YButtonBox_8cc_source.html#l00089">YButtonBox.cc:89</a></div></div>
<div class="ttc" id="classYButtonBox_html_a1360206fd87dacb788472232912d88f3"><div class="ttname"><a href="classYButtonBox.html#a1360206fd87dacb788472232912d88f3">YButtonBox::gnomeLayoutPolicy</a></div><div class="ttdeci">static YButtonBoxLayoutPolicy gnomeLayoutPolicy()</div><div class="ttdef"><b>Definition:</b> <a href="YButtonBox_8cc_source.html#l00110">YButtonBox.cc:110</a></div></div>
<div class="ttc" id="classYUI_html_a3c64ecbea29c25bcc5cda526fd679a0c"><div class="ttname"><a href="classYUI.html#a3c64ecbea29c25bcc5cda526fd679a0c">YUI::uiThreadMainLoop</a></div><div class="ttdeci">void uiThreadMainLoop()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00353">YUI.cc:353</a></div></div>
<div class="ttc" id="classYDialog_html_a64713866719b307d6af95ed2ad2bf02b"><div class="ttname"><a href="classYDialog.html#a64713866719b307d6af95ed2ad2bf02b">YDialog::deleteAllDialogs</a></div><div class="ttdeci">static void deleteAllDialogs()</div><div class="ttdef"><b>Definition:</b> <a href="YDialog_8cc_source.html#l00522">YDialog.cc:522</a></div></div>
<div class="ttc" id="classYEnvVar_html"><div class="ttname"><a href="classYEnvVar.html">YEnvVar</a></div><div class="ttdef"><b>Definition:</b> <a href="YEnvVar_8h_source.html#l00036">YEnvVar.h:36</a></div></div>
<div class="ttc" id="classYApplication_html"><div class="ttname"><a href="classYApplication.html">YApplication</a></div><div class="ttdef"><b>Definition:</b> <a href="YApplication_8h_source.html#l00044">YApplication.h:44</a></div></div>
<div class="ttc" id="classYUI_html_a93cfbc2a90ed37023aff631bb5b9526c"><div class="ttname"><a href="classYUI.html#a93cfbc2a90ed37023aff631bb5b9526c">YUI::optionalWidgetFactory</a></div><div class="ttdeci">static YOptionalWidgetFactory * optionalWidgetFactory()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00141">YUI.cc:141</a></div></div>
<div class="ttc" id="classYEnvVar_html_a7705ff5c9c0690311989c578b1596582"><div class="ttname"><a href="classYEnvVar.html#a7705ff5c9c0690311989c578b1596582">YEnvVar::value</a></div><div class="ttdeci">std::string value() const </div><div class="ttdef"><b>Definition:</b> <a href="YEnvVar_8h_source.html#l00059">YEnvVar.h:59</a></div></div>
<div class="ttc" id="classYBuiltinCaller_html_a3ae52eb585b7b1299fa07e2375ce347a"><div class="ttname"><a href="classYBuiltinCaller.html#a3ae52eb585b7b1299fa07e2375ce347a">YBuiltinCaller::call</a></div><div class="ttdeci">virtual void call()=0</div></div>
<div class="ttc" id="classYDialog_html_a2e97c0671f759a1ea7cd960b873bffd9"><div class="ttname"><a href="classYDialog.html#a2e97c0671f759a1ea7cd960b873bffd9">YDialog::openDialogsCount</a></div><div class="ttdeci">static int openDialogsCount()</div><div class="ttdef"><b>Definition:</b> <a href="YDialog_8cc_source.html#l00553">YDialog.cc:553</a></div></div>
<div class="ttc" id="classYUI_html_a8345b48910188cb050fa422c048adb4c"><div class="ttname"><a href="classYUI.html#a8345b48910188cb050fa422c048adb4c">YUI::waitForUIThread</a></div><div class="ttdeci">bool waitForUIThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00285">YUI.cc:285</a></div></div>
<div class="ttc" id="classYUI_html_aeec3b301ca0d98a75fdd2207c5212aee"><div class="ttname"><a href="classYUI.html#aeec3b301ca0d98a75fdd2207c5212aee">YUI::signalYCPThread</a></div><div class="ttdeci">void signalYCPThread()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00313">YUI.cc:313</a></div></div>
<div class="ttc" id="classYUI_html_a14b269d4033e1cea8b82d97c3587ff78"><div class="ttname"><a href="classYUI.html#a14b269d4033e1cea8b82d97c3587ff78">YUI::~YUI</a></div><div class="ttdeci">virtual ~YUI()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00082">YUI.cc:82</a></div></div>
<div class="ttc" id="classYButtonBox_html_adcd04f3e13a065b63b668716dde98502"><div class="ttname"><a href="classYButtonBox.html#adcd04f3e13a065b63b668716dde98502">YButtonBox::setLayoutPolicy</a></div><div class="ttdeci">static void setLayoutPolicy(const YButtonBoxLayoutPolicy &amp;layoutPolicy)</div><div class="ttdef"><b>Definition:</b> <a href="YButtonBox_8cc_source.html#l00082">YButtonBox.cc:82</a></div></div>
<div class="ttc" id="classYUI_html_a5534a94a22db059b87a27946a65eb311"><div class="ttname"><a href="classYUI.html#a5534a94a22db059b87a27946a65eb311">YUI::app</a></div><div class="ttdeci">static YApplication * app()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00156">YUI.cc:156</a></div></div>
<div class="ttc" id="classYUI_html_a8a57ec8b680c47a219ca4dd610de2164"><div class="ttname"><a href="classYUI.html#a8a57ec8b680c47a219ca4dd610de2164">YUI::createWidgetFactory</a></div><div class="ttdeci">virtual YWidgetFactory * createWidgetFactory()=0</div></div>
<div class="ttc" id="classYUI_html_a6902b5389b4c50d3612bbb71a9e39c25"><div class="ttname"><a href="classYUI.html#a6902b5389b4c50d3612bbb71a9e39c25">YUI::_terminate_ui_thread</a></div><div class="ttdeci">bool _terminate_ui_thread</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00352">YUI.h:352</a></div></div>
<div class="ttc" id="classYWidgetFactory_html"><div class="ttname"><a href="classYWidgetFactory.html">YWidgetFactory</a></div><div class="ttdef"><b>Definition:</b> <a href="YWidgetFactory_8h_source.html#l00076">YWidgetFactory.h:76</a></div></div>
<div class="ttc" id="classYUI_html_a07f88496e2c55154b7a992c7dd48f488"><div class="ttname"><a href="classYUI.html#a07f88496e2c55154b7a992c7dd48f488">YUI::YUI</a></div><div class="ttdeci">YUI(bool withThreads)</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00069">YUI.cc:69</a></div></div>
<div class="ttc" id="classYUI_html_afda2fe2040aa2a1a839adb553d50ec5f"><div class="ttname"><a href="classYUI.html#afda2fe2040aa2a1a839adb553d50ec5f">YUI::_uiThread</a></div><div class="ttdeci">pthread_t _uiThread</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00321">YUI.h:321</a></div></div>
<div class="ttc" id="classYUI_html_a2a08ea525fbc8d5a8f2cec1721e97a3e"><div class="ttname"><a href="classYUI.html#a2a08ea525fbc8d5a8f2cec1721e97a3e">YUI::ui</a></div><div class="ttdeci">static YUI * ui()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00118">YUI.cc:118</a></div></div>
<div class="ttc" id="classYUIException_html"><div class="ttname"><a href="classYUIException.html">YUIException</a></div><div class="ttdef"><b>Definition:</b> <a href="YUIException_8h_source.html#l00281">YUIException.h:281</a></div></div>
<div class="ttc" id="classYUITerminator_html_a43067875115699b19aa28f9460647e17"><div class="ttname"><a href="classYUITerminator.html#a43067875115699b19aa28f9460647e17">YUITerminator::~YUITerminator</a></div><div class="ttdeci">~YUITerminator()</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8cc_source.html#l00521">YUI.cc:521</a></div></div>
<div class="ttc" id="classYUI_html_a1d378cf89009fcbe88c16392e518dd80"><div class="ttname"><a href="classYUI.html#a1d378cf89009fcbe88c16392e518dd80">YUI::idleLoop</a></div><div class="ttdeci">virtual void idleLoop(int fd_ycp)=0</div></div>
<div class="ttc" id="classYUILoader_html_afffb7f173726fe3283380b987997d34c"><div class="ttname"><a href="classYUILoader.html#afffb7f173726fe3283380b987997d34c">YUILoader::loadUI</a></div><div class="ttdeci">static void loadUI(bool withThreads=false)</div><div class="ttdef"><b>Definition:</b> <a href="YUILoader_8cc_source.html#l00039">YUILoader.cc:39</a></div></div>
<div class="ttc" id="classYMacro_html_a6d74cd379e4c4c59eef7a6e05669e0d2"><div class="ttname"><a href="classYMacro.html#a6d74cd379e4c4c59eef7a6e05669e0d2">YMacro::deleteRecorder</a></div><div class="ttdeci">static void deleteRecorder()</div><div class="ttdef"><b>Definition:</b> <a href="YMacro_8cc_source.html#l00098">YMacro.cc:98</a></div></div>
<div class="ttc" id="classYDialog_html_abed7be3f59987fc5f986f34909fe86f1"><div class="ttname"><a href="classYDialog.html#abed7be3f59987fc5f986f34909fe86f1">YDialog::_dialogStack</a></div><div class="ttdeci">static std::stack&lt; YDialog * &gt; _dialogStack</div><div class="ttdef"><b>Definition:</b> <a href="YDialog_8h_source.html#l00393">YDialog.h:393</a></div></div>
<div class="ttc" id="classYUI_html_a3e047529af4ed391108956817640015c"><div class="ttname"><a href="classYUI.html#a3e047529af4ed391108956817640015c">YUI::_builtinCaller</a></div><div class="ttdeci">YBuiltinCaller * _builtinCaller</div><div class="ttdef"><b>Definition:</b> <a href="YUI_8h_source.html#l00330">YUI.h:330</a></div></div>
<div class="ttc" id="classYEnvVar_html_a269eea5ecc1d84568997efd125f4aec6"><div class="ttname"><a href="classYEnvVar.html#a269eea5ecc1d84568997efd125f4aec6">YEnvVar::contains</a></div><div class="ttdeci">bool contains(const std::string &amp;str, bool caseSensitive=false) const </div><div class="ttdef"><b>Definition:</b> <a href="YEnvVar_8cc_source.html#l00066">YEnvVar.cc:66</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>YUI.cc</b></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
  </ul>
</div>
</body>
</html>