Qwt User's Guide
6.1-rc3
Main Page
Related Pages
Classes
All
Classes
Functions
Variables
Typedefs
Enumerations
Enumerator
Pages
src
qwt_series_store.h
1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2
* Qwt Widget Library
3
* Copyright (C) 1997 Josef Wilgen
4
* Copyright (C) 2002 Uwe Rathmann
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the Qwt License, Version 1.0
8
*****************************************************************************/
9
10
#ifndef QWT_SERIES_STORE_H
11
#define QWT_SERIES_STORE_H
12
13
#include "qwt_global.h"
14
#include "qwt_series_data.h"
15
24
class
QwtAbstractSeriesStore
25
{
26
protected
:
28
virtual
~QwtAbstractSeriesStore
() {}
29
31
virtual
void
dataChanged
() = 0;
32
37
virtual
void
setRectOfInterest
(
const
QRectF & ) = 0;
38
40
virtual
QRectF
dataRect
()
const
= 0;
41
43
virtual
size_t
dataSize
()
const
= 0;
44
};
45
56
template
<
typename
T>
57
class
QwtSeriesStore
:
public
virtual
QwtAbstractSeriesStore
58
{
59
public
:
64
explicit
QwtSeriesStore<T>
();
65
67
~
QwtSeriesStore<T>
();
68
76
void
setData
(
QwtSeriesData<T>
*series );
77
79
QwtSeriesData<T>
*
data
();
80
82
const
QwtSeriesData<T>
*
data
()
const
;
83
88
T
sample
(
int
index )
const
;
89
95
virtual
size_t
dataSize
()
const
;
96
103
virtual
QRectF
dataRect
()
const
;
104
111
virtual
void
setRectOfInterest
(
const
QRectF &rect );
112
119
QwtSeriesData<T>
*
swapData
(
QwtSeriesData<T>
*series );
120
121
private
:
122
QwtSeriesData<T>
*d_series;
123
};
124
125
template
<
typename
T>
126
QwtSeriesStore<T>::QwtSeriesStore
():
127
d_series( NULL )
128
{
129
}
130
131
template
<
typename
T>
132
QwtSeriesStore<T>::~QwtSeriesStore
()
133
{
134
delete
d_series;
135
}
136
137
template
<
typename
T>
138
inline
QwtSeriesData<T>
*
QwtSeriesStore<T>::data
()
139
{
140
return
d_series;
141
}
142
143
template
<
typename
T>
144
inline
const
QwtSeriesData<T>
*
QwtSeriesStore<T>::data
()
const
145
{
146
return
d_series;
147
}
148
149
template
<
typename
T>
150
inline
T
QwtSeriesStore<T>::sample
(
int
index )
const
151
{
152
return
d_series ? d_series->sample( index ) : T();
153
}
154
155
template
<
typename
T>
156
void
QwtSeriesStore<T>::setData
(
QwtSeriesData<T>
*series )
157
{
158
if
( d_series != series )
159
{
160
delete
d_series;
161
d_series = series;
162
dataChanged();
163
}
164
}
165
166
template
<
typename
T>
167
size_t
QwtSeriesStore<T>::dataSize
()
const
168
{
169
if
( d_series == NULL )
170
return
0;
171
172
return
d_series->size();
173
}
174
175
template
<
typename
T>
176
QRectF
QwtSeriesStore<T>::dataRect
()
const
177
{
178
if
( d_series == NULL )
179
return
QRectF( 1.0, 1.0, -2.0, -2.0 );
// invalid
180
181
return
d_series->boundingRect();
182
}
183
184
template
<
typename
T>
185
void
QwtSeriesStore<T>::setRectOfInterest
(
const
QRectF &rect )
186
{
187
if
( d_series )
188
d_series->setRectOfInterest( rect );
189
}
190
191
template
<
typename
T>
192
QwtSeriesData<T>
*
QwtSeriesStore<T>::swapData
(
QwtSeriesData<T>
*series )
193
{
194
QwtSeriesData<T>
* swappedSeries = d_series;
195
d_series = series;
196
197
return
swappedSeries;
198
}
199
200
#endif
Generated by
1.8.3.1