~ubuntu-branches/ubuntu/oneiric/qwt/oneiric-proposed

« back to all changes in this revision

Viewing changes to qwt-5.0.1/doc/html/qwt__picker_8cpp-source.html

  • Committer: Bazaar Package Importer
  • Author(s): Fathi Boudra
  • Date: 2007-10-05 15:20:41 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071005152041-qmybqh4fj9jejyo2
Tags: 5.0.2-2
* Handle nostrip build option. (Closes: #437877)
* Build libqwt5-doc package in binary-indep target. (Closes: #443110)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
 
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
 
<title>Qwt User&apos;s Guide: qwt_picker.cpp Source File</title>
4
 
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
 
<link href="tabs.css" rel="stylesheet" type="text/css">
6
 
</head><body>
7
 
<!-- Generated by Doxygen 1.4.6 -->
8
 
<div class="tabs">
9
 
  <ul>
10
 
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11
 
    <li><a href="classes.html"><span>Classes</span></a></li>
12
 
    <li id="current"><a href="files.html"><span>Files</span></a></li>
13
 
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
14
 
  </ul></div>
15
 
<h1>qwt_picker.cpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************</span>
16
 
<a name="l00002"></a>00002 <span class="comment"> * Qwt Widget Library</span>
17
 
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 1997   Josef Wilgen</span>
18
 
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002   Uwe Rathmann</span>
19
 
<a name="l00005"></a>00005 <span class="comment"> *</span>
20
 
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
21
 
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the Qwt License, Version 1.0</span>
22
 
<a name="l00008"></a>00008 <span class="comment"> *****************************************************************************/</span>
23
 
<a name="l00009"></a>00009 
24
 
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;qapplication.h&gt;</span>
25
 
<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;qevent.h&gt;</span>
26
 
<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;qpainter.h&gt;</span>
27
 
<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;qframe.h&gt;</span>
28
 
<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;qcursor.h&gt;</span>
29
 
<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;qbitmap.h&gt;</span>
30
 
<a name="l00016"></a>00016 <span class="preprocessor">#include "qwt_math.h"</span>
31
 
<a name="l00017"></a>00017 <span class="preprocessor">#include "qwt_painter.h"</span>
32
 
<a name="l00018"></a>00018 <span class="preprocessor">#include "qwt_picker_machine.h"</span>
33
 
<a name="l00019"></a>00019 <span class="preprocessor">#include "qwt_picker.h"</span>
34
 
<a name="l00020"></a>00020 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
35
 
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#include &lt;qguardedptr.h&gt;</span>
36
 
<a name="l00022"></a>00022 <span class="preprocessor">#else</span>
37
 
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#include &lt;qpointer.h&gt;</span>
38
 
<a name="l00024"></a>00024 <span class="preprocessor">#endif</span>
39
 
<a name="l00025"></a>00025 <span class="preprocessor"></span>
40
 
<a name="l00026"></a>00026 <span class="keyword">class </span>QwtPicker::PrivateData
41
 
<a name="l00027"></a>00027 {
42
 
<a name="l00028"></a>00028 <span class="keyword">public</span>:
43
 
<a name="l00029"></a>00029     <span class="keyword">class </span>PickerWidget: <span class="keyword">public</span> QWidget
44
 
<a name="l00030"></a>00030     {
45
 
<a name="l00031"></a>00031     <span class="keyword">public</span>:
46
 
<a name="l00032"></a>00032         <span class="keyword">enum</span> Type
47
 
<a name="l00033"></a>00033         {
48
 
<a name="l00034"></a>00034             <a class="code" href="class_qwt_picker.html#b36c79d8ff20aba5b778d2823c1f7894">RubberBand</a>,
49
 
<a name="l00035"></a>00035             Text
50
 
<a name="l00036"></a>00036         };
51
 
<a name="l00037"></a>00037         PickerWidget(<a class="code" href="class_qwt_picker.html">QwtPicker</a> *, QWidget *, Type);
52
 
<a name="l00038"></a>00038         <span class="keyword">virtual</span> <span class="keywordtype">void</span> updateMask();
53
 
<a name="l00039"></a>00039 
54
 
<a name="l00040"></a>00040     <span class="keyword">protected</span>:
55
 
<a name="l00041"></a>00041         <span class="keyword">virtual</span> <span class="keywordtype">void</span> paintEvent(QPaintEvent *);
56
 
<a name="l00042"></a>00042 
57
 
<a name="l00043"></a>00043         <a class="code" href="class_qwt_picker.html">QwtPicker</a> *d_picker;
58
 
<a name="l00044"></a>00044         Type d_type;
59
 
<a name="l00045"></a>00045     };
60
 
<a name="l00046"></a>00046 
61
 
<a name="l00047"></a>00047     <span class="keywordtype">bool</span> enabled;
62
 
<a name="l00048"></a>00048 
63
 
<a name="l00049"></a>00049     <a class="code" href="class_qwt_picker_machine.html">QwtPickerMachine</a> *<a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">stateMachine</a>;
64
 
<a name="l00050"></a>00050 
65
 
<a name="l00051"></a>00051     <span class="keywordtype">int</span> <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">selectionFlags</a>;
66
 
<a name="l00052"></a>00052     <a class="code" href="class_qwt_picker.html#b3c894deed026f392496dd07809a6fd3">QwtPicker::ResizeMode</a> <a class="code" href="class_qwt_picker.html#684032c8aea570b069da2f8193760df9">resizeMode</a>;
67
 
<a name="l00053"></a>00053 
68
 
<a name="l00054"></a>00054     <a class="code" href="class_qwt_picker.html#b36c79d8ff20aba5b778d2823c1f7894">QwtPicker::RubberBand</a> <a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>;
69
 
<a name="l00055"></a>00055     QPen <a class="code" href="class_qwt_picker.html#074492301e00535def0fe2cb449fba37">rubberBandPen</a>;
70
 
<a name="l00056"></a>00056 
71
 
<a name="l00057"></a>00057     <a class="code" href="class_qwt_picker.html#01be4d404ffc3a7b238b0d0aaeb66b93">QwtPicker::DisplayMode</a> <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>;
72
 
<a name="l00058"></a>00058     QPen <a class="code" href="class_qwt_picker.html#a45bf8a52ea95bdf63e2225ec7fa8063">trackerPen</a>;
73
 
<a name="l00059"></a>00059     QFont <a class="code" href="class_qwt_picker.html#e87b2ac560d8795a302ee00c0ff0ab3d">trackerFont</a>;
74
 
<a name="l00060"></a>00060 
75
 
<a name="l00061"></a>00061     QwtPolygon <a class="code" href="class_qwt_picker.html#c1eb6aa4b264116ac7411ae799862676">selection</a>;
76
 
<a name="l00062"></a>00062     <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>;
77
 
<a name="l00063"></a>00063     QPoint labelPosition;
78
 
<a name="l00064"></a>00064 
79
 
<a name="l00065"></a>00065     <span class="keywordtype">bool</span> mouseTracking; <span class="comment">// used to save previous value</span>
80
 
<a name="l00066"></a>00066 
81
 
<a name="l00067"></a>00067     <span class="comment">/*</span>
82
 
<a name="l00068"></a>00068 <span class="comment">      On X11 the widget below the picker widgets gets paint events</span>
83
 
<a name="l00069"></a>00069 <span class="comment">      with a region that is the bounding rect of the mask, if it is complex.</span>
84
 
<a name="l00070"></a>00070 <span class="comment">      In case of (f.e) a CrossRubberBand and a text this creates complete</span>
85
 
<a name="l00071"></a>00071 <span class="comment">      repaints of the widget. So we better use two different widgets.</span>
86
 
<a name="l00072"></a>00072 <span class="comment">     */</span>
87
 
<a name="l00073"></a>00073      
88
 
<a name="l00074"></a>00074 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
89
 
<a name="l00075"></a>00075 <span class="preprocessor"></span>    QGuardedPtr&lt;PickerWidget&gt; <a class="code" href="class_qwt_picker.html#a13f79148c53b9aec63f14b62ccc98cb">rubberBandWidget</a>;
90
 
<a name="l00076"></a>00076     QGuardedPtr&lt;PickerWidget&gt; <a class="code" href="class_qwt_picker.html#5eb014068d91e1b26a937fc90b035efc">trackerWidget</a>;
91
 
<a name="l00077"></a>00077 <span class="preprocessor">#else</span>
92
 
<a name="l00078"></a>00078 <span class="preprocessor"></span>    QPointer&lt;PickerWidget&gt; <a class="code" href="class_qwt_picker.html#a13f79148c53b9aec63f14b62ccc98cb">rubberBandWidget</a>;
93
 
<a name="l00079"></a>00079     QPointer&lt;PickerWidget&gt; <a class="code" href="class_qwt_picker.html#5eb014068d91e1b26a937fc90b035efc">trackerWidget</a>;
94
 
<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
95
 
<a name="l00081"></a>00081 <span class="preprocessor"></span>};
96
 
<a name="l00082"></a>00082 
97
 
<a name="l00083"></a>00083 QwtPicker::PrivateData::PickerWidget::PickerWidget(
98
 
<a name="l00084"></a>00084         <a class="code" href="class_qwt_picker.html">QwtPicker</a> *picker, QWidget *parent, Type type):
99
 
<a name="l00085"></a>00085     QWidget(parent),
100
 
<a name="l00086"></a>00086     d_picker(picker),
101
 
<a name="l00087"></a>00087     d_type(type)
102
 
<a name="l00088"></a>00088 {
103
 
<a name="l00089"></a>00089 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span>
104
 
<a name="l00090"></a>00090 <span class="preprocessor"></span>    setAttribute(Qt::WA_TransparentForMouseEvents);
105
 
<a name="l00091"></a>00091     setAttribute(Qt::WA_NoSystemBackground);
106
 
<a name="l00092"></a>00092 <span class="preprocessor">#if 0</span>
107
 
<a name="l00093"></a>00093 <span class="preprocessor"></span>    setAttribute(Qt::WA_PaintOnScreen);
108
 
<a name="l00094"></a>00094 <span class="preprocessor">#endif</span>
109
 
<a name="l00095"></a>00095 <span class="preprocessor"></span>    setFocusPolicy(Qt::NoFocus);
110
 
<a name="l00096"></a>00096 <span class="preprocessor">#else</span>
111
 
<a name="l00097"></a>00097 <span class="preprocessor"></span>    setBackgroundMode(Qt::NoBackground);
112
 
<a name="l00098"></a>00098     setFocusPolicy(QWidget::NoFocus);
113
 
<a name="l00099"></a>00099     setMouseTracking(<span class="keyword">true</span>);
114
 
<a name="l00100"></a>00100 <span class="preprocessor">#endif</span>
115
 
<a name="l00101"></a>00101 <span class="preprocessor"></span>    hide();
116
 
<a name="l00102"></a>00102 }
117
 
<a name="l00103"></a>00103 
118
 
<a name="l00104"></a>00104 <span class="keywordtype">void</span> QwtPicker::PrivateData::PickerWidget::updateMask()
119
 
<a name="l00105"></a>00105 {
120
 
<a name="l00106"></a>00106     QBitmap bm(width(), height());
121
 
<a name="l00107"></a>00107     bm.fill(Qt::color0);
122
 
<a name="l00108"></a>00108 
123
 
<a name="l00109"></a>00109     QPainter painter(&amp;bm);
124
 
<a name="l00110"></a>00110 
125
 
<a name="l00111"></a>00111     <span class="keywordflow">if</span> ( d_type == RubberBand )
126
 
<a name="l00112"></a>00112     {
127
 
<a name="l00113"></a>00113         QPen pen = d_picker-&gt;rubberBandPen();
128
 
<a name="l00114"></a>00114         pen.setColor(Qt::color1);
129
 
<a name="l00115"></a>00115         painter.setPen(pen);
130
 
<a name="l00116"></a>00116 
131
 
<a name="l00117"></a>00117         d_picker-&gt;drawRubberBand(&amp;painter);
132
 
<a name="l00118"></a>00118     }
133
 
<a name="l00119"></a>00119     <span class="keywordflow">if</span> ( d_type == Text )
134
 
<a name="l00120"></a>00120     {
135
 
<a name="l00121"></a>00121         QPen pen = d_picker-&gt;trackerPen();
136
 
<a name="l00122"></a>00122         pen.setColor(Qt::color1);
137
 
<a name="l00123"></a>00123         painter.setPen(pen);
138
 
<a name="l00124"></a>00124 
139
 
<a name="l00125"></a>00125         d_picker-&gt;drawTracker(&amp;painter);
140
 
<a name="l00126"></a>00126     }
141
 
<a name="l00127"></a>00127 
142
 
<a name="l00128"></a>00128     painter.end();
143
 
<a name="l00129"></a>00129 
144
 
<a name="l00130"></a>00130 
145
 
<a name="l00131"></a>00131 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
146
 
<a name="l00132"></a>00132 <span class="preprocessor"></span>    QWidget *w = parentWidget();
147
 
<a name="l00133"></a>00133     <span class="keyword">const</span> <span class="keywordtype">bool</span> doUpdate = w-&gt;isUpdatesEnabled();
148
 
<a name="l00134"></a>00134     <span class="keyword">const</span> Qt::BackgroundMode bgMode = w-&gt;backgroundMode();
149
 
<a name="l00135"></a>00135     w-&gt;setUpdatesEnabled(<span class="keyword">false</span>);
150
 
<a name="l00136"></a>00136     <span class="keywordflow">if</span> ( bgMode != Qt::NoBackground )
151
 
<a name="l00137"></a>00137         w-&gt;setBackgroundMode(Qt::NoBackground);
152
 
<a name="l00138"></a>00138 <span class="preprocessor">#endif</span>
153
 
<a name="l00139"></a>00139 <span class="preprocessor"></span>
154
 
<a name="l00140"></a>00140     <span class="keyword">const</span> QRegion r(bm);
155
 
<a name="l00141"></a>00141     setMask(r);
156
 
<a name="l00142"></a>00142 
157
 
<a name="l00143"></a>00143 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
158
 
<a name="l00144"></a>00144 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( bgMode != Qt::NoBackground )
159
 
<a name="l00145"></a>00145         w-&gt;setBackgroundMode(bgMode);
160
 
<a name="l00146"></a>00146 
161
 
<a name="l00147"></a>00147     w-&gt;setUpdatesEnabled(doUpdate);
162
 
<a name="l00148"></a>00148 <span class="preprocessor">#endif</span>
163
 
<a name="l00149"></a>00149 <span class="preprocessor"></span>
164
 
<a name="l00150"></a>00150     setShown(!r.isEmpty());
165
 
<a name="l00151"></a>00151 }
166
 
<a name="l00152"></a>00152 
167
 
<a name="l00153"></a>00153 <span class="keywordtype">void</span> QwtPicker::PrivateData::PickerWidget::paintEvent(QPaintEvent *e)
168
 
<a name="l00154"></a>00154 {
169
 
<a name="l00155"></a>00155     QPainter painter(<span class="keyword">this</span>);
170
 
<a name="l00156"></a>00156 
171
 
<a name="l00157"></a>00157     <span class="keywordflow">if</span> ( d_type == RubberBand )
172
 
<a name="l00158"></a>00158     {
173
 
<a name="l00159"></a>00159         painter.setClipRegion(e-&gt;region());
174
 
<a name="l00160"></a>00160         painter.setPen(d_picker-&gt;rubberBandPen());
175
 
<a name="l00161"></a>00161         d_picker-&gt;drawRubberBand(&amp;painter);
176
 
<a name="l00162"></a>00162     }
177
 
<a name="l00163"></a>00163 
178
 
<a name="l00164"></a>00164     <span class="keywordflow">if</span> ( d_type == Text )
179
 
<a name="l00165"></a>00165     {
180
 
<a name="l00166"></a>00166         painter.setClipRegion(e-&gt;region());
181
 
<a name="l00167"></a>00167 <span class="preprocessor">#if 0</span>
182
 
<a name="l00168"></a>00168 <span class="preprocessor"></span>        painter.setPen(d_picker-&gt;trackerPen());
183
 
<a name="l00169"></a>00169         d_picker-&gt;drawTracker(&amp;painter);
184
 
<a name="l00170"></a>00170 <span class="preprocessor">#else</span>
185
 
<a name="l00171"></a>00171 <span class="preprocessor"></span>        painter.fillRect(e-&gt;rect(), QBrush(d_picker-&gt;trackerPen().color()));
186
 
<a name="l00172"></a>00172 <span class="preprocessor">#endif</span>
187
 
<a name="l00173"></a>00173 <span class="preprocessor"></span>    }
188
 
<a name="l00174"></a>00174 }
189
 
<a name="l00175"></a>00175 
190
 
<a name="l00185"></a><a class="code" href="class_qwt_picker.html#f9a5f4b0e4b37e2f323e801aa9dd6fe1">00185</a> <a class="code" href="class_qwt_picker.html#f9a5f4b0e4b37e2f323e801aa9dd6fe1">QwtPicker::QwtPicker</a>(QWidget *parent):
191
 
<a name="l00186"></a>00186     QObject(parent)
192
 
<a name="l00187"></a>00187 {
193
 
<a name="l00188"></a>00188     init(parent, NoSelection, NoRubberBand, AlwaysOff);
194
 
<a name="l00189"></a>00189 }
195
 
<a name="l00190"></a>00190 
196
 
<a name="l00200"></a><a class="code" href="class_qwt_picker.html#d02f607bedf6ef3630f931fc6712db2f">00200</a> <a class="code" href="class_qwt_picker.html#f9a5f4b0e4b37e2f323e801aa9dd6fe1">QwtPicker::QwtPicker</a>(<span class="keywordtype">int</span> selectionFlags, <a class="code" href="class_qwt_picker.html#b36c79d8ff20aba5b778d2823c1f7894">RubberBand</a> rubberBand,
197
 
<a name="l00201"></a>00201         <a class="code" href="class_qwt_picker.html#01be4d404ffc3a7b238b0d0aaeb66b93">DisplayMode</a> trackerMode, QWidget *parent):
198
 
<a name="l00202"></a>00202     QObject(parent)
199
 
<a name="l00203"></a>00203 {
200
 
<a name="l00204"></a>00204     init(parent, selectionFlags, rubberBand, trackerMode);
201
 
<a name="l00205"></a>00205 }
202
 
<a name="l00206"></a>00206 
203
 
<a name="l00208"></a><a class="code" href="class_qwt_picker.html#5d0906a0d3b12e0e44499f855cb9dab1">00208</a> <a class="code" href="class_qwt_picker.html#5d0906a0d3b12e0e44499f855cb9dab1">QwtPicker::~QwtPicker</a>()
204
 
<a name="l00209"></a>00209 {
205
 
<a name="l00210"></a>00210     setMouseTracking(<span class="keyword">false</span>);
206
 
<a name="l00211"></a>00211     <span class="keyword">delete</span> d_data-&gt;stateMachine;
207
 
<a name="l00212"></a>00212     <span class="keyword">delete</span> d_data-&gt;rubberBandWidget;
208
 
<a name="l00213"></a>00213     <span class="keyword">delete</span> d_data-&gt;trackerWidget;
209
 
<a name="l00214"></a>00214     <span class="keyword">delete</span> d_data;
210
 
<a name="l00215"></a>00215 }
211
 
<a name="l00216"></a>00216 
212
 
<a name="l00218"></a>00218 <span class="keywordtype">void</span> QwtPicker::init(QWidget *parent, <span class="keywordtype">int</span> selectionFlags, 
213
 
<a name="l00219"></a>00219     RubberBand rubberBand, DisplayMode trackerMode)
214
 
<a name="l00220"></a>00220 {
215
 
<a name="l00221"></a>00221     d_data = <span class="keyword">new</span> PrivateData;
216
 
<a name="l00222"></a>00222 
217
 
<a name="l00223"></a>00223     d_data-&gt;rubberBandWidget = NULL;
218
 
<a name="l00224"></a>00224     d_data-&gt;trackerWidget = NULL;
219
 
<a name="l00225"></a>00225 
220
 
<a name="l00226"></a>00226     d_data-&gt;rubberBand = rubberBand;
221
 
<a name="l00227"></a>00227     d_data-&gt;enabled = <span class="keyword">false</span>;
222
 
<a name="l00228"></a>00228     d_data-&gt;resizeMode = Stretch;
223
 
<a name="l00229"></a>00229     d_data-&gt;trackerMode = AlwaysOff;
224
 
<a name="l00230"></a>00230     d_data-&gt;isActive = <span class="keyword">false</span>;
225
 
<a name="l00231"></a>00231     d_data-&gt;labelPosition = QPoint(-1, -1);
226
 
<a name="l00232"></a>00232     d_data-&gt;mouseTracking = <span class="keyword">false</span>;
227
 
<a name="l00233"></a>00233 
228
 
<a name="l00234"></a>00234     d_data-&gt;stateMachine = NULL;
229
 
<a name="l00235"></a>00235     <a class="code" href="class_qwt_picker.html#e93fe995c8c581ac33a9f3445ea5e7b9">setSelectionFlags</a>(selectionFlags);
230
 
<a name="l00236"></a>00236 
231
 
<a name="l00237"></a>00237     <span class="keywordflow">if</span> ( parent )
232
 
<a name="l00238"></a>00238     {
233
 
<a name="l00239"></a>00239 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span>
234
 
<a name="l00240"></a>00240 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( parent-&gt;focusPolicy() == Qt::NoFocus )
235
 
<a name="l00241"></a>00241             parent-&gt;setFocusPolicy(Qt::WheelFocus);
236
 
<a name="l00242"></a>00242 <span class="preprocessor">#else</span>
237
 
<a name="l00243"></a>00243 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( parent-&gt;focusPolicy() == QWidget::NoFocus )
238
 
<a name="l00244"></a>00244             parent-&gt;setFocusPolicy(QWidget::WheelFocus);
239
 
<a name="l00245"></a>00245 <span class="preprocessor">#endif</span>
240
 
<a name="l00246"></a>00246 <span class="preprocessor"></span>
241
 
<a name="l00247"></a>00247         d_data-&gt;trackerFont = parent-&gt;font();
242
 
<a name="l00248"></a>00248         d_data-&gt;mouseTracking = parent-&gt;hasMouseTracking();
243
 
<a name="l00249"></a>00249         <a class="code" href="class_qwt_picker.html#a590756369efae6ebf323302a0af5d36">setEnabled</a>(<span class="keyword">true</span>);
244
 
<a name="l00250"></a>00250     }
245
 
<a name="l00251"></a>00251     <a class="code" href="class_qwt_picker.html#94fc60c7223cdc470ae63156f6446d6f">setTrackerMode</a>(trackerMode);
246
 
<a name="l00252"></a>00252 }
247
 
<a name="l00253"></a>00253 
248
 
<a name="l00257"></a>00257 <span class="keywordtype">void</span> QwtPicker::setStateMachine(<a class="code" href="class_qwt_picker_machine.html">QwtPickerMachine</a> *stateMachine)
249
 
<a name="l00258"></a>00258 {
250
 
<a name="l00259"></a>00259     <span class="keywordflow">if</span> ( d_data-&gt;stateMachine != <a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">stateMachine</a> )
251
 
<a name="l00260"></a>00260     {
252
 
<a name="l00261"></a>00261         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() )
253
 
<a name="l00262"></a>00262             <a class="code" href="class_qwt_picker.html#d258c518257cf2f52326905a36efb0c4">end</a>(<span class="keyword">false</span>);
254
 
<a name="l00263"></a>00263 
255
 
<a name="l00264"></a>00264         <span class="keyword">delete</span> d_data-&gt;stateMachine;
256
 
<a name="l00265"></a>00265         d_data-&gt;stateMachine = <a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">stateMachine</a>;
257
 
<a name="l00266"></a>00266 
258
 
<a name="l00267"></a>00267         <span class="keywordflow">if</span> ( d_data-&gt;stateMachine )
259
 
<a name="l00268"></a>00268             d_data-&gt;stateMachine-&gt;reset();
260
 
<a name="l00269"></a>00269     }
261
 
<a name="l00270"></a>00270 }
262
 
<a name="l00271"></a>00271 
263
 
<a name="l00288"></a><a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">00288</a> <a class="code" href="class_qwt_picker_machine.html">QwtPickerMachine</a> *<a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">QwtPicker::stateMachine</a>(<span class="keywordtype">int</span> flags)<span class="keyword"> const</span>
264
 
<a name="l00289"></a>00289 <span class="keyword"></span>{
265
 
<a name="l00290"></a>00290     <span class="keywordflow">if</span> ( flags &amp; PointSelection )
266
 
<a name="l00291"></a>00291     {
267
 
<a name="l00292"></a>00292         <span class="keywordflow">if</span> ( flags &amp; ClickSelection )
268
 
<a name="l00293"></a>00293             <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_qwt_picker_click_point_machine.html">QwtPickerClickPointMachine</a>;
269
 
<a name="l00294"></a>00294         <span class="keywordflow">else</span>
270
 
<a name="l00295"></a>00295             <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_qwt_picker_drag_point_machine.html">QwtPickerDragPointMachine</a>;
271
 
<a name="l00296"></a>00296     }
272
 
<a name="l00297"></a>00297     <span class="keywordflow">if</span> ( flags &amp; RectSelection )
273
 
<a name="l00298"></a>00298     {
274
 
<a name="l00299"></a>00299         <span class="keywordflow">if</span> ( flags &amp; ClickSelection )
275
 
<a name="l00300"></a>00300             <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_qwt_picker_click_rect_machine.html">QwtPickerClickRectMachine</a>;
276
 
<a name="l00301"></a>00301         <span class="keywordflow">else</span>
277
 
<a name="l00302"></a>00302             <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_qwt_picker_drag_rect_machine.html">QwtPickerDragRectMachine</a>;
278
 
<a name="l00303"></a>00303     }
279
 
<a name="l00304"></a>00304     <span class="keywordflow">if</span> ( flags &amp; PolygonSelection )
280
 
<a name="l00305"></a>00305     {
281
 
<a name="l00306"></a>00306         <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_qwt_picker_polygon_machine.html">QwtPickerPolygonMachine</a>();
282
 
<a name="l00307"></a>00307     }
283
 
<a name="l00308"></a>00308     <span class="keywordflow">return</span> NULL;
284
 
<a name="l00309"></a>00309 }
285
 
<a name="l00310"></a>00310 
286
 
<a name="l00312"></a><a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">00312</a> QWidget *<a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">QwtPicker::parentWidget</a>()
287
 
<a name="l00313"></a>00313 {
288
 
<a name="l00314"></a>00314     QObject *obj = parent();
289
 
<a name="l00315"></a>00315     <span class="keywordflow">if</span> ( obj &amp;&amp; obj-&gt;isWidgetType() )
290
 
<a name="l00316"></a>00316         <span class="keywordflow">return</span> (QWidget *)obj;
291
 
<a name="l00317"></a>00317 
292
 
<a name="l00318"></a>00318     <span class="keywordflow">return</span> NULL;
293
 
<a name="l00319"></a>00319 }
294
 
<a name="l00320"></a>00320 
295
 
<a name="l00322"></a><a class="code" href="class_qwt_picker.html#250dc5daf40a049f8db1f7ed730802d3">00322</a> <span class="keyword">const</span> QWidget *<a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">QwtPicker::parentWidget</a>()<span class="keyword"> const</span>
296
 
<a name="l00323"></a>00323 <span class="keyword"></span>{
297
 
<a name="l00324"></a>00324     QObject *obj = parent();
298
 
<a name="l00325"></a>00325     <span class="keywordflow">if</span> ( obj &amp;&amp; obj-&gt;isWidgetType() )
299
 
<a name="l00326"></a>00326         <span class="keywordflow">return</span> (QWidget *)obj;
300
 
<a name="l00327"></a>00327 
301
 
<a name="l00328"></a>00328     <span class="keywordflow">return</span> NULL;
302
 
<a name="l00329"></a>00329 }
303
 
<a name="l00330"></a>00330 
304
 
<a name="l00340"></a><a class="code" href="class_qwt_picker.html#e93fe995c8c581ac33a9f3445ea5e7b9">00340</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#e93fe995c8c581ac33a9f3445ea5e7b9">QwtPicker::setSelectionFlags</a>(<span class="keywordtype">int</span> flags)
305
 
<a name="l00341"></a>00341 {
306
 
<a name="l00342"></a>00342     d_data-&gt;selectionFlags = flags;
307
 
<a name="l00343"></a>00343     setStateMachine(<a class="code" href="class_qwt_picker.html#aad63b94d03f8ebb363ed51d7c2a0dd2">stateMachine</a>(flags));
308
 
<a name="l00344"></a>00344 }
309
 
<a name="l00345"></a>00345 
310
 
<a name="l00351"></a><a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">00351</a> <span class="keywordtype">int</span> <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">QwtPicker::selectionFlags</a>()<span class="keyword"> const</span>
311
 
<a name="l00352"></a>00352 <span class="keyword"></span>{
312
 
<a name="l00353"></a>00353     <span class="keywordflow">return</span> d_data-&gt;selectionFlags;
313
 
<a name="l00354"></a>00354 }
314
 
<a name="l00355"></a>00355 
315
 
<a name="l00364"></a><a class="code" href="class_qwt_picker.html#83096bad2662e02e4914a7b40241c351">00364</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#83096bad2662e02e4914a7b40241c351">QwtPicker::setRubberBand</a>(<a class="code" href="class_qwt_picker.html#b36c79d8ff20aba5b778d2823c1f7894">RubberBand</a> rubberBand)
316
 
<a name="l00365"></a>00365 {
317
 
<a name="l00366"></a>00366     d_data-&gt;rubberBand = rubberBand;
318
 
<a name="l00367"></a>00367 }
319
 
<a name="l00368"></a>00368 
320
 
<a name="l00373"></a><a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">00373</a> <a class="code" href="class_qwt_picker.html#b36c79d8ff20aba5b778d2823c1f7894">QwtPicker::RubberBand</a> <a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">QwtPicker::rubberBand</a>()<span class="keyword"> const</span>
321
 
<a name="l00374"></a>00374 <span class="keyword"></span>{
322
 
<a name="l00375"></a>00375     <span class="keywordflow">return</span> d_data-&gt;rubberBand;
323
 
<a name="l00376"></a>00376 }
324
 
<a name="l00377"></a>00377 
325
 
<a name="l00394"></a><a class="code" href="class_qwt_picker.html#94fc60c7223cdc470ae63156f6446d6f">00394</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#94fc60c7223cdc470ae63156f6446d6f">QwtPicker::setTrackerMode</a>(<a class="code" href="class_qwt_picker.html#01be4d404ffc3a7b238b0d0aaeb66b93">DisplayMode</a> mode)
326
 
<a name="l00395"></a>00395 {   
327
 
<a name="l00396"></a>00396     <span class="keywordflow">if</span> ( d_data-&gt;trackerMode != mode )
328
 
<a name="l00397"></a>00397     {
329
 
<a name="l00398"></a>00398         d_data-&gt;trackerMode = mode;
330
 
<a name="l00399"></a>00399         setMouseTracking(d_data-&gt;trackerMode == AlwaysOn);
331
 
<a name="l00400"></a>00400     }
332
 
<a name="l00401"></a>00401 }   
333
 
<a name="l00402"></a>00402 
334
 
<a name="l00407"></a><a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">00407</a> <a class="code" href="class_qwt_picker.html#01be4d404ffc3a7b238b0d0aaeb66b93">QwtPicker::DisplayMode</a> <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">QwtPicker::trackerMode</a>()<span class="keyword"> const</span>
335
 
<a name="l00408"></a>00408 <span class="keyword"></span>{   
336
 
<a name="l00409"></a>00409     <span class="keywordflow">return</span> d_data-&gt;trackerMode;
337
 
<a name="l00410"></a>00410 }   
338
 
<a name="l00411"></a>00411 
339
 
<a name="l00426"></a><a class="code" href="class_qwt_picker.html#f85c8a3c709bd106d2b34b718a746e03">00426</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#f85c8a3c709bd106d2b34b718a746e03">QwtPicker::setResizeMode</a>(<a class="code" href="class_qwt_picker.html#b3c894deed026f392496dd07809a6fd3">ResizeMode</a> mode)
340
 
<a name="l00427"></a>00427 {
341
 
<a name="l00428"></a>00428     d_data-&gt;resizeMode = mode;
342
 
<a name="l00429"></a>00429 }   
343
 
<a name="l00430"></a>00430 
344
 
<a name="l00436"></a><a class="code" href="class_qwt_picker.html#684032c8aea570b069da2f8193760df9">00436</a> <a class="code" href="class_qwt_picker.html#b3c894deed026f392496dd07809a6fd3">QwtPicker::ResizeMode</a> <a class="code" href="class_qwt_picker.html#684032c8aea570b069da2f8193760df9">QwtPicker::resizeMode</a>()<span class="keyword"> const</span>
345
 
<a name="l00437"></a>00437 <span class="keyword"></span>{   
346
 
<a name="l00438"></a>00438     <span class="keywordflow">return</span> d_data-&gt;resizeMode;
347
 
<a name="l00439"></a>00439 }
348
 
<a name="l00440"></a>00440 
349
 
<a name="l00450"></a><a class="code" href="class_qwt_picker.html#a590756369efae6ebf323302a0af5d36">00450</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#a590756369efae6ebf323302a0af5d36">QwtPicker::setEnabled</a>(<span class="keywordtype">bool</span> enabled)
350
 
<a name="l00451"></a>00451 {
351
 
<a name="l00452"></a>00452     <span class="keywordflow">if</span> ( d_data-&gt;enabled != enabled )
352
 
<a name="l00453"></a>00453     {
353
 
<a name="l00454"></a>00454         d_data-&gt;enabled = enabled;
354
 
<a name="l00455"></a>00455 
355
 
<a name="l00456"></a>00456         QWidget *w = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>();
356
 
<a name="l00457"></a>00457         <span class="keywordflow">if</span> ( w )
357
 
<a name="l00458"></a>00458         {
358
 
<a name="l00459"></a>00459             <span class="keywordflow">if</span> ( enabled )
359
 
<a name="l00460"></a>00460                 w-&gt;installEventFilter(<span class="keyword">this</span>);
360
 
<a name="l00461"></a>00461             <span class="keywordflow">else</span>
361
 
<a name="l00462"></a>00462                 w-&gt;removeEventFilter(<span class="keyword">this</span>);
362
 
<a name="l00463"></a>00463         }
363
 
<a name="l00464"></a>00464 
364
 
<a name="l00465"></a>00465         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
365
 
<a name="l00466"></a>00466     }
366
 
<a name="l00467"></a>00467 }
367
 
<a name="l00468"></a>00468 
368
 
<a name="l00474"></a><a class="code" href="class_qwt_picker.html#984299a27421d57291bb84c8c08df4e5">00474</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#984299a27421d57291bb84c8c08df4e5">QwtPicker::isEnabled</a>()<span class="keyword"> const</span>
369
 
<a name="l00475"></a>00475 <span class="keyword"></span>{
370
 
<a name="l00476"></a>00476     <span class="keywordflow">return</span> d_data-&gt;enabled;
371
 
<a name="l00477"></a>00477 }
372
 
<a name="l00478"></a>00478 
373
 
<a name="l00485"></a><a class="code" href="class_qwt_picker.html#9f54cce7d2e3f6e06351315bf655d5d9">00485</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#9f54cce7d2e3f6e06351315bf655d5d9">QwtPicker::setTrackerFont</a>(<span class="keyword">const</span> QFont &amp;font)
374
 
<a name="l00486"></a>00486 {
375
 
<a name="l00487"></a>00487     <span class="keywordflow">if</span> ( font != d_data-&gt;trackerFont )
376
 
<a name="l00488"></a>00488     {
377
 
<a name="l00489"></a>00489         d_data-&gt;trackerFont = font;
378
 
<a name="l00490"></a>00490         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
379
 
<a name="l00491"></a>00491     }
380
 
<a name="l00492"></a>00492 }
381
 
<a name="l00493"></a>00493 
382
 
<a name="l00499"></a><a class="code" href="class_qwt_picker.html#e87b2ac560d8795a302ee00c0ff0ab3d">00499</a> QFont <a class="code" href="class_qwt_picker.html#e87b2ac560d8795a302ee00c0ff0ab3d">QwtPicker::trackerFont</a>()<span class="keyword"> const</span>
383
 
<a name="l00500"></a>00500 <span class="keyword"></span>{
384
 
<a name="l00501"></a>00501     <span class="keywordflow">return</span> d_data-&gt;trackerFont;
385
 
<a name="l00502"></a>00502 }
386
 
<a name="l00503"></a>00503 
387
 
<a name="l00510"></a><a class="code" href="class_qwt_picker.html#f703bc51cda716e503cbd86731270e5b">00510</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#f703bc51cda716e503cbd86731270e5b">QwtPicker::setTrackerPen</a>(<span class="keyword">const</span> QPen &amp;pen)
388
 
<a name="l00511"></a>00511 {
389
 
<a name="l00512"></a>00512     <span class="keywordflow">if</span> ( pen != d_data-&gt;trackerPen )
390
 
<a name="l00513"></a>00513     {
391
 
<a name="l00514"></a>00514         d_data-&gt;trackerPen = pen;
392
 
<a name="l00515"></a>00515         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
393
 
<a name="l00516"></a>00516     }
394
 
<a name="l00517"></a>00517 }
395
 
<a name="l00518"></a>00518 
396
 
<a name="l00523"></a><a class="code" href="class_qwt_picker.html#a45bf8a52ea95bdf63e2225ec7fa8063">00523</a> QPen <a class="code" href="class_qwt_picker.html#a45bf8a52ea95bdf63e2225ec7fa8063">QwtPicker::trackerPen</a>()<span class="keyword"> const</span>
397
 
<a name="l00524"></a>00524 <span class="keyword"></span>{
398
 
<a name="l00525"></a>00525     <span class="keywordflow">return</span> d_data-&gt;trackerPen;
399
 
<a name="l00526"></a>00526 }
400
 
<a name="l00527"></a>00527 
401
 
<a name="l00534"></a><a class="code" href="class_qwt_picker.html#13117b1929f1ca00a75002f7f4c612bc">00534</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#13117b1929f1ca00a75002f7f4c612bc">QwtPicker::setRubberBandPen</a>(<span class="keyword">const</span> QPen &amp;pen)
402
 
<a name="l00535"></a>00535 {
403
 
<a name="l00536"></a>00536     <span class="keywordflow">if</span> ( pen != d_data-&gt;rubberBandPen )
404
 
<a name="l00537"></a>00537     {
405
 
<a name="l00538"></a>00538         d_data-&gt;rubberBandPen = pen;
406
 
<a name="l00539"></a>00539         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
407
 
<a name="l00540"></a>00540     }
408
 
<a name="l00541"></a>00541 }
409
 
<a name="l00542"></a>00542 
410
 
<a name="l00547"></a><a class="code" href="class_qwt_picker.html#074492301e00535def0fe2cb449fba37">00547</a> QPen <a class="code" href="class_qwt_picker.html#074492301e00535def0fe2cb449fba37">QwtPicker::rubberBandPen</a>()<span class="keyword"> const</span>
411
 
<a name="l00548"></a>00548 <span class="keyword"></span>{
412
 
<a name="l00549"></a>00549     <span class="keywordflow">return</span> d_data-&gt;rubberBandPen;
413
 
<a name="l00550"></a>00550 }
414
 
<a name="l00551"></a>00551 
415
 
<a name="l00565"></a><a class="code" href="class_qwt_picker.html#48ab7695edfa22df80490bf930f16cc4">00565</a> <a class="code" href="class_qwt_text.html">QwtText</a> <a class="code" href="class_qwt_picker.html#48ab7695edfa22df80490bf930f16cc4">QwtPicker::trackerText</a>(<span class="keyword">const</span> QPoint &amp;pos)<span class="keyword"> const</span>
416
 
<a name="l00566"></a>00566 <span class="keyword"></span>{
417
 
<a name="l00567"></a>00567     QString label;
418
 
<a name="l00568"></a>00568 
419
 
<a name="l00569"></a>00569     <span class="keywordflow">switch</span>(<a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>())
420
 
<a name="l00570"></a>00570     {
421
 
<a name="l00571"></a>00571         <span class="keywordflow">case</span> HLineRubberBand:
422
 
<a name="l00572"></a>00572             label.sprintf(<span class="stringliteral">"%d"</span>, pos.y());
423
 
<a name="l00573"></a>00573             <span class="keywordflow">break</span>;
424
 
<a name="l00574"></a>00574         <span class="keywordflow">case</span> VLineRubberBand:
425
 
<a name="l00575"></a>00575             label.sprintf(<span class="stringliteral">"%d"</span>, pos.x());
426
 
<a name="l00576"></a>00576             <span class="keywordflow">break</span>;
427
 
<a name="l00577"></a>00577         <span class="keywordflow">default</span>:
428
 
<a name="l00578"></a>00578             label.sprintf(<span class="stringliteral">"%d, %d"</span>, pos.x(), pos.y());
429
 
<a name="l00579"></a>00579     }
430
 
<a name="l00580"></a>00580     <span class="keywordflow">return</span> label;
431
 
<a name="l00581"></a>00581 }
432
 
<a name="l00582"></a>00582 
433
 
<a name="l00591"></a><a class="code" href="class_qwt_picker.html#4848b0a4ca94d4160fdcf29c73982bef">00591</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#4848b0a4ca94d4160fdcf29c73982bef">QwtPicker::drawRubberBand</a>(QPainter *painter)<span class="keyword"> const</span>
434
 
<a name="l00592"></a>00592 <span class="keyword"></span>{
435
 
<a name="l00593"></a>00593     <span class="keywordflow">if</span> ( !<a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() || <a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>() == NoRubberBand || 
436
 
<a name="l00594"></a>00594         <a class="code" href="class_qwt_picker.html#074492301e00535def0fe2cb449fba37">rubberBandPen</a>().style() == Qt::NoPen )
437
 
<a name="l00595"></a>00595     {
438
 
<a name="l00596"></a>00596         <span class="keywordflow">return</span>;
439
 
<a name="l00597"></a>00597     }
440
 
<a name="l00598"></a>00598 
441
 
<a name="l00599"></a>00599     <span class="keyword">const</span> QRect &amp;pRect = <a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">pickRect</a>();
442
 
<a name="l00600"></a>00600     <span class="keyword">const</span> QwtPolygon &amp;pa = d_data-&gt;selection;
443
 
<a name="l00601"></a>00601 
444
 
<a name="l00602"></a>00602     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">selectionFlags</a>() &amp; PointSelection )
445
 
<a name="l00603"></a>00603     {
446
 
<a name="l00604"></a>00604         <span class="keywordflow">if</span> ( pa.count() &lt; 1 )
447
 
<a name="l00605"></a>00605             <span class="keywordflow">return</span>;
448
 
<a name="l00606"></a>00606 
449
 
<a name="l00607"></a>00607         <span class="keyword">const</span> QPoint pos = pa[0];
450
 
<a name="l00608"></a>00608 
451
 
<a name="l00609"></a>00609         <span class="keywordflow">switch</span>(<a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>())
452
 
<a name="l00610"></a>00610         {
453
 
<a name="l00611"></a>00611             <span class="keywordflow">case</span> VLineRubberBand:
454
 
<a name="l00612"></a>00612                 <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, pos.x(),
455
 
<a name="l00613"></a>00613                     pRect.top(), pos.x(), pRect.bottom());
456
 
<a name="l00614"></a>00614                 <span class="keywordflow">break</span>;
457
 
<a name="l00615"></a>00615 
458
 
<a name="l00616"></a>00616             <span class="keywordflow">case</span> HLineRubberBand:
459
 
<a name="l00617"></a>00617                 <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, pRect.left(), 
460
 
<a name="l00618"></a>00618                     pos.y(), pRect.right(), pos.y());
461
 
<a name="l00619"></a>00619                 <span class="keywordflow">break</span>;
462
 
<a name="l00620"></a>00620 
463
 
<a name="l00621"></a>00621             <span class="keywordflow">case</span> CrossRubberBand:
464
 
<a name="l00622"></a>00622                 <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, pos.x(),
465
 
<a name="l00623"></a>00623                     pRect.top(), pos.x(), pRect.bottom());
466
 
<a name="l00624"></a>00624                 <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, pRect.left(), 
467
 
<a name="l00625"></a>00625                     pos.y(), pRect.right(), pos.y());
468
 
<a name="l00626"></a>00626                 <span class="keywordflow">break</span>;
469
 
<a name="l00627"></a>00627             <span class="keywordflow">default</span>:
470
 
<a name="l00628"></a>00628                 <span class="keywordflow">break</span>;
471
 
<a name="l00629"></a>00629         }
472
 
<a name="l00630"></a>00630     }
473
 
<a name="l00631"></a>00631 
474
 
<a name="l00632"></a>00632     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">selectionFlags</a>() &amp; RectSelection )
475
 
<a name="l00633"></a>00633     {
476
 
<a name="l00634"></a>00634         <span class="keywordflow">if</span> ( pa.count() &lt; 2 )
477
 
<a name="l00635"></a>00635             <span class="keywordflow">return</span>;
478
 
<a name="l00636"></a>00636 
479
 
<a name="l00637"></a>00637         QPoint p1 = pa[0];
480
 
<a name="l00638"></a>00638         QPoint p2 = pa[int(pa.count() - 1)];
481
 
<a name="l00639"></a>00639 
482
 
<a name="l00640"></a>00640         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">selectionFlags</a>() &amp; CenterToCorner )
483
 
<a name="l00641"></a>00641         {
484
 
<a name="l00642"></a>00642             p1.setX(p1.x() - (p2.x() - p1.x()));
485
 
<a name="l00643"></a>00643             p1.setY(p1.y() - (p2.y() - p1.y()));
486
 
<a name="l00644"></a>00644         }
487
 
<a name="l00645"></a>00645         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#d8e6fc50cd841e543a359c099024c448">selectionFlags</a>() &amp; CenterToRadius )
488
 
<a name="l00646"></a>00646         {
489
 
<a name="l00647"></a>00647             <span class="keyword">const</span> <span class="keywordtype">int</span> radius = qwtMax(qwtAbs(p2.x() - p1.x()), 
490
 
<a name="l00648"></a>00648                 qwtAbs(p2.y() - p1.y()));
491
 
<a name="l00649"></a>00649             p2.setX(p1.x() + radius);
492
 
<a name="l00650"></a>00650             p2.setY(p1.y() + radius);
493
 
<a name="l00651"></a>00651             p1.setX(p1.x() - radius);
494
 
<a name="l00652"></a>00652             p1.setY(p1.y() - radius);
495
 
<a name="l00653"></a>00653         }
496
 
<a name="l00654"></a>00654 
497
 
<a name="l00655"></a>00655 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
498
 
<a name="l00656"></a>00656 <span class="preprocessor"></span>        <span class="keyword">const</span> QRect rect = QRect(p1, p2).normalize();
499
 
<a name="l00657"></a>00657 <span class="preprocessor">#else</span>
500
 
<a name="l00658"></a>00658 <span class="preprocessor"></span>        <span class="keyword">const</span> QRect rect = QRect(p1, p2).normalized();
501
 
<a name="l00659"></a>00659 <span class="preprocessor">#endif</span>
502
 
<a name="l00660"></a>00660 <span class="preprocessor"></span>        <span class="keywordflow">switch</span>(<a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>())
503
 
<a name="l00661"></a>00661         {
504
 
<a name="l00662"></a>00662             <span class="keywordflow">case</span> EllipseRubberBand:
505
 
<a name="l00663"></a>00663                 <a class="code" href="class_qwt_painter.html#d04cda859203b745e662d1e2f74adc59">QwtPainter::drawEllipse</a>(painter, rect);
506
 
<a name="l00664"></a>00664                 <span class="keywordflow">break</span>;
507
 
<a name="l00665"></a>00665             <span class="keywordflow">case</span> RectRubberBand:
508
 
<a name="l00666"></a>00666                 <a class="code" href="class_qwt_painter.html#9d606b6a681b9e1d0e0823c8a169ac7e">QwtPainter::drawRect</a>(painter, rect);
509
 
<a name="l00667"></a>00667                 <span class="keywordflow">break</span>;
510
 
<a name="l00668"></a>00668             <span class="keywordflow">default</span>:
511
 
<a name="l00669"></a>00669                 <span class="keywordflow">break</span>;
512
 
<a name="l00670"></a>00670         }
513
 
<a name="l00671"></a>00671     }
514
 
<a name="l00672"></a>00672     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( selectionFlags() &amp; PolygonSelection )
515
 
<a name="l00673"></a>00673     {
516
 
<a name="l00674"></a>00674         <span class="keywordflow">if</span> ( rubberBand() == PolygonRubberBand )
517
 
<a name="l00675"></a>00675             painter-&gt;drawPolyline(pa);
518
 
<a name="l00676"></a>00676     }
519
 
<a name="l00677"></a>00677 }
520
 
<a name="l00678"></a>00678 
521
 
<a name="l00686"></a><a class="code" href="class_qwt_picker.html#74c471c27ced5e7a5d59455bcd7d8290">00686</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#74c471c27ced5e7a5d59455bcd7d8290">QwtPicker::drawTracker</a>(QPainter *painter)<span class="keyword"> const</span>
522
 
<a name="l00687"></a>00687 <span class="keyword"></span>{
523
 
<a name="l00688"></a>00688     <span class="keyword">const</span> QRect textRect = <a class="code" href="class_qwt_picker.html#12ca49ce032609973efc6f261078d1e3">trackerRect</a>(painter);
524
 
<a name="l00689"></a>00689     <span class="keywordflow">if</span> ( !textRect.isEmpty() )
525
 
<a name="l00690"></a>00690     {
526
 
<a name="l00691"></a>00691         <a class="code" href="class_qwt_text.html">QwtText</a> label = <a class="code" href="class_qwt_picker.html#48ab7695edfa22df80490bf930f16cc4">trackerText</a>(d_data-&gt;labelPosition);
527
 
<a name="l00692"></a>00692         <span class="keywordflow">if</span> ( !label.isEmpty() )
528
 
<a name="l00693"></a>00693         {
529
 
<a name="l00694"></a>00694 
530
 
<a name="l00695"></a>00695 #<span class="keywordflow">if</span> defined(Q_WS_MAC)
531
 
<a name="l00696"></a>00696 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span>
532
 
<a name="l00697"></a>00697 <span class="preprocessor"></span>            <span class="comment">// Antialiased fonts are broken on the Mac.</span>
533
 
<a name="l00698"></a>00698             painter-&gt;save();
534
 
<a name="l00699"></a>00699             painter-&gt;setRenderHint(QPainter::TextAntialiasing, <span class="keyword">false</span>);
535
 
<a name="l00700"></a>00700 <span class="preprocessor">#else</span>
536
 
<a name="l00701"></a>00701 <span class="preprocessor"></span>            QFont fnt = label.<a class="code" href="class_qwt_text.html#9769ab68a4fe26025c4172a14092f792">usedFont</a>(painter-&gt;font());
537
 
<a name="l00702"></a>00702             fnt.setStyleStrategy(QFont::NoAntialias);
538
 
<a name="l00703"></a>00703             label.setFont(fnt);
539
 
<a name="l00704"></a>00704 <span class="preprocessor">#endif</span>
540
 
<a name="l00705"></a>00705 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
541
 
<a name="l00706"></a>00706 <span class="preprocessor"></span>            label.draw(painter, textRect);
542
 
<a name="l00707"></a>00707 
543
 
<a name="l00708"></a>00708 <span class="preprocessor">#if defined(Q_WS_MAC)</span>
544
 
<a name="l00709"></a>00709 <span class="preprocessor"></span><span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span>
545
 
<a name="l00710"></a>00710 <span class="preprocessor"></span>            painter-&gt;restore();
546
 
<a name="l00711"></a>00711 <span class="preprocessor">#endif</span>
547
 
<a name="l00712"></a>00712 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
548
 
<a name="l00713"></a>00713 <span class="preprocessor"></span>        }
549
 
<a name="l00714"></a>00714     }
550
 
<a name="l00715"></a>00715 }
551
 
<a name="l00716"></a>00716 
552
 
<a name="l00717"></a><a class="code" href="class_qwt_picker.html#12ca49ce032609973efc6f261078d1e3">00717</a> QRect <a class="code" href="class_qwt_picker.html#12ca49ce032609973efc6f261078d1e3">QwtPicker::trackerRect</a>(QPainter *painter)<span class="keyword"> const</span>
553
 
<a name="l00718"></a>00718 <span class="keyword"></span>{
554
 
<a name="l00719"></a>00719     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() == AlwaysOff || 
555
 
<a name="l00720"></a>00720         (<a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() == ActiveOnly &amp;&amp; !<a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() ) )
556
 
<a name="l00721"></a>00721     {
557
 
<a name="l00722"></a>00722         <span class="keywordflow">return</span> QRect();
558
 
<a name="l00723"></a>00723     }
559
 
<a name="l00724"></a>00724 
560
 
<a name="l00725"></a>00725     <span class="keywordflow">if</span> ( d_data-&gt;labelPosition.x() &lt; 0 || d_data-&gt;labelPosition.y() &lt; 0 )
561
 
<a name="l00726"></a>00726         <span class="keywordflow">return</span> QRect();
562
 
<a name="l00727"></a>00727 
563
 
<a name="l00728"></a>00728     <a class="code" href="class_qwt_text.html">QwtText</a> text = <a class="code" href="class_qwt_picker.html#48ab7695edfa22df80490bf930f16cc4">trackerText</a>(d_data-&gt;labelPosition);
564
 
<a name="l00729"></a>00729     <span class="keywordflow">if</span> ( text.<a class="code" href="class_qwt_text.html#25843b1120b648752ed5be2247ebe43f">isEmpty</a>() )
565
 
<a name="l00730"></a>00730         <span class="keywordflow">return</span> QRect();
566
 
<a name="l00731"></a>00731 
567
 
<a name="l00732"></a>00732     QRect textRect(QPoint(0, 0), text.<a class="code" href="class_qwt_text.html#6e7ff0a75f1eecc37478f9ca643da379">textSize</a>(painter-&gt;font()));
568
 
<a name="l00733"></a>00733 
569
 
<a name="l00734"></a>00734     <span class="keyword">const</span> QPoint &amp;pos = d_data-&gt;labelPosition;
570
 
<a name="l00735"></a>00735 
571
 
<a name="l00736"></a>00736     <span class="keywordtype">int</span> alignment = 0;
572
 
<a name="l00737"></a>00737     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() &amp;&amp; d_data-&gt;selection.count() &gt; 1 
573
 
<a name="l00738"></a>00738         &amp;&amp; <a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>() != NoRubberBand )
574
 
<a name="l00739"></a>00739     {
575
 
<a name="l00740"></a>00740         <span class="keyword">const</span> QPoint last = 
576
 
<a name="l00741"></a>00741             d_data-&gt;selection[<span class="keywordtype">int</span>(d_data-&gt;selection.count()) - 2];
577
 
<a name="l00742"></a>00742 
578
 
<a name="l00743"></a>00743         alignment |= (pos.x() &gt;= last.x()) ? Qt::AlignRight : Qt::AlignLeft;
579
 
<a name="l00744"></a>00744         alignment |= (pos.y() &gt; last.y()) ? Qt::AlignBottom : Qt::AlignTop;
580
 
<a name="l00745"></a>00745     }
581
 
<a name="l00746"></a>00746     <span class="keywordflow">else</span>
582
 
<a name="l00747"></a>00747         alignment = Qt::AlignTop | Qt::AlignRight;
583
 
<a name="l00748"></a>00748 
584
 
<a name="l00749"></a>00749     <span class="keyword">const</span> <span class="keywordtype">int</span> margin = 5;
585
 
<a name="l00750"></a>00750 
586
 
<a name="l00751"></a>00751     <span class="keywordtype">int</span> x = pos.x();
587
 
<a name="l00752"></a>00752     <span class="keywordflow">if</span> ( alignment &amp; Qt::AlignLeft )
588
 
<a name="l00753"></a>00753         x -= textRect.width() + margin;
589
 
<a name="l00754"></a>00754     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( alignment &amp; Qt::AlignRight )
590
 
<a name="l00755"></a>00755         x += margin;
591
 
<a name="l00756"></a>00756 
592
 
<a name="l00757"></a>00757     <span class="keywordtype">int</span> y = pos.y();
593
 
<a name="l00758"></a>00758     <span class="keywordflow">if</span> ( alignment &amp; Qt::AlignBottom )
594
 
<a name="l00759"></a>00759         y += margin;
595
 
<a name="l00760"></a>00760     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( alignment &amp; Qt::AlignTop )
596
 
<a name="l00761"></a>00761         y -= textRect.height() + margin;
597
 
<a name="l00762"></a>00762     
598
 
<a name="l00763"></a>00763     textRect.moveTopLeft(QPoint(x, y));
599
 
<a name="l00764"></a>00764 
600
 
<a name="l00765"></a>00765     <span class="keywordtype">int</span> right = qwtMin(textRect.right(), pickRect().right() - margin);
601
 
<a name="l00766"></a>00766     <span class="keywordtype">int</span> bottom = qwtMin(textRect.bottom(), pickRect().bottom() - margin);
602
 
<a name="l00767"></a>00767     textRect.moveBottomRight(QPoint(right, bottom));
603
 
<a name="l00768"></a>00768 
604
 
<a name="l00769"></a>00769     <span class="keywordtype">int</span> left = qwtMax(textRect.left(), pickRect().left() + margin);
605
 
<a name="l00770"></a>00770     <span class="keywordtype">int</span> top = qwtMax(textRect.top(), pickRect().top() + margin);
606
 
<a name="l00771"></a>00771     textRect.moveTopLeft(QPoint(left, top));
607
 
<a name="l00772"></a>00772 
608
 
<a name="l00773"></a>00773     <span class="keywordflow">return</span> textRect;
609
 
<a name="l00774"></a>00774 }
610
 
<a name="l00775"></a>00775 
611
 
<a name="l00788"></a><a class="code" href="class_qwt_picker.html#c149f9cb8fb068f31871e1fe450c376e">00788</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#c149f9cb8fb068f31871e1fe450c376e">QwtPicker::eventFilter</a>(QObject *o, QEvent *e)
612
 
<a name="l00789"></a>00789 {
613
 
<a name="l00790"></a>00790     <span class="keywordflow">if</span> ( o &amp;&amp; o == <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>() )
614
 
<a name="l00791"></a>00791     {
615
 
<a name="l00792"></a>00792         <span class="keywordflow">switch</span>(e-&gt;type())
616
 
<a name="l00793"></a>00793         {
617
 
<a name="l00794"></a>00794             <span class="keywordflow">case</span> QEvent::Resize:
618
 
<a name="l00795"></a>00795             {
619
 
<a name="l00796"></a>00796                 <span class="keyword">const</span> QResizeEvent *re = (QResizeEvent *)e;
620
 
<a name="l00797"></a>00797                 <span class="keywordflow">if</span> ( d_data-&gt;resizeMode == Stretch )
621
 
<a name="l00798"></a>00798                     <a class="code" href="class_qwt_picker.html#24b0e4bcf6a9b7f41c81ea19305105a8">stretchSelection</a>(re-&gt;oldSize(), re-&gt;size());
622
 
<a name="l00799"></a>00799 
623
 
<a name="l00800"></a>00800                 <span class="keywordflow">if</span> ( d_data-&gt;rubberBandWidget )
624
 
<a name="l00801"></a>00801                     d_data-&gt;rubberBandWidget-&gt;resize(re-&gt;size());
625
 
<a name="l00802"></a>00802              
626
 
<a name="l00803"></a>00803                 <span class="keywordflow">if</span> ( d_data-&gt;trackerWidget )
627
 
<a name="l00804"></a>00804                     d_data-&gt;trackerWidget-&gt;resize(re-&gt;size());
628
 
<a name="l00805"></a>00805                 <span class="keywordflow">break</span>;
629
 
<a name="l00806"></a>00806             }
630
 
<a name="l00807"></a>00807             <span class="keywordflow">case</span> QEvent::Leave:
631
 
<a name="l00808"></a>00808                 <a class="code" href="class_qwt_picker.html#8a2a18f2b98c8524b1d3684df44c24aa">widgetLeaveEvent</a>(e);
632
 
<a name="l00809"></a>00809                 <span class="keywordflow">break</span>;
633
 
<a name="l00810"></a>00810             <span class="keywordflow">case</span> QEvent::MouseButtonPress:
634
 
<a name="l00811"></a>00811                 <a class="code" href="class_qwt_picker.html#4bfae8da37c3936ae73d4798cca4a3d9">widgetMousePressEvent</a>((QMouseEvent *)e);
635
 
<a name="l00812"></a>00812                 <span class="keywordflow">break</span>;
636
 
<a name="l00813"></a>00813             <span class="keywordflow">case</span> QEvent::MouseButtonRelease:
637
 
<a name="l00814"></a>00814                 <a class="code" href="class_qwt_picker.html#c009633e005b6290e07b902f2a58e45e">widgetMouseReleaseEvent</a>((QMouseEvent *)e);
638
 
<a name="l00815"></a>00815                 <span class="keywordflow">break</span>;
639
 
<a name="l00816"></a>00816             <span class="keywordflow">case</span> QEvent::MouseButtonDblClick:
640
 
<a name="l00817"></a>00817                 <a class="code" href="class_qwt_picker.html#f1ffb07c24be57cd4a753b04412b3212">widgetMouseDoubleClickEvent</a>((QMouseEvent *)e);
641
 
<a name="l00818"></a>00818                 <span class="keywordflow">break</span>;
642
 
<a name="l00819"></a>00819             <span class="keywordflow">case</span> QEvent::MouseMove:
643
 
<a name="l00820"></a>00820                 <a class="code" href="class_qwt_picker.html#88b203109a4d3b26c2e0bee110c56c9d">widgetMouseMoveEvent</a>((QMouseEvent *)e);
644
 
<a name="l00821"></a>00821                 <span class="keywordflow">break</span>;
645
 
<a name="l00822"></a>00822             <span class="keywordflow">case</span> QEvent::KeyPress:
646
 
<a name="l00823"></a>00823                 <a class="code" href="class_qwt_picker.html#f5bc441b2fc143363563922a3b3c70ae">widgetKeyPressEvent</a>((QKeyEvent *)e);
647
 
<a name="l00824"></a>00824                 <span class="keywordflow">break</span>;
648
 
<a name="l00825"></a>00825             <span class="keywordflow">case</span> QEvent::KeyRelease:
649
 
<a name="l00826"></a>00826                 <a class="code" href="class_qwt_picker.html#9f2c739a619be794b22a10ede9674a1e">widgetKeyReleaseEvent</a>((QKeyEvent *)e);
650
 
<a name="l00827"></a>00827                 <span class="keywordflow">break</span>;
651
 
<a name="l00828"></a>00828             <span class="keywordflow">case</span> QEvent::Wheel:
652
 
<a name="l00829"></a>00829                 <a class="code" href="class_qwt_picker.html#f92ffabe291a6254378dc932c5cce0a7">widgetWheelEvent</a>((QWheelEvent *)e);
653
 
<a name="l00830"></a>00830                 <span class="keywordflow">break</span>;
654
 
<a name="l00831"></a>00831             <span class="keywordflow">default</span>:
655
 
<a name="l00832"></a>00832                 <span class="keywordflow">break</span>;
656
 
<a name="l00833"></a>00833         }
657
 
<a name="l00834"></a>00834     }
658
 
<a name="l00835"></a>00835     <span class="keywordflow">return</span> <span class="keyword">false</span>;
659
 
<a name="l00836"></a>00836 }
660
 
<a name="l00837"></a>00837 
661
 
<a name="l00848"></a><a class="code" href="class_qwt_picker.html#4bfae8da37c3936ae73d4798cca4a3d9">00848</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#4bfae8da37c3936ae73d4798cca4a3d9">QwtPicker::widgetMousePressEvent</a>(QMouseEvent *e)
662
 
<a name="l00849"></a>00849 {
663
 
<a name="l00850"></a>00850     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(e);
664
 
<a name="l00851"></a>00851 }
665
 
<a name="l00852"></a>00852 
666
 
<a name="l00862"></a><a class="code" href="class_qwt_picker.html#88b203109a4d3b26c2e0bee110c56c9d">00862</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#88b203109a4d3b26c2e0bee110c56c9d">QwtPicker::widgetMouseMoveEvent</a>(QMouseEvent *e)
667
 
<a name="l00863"></a>00863 {
668
 
<a name="l00864"></a>00864     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">pickRect</a>().contains(e-&gt;pos()) )
669
 
<a name="l00865"></a>00865         d_data-&gt;labelPosition = e-&gt;pos();
670
 
<a name="l00866"></a>00866     <span class="keywordflow">else</span>
671
 
<a name="l00867"></a>00867         d_data-&gt;labelPosition = QPoint(-1, -1);
672
 
<a name="l00868"></a>00868 
673
 
<a name="l00869"></a>00869     <span class="keywordflow">if</span> ( !<a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() )
674
 
<a name="l00870"></a>00870         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
675
 
<a name="l00871"></a>00871 
676
 
<a name="l00872"></a>00872     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(e);
677
 
<a name="l00873"></a>00873 }
678
 
<a name="l00874"></a>00874 
679
 
<a name="l00882"></a><a class="code" href="class_qwt_picker.html#8a2a18f2b98c8524b1d3684df44c24aa">00882</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#8a2a18f2b98c8524b1d3684df44c24aa">QwtPicker::widgetLeaveEvent</a>(QEvent *)   
680
 
<a name="l00883"></a>00883 {
681
 
<a name="l00884"></a>00884     d_data-&gt;labelPosition = QPoint(-1, -1);
682
 
<a name="l00885"></a>00885     <span class="keywordflow">if</span> ( !<a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() )
683
 
<a name="l00886"></a>00886         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
684
 
<a name="l00887"></a>00887 }
685
 
<a name="l00888"></a>00888 
686
 
<a name="l00899"></a><a class="code" href="class_qwt_picker.html#c009633e005b6290e07b902f2a58e45e">00899</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#c009633e005b6290e07b902f2a58e45e">QwtPicker::widgetMouseReleaseEvent</a>(QMouseEvent *e)
687
 
<a name="l00900"></a>00900 {
688
 
<a name="l00901"></a>00901     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(e);
689
 
<a name="l00902"></a>00902 }
690
 
<a name="l00903"></a>00903 
691
 
<a name="l00913"></a><a class="code" href="class_qwt_picker.html#f1ffb07c24be57cd4a753b04412b3212">00913</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#f1ffb07c24be57cd4a753b04412b3212">QwtPicker::widgetMouseDoubleClickEvent</a>(QMouseEvent *me)
692
 
<a name="l00914"></a>00914 {
693
 
<a name="l00915"></a>00915     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(me);
694
 
<a name="l00916"></a>00916 }
695
 
<a name="l00917"></a>00917     
696
 
<a name="l00918"></a>00918 
697
 
<a name="l00928"></a><a class="code" href="class_qwt_picker.html#f92ffabe291a6254378dc932c5cce0a7">00928</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#f92ffabe291a6254378dc932c5cce0a7">QwtPicker::widgetWheelEvent</a>(QWheelEvent *e)
698
 
<a name="l00929"></a>00929 {
699
 
<a name="l00930"></a>00930     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">pickRect</a>().contains(e-&gt;pos()) )
700
 
<a name="l00931"></a>00931         d_data-&gt;labelPosition = e-&gt;pos();
701
 
<a name="l00932"></a>00932     <span class="keywordflow">else</span>
702
 
<a name="l00933"></a>00933         d_data-&gt;labelPosition = QPoint(-1, -1);
703
 
<a name="l00934"></a>00934 
704
 
<a name="l00935"></a>00935     <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
705
 
<a name="l00936"></a>00936 
706
 
<a name="l00937"></a>00937     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(e);
707
 
<a name="l00938"></a>00938 }
708
 
<a name="l00939"></a>00939 
709
 
<a name="l00953"></a><a class="code" href="class_qwt_picker.html#f5bc441b2fc143363563922a3b3c70ae">00953</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#f5bc441b2fc143363563922a3b3c70ae">QwtPicker::widgetKeyPressEvent</a>(QKeyEvent *ke)
710
 
<a name="l00954"></a>00954 {
711
 
<a name="l00955"></a>00955     <span class="keywordtype">int</span> dx = 0;
712
 
<a name="l00956"></a>00956     <span class="keywordtype">int</span> dy = 0;
713
 
<a name="l00957"></a>00957 
714
 
<a name="l00958"></a>00958     <span class="keywordtype">int</span> offset = 1;
715
 
<a name="l00959"></a>00959     <span class="keywordflow">if</span> ( ke-&gt;isAutoRepeat() )
716
 
<a name="l00960"></a>00960         offset = 5;
717
 
<a name="l00961"></a>00961 
718
 
<a name="l00962"></a>00962     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyLeft, ke) )
719
 
<a name="l00963"></a>00963         dx = -offset;
720
 
<a name="l00964"></a>00964     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyRight, ke) )
721
 
<a name="l00965"></a>00965         dx = offset;
722
 
<a name="l00966"></a>00966     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyUp, ke) )
723
 
<a name="l00967"></a>00967         dy = -offset;
724
 
<a name="l00968"></a>00968     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyDown, ke) )
725
 
<a name="l00969"></a>00969         dy = offset;
726
 
<a name="l00970"></a>00970     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyAbort, ke) )
727
 
<a name="l00971"></a>00971     {
728
 
<a name="l00972"></a>00972         <span class="keywordflow">if</span> ( d_data-&gt;stateMachine )
729
 
<a name="l00973"></a>00973             d_data-&gt;stateMachine-&gt;reset();
730
 
<a name="l00974"></a>00974 
731
 
<a name="l00975"></a>00975         <span class="keywordflow">if</span> (<a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>())
732
 
<a name="l00976"></a>00976             <a class="code" href="class_qwt_picker.html#d258c518257cf2f52326905a36efb0c4">end</a>(<span class="keyword">false</span>);
733
 
<a name="l00977"></a>00977     }
734
 
<a name="l00978"></a>00978     <span class="keywordflow">else</span>
735
 
<a name="l00979"></a>00979         <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(ke);
736
 
<a name="l00980"></a>00980 
737
 
<a name="l00981"></a>00981     <span class="keywordflow">if</span> ( dx != 0 || dy != 0 )
738
 
<a name="l00982"></a>00982     {
739
 
<a name="l00983"></a>00983         <span class="keyword">const</span> QRect rect = <a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">pickRect</a>();
740
 
<a name="l00984"></a>00984         <span class="keyword">const</span> QPoint pos = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>()-&gt;mapFromGlobal(QCursor::pos());
741
 
<a name="l00985"></a>00985 
742
 
<a name="l00986"></a>00986         <span class="keywordtype">int</span> x = pos.x() + dx;
743
 
<a name="l00987"></a>00987         x = qwtMax(rect.left(), x);
744
 
<a name="l00988"></a>00988         x = qwtMin(rect.right(), x);
745
 
<a name="l00989"></a>00989 
746
 
<a name="l00990"></a>00990         <span class="keywordtype">int</span> y = pos.y() + dy;
747
 
<a name="l00991"></a>00991         y = qwtMax(rect.top(), y);
748
 
<a name="l00992"></a>00992         y = qwtMin(rect.bottom(), y);
749
 
<a name="l00993"></a>00993 
750
 
<a name="l00994"></a>00994         QCursor::setPos(<a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>()-&gt;mapToGlobal(QPoint(x, y)));
751
 
<a name="l00995"></a>00995     }
752
 
<a name="l00996"></a>00996 }
753
 
<a name="l00997"></a>00997  
754
 
<a name="l01007"></a><a class="code" href="class_qwt_picker.html#9f2c739a619be794b22a10ede9674a1e">01007</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#9f2c739a619be794b22a10ede9674a1e">QwtPicker::widgetKeyReleaseEvent</a>(QKeyEvent *ke)
755
 
<a name="l01008"></a>01008 {
756
 
<a name="l01009"></a>01009     <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">transition</a>(ke);
757
 
<a name="l01010"></a>01010 }
758
 
<a name="l01011"></a>01011 
759
 
<a name="l01019"></a><a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">01019</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#90f9f3485f054c36c1835931e9a387dd">QwtPicker::transition</a>(<span class="keyword">const</span> QEvent *e)
760
 
<a name="l01020"></a>01020 {
761
 
<a name="l01021"></a>01021     <span class="keywordflow">if</span> ( !d_data-&gt;stateMachine )
762
 
<a name="l01022"></a>01022         <span class="keywordflow">return</span>;
763
 
<a name="l01023"></a>01023 
764
 
<a name="l01024"></a>01024     <a class="code" href="class_qwt_picker_machine.html#c173f6053e54747d7154bbc015763a22">QwtPickerMachine::CommandList</a> commandList =
765
 
<a name="l01025"></a>01025         d_data-&gt;stateMachine-&gt;transition(*<span class="keyword">this</span>, e);
766
 
<a name="l01026"></a>01026 
767
 
<a name="l01027"></a>01027     QPoint pos;
768
 
<a name="l01028"></a>01028     <span class="keywordflow">switch</span>(e-&gt;type())
769
 
<a name="l01029"></a>01029     {
770
 
<a name="l01030"></a>01030         <span class="keywordflow">case</span> QEvent::MouseButtonDblClick:
771
 
<a name="l01031"></a>01031         <span class="keywordflow">case</span> QEvent::MouseButtonPress:
772
 
<a name="l01032"></a>01032         <span class="keywordflow">case</span> QEvent::MouseButtonRelease:
773
 
<a name="l01033"></a>01033         <span class="keywordflow">case</span> QEvent::MouseMove:
774
 
<a name="l01034"></a>01034         {
775
 
<a name="l01035"></a>01035             <span class="keyword">const</span> QMouseEvent *me = (QMouseEvent *)e;
776
 
<a name="l01036"></a>01036             pos = me-&gt;pos();
777
 
<a name="l01037"></a>01037             <span class="keywordflow">break</span>;
778
 
<a name="l01038"></a>01038         }
779
 
<a name="l01039"></a>01039         <span class="keywordflow">default</span>:
780
 
<a name="l01040"></a>01040             pos = parentWidget()-&gt;mapFromGlobal(QCursor::pos());
781
 
<a name="l01041"></a>01041     }
782
 
<a name="l01042"></a>01042 
783
 
<a name="l01043"></a>01043     <span class="keywordflow">for</span> ( uint i = 0; i &lt; (uint)commandList.count(); i++ )
784
 
<a name="l01044"></a>01044     {
785
 
<a name="l01045"></a>01045         <span class="keywordflow">switch</span>(commandList[i])
786
 
<a name="l01046"></a>01046         {
787
 
<a name="l01047"></a>01047             <span class="keywordflow">case</span> QwtPickerMachine::Begin:
788
 
<a name="l01048"></a>01048             {
789
 
<a name="l01049"></a>01049                 begin();
790
 
<a name="l01050"></a>01050                 <span class="keywordflow">break</span>;
791
 
<a name="l01051"></a>01051             }
792
 
<a name="l01052"></a>01052             <span class="keywordflow">case</span> QwtPickerMachine::Append:
793
 
<a name="l01053"></a>01053             {
794
 
<a name="l01054"></a>01054                 append(pos);
795
 
<a name="l01055"></a>01055                 <span class="keywordflow">break</span>;
796
 
<a name="l01056"></a>01056             }
797
 
<a name="l01057"></a>01057             <span class="keywordflow">case</span> QwtPickerMachine::Move:
798
 
<a name="l01058"></a>01058             {
799
 
<a name="l01059"></a>01059                 move(pos);
800
 
<a name="l01060"></a>01060                 <span class="keywordflow">break</span>;
801
 
<a name="l01061"></a>01061             }
802
 
<a name="l01062"></a>01062             <span class="keywordflow">case</span> QwtPickerMachine::End:
803
 
<a name="l01063"></a>01063             {
804
 
<a name="l01064"></a>01064                 end();
805
 
<a name="l01065"></a>01065                 <span class="keywordflow">break</span>;
806
 
<a name="l01066"></a>01066             }
807
 
<a name="l01067"></a>01067         }
808
 
<a name="l01068"></a>01068     }
809
 
<a name="l01069"></a>01069 }
810
 
<a name="l01070"></a>01070 
811
 
<a name="l01076"></a><a class="code" href="class_qwt_picker.html#49cb19aea451e275c5d376235e5a1d83">01076</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#49cb19aea451e275c5d376235e5a1d83">QwtPicker::begin</a>()
812
 
<a name="l01077"></a>01077 {
813
 
<a name="l01078"></a>01078     <span class="keywordflow">if</span> ( d_data-&gt;isActive )
814
 
<a name="l01079"></a>01079         <span class="keywordflow">return</span>;
815
 
<a name="l01080"></a>01080 
816
 
<a name="l01081"></a>01081     d_data-&gt;selection.resize(0);
817
 
<a name="l01082"></a>01082     d_data-&gt;isActive = <span class="keyword">true</span>;
818
 
<a name="l01083"></a>01083 
819
 
<a name="l01084"></a>01084     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() != AlwaysOff )
820
 
<a name="l01085"></a>01085     {
821
 
<a name="l01086"></a>01086         <span class="keywordflow">if</span> ( d_data-&gt;labelPosition.x() &lt; 0 || d_data-&gt;labelPosition.y() &lt; 0 ) 
822
 
<a name="l01087"></a>01087         {
823
 
<a name="l01088"></a>01088             QWidget *w = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>();
824
 
<a name="l01089"></a>01089             <span class="keywordflow">if</span> ( w )
825
 
<a name="l01090"></a>01090                 d_data-&gt;labelPosition = w-&gt;mapFromGlobal(QCursor::pos());
826
 
<a name="l01091"></a>01091         }
827
 
<a name="l01092"></a>01092     }
828
 
<a name="l01093"></a>01093 
829
 
<a name="l01094"></a>01094     updateDisplay();
830
 
<a name="l01095"></a>01095     setMouseTracking(<span class="keyword">true</span>);
831
 
<a name="l01096"></a>01096 }
832
 
<a name="l01097"></a>01097 
833
 
<a name="l01108"></a><a class="code" href="class_qwt_picker.html#d258c518257cf2f52326905a36efb0c4">01108</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#d258c518257cf2f52326905a36efb0c4">QwtPicker::end</a>(<span class="keywordtype">bool</span> ok)
834
 
<a name="l01109"></a>01109 {
835
 
<a name="l01110"></a>01110     <span class="keywordflow">if</span> ( d_data-&gt;isActive )
836
 
<a name="l01111"></a>01111     {
837
 
<a name="l01112"></a>01112         setMouseTracking(<span class="keyword">false</span>);
838
 
<a name="l01113"></a>01113 
839
 
<a name="l01114"></a>01114         d_data-&gt;isActive = <span class="keyword">false</span>;
840
 
<a name="l01115"></a>01115 
841
 
<a name="l01116"></a>01116         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() == ActiveOnly )
842
 
<a name="l01117"></a>01117             d_data-&gt;labelPosition = QPoint(-1, -1);
843
 
<a name="l01118"></a>01118 
844
 
<a name="l01119"></a>01119         <span class="keywordflow">if</span> ( ok )
845
 
<a name="l01120"></a>01120             ok = <a class="code" href="class_qwt_picker.html#c59b7fde6b198f76ea91b4b1a4015af5">accept</a>(d_data-&gt;selection);
846
 
<a name="l01121"></a>01121 
847
 
<a name="l01122"></a>01122         <span class="keywordflow">if</span> ( ok )
848
 
<a name="l01123"></a>01123             emit <a class="code" href="class_qwt_picker.html#dc217b13621f291dd2ba081e2c28e4f4">selected</a>(d_data-&gt;selection);
849
 
<a name="l01124"></a>01124         <span class="keywordflow">else</span>
850
 
<a name="l01125"></a>01125             d_data-&gt;selection.resize(0);
851
 
<a name="l01126"></a>01126 
852
 
<a name="l01127"></a>01127         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
853
 
<a name="l01128"></a>01128     }
854
 
<a name="l01129"></a>01129     <span class="keywordflow">else</span>
855
 
<a name="l01130"></a>01130         ok = <span class="keyword">false</span>;
856
 
<a name="l01131"></a>01131 
857
 
<a name="l01132"></a>01132     <span class="keywordflow">return</span> ok;
858
 
<a name="l01133"></a>01133 }
859
 
<a name="l01134"></a>01134 
860
 
<a name="l01143"></a><a class="code" href="class_qwt_picker.html#5dd2e0ce6b2a6cc50e345ec13aef9255">01143</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#5dd2e0ce6b2a6cc50e345ec13aef9255">QwtPicker::append</a>(<span class="keyword">const</span> QPoint &amp;pos)
861
 
<a name="l01144"></a>01144 {
862
 
<a name="l01145"></a>01145     <span class="keywordflow">if</span> ( d_data-&gt;isActive )
863
 
<a name="l01146"></a>01146     {
864
 
<a name="l01147"></a>01147         <span class="keyword">const</span> <span class="keywordtype">int</span> idx = d_data-&gt;selection.count();
865
 
<a name="l01148"></a>01148         d_data-&gt;selection.resize(idx + 1);
866
 
<a name="l01149"></a>01149         d_data-&gt;selection[idx] = pos;
867
 
<a name="l01150"></a>01150 
868
 
<a name="l01151"></a>01151         <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
869
 
<a name="l01152"></a>01152 
870
 
<a name="l01153"></a>01153         emit <a class="code" href="class_qwt_picker.html#d52219271a7c8efab35ded14ac89827a">appended</a>(pos);
871
 
<a name="l01154"></a>01154     }
872
 
<a name="l01155"></a>01155 }
873
 
<a name="l01156"></a>01156 
874
 
<a name="l01165"></a><a class="code" href="class_qwt_picker.html#59d92670978f200edb61e429afa06542">01165</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#59d92670978f200edb61e429afa06542">QwtPicker::move</a>(<span class="keyword">const</span> QPoint &amp;pos)
875
 
<a name="l01166"></a>01166 {
876
 
<a name="l01167"></a>01167     <span class="keywordflow">if</span> ( d_data-&gt;isActive )
877
 
<a name="l01168"></a>01168     {
878
 
<a name="l01169"></a>01169         <span class="keyword">const</span> <span class="keywordtype">int</span> idx = d_data-&gt;selection.count() - 1;
879
 
<a name="l01170"></a>01170         <span class="keywordflow">if</span> ( idx &gt;= 0 )
880
 
<a name="l01171"></a>01171         {
881
 
<a name="l01172"></a>01172             <span class="keywordflow">if</span> ( d_data-&gt;selection[idx] != pos )
882
 
<a name="l01173"></a>01173             {
883
 
<a name="l01174"></a>01174                 d_data-&gt;selection[idx] = pos;
884
 
<a name="l01175"></a>01175 
885
 
<a name="l01176"></a>01176                 <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">updateDisplay</a>();
886
 
<a name="l01177"></a>01177 
887
 
<a name="l01178"></a>01178                 emit <a class="code" href="class_qwt_picker.html#dddb4800c1dac0ba807e731f45d40742">moved</a>(pos);
888
 
<a name="l01179"></a>01179             }
889
 
<a name="l01180"></a>01180         }
890
 
<a name="l01181"></a>01181     }
891
 
<a name="l01182"></a>01182 }
892
 
<a name="l01183"></a>01183 
893
 
<a name="l01184"></a><a class="code" href="class_qwt_picker.html#c59b7fde6b198f76ea91b4b1a4015af5">01184</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#c59b7fde6b198f76ea91b4b1a4015af5">QwtPicker::accept</a>(QwtPolygon &amp;)<span class="keyword"> const</span>
894
 
<a name="l01185"></a>01185 <span class="keyword"></span>{
895
 
<a name="l01186"></a>01186     <span class="keywordflow">return</span> <span class="keyword">true</span>;
896
 
<a name="l01187"></a>01187 }
897
 
<a name="l01188"></a>01188 
898
 
<a name="l01193"></a><a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">01193</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">QwtPicker::isActive</a>()<span class="keyword"> const </span>
899
 
<a name="l01194"></a>01194 <span class="keyword"></span>{
900
 
<a name="l01195"></a>01195     <span class="keywordflow">return</span> d_data-&gt;isActive;
901
 
<a name="l01196"></a>01196 }
902
 
<a name="l01197"></a>01197 
903
 
<a name="l01199"></a><a class="code" href="class_qwt_picker.html#c1eb6aa4b264116ac7411ae799862676">01199</a> <span class="keyword">const</span> QwtPolygon &amp;<a class="code" href="class_qwt_picker.html#c1eb6aa4b264116ac7411ae799862676">QwtPicker::selection</a>()<span class="keyword"> const</span>
904
 
<a name="l01200"></a>01200 <span class="keyword"></span>{
905
 
<a name="l01201"></a>01201     <span class="keywordflow">return</span> d_data-&gt;selection;
906
 
<a name="l01202"></a>01202 }
907
 
<a name="l01203"></a>01203 
908
 
<a name="l01213"></a><a class="code" href="class_qwt_picker.html#24b0e4bcf6a9b7f41c81ea19305105a8">01213</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#24b0e4bcf6a9b7f41c81ea19305105a8">QwtPicker::stretchSelection</a>(<span class="keyword">const</span> QSize &amp;oldSize, <span class="keyword">const</span> QSize &amp;newSize)
909
 
<a name="l01214"></a>01214 {
910
 
<a name="l01215"></a>01215     <span class="keyword">const</span> <span class="keywordtype">double</span> xRatio =
911
 
<a name="l01216"></a>01216         double(newSize.width()) / <span class="keywordtype">double</span>(oldSize.width());
912
 
<a name="l01217"></a>01217     <span class="keyword">const</span> <span class="keywordtype">double</span> yRatio =
913
 
<a name="l01218"></a>01218         double(newSize.height()) / <span class="keywordtype">double</span>(oldSize.height());
914
 
<a name="l01219"></a>01219 
915
 
<a name="l01220"></a>01220     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; int(d_data-&gt;selection.count()); i++ )
916
 
<a name="l01221"></a>01221     {
917
 
<a name="l01222"></a>01222         QPoint &amp;p = d_data-&gt;selection[i];
918
 
<a name="l01223"></a>01223         p.setX(qRound(p.x() * xRatio));
919
 
<a name="l01224"></a>01224         p.setY(qRound(p.y() * yRatio));
920
 
<a name="l01225"></a>01225 
921
 
<a name="l01226"></a>01226         emit <a class="code" href="class_qwt_picker.html#dc25f36804c8a9fe24bb8640a73c4051">changed</a>(d_data-&gt;selection);
922
 
<a name="l01227"></a>01227     }
923
 
<a name="l01228"></a>01228 }
924
 
<a name="l01229"></a>01229 
925
 
<a name="l01243"></a>01243 <span class="keywordtype">void</span> QwtPicker::setMouseTracking(<span class="keywordtype">bool</span> enable)
926
 
<a name="l01244"></a>01244 {
927
 
<a name="l01245"></a>01245     QWidget *widget = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>();
928
 
<a name="l01246"></a>01246     <span class="keywordflow">if</span> ( !widget )
929
 
<a name="l01247"></a>01247         <span class="keywordflow">return</span>;
930
 
<a name="l01248"></a>01248 
931
 
<a name="l01249"></a>01249     <span class="keywordflow">if</span> ( enable )
932
 
<a name="l01250"></a>01250     {
933
 
<a name="l01251"></a>01251         d_data-&gt;mouseTracking = widget-&gt;hasMouseTracking();
934
 
<a name="l01252"></a>01252         widget-&gt;setMouseTracking(<span class="keyword">true</span>);
935
 
<a name="l01253"></a>01253     }
936
 
<a name="l01254"></a>01254     <span class="keywordflow">else</span>
937
 
<a name="l01255"></a>01255     {
938
 
<a name="l01256"></a>01256         widget-&gt;setMouseTracking(d_data-&gt;mouseTracking);
939
 
<a name="l01257"></a>01257     }
940
 
<a name="l01258"></a>01258 }
941
 
<a name="l01259"></a>01259 
942
 
<a name="l01265"></a><a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">01265</a> QRect <a class="code" href="class_qwt_picker.html#0e5cd6fc09ec2f3bfa9a766067b518a6">QwtPicker::pickRect</a>()<span class="keyword"> const</span>
943
 
<a name="l01266"></a>01266 <span class="keyword"></span>{
944
 
<a name="l01267"></a>01267     QRect rect;
945
 
<a name="l01268"></a>01268 
946
 
<a name="l01269"></a>01269     <span class="keyword">const</span> QWidget *widget = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>();
947
 
<a name="l01270"></a>01270     <span class="keywordflow">if</span> ( !widget )
948
 
<a name="l01271"></a>01271         <span class="keywordflow">return</span> rect;
949
 
<a name="l01272"></a>01272 
950
 
<a name="l01273"></a>01273     <span class="keywordflow">if</span> ( widget-&gt;inherits(<span class="stringliteral">"QFrame"</span>) )
951
 
<a name="l01274"></a>01274         rect = ((QFrame *)widget)-&gt;contentsRect();
952
 
<a name="l01275"></a>01275     <span class="keywordflow">else</span>
953
 
<a name="l01276"></a>01276         rect = widget-&gt;rect();
954
 
<a name="l01277"></a>01277 
955
 
<a name="l01278"></a>01278     <span class="keywordflow">return</span> rect;
956
 
<a name="l01279"></a>01279 }
957
 
<a name="l01280"></a>01280 
958
 
<a name="l01281"></a><a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">01281</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_picker.html#03aa9bf28f991473d564a57d1bf3bdcc">QwtPicker::updateDisplay</a>()
959
 
<a name="l01282"></a>01282 {
960
 
<a name="l01283"></a>01283     QWidget *w = <a class="code" href="class_qwt_picker.html#da0c12257e006f0066d22c3eb83f667e">parentWidget</a>();
961
 
<a name="l01284"></a>01284 
962
 
<a name="l01285"></a>01285     <span class="keywordtype">bool</span> showRubberband = <span class="keyword">false</span>;
963
 
<a name="l01286"></a>01286     <span class="keywordtype">bool</span> showTracker = <span class="keyword">false</span>;
964
 
<a name="l01287"></a>01287     <span class="keywordflow">if</span> ( w &amp;&amp; w-&gt;isVisible() &amp;&amp; d_data-&gt;enabled )
965
 
<a name="l01288"></a>01288     {
966
 
<a name="l01289"></a>01289         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#6a7af18636587af2c11a6c060929403a">rubberBand</a>() != NoRubberBand &amp;&amp; <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() &amp;&amp;
967
 
<a name="l01290"></a>01290             <a class="code" href="class_qwt_picker.html#074492301e00535def0fe2cb449fba37">rubberBandPen</a>().style() != Qt::NoPen )
968
 
<a name="l01291"></a>01291         {
969
 
<a name="l01292"></a>01292             showRubberband = <span class="keyword">true</span>;
970
 
<a name="l01293"></a>01293         }
971
 
<a name="l01294"></a>01294 
972
 
<a name="l01295"></a>01295         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() == AlwaysOn ||
973
 
<a name="l01296"></a>01296             (<a class="code" href="class_qwt_picker.html#0647370ed08612d2a55742dc00f6acb7">trackerMode</a>() == ActiveOnly &amp;&amp; <a class="code" href="class_qwt_picker.html#f825f383c74928d1541f139e102983f9">isActive</a>() ) )
974
 
<a name="l01297"></a>01297         {
975
 
<a name="l01298"></a>01298             <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_picker.html#a45bf8a52ea95bdf63e2225ec7fa8063">trackerPen</a>() != Qt::NoPen )
976
 
<a name="l01299"></a>01299                 showTracker = <span class="keyword">true</span>;
977
 
<a name="l01300"></a>01300         }
978
 
<a name="l01301"></a>01301     }
979
 
<a name="l01302"></a>01302 
980
 
<a name="l01303"></a>01303 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
981
 
<a name="l01304"></a>01304 <span class="preprocessor"></span>    QGuardedPtr&lt;PrivateData::PickerWidget&gt; &amp;rw = d_data-&gt;rubberBandWidget;
982
 
<a name="l01305"></a>01305 <span class="preprocessor">#else</span>
983
 
<a name="l01306"></a>01306 <span class="preprocessor"></span>    QPointer&lt;PrivateData::PickerWidget&gt; &amp;rw = d_data-&gt;rubberBandWidget;
984
 
<a name="l01307"></a>01307 <span class="preprocessor">#endif</span>
985
 
<a name="l01308"></a>01308 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( showRubberband )
986
 
<a name="l01309"></a>01309     {
987
 
<a name="l01310"></a>01310         <span class="keywordflow">if</span> ( rw.isNull() )
988
 
<a name="l01311"></a>01311         {
989
 
<a name="l01312"></a>01312             rw = <span class="keyword">new</span> PrivateData::PickerWidget(
990
 
<a name="l01313"></a>01313                 <span class="keyword">this</span>, w, PrivateData::PickerWidget::RubberBand);
991
 
<a name="l01314"></a>01314             rw-&gt;resize(w-&gt;size());
992
 
<a name="l01315"></a>01315         }
993
 
<a name="l01316"></a>01316         rw-&gt;updateMask();
994
 
<a name="l01317"></a>01317     }
995
 
<a name="l01318"></a>01318     <span class="keywordflow">else</span>
996
 
<a name="l01319"></a>01319         <span class="keyword">delete</span> rw;
997
 
<a name="l01320"></a>01320 
998
 
<a name="l01321"></a>01321 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span>
999
 
<a name="l01322"></a>01322 <span class="preprocessor"></span>    QGuardedPtr&lt;PrivateData::PickerWidget&gt; &amp;tw = d_data-&gt;trackerWidget;
1000
 
<a name="l01323"></a>01323 <span class="preprocessor">#else</span>
1001
 
<a name="l01324"></a>01324 <span class="preprocessor"></span>    QPointer&lt;PrivateData::PickerWidget&gt; &amp;tw = d_data-&gt;trackerWidget;
1002
 
<a name="l01325"></a>01325 <span class="preprocessor">#endif</span>
1003
 
<a name="l01326"></a>01326 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( showTracker )
1004
 
<a name="l01327"></a>01327     {
1005
 
<a name="l01328"></a>01328         <span class="keywordflow">if</span> ( tw.isNull() )
1006
 
<a name="l01329"></a>01329         {
1007
 
<a name="l01330"></a>01330             tw = <span class="keyword">new</span> PrivateData::PickerWidget(
1008
 
<a name="l01331"></a>01331                 <span class="keyword">this</span>, w, PrivateData::PickerWidget::Text);
1009
 
<a name="l01332"></a>01332             tw-&gt;resize(w-&gt;size());
1010
 
<a name="l01333"></a>01333         }
1011
 
<a name="l01334"></a>01334         tw-&gt;updateMask();
1012
 
<a name="l01335"></a>01335     }
1013
 
<a name="l01336"></a>01336     <span class="keywordflow">else</span>
1014
 
<a name="l01337"></a>01337         <span class="keyword">delete</span> tw;
1015
 
<a name="l01338"></a>01338 }
1016
 
<a name="l01339"></a>01339 
1017
 
<a name="l01340"></a><a class="code" href="class_qwt_picker.html#a13f79148c53b9aec63f14b62ccc98cb">01340</a> <span class="keyword">const</span> QWidget *<a class="code" href="class_qwt_picker.html#a13f79148c53b9aec63f14b62ccc98cb">QwtPicker::rubberBandWidget</a>()<span class="keyword"> const</span>
1018
 
<a name="l01341"></a>01341 <span class="keyword"></span>{
1019
 
<a name="l01342"></a>01342     <span class="keywordflow">return</span> d_data-&gt;rubberBandWidget;
1020
 
<a name="l01343"></a>01343 }
1021
 
<a name="l01344"></a>01344 
1022
 
<a name="l01345"></a><a class="code" href="class_qwt_picker.html#5eb014068d91e1b26a937fc90b035efc">01345</a> <span class="keyword">const</span> QWidget *<a class="code" href="class_qwt_picker.html#5eb014068d91e1b26a937fc90b035efc">QwtPicker::trackerWidget</a>()<span class="keyword"> const</span>
1023
 
<a name="l01346"></a>01346 <span class="keyword"></span>{
1024
 
<a name="l01347"></a>01347     <span class="keywordflow">return</span> d_data-&gt;trackerWidget;
1025
 
<a name="l01348"></a>01348 }
1026
 
<a name="l01349"></a>01349 
1027
 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:37 2007 for Qwt User's Guide by&nbsp;
1028
 
<a href="http://www.doxygen.org/index.html">
1029
 
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
1030
 
</body>
1031
 
</html>