1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
<!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: /home/koen/project/wt/public-git/wt/examples/hello/hello.C Source File</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
 <span id="projectnumber">3.2.1</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 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><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/koen/project/wt/public-git/wt/examples/hello/hello.C</div> </div>
</div>
<div class="contents">
<a href="hello_8C.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2008 Emweb bvba, Heverlee, Belgium.</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * See the LICENSE file for terms of use.</span>
<a name="l00005"></a>00005 <span class="comment"> */</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="preprocessor">#include <Wt/WApplication></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include <Wt/WBreak></span>
<a name="l00009"></a>00009 <span class="preprocessor">#include <Wt/WContainerWidget></span>
<a name="l00010"></a>00010 <span class="preprocessor">#include <Wt/WLineEdit></span>
<a name="l00011"></a>00011 <span class="preprocessor">#include <Wt/WPushButton></span>
<a name="l00012"></a>00012 <span class="preprocessor">#include <Wt/WText></span>
<a name="l00013"></a>00013
<a name="l00014"></a>00014 <span class="comment">// c++0x only, for std::bind</span>
<a name="l00015"></a>00015 <span class="comment">// #include <functional></span>
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <span class="keyword">using namespace </span>Wt;
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="comment">/*</span>
<a name="l00020"></a>00020 <span class="comment"> * A simple hello world application class which demonstrates how to react</span>
<a name="l00021"></a>00021 <span class="comment"> * to events, read input, and give feed-back.</span>
<a name="l00022"></a>00022 <span class="comment"> */</span>
<a name="l00023"></a><a class="code" href="classHelloApplication.html">00023</a> <span class="keyword">class </span><a class="code" href="classHelloApplication.html">HelloApplication</a> : <span class="keyword">public</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html">WApplication</a>
<a name="l00024"></a>00024 {
<a name="l00025"></a>00025 <span class="keyword">public</span>:
<a name="l00026"></a>00026 <a class="code" href="classHelloApplication.html">HelloApplication</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WEnvironment.html">WEnvironment</a>& env);
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="keyword">private</span>:
<a name="l00029"></a><a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">00029</a> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html">WLineEdit</a> *<a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</a>;
<a name="l00030"></a><a class="code" href="classHelloApplication.html#a060ca5306a0289f4097ff6f83755cbad">00030</a> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a> *<a class="code" href="classHelloApplication.html#a060ca5306a0289f4097ff6f83755cbad">greeting_</a>;
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="keywordtype">void</span> greet();
<a name="l00033"></a>00033 };
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="comment">/*</span>
<a name="l00036"></a>00036 <span class="comment"> * The env argument contains information about the new session, and</span>
<a name="l00037"></a>00037 <span class="comment"> * the initial request. It must be passed to the WApplication</span>
<a name="l00038"></a>00038 <span class="comment"> * constructor so it is typically also an argument for your custom</span>
<a name="l00039"></a>00039 <span class="comment"> * application constructor.</span>
<a name="l00040"></a>00040 <span class="comment">*/</span>
<a name="l00041"></a><a class="code" href="classHelloApplication.html#af8cfe75959bce2e4fba80a46f009c4a6">00041</a> <a class="code" href="classHelloApplication.html#af8cfe75959bce2e4fba80a46f009c4a6">HelloApplication::HelloApplication</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WEnvironment.html">WEnvironment</a>& env)
<a name="l00042"></a>00042 : <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html">WApplication</a>(env)
<a name="l00043"></a>00043 {
<a name="l00044"></a>00044 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a71a3f7da5abb9a76df94fab69ba61670">setTitle</a>(<span class="stringliteral">"Hello world"</span>); <span class="comment">// application title</span>
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a17e118a04d962459484a12989a80bc05">root</a>()-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a2cfe66d9b62940f889e99538a9f478d2">addWidget</a>(<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">"Your name, please ? "</span>)); <span class="comment">// show some text</span>
<a name="l00047"></a>00047 <a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</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="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a17e118a04d962459484a12989a80bc05">root</a>()); <span class="comment">// allow text input</span>
<a name="l00048"></a>00048 <a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</a>-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WFormWidget.html#afe33f5c3658ddbd08fec9f6c203c578b">setFocus</a>(); <span class="comment">// give focus</span>
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a> *button
<a name="l00051"></a>00051 = <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">"Greet me."</span>, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a17e118a04d962459484a12989a80bc05">root</a>()); <span class="comment">// create a button</span>
<a name="l00052"></a>00052 button-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(5, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a>); <span class="comment">// add 5 pixels margin</span>
<a name="l00053"></a>00053
<a name="l00054"></a>00054 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a17e118a04d962459484a12989a80bc05">root</a>()-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a2cfe66d9b62940f889e99538a9f478d2">addWidget</a>(<span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WBreak.html">WBreak</a>()); <span class="comment">// insert a line break</span>
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <a class="code" href="classHelloApplication.html#a060ca5306a0289f4097ff6f83755cbad">greeting_</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="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html#a17e118a04d962459484a12989a80bc05">root</a>()); <span class="comment">// empty text</span>
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="comment">/*</span>
<a name="l00059"></a>00059 <span class="comment"> * Connect signals with slots</span>
<a name="l00060"></a>00060 <span class="comment"> *</span>
<a name="l00061"></a>00061 <span class="comment"> * - simple Wt-way</span>
<a name="l00062"></a>00062 <span class="comment"> */</span>
<a name="l00063"></a>00063 button-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(<span class="keyword">this</span>, &<a class="code" href="classHelloApplication.html#a94de3317a1e6e45964a3dfa9aacef9f9">HelloApplication::greet</a>);
<a name="l00064"></a>00064
<a name="l00065"></a>00065 <span class="comment">/*</span>
<a name="l00066"></a>00066 <span class="comment"> * - using an arbitrary function object (binding values with boost::bind())</span>
<a name="l00067"></a>00067 <span class="comment"> */</span>
<a name="l00068"></a>00068 <a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</a>-><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 name="l00069"></a>00069 (boost::bind(&<a class="code" href="classHelloApplication.html#a94de3317a1e6e45964a3dfa9aacef9f9">HelloApplication::greet</a>, <span class="keyword">this</span>));
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="comment">/*</span>
<a name="l00072"></a>00072 <span class="comment"> * - using a c++0x lambda:</span>
<a name="l00073"></a>00073 <span class="comment"> */</span>
<a name="l00074"></a>00074 <span class="comment">// b->clicked().connect(std::bind([=]() { </span>
<a name="l00075"></a>00075 <span class="comment">// greeting_->setText("Hello there, " + nameEdit_->text());</span>
<a name="l00076"></a>00076 <span class="comment">// }));</span>
<a name="l00077"></a>00077 }
<a name="l00078"></a>00078
<a name="l00079"></a><a class="code" href="classHelloApplication.html#a94de3317a1e6e45964a3dfa9aacef9f9">00079</a> <span class="keywordtype">void</span> <a class="code" href="classHelloApplication.html#a94de3317a1e6e45964a3dfa9aacef9f9">HelloApplication::greet</a>()
<a name="l00080"></a>00080 {
<a name="l00081"></a>00081 <span class="comment">/*</span>
<a name="l00082"></a>00082 <span class="comment"> * Update the text, using text input into the nameEdit_ field.</span>
<a name="l00083"></a>00083 <span class="comment"> */</span>
<a name="l00084"></a>00084 <a class="code" href="classHelloApplication.html#a060ca5306a0289f4097ff6f83755cbad">greeting_</a>-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#a2f788aa524d51b3962642c9f565e66e6">setText</a>(<span class="stringliteral">"Hello there, "</span> + <a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</a>-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WLineEdit.html#ac74b58779cb635898cac13e81d8b0c7a">text</a>());
<a name="l00085"></a>00085 }
<a name="l00086"></a>00086
<a name="l00087"></a><a class="code" href="hello_8C.html#acb337c09cd35644b56da8b0e5bb17b9c">00087</a> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WApplication.html">WApplication</a> *<a class="code" href="ComposeExample_8C.html#acb337c09cd35644b56da8b0e5bb17b9c">createApplication</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WEnvironment.html">WEnvironment</a>& env)
<a name="l00088"></a>00088 {
<a name="l00089"></a>00089 <span class="comment">/*</span>
<a name="l00090"></a>00090 <span class="comment"> * You could read information from the environment to decide whether</span>
<a name="l00091"></a>00091 <span class="comment"> * the user has permission to start a new application</span>
<a name="l00092"></a>00092 <span class="comment"> */</span>
<a name="l00093"></a>00093 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classHelloApplication.html">HelloApplication</a>(env);
<a name="l00094"></a>00094 }
<a name="l00095"></a>00095
<a name="l00096"></a><a class="code" href="hello_8C.html#a3c04138a5bfe5d72780bb7e82a18e627">00096</a> <span class="keywordtype">int</span> <a class="code" href="ComposeExample_8C.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
<a name="l00097"></a>00097 {
<a name="l00098"></a>00098 <span class="comment">/*</span>
<a name="l00099"></a>00099 <span class="comment"> * Your main method may set up some shared resources, but should then</span>
<a name="l00100"></a>00100 <span class="comment"> * start the server application (FastCGI or httpd) that starts listening</span>
<a name="l00101"></a>00101 <span class="comment"> * for requests, and handles all of the application life cycles.</span>
<a name="l00102"></a>00102 <span class="comment"> *</span>
<a name="l00103"></a>00103 <span class="comment"> * The last argument to WRun specifies the function that will instantiate</span>
<a name="l00104"></a>00104 <span class="comment"> * new application objects. That function is executed when a new user surfs</span>
<a name="l00105"></a>00105 <span class="comment"> * to the Wt application, and after the library has negotiated browser</span>
<a name="l00106"></a>00106 <span class="comment"> * support. The function should return a newly instantiated application</span>
<a name="l00107"></a>00107 <span class="comment"> * object.</span>
<a name="l00108"></a>00108 <span class="comment"> */</span>
<a name="l00109"></a>00109 <span class="keywordflow">return</span> WRun(argc, argv, &<a class="code" href="ComposeExample_8C.html#acb337c09cd35644b56da8b0e5bb17b9c">createApplication</a>);
<a name="l00110"></a>00110 }
<a name="l00111"></a>00111
</pre></div></div>
</div>
<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Fri Mar 30 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by <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>
|