Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > b3a1f4d91c26f535919e39e25606614a > files > 479

wt-doc-3.2.3-1.fc18.noarch.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"/>
<title>Wt examples: SimpleChatWidget Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wt examples
   &#160;<span id="projectnumber">3.2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">SimpleChatWidget Class Reference<div class="ingroups"><a class="el" href="group__chatexample.html">Chat example</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="SimpleChatWidget" --><!-- doxytag: inherits="Wt::WContainerWidget,SimpleChatServer::Client" -->
<p>A self-contained chat widget.  
 <a href="classSimpleChatWidget.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SimpleChatWidget:</div>
<div class="dyncontent">
<div class="center"><img src="classSimpleChatWidget__inherit__graph.png" border="0" usemap="#SimpleChatWidget_inherit__map" alt="Inheritance graph"/></div>
<map name="SimpleChatWidget_inherit__map" id="SimpleChatWidget_inherit__map">
<area shape="rect" href="classPopupChatWidget.html" title="A popup chat widget." alt="" coords="112,453,237,480"/><area shape="rect" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html" title="Wt::WContainerWidget" alt="" coords="5,304,160,331"/><area shape="rect" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html" title="Wt::WInteractWidget" alt="" coords="11,229,155,256"/><area shape="rect" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html" title="Wt::WWebWidget" alt="" coords="19,155,147,181"/><area shape="rect" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html" title="Wt::WWidget" alt="" coords="33,80,132,107"/><area shape="rect" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WObject.html" title="Wt::WObject" alt="" coords="35,5,131,32"/><area shape="rect" href="classSimpleChatServer_1_1Client.html" title="SimpleChatServer::Client" alt="" coords="184,304,349,331"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classSimpleChatWidget-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aa1cdfd4ad4b7442304c6f44b3346f2e0">SimpleChatWidget</a> (<a class="el" href="classSimpleChatServer.html">SimpleChatServer</a> &amp;server, <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *<a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a3461e31818c4d2f516641bdaf508312a">parent</a>=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a chat widget that will connect to the given server.  <a href="#aa1cdfd4ad4b7442304c6f44b3346f2e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#afdf56768400ee025d0b71ccce476b1bf">~SimpleChatWidget</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a chat widget.  <a href="#afdf56768400ee025d0b71ccce476b1bf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a5fa75ab733ce294065a1233dfcbe83d6">connect</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a7706247f4a599cd995003a260fd36b0a">disconnect</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a71d98bf20e007af247f3b5a74f35efa2">letLogin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Show a simple login screen.  <a href="#a71d98bf20e007af247f3b5a74f35efa2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a19c0deeaf8952ec36791c3f444964878">startChat</a> (const <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a> &amp;user)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a chat for the given user.  <a href="#a19c0deeaf8952ec36791c3f444964878"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#abff498a5a43a7e0caac5f2140f14e301">logout</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSimpleChatServer.html">SimpleChatServer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a839a181c695589b066c4d68152ab05c0">server</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a89bb84de7baa0e926a5c1d45fbd91256">userCount</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#af080cd053547503668a1ee29fd428d5f">userName</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aad5e7beb8f1aa6a26715d93fa3a9952e">createLayout</a> (<a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *messages, <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *userList, <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *messageEdit, <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *sendButton, <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *logoutButton)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a282d3fa5a7aceea89558de31db4bb6e0">updateUsers</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#ab5f02d352a4f461edbe9a8f70859edd7">newMessage</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aa1a93dff4800d783c80a9846cdc591b7">render</a> (Wt::WFlags&lt; <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a1097ddb5b58c20fe2f6c9d096e71575c">Wt::RenderFlag</a> &gt; flags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aa05605599e6eb9e6a7aeb51234533241">loggedIn</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::map&lt; <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a>, <br class="typebreak"/>
bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#ae3fdaeefe19e26c6c6ad9f7c0445af57">UserMap</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#ae085fda18af441e1630342395499478c">login</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#ad1c4dc9e6aca0c5b8e1db81ee7c5fad3">send</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a76509fdffaf6a244c99977cf587c42e0">updateUser</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#acda2bbe138c3119e4c62a6132801a232">processChatEvent</a> (const <a class="el" href="classChatEvent.html">ChatEvent</a> &amp;event)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSimpleChatWidget.html#ae3fdaeefe19e26c6c6ad9f7c0445af57">UserMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSimpleChatServer.html">SimpleChatServer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">loggedIn_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1JSlot.html">Wt::JSlot</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a7e58bf2312b413d2d649500c26a6f8d6">clearInput_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html">Wt::WLineEdit</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">Wt::WText</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a98f69adc6f2381cd98584566ed4c497e">statusMsg_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#acf8ebb5abeec698a1f363a139d1dbf6a">messageEditArea_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html">Wt::WTextArea</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">Wt::WPushButton</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSound.html">Wt::WSound</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A self-contained chat widget. </p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00034">34</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ae3fdaeefe19e26c6c6ad9f7c0445af57"></a><!-- doxytag: member="SimpleChatWidget::UserMap" ref="ae3fdaeefe19e26c6c6ad9f7c0445af57" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;<a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a>, bool&gt; <a class="el" href="classSimpleChatWidget.html#ae3fdaeefe19e26c6c6ad9f7c0445af57">SimpleChatWidget::UserMap</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00082">82</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa1cdfd4ad4b7442304c6f44b3346f2e0"></a><!-- doxytag: member="SimpleChatWidget::SimpleChatWidget" ref="aa1cdfd4ad4b7442304c6f44b3346f2e0" args="(SimpleChatServer &amp;server, Wt::WContainerWidget *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SimpleChatWidget::SimpleChatWidget </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSimpleChatServer.html">SimpleChatServer</a> &amp;&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a chat widget that will connect to the given server. </p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00026">26</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">  : <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(parent),
    <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>(server),
    <a class="code" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">loggedIn_</a>(<span class="keyword">false</span>),
    <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>(0),
    <a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a>(0)
{
  <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a> = <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#abf692567706118193111c2b2589c8d3f" title="Get a suggestion for a guest user name.">suggestGuest</a>();
  <a class="code" href="classSimpleChatWidget.html#a71d98bf20e007af247f3b5a74f35efa2" title="Show a simple login screen.">letLogin</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="afdf56768400ee025d0b71ccce476b1bf"></a><!-- doxytag: member="SimpleChatWidget::~SimpleChatWidget" ref="afdf56768400ee025d0b71ccce476b1bf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SimpleChatWidget::~SimpleChatWidget </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a chat widget. </p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00038">38</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keyword">delete</span> <a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a>;
  <a class="code" href="classSimpleChatWidget.html#abff498a5a43a7e0caac5f2140f14e301">logout</a>();
  <a class="code" href="classSimpleChatWidget.html#a7706247f4a599cd995003a260fd36b0a">disconnect</a>();
}
</pre></div>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a5fa75ab733ce294065a1233dfcbe83d6"></a><!-- doxytag: member="SimpleChatWidget::connect" ref="a5fa75ab733ce294065a1233dfcbe83d6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::connect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00045">45</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#a916cec08c2aeb2d2ccf413e9c9a45036" title="Connects to the chat server.">connect</a>
      (<span class="keyword">this</span>, boost::bind(&amp;<a class="code" href="classSimpleChatWidget.html#acda2bbe138c3119e4c62a6132801a232">SimpleChatWidget::processChatEvent</a>, <span class="keyword">this</span>, _1)))
    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a38d922da0a0d83395519f3eaab85d0f6">Wt::WApplication::instance</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#ad9631ca64e68d30d40cb49c90e55223d">enableUpdates</a>(<span class="keyword">true</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aad5e7beb8f1aa6a26715d93fa3a9952e"></a><!-- doxytag: member="SimpleChatWidget::createLayout" ref="aad5e7beb8f1aa6a26715d93fa3a9952e" args="(Wt::WWidget *messages, Wt::WWidget *userList, Wt::WWidget *messageEdit, Wt::WWidget *sendButton, Wt::WWidget *logoutButton)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::createLayout </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *&#160;</td>
          <td class="paramname"><em>messages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *&#160;</td>
          <td class="paramname"><em>userList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *&#160;</td>
          <td class="paramname"><em>messageEdit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *&#160;</td>
          <td class="paramname"><em>sendButton</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html">Wt::WWidget</a> *&#160;</td>
          <td class="paramname"><em>logoutButton</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classPopupChatWidget.html#a0bef3d63c991081040b68d0f224a18fa">PopupChatWidget</a>.</p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00108">108</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="comment">/*</span>
<span class="comment">   * Create a vertical layout, which will hold 3 rows,</span>
<span class="comment">   * organized like this:</span>
<span class="comment">   *</span>
<span class="comment">   * WVBoxLayout</span>
<span class="comment">   * --------------------------------------------</span>
<span class="comment">   * | nested WHBoxLayout (vertical stretch=1)  |</span>
<span class="comment">   * |                              |           |</span>
<span class="comment">   * |  messages                    | userList  |</span>
<span class="comment">   * |   (horizontal stretch=1)     |           |</span>
<span class="comment">   * |                              |           |</span>
<span class="comment">   * --------------------------------------------</span>
<span class="comment">   * | message edit area                        |</span>
<span class="comment">   * --------------------------------------------</span>
<span class="comment">   * | WHBoxLayout                              |</span>
<span class="comment">   * | send | logout                            |</span>
<span class="comment">   * --------------------------------------------</span>
<span class="comment">   */</span>
  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WVBoxLayout.html">WVBoxLayout</a> *vLayout = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WVBoxLayout.html">WVBoxLayout</a>();

  <span class="comment">// Create a horizontal layout for the messages | userslist.</span>
  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WHBoxLayout.html">WHBoxLayout</a> *hLayout = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WHBoxLayout.html">WHBoxLayout</a>();

  <span class="comment">// Add widget to horizontal layout with stretch = 1</span>
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(messages, 1);
  messages-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a4be23ecf48d5968efb5d926e38e01708">setStyleClass</a>(<span class="stringliteral">&quot;chat-msgs&quot;</span>);

    <span class="comment">// Add another widget to horizontal layout with stretch = 0</span>
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(userList);
  userList-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a4be23ecf48d5968efb5d926e38e01708">setStyleClass</a>(<span class="stringliteral">&quot;chat-users&quot;</span>);

  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#ac2628c9ddfb9b6c079a8b5d5261b94c2">setResizable</a>(0, <span class="keyword">true</span>);

  <span class="comment">// Add nested layout to vertical layout with stretch = 1</span>
  vLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a062d26b432841995a0be7b7d7aac6413">addLayout</a>(hLayout, 1);

  <span class="comment">// Add widget to vertical layout with stretch = 0</span>
  vLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(messageEdit);
  messageEdit-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a4be23ecf48d5968efb5d926e38e01708">setStyleClass</a>(<span class="stringliteral">&quot;chat-noedit&quot;</span>);

  <span class="comment">// Create a horizontal layout for the buttons.</span>
  hLayout = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WHBoxLayout.html">WHBoxLayout</a>();

  <span class="comment">// Add button to horizontal layout with stretch = 0</span>
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(sendButton);

  <span class="comment">// Add button to horizontal layout with stretch = 0</span>
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(logoutButton);

  <span class="comment">// Add nested layout to vertical layout with stretch = 0</span>
  vLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a062d26b432841995a0be7b7d7aac6413">addLayout</a>(hLayout, 0, AlignLeft);

  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a1c84e0ffe330d4798f0ce217f75be08c">setLayout</a>(vLayout);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a7706247f4a599cd995003a260fd36b0a"></a><!-- doxytag: member="SimpleChatWidget::disconnect" ref="a7706247f4a599cd995003a260fd36b0a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::disconnect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00052">52</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#a070e07e1a2a5ec5ecc4e944a761256c9" title="Disconnect from the chat server.">disconnect</a>(<span class="keyword">this</span>))
    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a38d922da0a0d83395519f3eaab85d0f6">Wt::WApplication::instance</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#ad9631ca64e68d30d40cb49c90e55223d">enableUpdates</a>(<span class="keyword">false</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a71d98bf20e007af247f3b5a74f35efa2"></a><!-- doxytag: member="SimpleChatWidget::letLogin" ref="a71d98bf20e007af247f3b5a74f35efa2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::letLogin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Show a simple login screen. </p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00058">58</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="code" href="classSimpleChatWidget.html#a7706247f4a599cd995003a260fd36b0a">disconnect</a>();

  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a608f748cbdda763f1a11556ddad9fbe1">clear</a>();

  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WVBoxLayout.html">WVBoxLayout</a> *vLayout = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WVBoxLayout.html">WVBoxLayout</a>();
  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a1c84e0ffe330d4798f0ce217f75be08c">setLayout</a>(vLayout);

  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WHBoxLayout.html">WHBoxLayout</a> *hLayout = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WHBoxLayout.html">WHBoxLayout</a>();
  vLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a062d26b432841995a0be7b7d7aac6413">addLayout</a>(hLayout, 0, AlignTop | AlignLeft);

  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(<span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLabel.html">WLabel</a>(<span class="stringliteral">&quot;User name:&quot;</span>), 0, AlignMiddle);
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(<a class="code" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html">WLineEdit</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>), 0, AlignMiddle);
  <a class="code" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WFormWidget.html#afe33f5c3658ddbd08fec9f6c203c578b">setFocus</a>();

  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a> *b = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<span class="stringliteral">&quot;Login&quot;</span>);
  hLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(b, 0, AlignMiddle);

  b-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#ae085fda18af441e1630342395499478c">SimpleChatWidget::login</a>);
  <a class="code" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#a38f06d1ad95e7599b055f49931236c10">enterPressed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignal.html#a36896f54a4db342af24efa6e9d703455">connect</a>(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#ae085fda18af441e1630342395499478c">SimpleChatWidget::login</a>);

  vLayout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBoxLayout.html#a7c1ec58e25d0b7add93f5f4342844db6">addWidget</a>(<a class="code" href="classSimpleChatWidget.html#a98f69adc6f2381cd98584566ed4c497e">statusMsg_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>());
  <a class="code" href="classSimpleChatWidget.html#a98f69adc6f2381cd98584566ed4c497e">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#af22c64c4c5fed3d2aef0915a7e5c5866">setTextFormat</a>(PlainText);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa05605599e6eb9e6a7aeb51234533241"></a><!-- doxytag: member="SimpleChatWidget::loggedIn" ref="aa05605599e6eb9e6a7aeb51234533241" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SimpleChatWidget::loggedIn </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00167">167</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">return</span> <a class="code" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">loggedIn_</a>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae085fda18af441e1630342395499478c"></a><!-- doxytag: member="SimpleChatWidget::login" ref="ae085fda18af441e1630342395499478c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::login </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00084">84</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#aa05605599e6eb9e6a7aeb51234533241">loggedIn</a>()) {
    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a> name = <a class="code" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html#ac74b58779cb635898cac13e81d8b0c7a">text</a>();

    <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a>)
      <a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSound.html">WSound</a>(<span class="stringliteral">&quot;sounds/message_received.mp3&quot;</span>);

    <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#a19c0deeaf8952ec36791c3f444964878" title="Start a chat for the given user.">startChat</a>(name))
      <a class="code" href="classSimpleChatWidget.html#a98f69adc6f2381cd98584566ed4c497e">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#a2f788aa524d51b3962642c9f565e66e6">setText</a>(<span class="stringliteral">&quot;Sorry, name &#39;&quot;</span> + <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a6cd1b8a84c7aaf72e5d44cb47ae90e9c">escapeText</a>(name) +
                          <span class="stringliteral">&quot;&#39; is already taken.&quot;</span>);
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="abff498a5a43a7e0caac5f2140f14e301"></a><!-- doxytag: member="SimpleChatWidget::logout" ref="abff498a5a43a7e0caac5f2140f14e301" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::logout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00098">98</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#aa05605599e6eb9e6a7aeb51234533241">loggedIn</a>()) {
    <a class="code" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">loggedIn_</a> = <span class="keyword">false</span>;
    <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#a5d376e3ff441f24843be648dd420e027" title="Logout from the server.">logout</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>);

    <a class="code" href="classSimpleChatWidget.html#a71d98bf20e007af247f3b5a74f35efa2" title="Show a simple login screen.">letLogin</a>();
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab5f02d352a4f461edbe9a8f70859edd7"></a><!-- doxytag: member="SimpleChatWidget::newMessage" ref="ab5f02d352a4f461edbe9a8f70859edd7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::newMessage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classPopupChatWidget.html#a23967836774a1de9984bbfcb5652e76c">PopupChatWidget</a>.</p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00310">310</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{ }
</pre></div>
</div>
</div>
<a class="anchor" id="acda2bbe138c3119e4c62a6132801a232"></a><!-- doxytag: member="SimpleChatWidget::processChatEvent" ref="acda2bbe138c3119e4c62a6132801a232" args="(const ChatEvent &amp;event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::processChatEvent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classChatEvent.html">ChatEvent</a> &amp;&#160;</td>
          <td class="paramname"><em>event</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00319">319</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html">WApplication</a> *app = WApplication::instance();

  <span class="comment">/*</span>
<span class="comment">   * This is where the &quot;server-push&quot; happens. The chat server posts to this</span>
<span class="comment">   * event from other sessions, see SimpleChatServer::postChatEvent()</span>
<span class="comment">   */</span>

  <span class="comment">/*</span>
<span class="comment">   * Format and append the line to the conversation.</span>
<span class="comment">   *</span>
<span class="comment">   * This is also the step where the automatic XSS filtering will kick in:</span>
<span class="comment">   * - if another user tried to pass on some JavaScript, it is filtered away.</span>
<span class="comment">   * - if another user did not provide valid XHTML, the text is automatically</span>
<span class="comment">   *   interpreted as PlainText</span>
<span class="comment">   */</span>

  <span class="comment">/*</span>
<span class="comment">   * If it is not a plain message, also update the user list.</span>
<span class="comment">   */</span>
  <span class="keywordflow">if</span> (event.<a class="code" href="classChatEvent.html#ac932234e63d23080f4f91f7ae1167418" title="Get the event type.">type</a>() != <a class="code" href="classChatEvent.html#afa84446dae17c08fe15cf932fc0b7d61ab8894351cd11a316e25495f677eb9ae1">ChatEvent::Message</a>) {
    <span class="keywordflow">if</span> (event.<a class="code" href="classChatEvent.html#ac932234e63d23080f4f91f7ae1167418" title="Get the event type.">type</a>() == <a class="code" href="classChatEvent.html#afa84446dae17c08fe15cf932fc0b7d61ab168d89affa0c72ba9a37d2881479ed8">ChatEvent::Rename</a> &amp;&amp; <span class="keyword">event</span>.user() == <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>)
      <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a> = event.<a class="code" href="classChatEvent.html#a7a16dc199e1da813b8fc6bc155dc04e2" title="Get the extra data for this event.">data</a>();

    <a class="code" href="classSimpleChatWidget.html#a282d3fa5a7aceea89558de31db4bb6e0">updateUsers</a>();
  }

  <a class="code" href="classSimpleChatWidget.html#ab5f02d352a4f461edbe9a8f70859edd7">newMessage</a>();

  <span class="comment">/*</span>
<span class="comment">   * Anything else doesn&#39;t matter if we are not logged in.</span>
<span class="comment">   */</span>
  <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#aa05605599e6eb9e6a7aeb51234533241">loggedIn</a>()) {
    app-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a51f50e0641a6d702a7c6ab7f8dd5946a">triggerUpdate</a>();
    <span class="keywordflow">return</span>;
  }

  <span class="keywordtype">bool</span> display = <span class="keyword">event</span>.type() != <a class="code" href="classChatEvent.html#afa84446dae17c08fe15cf932fc0b7d61ab8894351cd11a316e25495f677eb9ae1">ChatEvent::Message</a>
    || !<a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>
    || (<a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>.find(event.<a class="code" href="classChatEvent.html#adbeff19aece69e75ab0b69f2adecc5b6" title="Get the user who caused the event.">user</a>()) != <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>.end() &amp;&amp; <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>[<span class="keyword">event</span>.user()]);

  <span class="keywordflow">if</span> (display) {
    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a> *w = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(<a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>);

    <span class="comment">/*</span>
<span class="comment">     * If it fails, it is because the content wasn&#39;t valid XHTML</span>
<span class="comment">     */</span>
    <span class="keywordflow">if</span> (!w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#a2f788aa524d51b3962642c9f565e66e6">setText</a>(event.<a class="code" href="classChatEvent.html#a459911a1ba1c3e793c6c797e534691b7" title="Get the message formatted as HTML, rendered for the given user.">formattedHTML</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>, XHTMLText))) {
      w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#a2f788aa524d51b3962642c9f565e66e6">setText</a>(event.<a class="code" href="classChatEvent.html#a459911a1ba1c3e793c6c797e534691b7" title="Get the message formatted as HTML, rendered for the given user.">formattedHTML</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>, PlainText));
      w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#af22c64c4c5fed3d2aef0915a7e5c5866">setTextFormat</a>(XHTMLText);
    }

    w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#ad0957c892e70c6bf5399cf71e66f3e11">setInline</a>(<span class="keyword">false</span>);
    w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#afd3a3b359681111460a93d13979d17dd">setStyleClass</a>(<span class="stringliteral">&quot;chat-msg&quot;</span>);

    <span class="comment">/*</span>
<span class="comment">     * Leave no more than 100 messages in the back-log</span>
<span class="comment">     */</span>
    <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a85abd4d928575717052ff7fa04c3c2c9">count</a>() &gt; 100)
      <span class="keyword">delete</span> <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a72c4cd4ce0a6ed1ff2d7b6ddf2dbd917">children</a>()[0];

    <span class="comment">/*</span>
<span class="comment">     * Little javascript trick to make sure we scroll along with new content</span>
<span class="comment">     */</span>
    app-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a2a92457b9212cef4057cb54e56183967">doJavaScript</a>(<a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#aa2b7078b3b43d53a85e5244b45d504f7">jsRef</a>() + <span class="stringliteral">&quot;.scrollTop += &quot;</span>
                       + <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#aa2b7078b3b43d53a85e5244b45d504f7">jsRef</a>() + <span class="stringliteral">&quot;.scrollHeight;&quot;</span>);

    <span class="comment">/* If this message belongs to another user, play a received sound */</span>
    <span class="keywordflow">if</span> (event.<a class="code" href="classChatEvent.html#adbeff19aece69e75ab0b69f2adecc5b6" title="Get the user who caused the event.">user</a>() != <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a> &amp;&amp; <a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a>)
      <a class="code" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">messageReceived_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSound.html#a6ca6b48ebc9e49ee6745228961df3817">play</a>();
  }

  <span class="comment">/*</span>
<span class="comment">   * This is the server push action: we propagate the updated UI to the client,</span>
<span class="comment">   * (when the event was triggered by another user)</span>
<span class="comment">   */</span>
  app-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a51f50e0641a6d702a7c6ab7f8dd5946a">triggerUpdate</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa1a93dff4800d783c80a9846cdc591b7"></a><!-- doxytag: member="SimpleChatWidget::render" ref="aa1a93dff4800d783c80a9846cdc591b7" args="(Wt::WFlags&lt; Wt::RenderFlag &gt; flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::render </td>
          <td>(</td>
          <td class="paramtype">Wt::WFlags&lt; <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a1097ddb5b58c20fe2f6c9d096e71575c">Wt::RenderFlag</a> &gt;&#160;</td>
          <td class="paramname"><em>flags</em></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00172">172</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (flags &amp; RenderFull) {
    <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#aa05605599e6eb9e6a7aeb51234533241">loggedIn</a>()) {
      <span class="comment">/* Handle a page refresh correctly */</span>
      <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html#a1f05060c037d13c2c6c26f51f1fb9640">setText</a>(WString::Empty);
      <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a159456e656af966117936b9024de4ca2">doJavaScript</a>(<span class="stringliteral">&quot;setTimeout(function() { &quot;</span>
                   + <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#aa2b7078b3b43d53a85e5244b45d504f7">jsRef</a>() + <span class="stringliteral">&quot;.scrollTop += &quot;</span>
                   + <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#aa2b7078b3b43d53a85e5244b45d504f7">jsRef</a>() + <span class="stringliteral">&quot;.scrollHeight;}, 0);&quot;</span>);
    }
  }

  <a class="code" href="classSimpleChatWidget.html#aa1a93dff4800d783c80a9846cdc591b7">WContainerWidget::render</a>(flags);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad1c4dc9e6aca0c5b8e1db81ee7c5fad3"></a><!-- doxytag: member="SimpleChatWidget::send" ref="ad1c4dc9e6aca0c5b8e1db81ee7c5fad3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::send </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00274">274</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html#ad8b89ce30df2b02894c53b6ed71fe4a6">text</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html#a87a90e69ab25d62ba029e10ea244abaf">empty</a>())
    <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#aab42074f7904397b3547a6df89c16d9d" title="Send a message on behalve of a user.">sendMessage</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>, <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html#ad8b89ce30df2b02894c53b6ed71fe4a6">text</a>());
}
</pre></div>
</div>
</div>
<a class="anchor" id="a839a181c695589b066c4d68152ab05c0"></a><!-- doxytag: member="SimpleChatWidget::server" ref="a839a181c695589b066c4d68152ab05c0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSimpleChatServer.html">SimpleChatServer</a>&amp; SimpleChatWidget::server </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00062">62</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>
<div class="fragment"><pre class="fragment">{ <span class="keywordflow">return</span> <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>; }
</pre></div>
</div>
</div>
<a class="anchor" id="a19c0deeaf8952ec36791c3f444964878"></a><!-- doxytag: member="SimpleChatWidget::startChat" ref="a19c0deeaf8952ec36791c3f444964878" args="(const Wt::WString &amp;user)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SimpleChatWidget::startChat </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Start a chat for the given user. </p>
<p>Returns false if the user could not login. </p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00187">187</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="comment">/*</span>
<span class="comment">   * When logging in, we pass our processChatEvent method as the function that</span>
<span class="comment">   * is used to indicate a new chat event for this user.</span>
<span class="comment">   */</span>
  <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#ada0ab17464e1711ca15f30b381ede57c" title="Try to login with given user name.">login</a>(user)) {
    <a class="code" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">loggedIn_</a> = <span class="keyword">true</span>;
    <a class="code" href="classSimpleChatWidget.html#a5fa75ab733ce294065a1233dfcbe83d6">connect</a>();

    <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a> = user;    

    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a608f748cbdda763f1a11556ddad9fbe1">clear</a>();
    <a class="code" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">userNameEdit_</a> = 0;

    <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>();
    <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>();
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html">WTextArea</a>();
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html#ade46b47350f427f45c9b53ac7e41c5b2">setRows</a>(2);
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WFormWidget.html#afe33f5c3658ddbd08fec9f6c203c578b">setFocus</a>();

    <span class="comment">// Display scroll bars if contents overflows</span>
    <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#ae269f870992c5843d3097a63795b10d6">setOverflow</a>(WContainerWidget::OverflowAuto);
    <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#ae269f870992c5843d3097a63795b10d6">setOverflow</a>(WContainerWidget::OverflowAuto);

    <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<span class="stringliteral">&quot;Send&quot;</span>);
    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a> *logoutButton = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<span class="stringliteral">&quot;Logout&quot;</span>);

    <a class="code" href="classSimpleChatWidget.html#aad5e7beb8f1aa6a26715d93fa3a9952e">createLayout</a>(<a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>, <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>, <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>, <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>, logoutButton);

    <span class="comment">/*</span>
<span class="comment">     * Connect event handlers:</span>
<span class="comment">     *  - click on button</span>
<span class="comment">     *  - enter in text area</span>
<span class="comment">     *</span>
<span class="comment">     * We will clear the input field using a small custom client-side</span>
<span class="comment">     * JavaScript invocation.</span>
<span class="comment">     */</span>

    <span class="comment">// Create a JavaScript &#39;slot&#39; (JSlot). The JavaScript slot always takes</span>
    <span class="comment">// 2 arguments: the originator of the event (in our case the</span>
    <span class="comment">// button or text area), and the JavaScript event object.</span>
    <a class="code" href="classSimpleChatWidget.html#a7e58bf2312b413d2d649500c26a6f8d6">clearInput_</a>.<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1JSlot.html#a4e28a8ef6d2965aeaac0c5dcf587bbbb">setJavaScript</a>
      (<span class="stringliteral">&quot;function(o, e) { setTimeout(function() {&quot;</span>
       <span class="stringliteral">&quot;&quot;</span> + <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#aa2b7078b3b43d53a85e5244b45d504f7">jsRef</a>() + <span class="stringliteral">&quot;.value=&#39;&#39;;&quot;</span>
       <span class="stringliteral">&quot;}, 0); }&quot;</span>);

    <span class="comment">// Bind the C++ and JavaScript event handlers.</span>
    <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#ad1c4dc9e6aca0c5b8e1db81ee7c5fad3">SimpleChatWidget::send</a>);
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#a38f06d1ad95e7599b055f49931236c10">enterPressed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignal.html#a36896f54a4db342af24efa6e9d703455">connect</a>(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#ad1c4dc9e6aca0c5b8e1db81ee7c5fad3">SimpleChatWidget::send</a>);
    <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<a class="code" href="classSimpleChatWidget.html#a7e58bf2312b413d2d649500c26a6f8d6">clearInput_</a>);
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#a38f06d1ad95e7599b055f49931236c10">enterPressed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignal.html#a36896f54a4db342af24efa6e9d703455">connect</a>(<a class="code" href="classSimpleChatWidget.html#a7e58bf2312b413d2d649500c26a6f8d6">clearInput_</a>);
    <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>, &amp;WLineEdit::setFocus);
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#a38f06d1ad95e7599b055f49931236c10">enterPressed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignal.html#a36896f54a4db342af24efa6e9d703455">connect</a>(<a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>, &amp;WLineEdit::setFocus);

    <span class="comment">// Prevent the enter from generating a new line, which is its default</span>
    <span class="comment">// action</span>
    <a class="code" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">messageEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#a38f06d1ad95e7599b055f49931236c10">enterPressed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignalBase.html#afd8983929683ffc4c6dda8a91a7bda7b">preventDefaultAction</a>();

    logoutButton-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#abff498a5a43a7e0caac5f2140f14e301">SimpleChatWidget::logout</a>);

    <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a> *msg = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>
      (<span class="stringliteral">&quot;&lt;div&gt;&lt;span class=&#39;chat-info&#39;&gt;You are joining as &quot;</span>
       + <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a6cd1b8a84c7aaf72e5d44cb47ae90e9c">escapeText</a>(<a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>) + <span class="stringliteral">&quot;.&lt;/span&gt;&lt;/div&gt;&quot;</span>,
       <a class="code" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">messages_</a>);
    msg-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#afd3a3b359681111460a93d13979d17dd">setStyleClass</a>(<span class="stringliteral">&quot;chat-msg&quot;</span>);

    <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a3461e31818c4d2f516641bdaf508312a">parent</a>()) {
      <span class="keyword">delete</span> <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>;
      <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a> = 0;
    }

    <span class="keywordflow">if</span> (!<a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a3461e31818c4d2f516641bdaf508312a">parent</a>()) {
      <span class="keyword">delete</span> <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a>;
      <a class="code" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">sendButton_</a> = 0;
    }

    <span class="keywordflow">if</span> (!logoutButton-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWidget.html#a3461e31818c4d2f516641bdaf508312a">parent</a>())
      <span class="keyword">delete</span> logoutButton;

    <a class="code" href="classSimpleChatWidget.html#a282d3fa5a7aceea89558de31db4bb6e0">updateUsers</a>();
    
    <span class="keywordflow">return</span> <span class="keyword">true</span>;
  } <span class="keywordflow">else</span>
    <span class="keywordflow">return</span> <span class="keyword">false</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a76509fdffaf6a244c99977cf587c42e0"></a><!-- doxytag: member="SimpleChatWidget::updateUser" ref="a76509fdffaf6a244c99977cf587c42e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::updateUser </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00313">313</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCheckBox.html">WCheckBox</a> *b = <span class="keyword">dynamic_cast&lt;</span><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCheckBox.html">WCheckBox</a> *<span class="keyword">&gt;</span>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WObject.html#a413deb54de40ee278dd554e4960d58ca">sender</a>());
  <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>[b-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractToggleButton.html#a3ef9682b5fe66d802380ccd6c698725d">text</a>()] = b-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractToggleButton.html#abd40ce7a6c4b4e924c9097015f4971ea">isChecked</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a282d3fa5a7aceea89558de31db4bb6e0"></a><!-- doxytag: member="SimpleChatWidget::updateUsers" ref="a282d3fa5a7aceea89558de31db4bb6e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SimpleChatWidget::updateUsers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classPopupChatWidget.html#a5c9dd041e3ea9ea83a5723167064353c">PopupChatWidget</a>.</p>

<p>Definition at line <a class="el" href="SimpleChatWidget_8C_source.html#l00280">280</a> of file <a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a>.</p>
<div class="fragment"><pre class="fragment">{
  <span class="keywordflow">if</span> (<a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>) {
    <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a608f748cbdda763f1a11556ddad9fbe1">clear</a>();

    <a class="code" href="classSimpleChatServer.html#a911329f24472ca7ed245ab18611488d4" title="Typedef for a collection of user names.">SimpleChatServer::UserSet</a> users = <a class="code" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">server_</a>.<a class="code" href="classSimpleChatServer.html#a40f5c6465b1edb44278be93c97a29a39" title="Get the users currently logged in.">users</a>();

    <a class="code" href="classSimpleChatWidget.html#ae3fdaeefe19e26c6c6ad9f7c0445af57">UserMap</a> oldUsers = <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>;
    <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>.clear();

    <span class="keywordflow">for</span> (SimpleChatServer::UserSet::iterator i = users.begin();
         i != users.end(); ++i) {
      <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCheckBox.html">WCheckBox</a> *w = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCheckBox.html">WCheckBox</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a6cd1b8a84c7aaf72e5d44cb47ae90e9c">escapeText</a>(*i), <a class="code" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">userList_</a>);
      w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#ad0957c892e70c6bf5399cf71e66f3e11">setInline</a>(<span class="keyword">false</span>);

      UserMap::const_iterator j = oldUsers.find(*i);
      <span class="keywordflow">if</span> (j != oldUsers.end())
        w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractToggleButton.html#a6838c9a37f3e9e3c466e9f48bde55e62">setChecked</a>(j-&gt;second);
      <span class="keywordflow">else</span>
        w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractToggleButton.html#a6838c9a37f3e9e3c466e9f48bde55e62">setChecked</a>(<span class="keyword">true</span>);

      <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>[*i] = w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractToggleButton.html#abd40ce7a6c4b4e924c9097015f4971ea">isChecked</a>();
      w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WFormWidget.html#a5216ba1594b5dc525cc47cad593c7ba8">changed</a>().<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1EventSignal.html#a36896f54a4db342af24efa6e9d703455">connect</a>(<span class="keyword">this</span>, &amp;<a class="code" href="classSimpleChatWidget.html#a76509fdffaf6a244c99977cf587c42e0">SimpleChatWidget::updateUser</a>);

      <span class="keywordflow">if</span> (*i == <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>)
        w-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#afd3a3b359681111460a93d13979d17dd">setStyleClass</a>(<span class="stringliteral">&quot;chat-self&quot;</span>);
    }
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a89bb84de7baa0e926a5c1d45fbd91256"></a><!-- doxytag: member="SimpleChatWidget::userCount" ref="a89bb84de7baa0e926a5c1d45fbd91256" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SimpleChatWidget::userCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00064">64</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>
<div class="fragment"><pre class="fragment">{ <span class="keywordflow">return</span> <a class="code" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">users_</a>.size(); }
</pre></div>
</div>
</div>
<a class="anchor" id="af080cd053547503668a1ee29fd428d5f"></a><!-- doxytag: member="SimpleChatWidget::userName" ref="af080cd053547503668a1ee29fd428d5f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a>&amp; SimpleChatWidget::userName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00066">66</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>
<div class="fragment"><pre class="fragment">{ <span class="keywordflow">return</span> <a class="code" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">user_</a>; }
</pre></div>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a7e58bf2312b413d2d649500c26a6f8d6"></a><!-- doxytag: member="SimpleChatWidget::clearInput_" ref="a7e58bf2312b413d2d649500c26a6f8d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1JSlot.html">Wt::JSlot</a> <a class="el" href="classSimpleChatWidget.html#a7e58bf2312b413d2d649500c26a6f8d6">SimpleChatWidget::clearInput_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00088">88</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8f56993c5967b22aff04009f4613a155"></a><!-- doxytag: member="SimpleChatWidget::loggedIn_" ref="a8f56993c5967b22aff04009f4613a155" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSimpleChatWidget.html#a8f56993c5967b22aff04009f4613a155">SimpleChatWidget::loggedIn_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00086">86</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4b658b56ef4ba1862765b9ad84fd9a9c"></a><!-- doxytag: member="SimpleChatWidget::messageEdit_" ref="a4b658b56ef4ba1862765b9ad84fd9a9c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTextArea.html">Wt::WTextArea</a>* <a class="el" href="classSimpleChatWidget.html#a4b658b56ef4ba1862765b9ad84fd9a9c">SimpleChatWidget::messageEdit_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00097">97</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="acf8ebb5abeec698a1f363a139d1dbf6a"></a><!-- doxytag: member="SimpleChatWidget::messageEditArea_" ref="acf8ebb5abeec698a1f363a139d1dbf6a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a>* <a class="el" href="classSimpleChatWidget.html#acf8ebb5abeec698a1f363a139d1dbf6a">SimpleChatWidget::messageEditArea_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00096">96</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="af877bf2951965ee6832d7c5f5c5f885a"></a><!-- doxytag: member="SimpleChatWidget::messageReceived_" ref="af877bf2951965ee6832d7c5f5c5f885a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSound.html">Wt::WSound</a>* <a class="el" href="classSimpleChatWidget.html#af877bf2951965ee6832d7c5f5c5f885a">SimpleChatWidget::messageReceived_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00101">101</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a32a593ed511997f32a33a55d651ce79d"></a><!-- doxytag: member="SimpleChatWidget::messages_" ref="a32a593ed511997f32a33a55d651ce79d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a>* <a class="el" href="classSimpleChatWidget.html#a32a593ed511997f32a33a55d651ce79d">SimpleChatWidget::messages_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00095">95</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa9a81423eda8238f8aa37be1a5a5bee8"></a><!-- doxytag: member="SimpleChatWidget::sendButton_" ref="aa9a81423eda8238f8aa37be1a5a5bee8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">Wt::WPushButton</a>* <a class="el" href="classSimpleChatWidget.html#aa9a81423eda8238f8aa37be1a5a5bee8">SimpleChatWidget::sendButton_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00098">98</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab29db4cbc3935964daf6b6c264ce68d3"></a><!-- doxytag: member="SimpleChatWidget::server_" ref="ab29db4cbc3935964daf6b6c264ce68d3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSimpleChatServer.html">SimpleChatServer</a>&amp; <a class="el" href="classSimpleChatWidget.html#ab29db4cbc3935964daf6b6c264ce68d3">SimpleChatWidget::server_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00085">85</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a98f69adc6f2381cd98584566ed4c497e"></a><!-- doxytag: member="SimpleChatWidget::statusMsg_" ref="a98f69adc6f2381cd98584566ed4c497e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">Wt::WText</a>* <a class="el" href="classSimpleChatWidget.html#a98f69adc6f2381cd98584566ed4c497e">SimpleChatWidget::statusMsg_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00093">93</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a596f7cbf70f45da9af017ac9d6f55ebc"></a><!-- doxytag: member="SimpleChatWidget::user_" ref="a596f7cbf70f45da9af017ac9d6f55ebc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">Wt::WString</a> <a class="el" href="classSimpleChatWidget.html#a596f7cbf70f45da9af017ac9d6f55ebc">SimpleChatWidget::user_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00090">90</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="aee074d5eb739091af79eb8dccc90853e"></a><!-- doxytag: member="SimpleChatWidget::userList_" ref="aee074d5eb739091af79eb8dccc90853e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a>* <a class="el" href="classSimpleChatWidget.html#aee074d5eb739091af79eb8dccc90853e">SimpleChatWidget::userList_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00099">99</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6216e8cf4d368c1550562e1c5525d34b"></a><!-- doxytag: member="SimpleChatWidget::userNameEdit_" ref="a6216e8cf4d368c1550562e1c5525d34b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html">Wt::WLineEdit</a>* <a class="el" href="classSimpleChatWidget.html#a6216e8cf4d368c1550562e1c5525d34b">SimpleChatWidget::userNameEdit_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00092">92</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<a class="anchor" id="afe3350a7929733a5b93db803dee8704b"></a><!-- doxytag: member="SimpleChatWidget::users_" ref="afe3350a7929733a5b93db803dee8704b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSimpleChatWidget.html#ae3fdaeefe19e26c6c6ad9f7c0445af57">UserMap</a> <a class="el" href="classSimpleChatWidget.html#afe3350a7929733a5b93db803dee8704b">SimpleChatWidget::users_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="SimpleChatWidget_8h_source.html#l00083">83</a> of file <a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/koen/project/wt/public-git/wt/examples/simplechat/<a class="el" href="SimpleChatWidget_8h_source.html">SimpleChatWidget.h</a></li>
<li>/home/koen/project/wt/public-git/wt/examples/simplechat/<a class="el" href="SimpleChatWidget_8C_source.html">SimpleChatWidget.C</a></li>
</ul>
</div>
<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by&nbsp;<a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>