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's Guide: qwt_plot_canvas.cpp Source File</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.4.6 -->
10
<li><a href="index.html"><span>Main 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 Pages</span></a></li>
15
<h1>qwt_plot_canvas.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="comment">// vim: expandtab</span>
25
<a name="l00011"></a>00011
26
<a name="l00012"></a>00012 <span class="preprocessor">#include <qpainter.h></span>
27
<a name="l00013"></a>00013 <span class="preprocessor">#include <qstyle.h></span>
28
<a name="l00014"></a>00014 <span class="preprocessor">#if QT_VERSION >= 0x040000</span>
29
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include <qstyleoption.h></span>
30
<a name="l00016"></a>00016 <span class="preprocessor">#include <qpaintengine.h></span>
31
<a name="l00017"></a>00017 <span class="preprocessor">#ifdef Q_WS_X11</span>
32
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#include <qx11info_x11.h></span>
33
<a name="l00019"></a>00019 <span class="preprocessor">#endif</span>
34
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
35
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#include <qevent.h></span>
36
<a name="l00022"></a>00022 <span class="preprocessor">#include "qwt_painter.h"</span>
37
<a name="l00023"></a>00023 <span class="preprocessor">#include "qwt_math.h"</span>
38
<a name="l00024"></a>00024 <span class="preprocessor">#include "qwt_plot.h"</span>
39
<a name="l00025"></a>00025 <span class="preprocessor">#include "qwt_paint_buffer.h"</span>
40
<a name="l00026"></a>00026 <span class="preprocessor">#include "qwt_plot_canvas.h"</span>
41
<a name="l00027"></a>00027
42
<a name="l00028"></a>00028 <span class="keyword">class </span>QwtPlotCanvas::PrivateData
43
<a name="l00029"></a>00029 {
44
<a name="l00030"></a>00030 <span class="keyword">public</span>:
45
<a name="l00031"></a>00031 PrivateData():
46
<a name="l00032"></a>00032 <a class="code" href="class_qwt_plot_canvas.html#0e9653bdf8c62299dbc3551ac7e5ec51">focusIndicator</a>(NoFocusIndicator),
47
<a name="l00033"></a>00033 paintAttributes(0),
48
<a name="l00034"></a>00034 cache(NULL)
49
<a name="l00035"></a>00035 {
50
<a name="l00036"></a>00036 }
51
<a name="l00037"></a>00037
52
<a name="l00038"></a>00038 ~PrivateData()
53
<a name="l00039"></a>00039 {
54
<a name="l00040"></a>00040 <span class="keyword">delete</span> cache;
55
<a name="l00041"></a>00041 }
56
<a name="l00042"></a>00042
57
<a name="l00043"></a>00043 <a class="code" href="class_qwt_plot_canvas.html#89b44e4c28038a674ce211fe9ac2d7be">FocusIndicator</a> <a class="code" href="class_qwt_plot_canvas.html#0e9653bdf8c62299dbc3551ac7e5ec51">focusIndicator</a>;
58
<a name="l00044"></a>00044 <span class="keywordtype">int</span> paintAttributes;
59
<a name="l00045"></a>00045 QPixmap *cache;
60
<a name="l00046"></a>00046 };
61
<a name="l00047"></a>00047
62
<a name="l00049"></a>00049
63
<a name="l00050"></a><a class="code" href="class_qwt_plot_canvas.html#e708ed2bc2fe614a809b9b70c9e8959e">00050</a> <a class="code" href="class_qwt_plot_canvas.html#e708ed2bc2fe614a809b9b70c9e8959e">QwtPlotCanvas::QwtPlotCanvas</a>(<a class="code" href="class_qwt_plot.html">QwtPlot</a> *plot):
64
<a name="l00051"></a>00051 QFrame(plot)
65
<a name="l00052"></a>00052 {
66
<a name="l00053"></a>00053 d_data = <span class="keyword">new</span> PrivateData;
67
<a name="l00054"></a>00054
68
<a name="l00055"></a>00055 <span class="preprocessor">#if QT_VERSION >= 0x040100</span>
69
<a name="l00056"></a>00056 <span class="preprocessor"></span> setAutoFillBackground(<span class="keyword">true</span>);
70
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
71
<a name="l00058"></a>00058 <span class="preprocessor"></span>
72
<a name="l00059"></a>00059 <span class="preprocessor">#if QT_VERSION < 0x040000</span>
73
<a name="l00060"></a>00060 <span class="preprocessor"></span> setWFlags(Qt::WNoAutoErase);
74
<a name="l00061"></a>00061 <span class="preprocessor">#ifndef QT_NO_CURSOR</span>
75
<a name="l00062"></a>00062 <span class="preprocessor"></span> setCursor(Qt::crossCursor);
76
<a name="l00063"></a>00063 <span class="preprocessor">#endif</span>
77
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#else</span>
78
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#ifndef QT_NO_CURSOR</span>
79
<a name="l00066"></a>00066 <span class="preprocessor"></span> setCursor(Qt::CrossCursor);
80
<a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
81
<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#endif // >= 0x040000</span>
82
<a name="l00069"></a>00069 <span class="preprocessor"></span>
83
<a name="l00070"></a>00070 <a class="code" href="class_qwt_plot_canvas.html#7859beb87bcef4fd53f99e7c87104e27">setPaintAttribute</a>(PaintCached, <span class="keyword">true</span>);
84
<a name="l00071"></a>00071 <a class="code" href="class_qwt_plot_canvas.html#7859beb87bcef4fd53f99e7c87104e27">setPaintAttribute</a>(PaintPacked, <span class="keyword">true</span>);
85
<a name="l00072"></a>00072 }
86
<a name="l00073"></a>00073
87
<a name="l00075"></a><a class="code" href="class_qwt_plot_canvas.html#320320bbb1b511c0c37fb2452a7f4404">00075</a> <a class="code" href="class_qwt_plot_canvas.html#320320bbb1b511c0c37fb2452a7f4404">QwtPlotCanvas::~QwtPlotCanvas</a>()
88
<a name="l00076"></a>00076 {
89
<a name="l00077"></a>00077 <span class="keyword">delete</span> d_data;
90
<a name="l00078"></a>00078 }
91
<a name="l00079"></a>00079
92
<a name="l00090"></a><a class="code" href="class_qwt_plot_canvas.html#7859beb87bcef4fd53f99e7c87104e27">00090</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#7859beb87bcef4fd53f99e7c87104e27">QwtPlotCanvas::setPaintAttribute</a>(<a class="code" href="class_qwt_plot_canvas.html#76066290edb594a71ee09be564563b0f">PaintAttribute</a> attribute, <span class="keywordtype">bool</span> on)
93
<a name="l00091"></a>00091 {
94
<a name="l00092"></a>00092 <span class="keywordflow">if</span> ( <span class="keywordtype">bool</span>(d_data->paintAttributes & attribute) == on )
95
<a name="l00093"></a>00093 <span class="keywordflow">return</span>;
96
<a name="l00094"></a>00094
97
<a name="l00095"></a>00095 <span class="keywordflow">if</span> ( on )
98
<a name="l00096"></a>00096 d_data->paintAttributes |= attribute;
99
<a name="l00097"></a>00097 <span class="keywordflow">else</span>
100
<a name="l00098"></a>00098 d_data->paintAttributes &= ~attribute;
101
<a name="l00099"></a>00099
102
<a name="l00100"></a>00100 <span class="keywordflow">switch</span>(attribute)
103
<a name="l00101"></a>00101 {
104
<a name="l00102"></a>00102 <span class="keywordflow">case</span> PaintCached:
105
<a name="l00103"></a>00103 {
106
<a name="l00104"></a>00104 <span class="keywordflow">if</span> ( on )
107
<a name="l00105"></a>00105 {
108
<a name="l00106"></a>00106 <span class="keywordflow">if</span> ( d_data->cache == NULL )
109
<a name="l00107"></a>00107 d_data->cache = <span class="keyword">new</span> QPixmap();
110
<a name="l00108"></a>00108
111
<a name="l00109"></a>00109 <span class="keywordflow">if</span> ( isVisible() )
112
<a name="l00110"></a>00110 {
113
<a name="l00111"></a>00111 <span class="keyword">const</span> QRect cr = contentsRect();
114
<a name="l00112"></a>00112 *d_data->cache = QPixmap::grabWidget(<span class="keyword">this</span>,
115
<a name="l00113"></a>00113 cr.x(), cr.y(), cr.width(), cr.height() );
116
<a name="l00114"></a>00114 }
117
<a name="l00115"></a>00115 }
118
<a name="l00116"></a>00116 <span class="keywordflow">else</span>
119
<a name="l00117"></a>00117 {
120
<a name="l00118"></a>00118 <span class="keyword">delete</span> d_data->cache;
121
<a name="l00119"></a>00119 d_data->cache = NULL;
122
<a name="l00120"></a>00120 }
123
<a name="l00121"></a>00121 <span class="keywordflow">break</span>;
124
<a name="l00122"></a>00122 }
125
<a name="l00123"></a>00123 <span class="keywordflow">case</span> PaintPacked:
126
<a name="l00124"></a>00124 {
127
<a name="l00125"></a>00125 <span class="comment">/*</span>
128
<a name="l00126"></a>00126 <span class="comment"> If not visible, changing of the background mode</span>
129
<a name="l00127"></a>00127 <span class="comment"> is delayed until it becomes visible. This tries to avoid </span>
130
<a name="l00128"></a>00128 <span class="comment"> looking through the canvas when the canvas is shown the first </span>
131
<a name="l00129"></a>00129 <span class="comment"> time.</span>
132
<a name="l00130"></a>00130 <span class="comment"> */</span>
133
<a name="l00131"></a>00131
134
<a name="l00132"></a>00132 <span class="keywordflow">if</span> ( on == <span class="keyword">false</span> || isVisible() )
135
<a name="l00133"></a>00133 QwtPlotCanvas::setSystemBackground(!on);
136
<a name="l00134"></a>00134
137
<a name="l00135"></a>00135 <span class="keywordflow">break</span>;
138
<a name="l00136"></a>00136 }
139
<a name="l00137"></a>00137 }
140
<a name="l00138"></a>00138 }
141
<a name="l00139"></a>00139
142
<a name="l00146"></a><a class="code" href="class_qwt_plot_canvas.html#804f78518b0ba72b11ba996fd2457fb1">00146</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_plot_canvas.html#804f78518b0ba72b11ba996fd2457fb1">QwtPlotCanvas::testPaintAttribute</a>(<a class="code" href="class_qwt_plot_canvas.html#76066290edb594a71ee09be564563b0f">PaintAttribute</a> attribute)<span class="keyword"> const</span>
143
<a name="l00147"></a>00147 <span class="keyword"></span>{
144
<a name="l00148"></a>00148 <span class="keywordflow">return</span> (d_data->paintAttributes & attribute) != 0;
145
<a name="l00149"></a>00149 }
146
<a name="l00150"></a>00150
147
<a name="l00152"></a><a class="code" href="class_qwt_plot_canvas.html#9181564270ad961288f6651dcd08ad15">00152</a> QPixmap *<a class="code" href="class_qwt_plot_canvas.html#9181564270ad961288f6651dcd08ad15">QwtPlotCanvas::paintCache</a>()
148
<a name="l00153"></a>00153 {
149
<a name="l00154"></a>00154 <span class="keywordflow">return</span> d_data->cache;
150
<a name="l00155"></a>00155 }
151
<a name="l00156"></a>00156
152
<a name="l00158"></a><a class="code" href="class_qwt_plot_canvas.html#1f5bfe56b2c65bdb956cc0a9d805d1ae">00158</a> <span class="keyword">const</span> QPixmap *<a class="code" href="class_qwt_plot_canvas.html#9181564270ad961288f6651dcd08ad15">QwtPlotCanvas::paintCache</a>()<span class="keyword"> const</span>
153
<a name="l00159"></a>00159 <span class="keyword"></span>{
154
<a name="l00160"></a>00160 <span class="keywordflow">return</span> d_data->cache;
155
<a name="l00161"></a>00161 }
156
<a name="l00162"></a>00162
157
<a name="l00164"></a><a class="code" href="class_qwt_plot_canvas.html#d03018bfc24f361e4ba359643c5c23b6">00164</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#d03018bfc24f361e4ba359643c5c23b6">QwtPlotCanvas::invalidatePaintCache</a>()
158
<a name="l00165"></a>00165 {
159
<a name="l00166"></a>00166 <span class="keywordflow">if</span> ( d_data->cache )
160
<a name="l00167"></a>00167 *d_data->cache = QPixmap();
161
<a name="l00168"></a>00168 }
162
<a name="l00169"></a>00169
163
<a name="l00175"></a><a class="code" href="class_qwt_plot_canvas.html#e7330616dbb97128d01c5446ef0b006e">00175</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#e7330616dbb97128d01c5446ef0b006e">QwtPlotCanvas::setFocusIndicator</a>(<a class="code" href="class_qwt_plot_canvas.html#89b44e4c28038a674ce211fe9ac2d7be">FocusIndicator</a> focusIndicator)
164
<a name="l00176"></a>00176 {
165
<a name="l00177"></a>00177 d_data->focusIndicator = focusIndicator;
166
<a name="l00178"></a>00178 }
167
<a name="l00179"></a>00179
168
<a name="l00185"></a><a class="code" href="class_qwt_plot_canvas.html#0e9653bdf8c62299dbc3551ac7e5ec51">00185</a> <a class="code" href="class_qwt_plot_canvas.html#89b44e4c28038a674ce211fe9ac2d7be">QwtPlotCanvas::FocusIndicator</a> <a class="code" href="class_qwt_plot_canvas.html#0e9653bdf8c62299dbc3551ac7e5ec51">QwtPlotCanvas::focusIndicator</a>()<span class="keyword"> const</span>
169
<a name="l00186"></a>00186 <span class="keyword"></span>{
170
<a name="l00187"></a>00187 <span class="keywordflow">return</span> d_data->focusIndicator;
171
<a name="l00188"></a>00188 }
172
<a name="l00189"></a>00189
173
<a name="l00190"></a><a class="code" href="class_qwt_plot_canvas.html#97e862e6c27fd0f88c5eccc5e4e64096">00190</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#97e862e6c27fd0f88c5eccc5e4e64096">QwtPlotCanvas::hideEvent</a>(QHideEvent *e)
174
<a name="l00191"></a>00191 {
175
<a name="l00192"></a>00192 QFrame::hideEvent(e);
176
<a name="l00193"></a>00193
177
<a name="l00194"></a>00194 <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintPacked )
178
<a name="l00195"></a>00195 {
179
<a name="l00196"></a>00196 <span class="comment">// enable system background to avoid the "looking through</span>
180
<a name="l00197"></a>00197 <span class="comment">// the canvas" effect, for the next show</span>
181
<a name="l00198"></a>00198
182
<a name="l00199"></a>00199 setSystemBackground(<span class="keyword">true</span>);
183
<a name="l00200"></a>00200 }
184
<a name="l00201"></a>00201 }
185
<a name="l00202"></a>00202
186
<a name="l00203"></a><a class="code" href="class_qwt_plot_canvas.html#a8f1516817c578efd407d8dd574170ec">00203</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#a8f1516817c578efd407d8dd574170ec">QwtPlotCanvas::paintEvent</a>(QPaintEvent *event)
187
<a name="l00204"></a>00204 {
188
<a name="l00205"></a>00205 <span class="preprocessor">#if QT_VERSION >= 0x040000</span>
189
<a name="l00206"></a>00206 <span class="preprocessor"></span> QPainter painter(<span class="keyword">this</span>);
190
<a name="l00207"></a>00207
191
<a name="l00208"></a>00208 <span class="keywordflow">if</span> ( !contentsRect().contains( event->rect() ) )
192
<a name="l00209"></a>00209 {
193
<a name="l00210"></a>00210 painter.save();
194
<a name="l00211"></a>00211 painter.setClipRegion( event->region() & frameRect() );
195
<a name="l00212"></a>00212 drawFrame( &painter );
196
<a name="l00213"></a>00213 painter.restore();
197
<a name="l00214"></a>00214 }
198
<a name="l00215"></a>00215
199
<a name="l00216"></a>00216 painter.setClipRegion(event->region() & contentsRect());
200
<a name="l00217"></a>00217
201
<a name="l00218"></a>00218 <a class="code" href="class_qwt_plot_canvas.html#3c6e3cddf7fe4f48db64459b01a37301">drawContents</a>( &painter );
202
<a name="l00219"></a>00219 <span class="preprocessor">#else // QT_VERSION < 0x040000</span>
203
<a name="l00220"></a>00220 <span class="preprocessor"></span> QFrame::paintEvent(event);
204
<a name="l00221"></a>00221 <span class="preprocessor">#endif</span>
205
<a name="l00222"></a>00222 <span class="preprocessor"></span>
206
<a name="l00223"></a>00223 <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintPacked )
207
<a name="l00224"></a>00224 setSystemBackground(<span class="keyword">false</span>);
208
<a name="l00225"></a>00225 }
209
<a name="l00226"></a>00226
210
<a name="l00228"></a><a class="code" href="class_qwt_plot_canvas.html#3c6e3cddf7fe4f48db64459b01a37301">00228</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#3c6e3cddf7fe4f48db64459b01a37301">QwtPlotCanvas::drawContents</a>(QPainter *painter)
211
<a name="l00229"></a>00229 {
212
<a name="l00230"></a>00230 <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintCached && d_data->cache
213
<a name="l00231"></a>00231 && d_data->cache->size() == contentsRect().size() )
214
<a name="l00232"></a>00232 {
215
<a name="l00233"></a>00233 painter->drawPixmap(contentsRect().topLeft(), *d_data->cache);
216
<a name="l00234"></a>00234 }
217
<a name="l00235"></a>00235 <span class="keywordflow">else</span>
218
<a name="l00236"></a>00236 {
219
<a name="l00237"></a>00237 <a class="code" href="class_qwt_plot.html">QwtPlot</a> *plot = ((<a class="code" href="class_qwt_plot.html">QwtPlot</a> *)parent());
220
<a name="l00238"></a>00238 <span class="keyword">const</span> <span class="keywordtype">bool</span> doAutoReplot = plot-><a class="code" href="class_qwt_plot.html#f14053ca41be0f9c6f820ed3c4379831">autoReplot</a>();
221
<a name="l00239"></a>00239 plot-><a class="code" href="class_qwt_plot.html#654934ec2ad167101dacb5174f5172d6">setAutoReplot</a>(<span class="keyword">false</span>);
222
<a name="l00240"></a>00240
223
<a name="l00241"></a>00241 drawCanvas(painter);
224
<a name="l00242"></a>00242
225
<a name="l00243"></a>00243 plot-><a class="code" href="class_qwt_plot.html#654934ec2ad167101dacb5174f5172d6">setAutoReplot</a>(doAutoReplot);
226
<a name="l00244"></a>00244 }
227
<a name="l00245"></a>00245
228
<a name="l00246"></a>00246 <span class="keywordflow">if</span> ( hasFocus() && focusIndicator() == CanvasFocusIndicator )
229
<a name="l00247"></a>00247 drawFocusIndicator(painter);
230
<a name="l00248"></a>00248 }
231
<a name="l00249"></a>00249
232
<a name="l00259"></a><a class="code" href="class_qwt_plot_canvas.html#48cd4c52f0524f1a21fa53201159aa7c">00259</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#48cd4c52f0524f1a21fa53201159aa7c">QwtPlotCanvas::drawCanvas</a>(QPainter *painter)
233
<a name="l00260"></a>00260 {
234
<a name="l00261"></a>00261 <span class="keywordflow">if</span> ( !contentsRect().isValid() )
235
<a name="l00262"></a>00262 <span class="keywordflow">return</span>;
236
<a name="l00263"></a>00263
237
<a name="l00264"></a>00264 QBrush bgBrush;
238
<a name="l00265"></a>00265 <span class="preprocessor">#if QT_VERSION >= 0x040000</span>
239
<a name="l00266"></a>00266 <span class="preprocessor"></span> bgBrush = palette().brush(backgroundRole());
240
<a name="l00267"></a>00267 <span class="preprocessor">#else</span>
241
<a name="l00268"></a>00268 <span class="preprocessor"></span> QColorGroup::ColorRole role =
242
<a name="l00269"></a>00269 QPalette::backgroundRoleFromMode( backgroundMode() );
243
<a name="l00270"></a>00270 bgBrush = colorGroup().brush( role );
244
<a name="l00271"></a>00271 <span class="preprocessor">#endif</span>
245
<a name="l00272"></a>00272 <span class="preprocessor"></span>
246
<a name="l00273"></a>00273 <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintCached && d_data->cache )
247
<a name="l00274"></a>00274 {
248
<a name="l00275"></a>00275 *d_data->cache = QPixmap(contentsRect().size());
249
<a name="l00276"></a>00276
250
<a name="l00277"></a>00277 <span class="preprocessor">#ifdef Q_WS_X11</span>
251
<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#if QT_VERSION >= 0x040000</span>
252
<a name="l00279"></a>00279 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( d_data->cache->x11Info().screen() != x11Info().screen() )
253
<a name="l00280"></a>00280 d_data->cache->x11SetScreen(x11Info().screen());
254
<a name="l00281"></a>00281 <span class="preprocessor">#else</span>
255
<a name="l00282"></a>00282 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( d_data->cache->x11Screen() != x11Screen() )
256
<a name="l00283"></a>00283 d_data->cache->x11SetScreen(x11Screen());
257
<a name="l00284"></a>00284 <span class="preprocessor">#endif</span>
258
<a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
259
<a name="l00286"></a>00286 <span class="preprocessor"></span>
260
<a name="l00287"></a>00287 <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintPacked )
261
<a name="l00288"></a>00288 {
262
<a name="l00289"></a>00289 QPainter bgPainter(d_data->cache);
263
<a name="l00290"></a>00290 bgPainter.setPen(Qt::NoPen);
264
<a name="l00291"></a>00291
265
<a name="l00292"></a>00292 bgPainter.setBrush(bgBrush);
266
<a name="l00293"></a>00293 bgPainter.drawRect(d_data->cache->rect());
267
<a name="l00294"></a>00294 }
268
<a name="l00295"></a>00295 <span class="keywordflow">else</span>
269
<a name="l00296"></a>00296 d_data->cache->fill(<span class="keyword">this</span>, d_data->cache->rect().topLeft());
270
<a name="l00297"></a>00297
271
<a name="l00298"></a>00298 QPainter cachePainter(d_data->cache);
272
<a name="l00299"></a>00299 cachePainter.translate(-contentsRect().x(),
273
<a name="l00300"></a>00300 -contentsRect().y());
274
<a name="l00301"></a>00301
275
<a name="l00302"></a>00302 ((<a class="code" href="class_qwt_plot.html">QwtPlot</a> *)parent())-><a class="code" href="class_qwt_plot_canvas.html#48cd4c52f0524f1a21fa53201159aa7c">drawCanvas</a>(&cachePainter);
276
<a name="l00303"></a>00303
277
<a name="l00304"></a>00304 cachePainter.end();
278
<a name="l00305"></a>00305
279
<a name="l00306"></a>00306 painter->drawPixmap(contentsRect(), *d_data->cache);
280
<a name="l00307"></a>00307 }
281
<a name="l00308"></a>00308 <span class="keywordflow">else</span>
282
<a name="l00309"></a>00309 {
283
<a name="l00310"></a>00310 <span class="preprocessor">#if QT_VERSION >= 0x040000</span>
284
<a name="l00311"></a>00311 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( d_data->paintAttributes & PaintPacked )
285
<a name="l00312"></a>00312 <span class="preprocessor">#endif</span>
286
<a name="l00313"></a>00313 <span class="preprocessor"></span> {
287
<a name="l00314"></a>00314 painter->save();
288
<a name="l00315"></a>00315
289
<a name="l00316"></a>00316 painter->setPen(Qt::NoPen);
290
<a name="l00317"></a>00317 painter->setBrush(bgBrush);
291
<a name="l00318"></a>00318 painter->drawRect(contentsRect());
292
<a name="l00319"></a>00319
293
<a name="l00320"></a>00320 painter->restore();
294
<a name="l00321"></a>00321 }
295
<a name="l00322"></a>00322
296
<a name="l00323"></a>00323 ((<a class="code" href="class_qwt_plot.html">QwtPlot</a> *)parent())-><a class="code" href="class_qwt_plot_canvas.html#48cd4c52f0524f1a21fa53201159aa7c">drawCanvas</a>(painter);
297
<a name="l00324"></a>00324 }
298
<a name="l00325"></a>00325 }
299
<a name="l00326"></a>00326
300
<a name="l00328"></a><a class="code" href="class_qwt_plot_canvas.html#4dc526ac5186fe253a158a392bbb4f40">00328</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_canvas.html#4dc526ac5186fe253a158a392bbb4f40">QwtPlotCanvas::drawFocusIndicator</a>(QPainter *painter)
301
<a name="l00329"></a>00329 {
302
<a name="l00330"></a>00330 <span class="keyword">const</span> <span class="keywordtype">int</span> margin = 1;
303
<a name="l00331"></a>00331
304
<a name="l00332"></a>00332 QRect focusRect = contentsRect();
305
<a name="l00333"></a>00333 focusRect.setRect(focusRect.x() + margin, focusRect.y() + margin,
306
<a name="l00334"></a>00334 focusRect.width() - 2 * margin, focusRect.height() - 2 * margin);
307
<a name="l00335"></a>00335
308
<a name="l00336"></a>00336 <a class="code" href="class_qwt_painter.html#bb6bbb26f325e33236c5292107e44102">QwtPainter::drawFocusRect</a>(painter, <span class="keyword">this</span>, focusRect);
309
<a name="l00337"></a>00337 }
310
<a name="l00338"></a>00338
311
<a name="l00339"></a>00339 <span class="keywordtype">void</span> QwtPlotCanvas::setSystemBackground(<span class="keywordtype">bool</span> on)
312
<a name="l00340"></a>00340 {
313
<a name="l00341"></a>00341 <span class="preprocessor">#if QT_VERSION < 0x040000</span>
314
<a name="l00342"></a>00342 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( backgroundMode() == Qt::NoBackground )
315
<a name="l00343"></a>00343 {
316
<a name="l00344"></a>00344 <span class="keywordflow">if</span> ( on )
317
<a name="l00345"></a>00345 setBackgroundMode(Qt::PaletteBackground);
318
<a name="l00346"></a>00346 }
319
<a name="l00347"></a>00347 <span class="keywordflow">else</span>
320
<a name="l00348"></a>00348 {
321
<a name="l00349"></a>00349 <span class="keywordflow">if</span> ( !on )
322
<a name="l00350"></a>00350 setBackgroundMode(Qt::NoBackground);
323
<a name="l00351"></a>00351 }
324
<a name="l00352"></a>00352 <span class="preprocessor">#else</span>
325
<a name="l00353"></a>00353 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( testAttribute(Qt::WA_NoSystemBackground) == on )
326
<a name="l00354"></a>00354 setAttribute(Qt::WA_NoSystemBackground, !on);
327
<a name="l00355"></a>00355 <span class="preprocessor">#endif</span>
328
<a name="l00356"></a>00356 <span class="preprocessor"></span>}
329
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Jun 11 07:41:38 2007 for Qwt User's Guide by
330
<a href="http://www.doxygen.org/index.html">
331
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>