File: PaintExample_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 (160 lines) | stat: -rw-r--r-- 18,016 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
<!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/painting/PaintExample.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/painting/PaintExample.C</div>  </div>
</div>
<div class="contents">
<a href="PaintExample_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, Kessel-Lo, 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/WContainerWidget&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;Wt/WGridLayout&gt;</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;Wt/WSlider&gt;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;Wt/WText&gt;</span>
<a name="l00011"></a>00011 
<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;<a class="code" href="PaintExample_8h.html">PaintExample.h</a>&quot;</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;<a class="code" href="ShapesWidget_8h.html">ShapesWidget.h</a>&quot;</span>
<a name="l00014"></a>00014 
<a name="l00015"></a>00015 <span class="keyword">using namespace </span>Wt;
<a name="l00016"></a>00016 
<a name="l00017"></a><a class="code" href="classPaintExample.html#a0cfbaaa0059b499b578b91e329b4dd15">00017</a> <a class="code" href="classPaintExample.html#a0cfbaaa0059b499b578b91e329b4dd15">PaintExample::PaintExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *root, <span class="keywordtype">bool</span> showTitle)
<a name="l00018"></a>00018   : <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(root)
<a name="l00019"></a>00019 {
<a name="l00020"></a>00020   std::string text;
<a name="l00021"></a>00021   <span class="keywordflow">if</span> (showTitle)
<a name="l00022"></a>00022     text += <span class="stringliteral">&quot;&lt;h2&gt;Paint example&lt;/h2&gt;&quot;</span>;
<a name="l00023"></a>00023 
<a name="l00024"></a>00024   text += 
<a name="l00025"></a>00025     <span class="stringliteral">&quot;&lt;p&gt;A simple example demonstrating cross-browser vector graphics.&quot;</span>
<a name="l00026"></a>00026     <span class="stringliteral">&quot;&lt;/p&gt;&quot;</span>
<a name="l00027"></a>00027     <span class="stringliteral">&quot;&lt;p&gt;The emweb logo below is painted using the Wt WPainter API from &quot;</span>
<a name="l00028"></a>00028     <span class="stringliteral">&quot;bezier paths, and rendered to the browser using inline SVG, inline VML &quot;</span>
<a name="l00029"></a>00029     <span class="stringliteral">&quot;or the HTML 5 &amp;lt;canvas&amp;gt; element.&quot;</span>
<a name="l00030"></a>00030     <span class="stringliteral">&quot;&lt;/p&gt;&quot;</span>
<a name="l00031"></a>00031     <span class="stringliteral">&quot;&lt;p&gt;&quot;</span>
<a name="l00032"></a>00032     <span class="stringliteral">&quot;The example also demonstrates the horizontal and vertical &quot;</span>
<a name="l00033"></a>00033     <span class="stringliteral">&quot;&lt;a href=\&quot;http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WSlider.html\&quot; target=\&quot;_blank\&quot;&gt;&quot;</span>
<a name="l00034"></a>00034     <span class="stringliteral">&quot;WSlider&lt;/a&gt; widgets. Here,&quot;</span>
<a name="l00035"></a>00035     <span class="stringliteral">&quot;the events of the WSlider widgets are used to scale and rotate the &quot;</span>
<a name="l00036"></a>00036     <span class="stringliteral">&quot;emweb logo.&quot;</span>
<a name="l00037"></a>00037     <span class="stringliteral">&quot;&lt;/p&gt;&quot;</span>
<a name="l00038"></a>00038     <span class="stringliteral">&quot;&lt;p&gt;&quot;</span>
<a name="l00039"></a>00039     <span class="stringliteral">&quot;In non-IE browsers, a different backend is used for positive or negative &quot;</span>
<a name="l00040"></a>00040     <span class="stringliteral">&quot;angles (SVG or HTML canvas).&quot;</span>
<a name="l00041"></a>00041     <span class="stringliteral">&quot;&lt;/p&gt;&quot;</span>;
<a name="l00042"></a>00042 
<a name="l00043"></a>00043   <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(text, <span class="keyword">this</span>);
<a name="l00044"></a>00044 
<a name="l00045"></a>00045   <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *emweb = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00046"></a>00046   emweb-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00047"></a>00047 
<a name="l00048"></a>00048   <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WGridLayout.html">WGridLayout</a> *<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#afaba82a27836f4a82bab48e8b26ccca2">layout</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WGridLayout.html">WGridLayout</a>();
<a name="l00049"></a>00049   emweb-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a1c84e0ffe330d4798f0ce217f75be08c">setLayout</a>(layout, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa58fe5182bd266132c59718c6d30945a9">AlignTop</a>);
<a name="l00050"></a>00050 
<a name="l00051"></a>00051   <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html">WSlider</a> *scaleSlider = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html">WSlider</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a2a8d45559e16a0185bf61bfad0a67912ac2ebf22b096a22b18eef23e736aa2e28">Horizontal</a>);
<a name="l00052"></a>00052   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#aea0dad399f79f2014dbd3f06d7cdd6d0">setMinimum</a>(0);
<a name="l00053"></a>00053   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ae1fcddb363795d572da2ae68362771e5">setMaximum</a>(20);
<a name="l00054"></a>00054   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#afc41362dafd1f53f4d0d52385c04d40c">setValue</a>(10);
<a name="l00055"></a>00055   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#a3497303ace2820b3bd457119cec35411">setTickInterval</a>(5);
<a name="l00056"></a>00056   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#a58e4a2a02c31b47040d35d646ad2ec0b">setTickPosition</a>(WSlider::TicksBothSides);
<a name="l00057"></a>00057   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ab2c74e01222219a65b799cd78800a114">resize</a>(300, 50);
<a name="l00058"></a>00058   scaleSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ac7257988652fc39910b1088cf02ecc5a">sliderMoved</a>().connect(<span class="keyword">this</span>, &amp;<a class="code" href="classPaintExample.html#aaa524597bf1b0f0eb24a7def16c8c8d9">PaintExample::scaleShape</a>);
<a name="l00059"></a>00059 
<a name="l00060"></a>00060   layout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WGridLayout.html#a6e64afee237de5665fcd014f407130b2">addWidget</a>(scaleSlider, 0, 1, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa2ed90f01dbf74049f428d33769d48e3f">AlignMiddle</a>);
<a name="l00061"></a>00061 
<a name="l00062"></a>00062   <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html">WSlider</a> *rotateSlider = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html">WSlider</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a2a8d45559e16a0185bf61bfad0a67912af916b7ec24727db2d972f0770170c7f5">Vertical</a>);
<a name="l00063"></a>00063   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#aea0dad399f79f2014dbd3f06d7cdd6d0">setMinimum</a>(-30);
<a name="l00064"></a>00064   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ae1fcddb363795d572da2ae68362771e5">setMaximum</a>(30);
<a name="l00065"></a>00065   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#afc41362dafd1f53f4d0d52385c04d40c">setValue</a>(0);
<a name="l00066"></a>00066   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#a3497303ace2820b3bd457119cec35411">setTickInterval</a>(10);
<a name="l00067"></a>00067   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#a58e4a2a02c31b47040d35d646ad2ec0b">setTickPosition</a>(WSlider::TicksBothSides);
<a name="l00068"></a>00068   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ab2c74e01222219a65b799cd78800a114">resize</a>(50, 400);
<a name="l00069"></a>00069   rotateSlider-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WSlider.html#ac7257988652fc39910b1088cf02ecc5a">sliderMoved</a>().connect(<span class="keyword">this</span>, &amp;<a class="code" href="classPaintExample.html#a09f675b9dc2cd9c4b7272f687135a28a">PaintExample::rotateShape</a>);
<a name="l00070"></a>00070 
<a name="l00071"></a>00071   layout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WGridLayout.html#a6e64afee237de5665fcd014f407130b2">addWidget</a>(rotateSlider, 1, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa2ed90f01dbf74049f428d33769d48e3f">AlignMiddle</a>);
<a name="l00072"></a>00072 
<a name="l00073"></a>00073   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a> = <span class="keyword">new</span> <a class="code" href="classShapesWidget.html">ShapesWidget</a>();
<a name="l00074"></a>00074   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="code" href="classShapesWidget.html#a4f089bb4237e928bf5a0f485848456a1">setAngle</a>(0.0);
<a name="l00075"></a>00075   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="code" href="classShapesWidget.html#af2342542ef4b88d14d2c28be5beece31">setRelativeSize</a>(0.5);
<a name="l00076"></a>00076   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#a2a3a3be8b9a8c6d56fad4b64b370fdd4">setPreferredMethod</a>(WPaintedWidget::HtmlCanvas);
<a name="l00077"></a>00077 
<a name="l00078"></a>00078   layout-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WGridLayout.html#a6e64afee237de5665fcd014f407130b2">addWidget</a>(<a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>, 1, 1, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa2ed90f01dbf74049f428d33769d48e3f">AlignMiddle</a>);
<a name="l00079"></a>00079 }
<a name="l00080"></a>00080 
<a name="l00081"></a><a class="code" href="classPaintExample.html#a09f675b9dc2cd9c4b7272f687135a28a">00081</a> <span class="keywordtype">void</span> <a class="code" href="classPaintExample.html#a09f675b9dc2cd9c4b7272f687135a28a">PaintExample::rotateShape</a>(<span class="keywordtype">int</span> v)
<a name="l00082"></a>00082 {
<a name="l00083"></a>00083   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="code" href="classShapesWidget.html#a4f089bb4237e928bf5a0f485848456a1">setAngle</a>(v / 2.0);
<a name="l00084"></a>00084 
<a name="l00085"></a>00085   <span class="comment">// Being silly: test alternate rendering method</span>
<a name="l00086"></a>00086   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#a2a3a3be8b9a8c6d56fad4b64b370fdd4">setPreferredMethod</a>(v &lt; 0 ? WPaintedWidget::InlineSvgVml
<a name="l00087"></a>00087                               : WPaintedWidget::HtmlCanvas);
<a name="l00088"></a>00088 }
<a name="l00089"></a>00089 
<a name="l00090"></a><a class="code" href="classPaintExample.html#aaa524597bf1b0f0eb24a7def16c8c8d9">00090</a> <span class="keywordtype">void</span> <a class="code" href="classPaintExample.html#aaa524597bf1b0f0eb24a7def16c8c8d9">PaintExample::scaleShape</a>(<span class="keywordtype">int</span> v)
<a name="l00091"></a>00091 {
<a name="l00092"></a>00092   <a class="code" href="classPaintExample.html#a4c67f63f963223828f21a283dbfff0e1">shapes_</a>-&gt;<a class="code" href="classShapesWidget.html#af2342542ef4b88d14d2c28be5beece31">setRelativeSize</a>(0.1 + 0.9 * (v/20.0));
<a name="l00093"></a>00093 }
</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>