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'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 Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related 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 < 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-><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 < 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 >= 0 || hand < 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 < 0 || hd >= 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>)->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 &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 &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 &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-><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>
|