You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.5 KiB
97 lines
2.5 KiB
/* -*- 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
|
|
|