File: qwt__analog__clock_8cpp-source.html

package info (click to toggle)
libqwt 4.2.0-4.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 9,832 kB
  • ctags: 5,512
  • sloc: cpp: 22,973; ansic: 244; makefile: 66
file content (148 lines) | stat: -rw-r--r-- 10,602 bytes parent folder | download | duplicates (5)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Qwt User&apos;s Guide: qwt_analog_clock.cpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.8 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>qwt_analog_clock.cpp</h1><pre class="fragment"><div>00001 <span class="preprocessor">#include "qwt_analog_clock.h"</span>
00002 
<a name="l00008"></a><a class="code" href="class_qwt_analog_clock.html#a0">00008</a> <a class="code" href="class_qwt_analog_clock.html#a0">QwtAnalogClock::QwtAnalogClock</a>(QWidget *parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name):
00009     <a class="code" href="class_qwt_dial.html">QwtDial</a>(parent, name)
00010 {
00011     <a class="code" href="class_qwt_dial.html#a10">setWrapping</a>(TRUE);
00012     <a class="code" href="class_qwt_slider_base.html#i3">setReadOnly</a>(TRUE);
00013 
00014     <a class="code" href="class_qwt_dial.html#a18">setOrigin</a>(270.0);
00015     <a class="code" href="class_qwt_dbl_range.html#a2">setRange</a>(0.0, 60.0 * 60.0 * 12.0); <span class="comment">// seconds</span>
00016     <a class="code" href="class_qwt_dial.html#a12">setScale</a>(-1, 5, 60.0 * 60.0);
00017 
00018     <a class="code" href="class_qwt_dial.html#a14">setScaleOptions</a>(ScaleTicks | ScaleLabel);
00019     <a class="code" href="class_qwt_dial.html#a15">setScaleTicks</a>(1, 0, 8);
00020 
00021     <span class="keyword">const</span> QColor knobColor = 
00022         palette().color(QPalette::Active, QColorGroup::Text).dark(120);
00023 
00024     QColor handColor;
00025     <span class="keywordtype">int</span> width;
00026 
00027     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; NHands; i++ )
00028     {
00029         <span class="keywordflow">if</span> ( i == SecondHand )
00030         {
00031             width = 2;
00032             handColor = knobColor.dark(120);
00033         }
00034         <span class="keywordflow">else</span>
00035         {
00036             width = 8;
00037             handColor = knobColor;
00038         }
00039 
00040         <a class="code" href="class_qwt_dial_simple_needle.html">QwtDialSimpleNeedle</a> *<a class="code" href="class_qwt_analog_clock.html#a3">hand</a> = <span class="keyword">new</span> <a class="code" href="class_qwt_dial_simple_needle.html">QwtDialSimpleNeedle</a>(
00041             QwtDialSimpleNeedle::Arrow, TRUE, handColor, knobColor);
00042         hand-&gt;<a class="code" href="class_qwt_dial_simple_needle.html#a2">setWidth</a>(width);
00043 
00044         d_hand[i] = NULL;
00045         <a class="code" href="class_qwt_analog_clock.html#a2">setHand</a>((Hand)i, hand);
00046     }
00047 }
00048 
<a name="l00050"></a><a class="code" href="class_qwt_analog_clock.html#a1">00050</a> <a class="code" href="class_qwt_analog_clock.html#a1">QwtAnalogClock::~QwtAnalogClock</a>()
00051 {
00052     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; NHands; i++ )
00053         <span class="keyword">delete</span> d_hand[i];
00054 }
00055 
00060 <span class="keywordtype">void</span> <a class="code" href="class_qwt_dial.html#a20">QwtAnalogClock::setNeedle</a>(<a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *)
00061 {
00062     <span class="comment">// no op</span>
00063     <span class="keywordflow">return</span>;
00064 }
00065 
<a name="l00072"></a><a class="code" href="class_qwt_analog_clock.html#a2">00072</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_analog_clock.html#a2">QwtAnalogClock::setHand</a>(Hand hand, <a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *needle)
00073 {
00074     <span class="keywordflow">if</span> ( hand &gt;= 0 || hand &lt; NHands )
00075     {
00076         <span class="keyword">delete</span> d_hand[hand];
00077         d_hand[hand] = needle;
00078     }
00079 }
00080 
<a name="l00086"></a><a class="code" href="class_qwt_analog_clock.html#a4">00086</a> <a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *<a class="code" href="class_qwt_analog_clock.html#a3">QwtAnalogClock::hand</a>(Hand hd)
00087 {
00088     <span class="keywordflow">if</span> ( hd &lt; 0 || hd &gt;= NHands )
00089         <span class="keywordflow">return</span> NULL;
00090 
00091     <span class="keywordflow">return</span> d_hand[hd];
00092 }
00093 
<a name="l00099"></a><a class="code" href="class_qwt_analog_clock.html#a3">00099</a> <span class="keyword">const</span> <a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *<a class="code" href="class_qwt_analog_clock.html#a3">QwtAnalogClock::hand</a>(Hand hd)<span class="keyword"> const</span>
00100 <span class="keyword"></span>{
00101     <span class="keywordflow">return</span> ((<a class="code" href="class_qwt_analog_clock.html">QwtAnalogClock</a> *)<span class="keyword">this</span>)-&gt;hand(hd);
00102 }
00103 
<a name="l00110"></a><a class="code" href="class_qwt_analog_clock.html#i0">00110</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_analog_clock.html#i0">QwtAnalogClock::setCurrentTime</a>()
00111 { 
00112     <a class="code" href="class_qwt_analog_clock.html#i1">setTime</a>(QTime::currentTime()); 
00113 }
00114 
<a name="l00119"></a><a class="code" href="class_qwt_analog_clock.html#i1">00119</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_analog_clock.html#i1">QwtAnalogClock::setTime</a>(<span class="keyword">const</span> QTime &amp;time)
00120 {
00121     <span class="keywordflow">if</span> ( time.isValid() )
00122     {
00123         <a class="code" href="class_qwt_slider_base.html#i0">setValue</a>((time.hour() % 12) * 60.0 * 60.0 
00124             + time.minute() * 60.0 + time.second());
00125     }
00126     <span class="keywordflow">else</span>
00127         <a class="code" href="class_qwt_slider_base.html#a11">setValid</a>(FALSE);
00128 }
00129 
<a name="l00136"></a><a class="code" href="class_qwt_analog_clock.html#b0">00136</a> QString <a class="code" href="class_qwt_analog_clock.html#b0">QwtAnalogClock::scaleLabel</a>(<span class="keywordtype">double</span> value)<span class="keyword"> const</span>
00137 <span class="keyword"></span>{
00138     <span class="keywordflow">if</span> ( value == 0.0 )
00139         value = 60.0 * 60.0 * 12.0;
00140 
00141     QString label;
00142     label.sprintf(<span class="stringliteral">"%d"</span>, <span class="keywordtype">int</span>(value / (60.0 * 60.0)));
00143 
00144     <span class="keywordflow">return</span> label;
00145 }
00146 
<a name="l00162"></a><a class="code" href="class_qwt_analog_clock.html#b1">00162</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_analog_clock.html#b1">QwtAnalogClock::drawNeedle</a>(QPainter *painter, <span class="keyword">const</span> QPoint &amp;center,
00163         <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span>, QPalette::ColorGroup cg)<span class="keyword"> const</span>
00164 <span class="keyword"></span>{
00165     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_slider_base.html#a10">isValid</a>() )
00166     {
00167         <span class="keyword">const</span> <span class="keywordtype">double</span> hours = <a class="code" href="class_qwt_dbl_range.html#a6">value</a>() / (60.0 * 60.0);
00168         <span class="keyword">const</span> <span class="keywordtype">double</span> minutes = (<a class="code" href="class_qwt_dbl_range.html#a6">value</a>() - (<span class="keywordtype">int</span>)hours * 60.0 * 60.0) / 60.0;
00169         <span class="keyword">const</span> <span class="keywordtype">double</span> seconds = <a class="code" href="class_qwt_dbl_range.html#a6">value</a>() - (<span class="keywordtype">int</span>)hours * 60.0 * 60.0 
00170             - (<span class="keywordtype">int</span>)minutes * 60.0;
00171 
00172         <a class="code" href="class_qwt_analog_clock.html#b2">drawHand</a>(painter, HourHand, center, radius,
00173             360.0 - (<a class="code" href="class_qwt_dial.html#a19">origin</a>() + 360.0 * hours / 12.0), cg);
00174         <a class="code" href="class_qwt_analog_clock.html#b2">drawHand</a>(painter, MinuteHand, center, radius,
00175             360.0 - (<a class="code" href="class_qwt_dial.html#a19">origin</a>() + 360.0 * minutes / 60.0), cg);
00176         <a class="code" href="class_qwt_analog_clock.html#b2">drawHand</a>(painter, SecondHand, center, radius,
00177             360.0 - (<a class="code" href="class_qwt_dial.html#a19">origin</a>() + 360.0 * seconds / 60.0), cg);
00178     }
00179 }
00180 
<a name="l00191"></a><a class="code" href="class_qwt_analog_clock.html#b2">00191</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_analog_clock.html#b2">QwtAnalogClock::drawHand</a>(QPainter *painter, Hand hd,
00192     <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> direction, 
00193     QPalette::ColorGroup cg)<span class="keyword"> const</span>
00194 <span class="keyword"></span>{
00195     <span class="keyword">const</span> <a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *needle = <a class="code" href="class_qwt_analog_clock.html#a3">hand</a>(hd);
00196     <span class="keywordflow">if</span> ( needle )
00197     {
00198         <span class="keywordflow">if</span> ( hd == HourHand )
00199             radius = qRound(0.8 * radius);
00200 
00201         needle-&gt;<a class="code" href="class_qwt_dial_needle.html#a2">draw</a>(painter, center, radius, direction, cg);
00202     }
00203 }
</div></pre><hr size="1"><address style="align: right;"><small>Generated on Tue Nov 16 21:12:20 2004 for Qwt User's Guide by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address>
</body>
</html>