aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02558.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a02558.html798
1 files changed, 798 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02558.html b/docs/doxygen/nel/a02558.html
new file mode 100644
index 00000000..f2436f4e
--- /dev/null
+++ b/docs/doxygen/nel/a02558.html
@@ -0,0 +1,798 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLGEORGES::CFormLoader class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLGEORGES::CFormLoader Class Reference</h1><code>#include &lt;<a class="el" href="a05731.html">form_loader.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLGEORGES::CFormLoader:
+<p><center><img src="a02558.png" usemap="#NLGEORGES::CFormLoader_map" border="0" alt=""></center>
+<map name="NLGEORGES::CFormLoader_map">
+<area href="a02559.html" alt="NLGEORGES::UFormLoader" shape="rect" coords="0,0,172,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Georges form loader implementation<p>
+<dl compact><dt><b>Author:</b></dt><dd>Cyril 'Hulud' Corvazier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2002 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00049">49</a> of file <a class="el" href="a05731.html">form_loader.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03926.html">UForm</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadera0">loadForm</a> (const char *<a class="el" href="a04560.html#a1">filename</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02546.html">CFormDfn</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadera1">loadFormDfn</a> (const char *<a class="el" href="a04560.html#a1">filename</a>, bool forceLoad)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02547.html">UFormDfn</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadera2">loadFormDfn</a> (const char *<a class="el" href="a04560.html#a1">filename</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03623.html">UType</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadera3">loadFormType</a> (const char *<a class="el" href="a04560.html#a1">filename</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03622.html">CType</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadera4">loadType</a> (const char *<a class="el" href="a04560.html#a1">filename</a>)</td></tr>
+
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02559.html">UFormLoader</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadere0">createLoader</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a form loader. <a href="#NLGEORGES_1_1UFormLoadere0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadere1">releaseLoader</a> (<a class="el" href="a02559.html">UFormLoader</a> *loader)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a form loader. <a href="#NLGEORGES_1_1UFormLoadere1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map&lt; std::string,<br>
+ <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a02546.html">CFormDfn</a> &gt; &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery0">TFormDfnMap</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map&lt; std::string,<br>
+ <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a02544.html">CForm</a> &gt; &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery1">TFormMap</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map&lt; std::string,<br>
+ <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a03622.html">CType</a> &gt; &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery2">TTypeMap</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (bool exception, const char *function, const char *<a class="el" href="a04223.html#a641">format</a>,...) const </td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery1">TFormMap</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery0">TFormDfnMap</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery2">TTypeMap</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">_MapType</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadery0" doxytag="NLGEORGES::CFormLoader::TFormDfnMap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::map&lt;std::string, <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a02546.html">CFormDfn</a>&gt; &gt; <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery0">NLGEORGES::CFormLoader::TFormDfnMap</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00068">68</a> of file <a class="el" href="a05731.html">form_loader.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadery1" doxytag="NLGEORGES::CFormLoader::TFormMap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::map&lt;std::string, <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a02544.html">CForm</a>&gt; &gt; <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery1">NLGEORGES::CFormLoader::TFormMap</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00069">69</a> of file <a class="el" href="a05731.html">form_loader.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadery2" doxytag="NLGEORGES::CFormLoader::TTypeMap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::map&lt;std::string, <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a03622.html">CType</a>&gt; &gt; <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery2">NLGEORGES::CFormLoader::TTypeMap</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00067">67</a> of file <a class="el" href="a05731.html">form_loader.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLGEORGES_1_1UFormLoadere0" doxytag="NLGEORGES::CFormLoader::createLoader" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02559.html">UFormLoader</a> * NLGEORGES::UFormLoader::createLoader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Create a form loader.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05730.html#l00053">53</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l00358">NLSOUND::CAudioMixerUser::init()</a>, and <a class="el" href="a05926.html#l00145">loadForm()</a>.
+<p>
+<div class="fragment"><pre>00054 {
+00055 <span class="keywordflow">return</span> <span class="keyword">new</span> CFormLoader;
+00056 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadera0" doxytag="NLGEORGES::CFormLoader::loadForm" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03926.html">UForm</a> * NLGEORGES::CFormLoader::loadForm </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Load a form, use NMISC::CPath to find the file.<p>
+The pointer on the form must be held in a CSmartPtr&lt;UForm&gt;. Returns NULL if the form can't be loaded.
+<p>
+Implements <a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadera0">NLGEORGES::UFormLoader</a>.
+<p>
+Definition at line <a class="el" href="a05730.html#l00205">205</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+References <a class="el" href="a05731.html#l00078">_MapForm</a>, <a class="el" href="a05538.html#l02654">file</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05730.html#l00302">loadFormDfn()</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05730.html#l00316">warning()</a>.
+<p>
+Referenced by <a class="el" href="a05724.html#l00154">NLGEORGES::CForm::readParent()</a>.
+<p>
+<div class="fragment"><pre>00206 {
+00207 <span class="comment">// Lower string filename</span>
+00208 string lowerStr = <a class="code" href="a05378.html#a273">strlwr</a> ((string)filename);
+00209 lowerStr = CFile::getFilename (lowerStr);
+00210
+00211 <span class="comment">// Already in the map ?</span>
+00212 TFormMap::iterator ite = <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.find (lowerStr);
+00213 <span class="keywordflow">if</span> (ite != <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.end() &amp;&amp; ite-&gt;second)
+00214 {
+00215 <span class="comment">// Return the pointer</span>
+00216 <span class="keywordflow">return</span> (CForm*)ite-&gt;second;
+00217 }
+00218 <span class="keywordflow">else</span>
+00219 {
+00220 <span class="comment">// Create the form</span>
+00221 CForm *form = <span class="keyword">new</span> CForm;
+00222
+00223 <span class="comment">// Insert the form first</span>
+00224 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>[lowerStr] = form;
+00225
+00226 <span class="comment">// Load the type</span>
+00227 <span class="keywordflow">try</span>
+00228 {
+00229 <span class="comment">// Get the form DFN filename</span>
+00230 string name = CFile::getFilename (filename);
+00231 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a566">index</a> = name.rfind (<span class="charliteral">'.'</span>);
+00232 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> == string::npos)
+00233 {
+00234 <span class="comment">// Output error</span>
+00235 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadForm"</span>, <span class="stringliteral">"Form name is invalid (%s). It should have the extension of its DFN type."</span>, name.c_str ());
+00236
+00237 <span class="comment">// Delete the form</span>
+00238 <span class="keyword">delete</span> form;
+00239 form = NULL;
+00240 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.erase (lowerStr);
+00241 }
+00242 name = name.substr (index+1);
+00243 name += <span class="stringliteral">".dfn"</span>;
+00244
+00245 <span class="comment">// Load the dfn</span>
+00246 CFormDfn *dfn = <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoadera2">loadFormDfn</a> (name.c_str (), <span class="keyword">false</span>);
+00247 <span class="keywordflow">if</span> (dfn)
+00248 {
+00249 <span class="comment">// Open the file</span>
+00250 name = CPath::lookup (filename, <span class="keyword">false</span>, <span class="keyword">false</span>);
+00251 <span class="keywordflow">if</span> (name.empty())
+00252 name = <a class="code" href="a05377.html#a2">filename</a>;
+00253 <a class="code" href="a02653.html">CIFile</a> <a class="code" href="a04115.html#a95">file</a>;
+00254 <span class="keywordflow">if</span> (<a class="code" href="a04115.html#a95">file</a>.open (name))
+00255 {
+00256 <span class="comment">// Init an xml stream</span>
+00257 CIXml read;
+00258 read.init (file);
+00259
+00260 <span class="comment">// Read the form</span>
+00261 form-&gt;read (read.getRootNode (), *<span class="keyword">this</span>, dfn, <a class="code" href="a05377.html#a2">filename</a>);
+00262 }
+00263 <span class="keywordflow">else</span>
+00264 {
+00265 <span class="comment">// Output error</span>
+00266 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadForm"</span>, <span class="stringliteral">"Can't open the form file (%s)."</span>, filename);
+00267
+00268 <span class="comment">// Delete the form</span>
+00269 <span class="keyword">delete</span> form;
+00270 form = NULL;
+00271 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.erase (lowerStr);
+00272 }
+00273 }
+00274 <span class="keywordflow">else</span>
+00275 {
+00276 <span class="comment">// Output error</span>
+00277 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadForm"</span>, <span class="stringliteral">"Can't open the dfn file (%s)."</span>, name.c_str ());
+00278
+00279 <span class="comment">// Delete the form</span>
+00280 <span class="keyword">delete</span> form;
+00281 form = NULL;
+00282 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.erase (lowerStr);
+00283 }
+00284 }
+00285 <span class="keywordflow">catch</span> (<a class="code" href="a02482.html">Exception</a> &amp;e)
+00286 {
+00287 <span class="comment">// Output error</span>
+00288 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadForm"</span>, <span class="stringliteral">"Error while loading the form (%s): %s"</span>, filename, e.what());
+00289
+00290 <span class="comment">// Delete the form</span>
+00291 <span class="keyword">delete</span> form;
+00292 form = NULL;
+00293 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">_MapForm</a>.erase (lowerStr);
+00294 }
+00295
+00296 <span class="keywordflow">return</span> form;
+00297 }
+00298 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadera1" doxytag="NLGEORGES::CFormLoader::loadFormDfn" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02546.html">CFormDfn</a> * NLGEORGES::CFormLoader::loadFormDfn </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>filename</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>forceLoad</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05730.html#l00139">139</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+References <a class="el" href="a05731.html#l00075">_MapFormDfn</a>, <a class="el" href="a05538.html#l02654">file</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, and <a class="el" href="a05730.html#l00316">warning()</a>.
+<p>
+<div class="fragment"><pre>00140 {
+00141 <span class="comment">// Lower string filename</span>
+00142 string lowerStr = <a class="code" href="a05378.html#a273">strlwr</a> ((string)filename);
+00143 lowerStr = CFile::getFilename (lowerStr);
+00144
+00145 <span class="comment">// Already in the map ?</span>
+00146 TFormDfnMap::iterator ite = <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a>.find (lowerStr);
+00147 <span class="keywordflow">if</span> (ite != <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a>.end() &amp;&amp; ite-&gt;second)
+00148 {
+00149 <span class="comment">// Return the pointer</span>
+00150 <span class="keywordflow">return</span> ite-&gt;second;
+00151 }
+00152 <span class="keywordflow">else</span>
+00153 {
+00154 <span class="comment">// Create the formDfn</span>
+00155 CFormDfn *formDfn = <span class="keyword">new</span> CFormDfn;
+00156
+00157 <span class="comment">// Insert the form first</span>
+00158 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a>[lowerStr] = formDfn;
+00159
+00160 <span class="comment">// Load the type</span>
+00161 <span class="keywordflow">try</span>
+00162 {
+00163 <span class="comment">// Open the file</span>
+00164 string name = CPath::lookup (filename, <span class="keyword">false</span>, <span class="keyword">false</span>);
+00165 <span class="keywordflow">if</span> (name.empty())
+00166 name = <a class="code" href="a05377.html#a2">filename</a>;
+00167 <a class="code" href="a02653.html">CIFile</a> <a class="code" href="a04115.html#a95">file</a>;
+00168 <span class="keywordflow">if</span> (<a class="code" href="a04115.html#a95">file</a>.open (name))
+00169 {
+00170 <span class="comment">// Init an xml stream</span>
+00171 CIXml read;
+00172 read.init (file);
+00173
+00174 <span class="comment">// Read the type</span>
+00175 formDfn-&gt;read (read.getRootNode (), *<span class="keyword">this</span>, forceLoad, <a class="code" href="a05377.html#a2">filename</a>);
+00176 }
+00177 <span class="keywordflow">else</span>
+00178 {
+00179 <span class="comment">// Output error</span>
+00180 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadFormDfn"</span>, <span class="stringliteral">"Can't open the form file (%s)."</span>, filename);
+00181
+00182 <span class="comment">// Delete the formDfn</span>
+00183 <span class="keyword">delete</span> formDfn;
+00184 formDfn = NULL;
+00185 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a>.erase (lowerStr);
+00186 }
+00187 }
+00188 <span class="keywordflow">catch</span> (<a class="code" href="a02482.html">Exception</a> &amp;e)
+00189 {
+00190 <span class="comment">// Output error</span>
+00191 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadFormDfn"</span>, <span class="stringliteral">"Error while loading the form (%s): %s"</span>, filename, e.what());
+00192
+00193 <span class="comment">// Delete the formDfn</span>
+00194 <span class="keyword">delete</span> formDfn;
+00195 formDfn = NULL;
+00196 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">_MapFormDfn</a>.erase (lowerStr);
+00197 }
+00198
+00199 <span class="keywordflow">return</span> formDfn;
+00200 }
+00201 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadera2" doxytag="NLGEORGES::CFormLoader::loadFormDfn" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02547.html">UFormDfn</a> * NLGEORGES::CFormLoader::loadFormDfn </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Load a DFN, use NMISC::CPath to find the file.<p>
+The pointer on the form must be held in a CSmartPtr&lt;UFormDfn&gt;. Returns NULL if the DFN can't be loaded.
+<p>
+Implements <a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadera1">NLGEORGES::UFormLoader</a>.
+<p>
+Definition at line <a class="el" href="a05730.html#l00302">302</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00205">loadForm()</a>, <a class="el" href="a05728.html#l02175">NLGEORGES::CFormElmVirtualStruct::read()</a>, <a class="el" href="a05726.html#l00118">NLGEORGES::CFormDfn::read()</a>, <a class="el" href="a05726.html#l00477">NLGEORGES::CFormDfn::CEntry::setDfn()</a>, and <a class="el" href="a05726.html#l00456">NLGEORGES::CFormDfn::setParent()</a>.
+<p>
+<div class="fragment"><pre>00303 {
+00304 <span class="keywordflow">return</span> <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoadera2">loadFormDfn</a> (filename, <span class="keyword">false</span>);
+00305 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadera3" doxytag="NLGEORGES::CFormLoader::loadFormType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03623.html">UType</a> * NLGEORGES::CFormLoader::loadFormType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Load a type, use NMISC::CPath to find the file.<p>
+The pointer on the form must be held in a CSmartPtr&lt;UType&gt;. Returns NULL if the type can't be loaded.
+<p>
+Implements <a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadera2">NLGEORGES::UFormLoader</a>.
+<p>
+Definition at line <a class="el" href="a05730.html#l00309">309</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+References <a class="el" href="a05730.html#l00069">loadType()</a>.
+<p>
+<div class="fragment"><pre>00310 {
+00311 <span class="keywordflow">return</span> <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoadera4">loadType</a> (filename);
+00312 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoadera4" doxytag="NLGEORGES::CFormLoader::loadType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03622.html">CType</a> * NLGEORGES::CFormLoader::loadType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05730.html#l00069">69</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+References <a class="el" href="a05731.html#l00072">_MapType</a>, <a class="el" href="a05538.html#l02654">file</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a05646.html#l00244">type</a>, and <a class="el" href="a05730.html#l00316">warning()</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00309">loadFormType()</a>, <a class="el" href="a05726.html#l00118">NLGEORGES::CFormDfn::read()</a>, and <a class="el" href="a05726.html#l00467">NLGEORGES::CFormDfn::CEntry::setType()</a>.
+<p>
+<div class="fragment"><pre>00070 {
+00071 <span class="comment">// Lower string filename</span>
+00072 string lowerStr = <a class="code" href="a05378.html#a273">strlwr</a> ((string)filename);
+00073 lowerStr = CFile::getFilename (lowerStr);
+00074
+00075 <span class="comment">// Already in the map ?</span>
+00076 TTypeMap::iterator ite = <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">_MapType</a>.find (lowerStr);
+00077 <span class="keywordflow">if</span> (ite != <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">_MapType</a>.end() &amp;&amp; (ite-&gt;second != NULL) )
+00078 {
+00079 <span class="comment">// Return the pointer</span>
+00080 <span class="keywordflow">return</span> ite-&gt;second;
+00081 }
+00082 <span class="keywordflow">else</span>
+00083 {
+00084 <span class="comment">// Create the type</span>
+00085 CType *<a class="code" href="a04223.html#a581">type</a> = <span class="keyword">new</span> CType;
+00086
+00087 <span class="comment">// Load the type</span>
+00088 <span class="keywordflow">try</span>
+00089 {
+00090 <span class="comment">// Open the file</span>
+00091 string name = CPath::lookup (filename, <span class="keyword">false</span>, <span class="keyword">false</span>);
+00092 <span class="keywordflow">if</span> (name.empty())
+00093 name = <a class="code" href="a05377.html#a2">filename</a>;
+00094 <a class="code" href="a02653.html">CIFile</a> <a class="code" href="a04115.html#a95">file</a>;
+00095 <span class="keywordflow">if</span> (<a class="code" href="a04115.html#a95">file</a>.open (name))
+00096 {
+00097 <span class="comment">// Init an xml stream</span>
+00098 CIXml read;
+00099 read.init (file);
+00100
+00101 <span class="comment">// Read the type</span>
+00102 <a class="code" href="a04223.html#a581">type</a>-&gt;read (read.getRootNode ());
+00103 }
+00104 <span class="keywordflow">else</span>
+00105 {
+00106 <span class="comment">// Output error</span>
+00107 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadType"</span>, <span class="stringliteral">"Can't open the form file (%s)."</span>, filename);
+00108
+00109 <span class="comment">// Delete the type</span>
+00110 <span class="keyword">delete</span> <a class="code" href="a04223.html#a581">type</a>;
+00111 <a class="code" href="a04223.html#a581">type</a> = NULL;
+00112 }
+00113 }
+00114 <span class="keywordflow">catch</span> (<a class="code" href="a02482.html">Exception</a> &amp;e)
+00115 {
+00116 <span class="comment">// Output error</span>
+00117 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderd0">warning</a> (<span class="keyword">false</span>, <span class="stringliteral">"loadType"</span>, <span class="stringliteral">"Error while loading the form (%s): %s"</span>, filename, e.what());
+00118
+00119 <span class="comment">// Delete the type</span>
+00120 <span class="keyword">delete</span> <a class="code" href="a04223.html#a581">type</a>;
+00121 <a class="code" href="a04223.html#a581">type</a> = NULL;
+00122 }
+00123
+00124 <span class="comment">// Loaded ?</span>
+00125 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a>)
+00126 {
+00127 <span class="comment">// Insert a new entry</span>
+00128 <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">_MapType</a>[lowerStr]= <a class="code" href="a04223.html#a581">type</a>;
+00129 ite = <a class="code" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">_MapType</a>.find (lowerStr);
+00130 <span class="comment">//CType *typeType = ite-&gt;second;</span>
+00131 <span class="comment">// int toto = 0;</span>
+00132 }
+00133 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a581">type</a>;
+00134 }
+00135 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UFormLoadere1" doxytag="NLGEORGES::CFormLoader::releaseLoader" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLGEORGES::UFormLoader::releaseLoader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02559.html">UFormLoader</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>loader</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Create a form loader.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05730.html#l00060">60</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l00358">NLSOUND::CAudioMixerUser::init()</a>, and <a class="el" href="a05926.html#l00145">loadForm()</a>.
+<p>
+<div class="fragment"><pre>00061 {
+00062 <span class="keyword">delete</span> ((CFormLoader*)loader);
+00063 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoaderd0" doxytag="NLGEORGES::CFormLoader::warning" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLGEORGES::CFormLoader::warning </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>exception</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>function</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05730.html#l00316">316</a> of file <a class="el" href="a05730.html">form_loader.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a05724.html#l00045">NLGEORGES::warning()</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00205">loadForm()</a>, <a class="el" href="a05730.html#l00139">loadFormDfn()</a>, and <a class="el" href="a05730.html#l00069">loadType()</a>.
+<p>
+<div class="fragment"><pre>00317 {
+00318 <span class="comment">// Make a buffer string</span>
+00319 va_list args;
+00320 va_start( args, format );
+00321 <span class="keywordtype">char</span> <a class="code" href="a04223.html#a589">buffer</a>[1024];
+00322 vsnprintf( buffer, 1024, format, args );
+00323 va_end( args );
+00324
+00325 <span class="comment">// Set the warning</span>
+00326 <a class="code" href="a05374.html#a0">NLGEORGES::warning</a> (exception, <span class="stringliteral">"(CFormLoader::%s) : %s"</span>, function, buffer);
+00327 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLGEORGES_1_1CFormLoaderr0" doxytag="NLGEORGES::CFormLoader::_MapForm" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery1">TFormMap</a> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr0">NLGEORGES::CFormLoader::_MapForm</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00078">78</a> of file <a class="el" href="a05731.html">form_loader.h</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00205">loadForm()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoaderr1" doxytag="NLGEORGES::CFormLoader::_MapFormDfn" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery0">TFormDfnMap</a> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr1">NLGEORGES::CFormLoader::_MapFormDfn</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00075">75</a> of file <a class="el" href="a05731.html">form_loader.h</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00139">loadFormDfn()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CFormLoaderr2" doxytag="NLGEORGES::CFormLoader::_MapType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoadery2">TTypeMap</a> <a class="el" href="a02558.html#NLGEORGES_1_1CFormLoaderr2">NLGEORGES::CFormLoader::_MapType</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05731.html#l00072">72</a> of file <a class="el" href="a05731.html">form_loader.h</a>.
+<p>
+Referenced by <a class="el" href="a05730.html#l00069">loadType()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05731.html">form_loader.h</a><li><a class="el" href="a05730.html">form_loader.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 12:45:16 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>