Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
#ifndef QWT_PLOT_ABSTRACT_BAR_CHART_H
#define QWT_PLOT_ABSTRACT_BAR_CHART_H
#include "qwt_global.h"
#include "qwt_plot_seriesitem.h"
#include "qwt_series_data.h"
/*!
\brief Abstract base class for bar chart items
In opposite to almost all other plot items bar charts can't be
displayed inside of their bounding rectangle and need a special
API how to calculate the width of the bars and how they affect
the layout of the attached plot.
*/
class QWT_EXPORT QwtPlotAbstractBarChart: public QwtPlotSeriesItem
{
public:
/*!
\brief Mode how to calculate the bar width
setLayoutPolicy(), setLayoutHint(), barWidthHint()
*/
enum LayoutPolicy
{
/*!
The sample width is calculated by dividing the bounding rectangle
by the number of samples.
\sa boundingRectangle()
\note The layoutHint() is ignored
*/
AutoAdjustSamples,
/*!
layoutHint() defines an interval in axis coordinates
*/
ScaleSamplesToAxes,
/*!
The bar width is calculated by multiplying layoutHint()
with the height or width of the canvas.
\sa boundingRectangle()
*/
ScaleSampleToCanvas,
/*!
layoutHint() defines a fixed width in paint device coordinates.
*/
FixedSampleSize
};
explicit QwtPlotAbstractBarChart( const QwtText &title );
virtual ~QwtPlotAbstractBarChart();
void setLayoutPolicy( LayoutPolicy );
LayoutPolicy layoutPolicy() const;
void setLayoutHint( double );
double layoutHint() const;
void setSpacing( int );
int spacing() const;
void setMargin( int );
int margin() const;
void setBaseline( double );
double baseline() const;
virtual void getCanvasMarginHint(
const QwtScaleMap &xMap, const QwtScaleMap &yMap,
const QRectF &canvasRect,
double &left, double &top, double &right, double &bottom) const;
protected:
double sampleWidth( const QwtScaleMap &map,
double canvasSize, double dataSize,
double value ) const;
private:
class PrivateData;
PrivateData *d_data;
};
#endif