File: hello_8C_source.html

package info (click to toggle)
witty 3.2.1-2%2Bdeb7u1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 70,436 kB
  • sloc: cpp: 117,095; ansic: 77,999; xml: 7,564; sh: 1,037; perl: 208; makefile: 144; java: 86; sql: 14
file content (178 lines) | stat: -rw-r--r-- 17,238 bytes parent folder | download
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
   &#160;<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&#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><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&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;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 &lt;Wt/WApplication&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;Wt/WBreak&gt;</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;Wt/WContainerWidget&gt;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;Wt/WLineEdit&gt;</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;Wt/WPushButton&gt;</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;Wt/WText&gt;</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 &lt;functional&gt;</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>&amp; 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>&amp; 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">&quot;Hello world&quot;</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>()-&gt;<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">&quot;Your name, please ? &quot;</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>-&gt;<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">&quot;Greet me.&quot;</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-&gt;<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>()-&gt;<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-&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="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>-&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 name="l00069"></a>00069     (boost::bind(&amp;<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-&gt;clicked().connect(std::bind([=]() { </span>
<a name="l00075"></a>00075   <span class="comment">//       greeting_-&gt;setText(&quot;Hello there, &quot; + nameEdit_-&gt;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>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html#a2f788aa524d51b3962642c9f565e66e6">setText</a>(<span class="stringliteral">&quot;Hello there, &quot;</span> + <a class="code" href="classHelloApplication.html#a223a6b0ae8f592504528d044b932d4d6">nameEdit_</a>-&gt;<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>&amp; 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, &amp;<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&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>