mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-04 00:04:03 -04:00
* require qwt >=6.2 (and fallback to internal 6.3 if system's qwt doesn't suffice) * debian doesn't have qwt for Qt6 and won't have it for trixie
145 lines
3.1 KiB
C++
145 lines
3.1 KiB
C++
/******************************************************************************
|
|
* 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_COLUMN_SYMBOL_H
|
|
#define QWT_COLUMN_SYMBOL_H
|
|
|
|
#include "qwt_global.h"
|
|
#include "qwt_interval.h"
|
|
|
|
#include <qnamespace.h>
|
|
|
|
class QPainter;
|
|
class QPalette;
|
|
class QRectF;
|
|
|
|
/*!
|
|
\brief Directed rectangle representing bounding rectangle and orientation
|
|
of a column.
|
|
*/
|
|
class QWT_EXPORT QwtColumnRect
|
|
{
|
|
public:
|
|
//! Direction of the column
|
|
enum Direction
|
|
{
|
|
//! From left to right
|
|
LeftToRight,
|
|
|
|
//! From right to left
|
|
RightToLeft,
|
|
|
|
//! From bottom to top
|
|
BottomToTop,
|
|
|
|
//! From top to bottom
|
|
TopToBottom
|
|
};
|
|
|
|
//! Build an rectangle with invalid intervals directed BottomToTop.
|
|
QwtColumnRect()
|
|
: direction( BottomToTop )
|
|
{
|
|
}
|
|
|
|
//! \return A normalized QRect built from the intervals
|
|
QRectF toRect() const;
|
|
|
|
//! \return Orientation
|
|
Qt::Orientation orientation() const
|
|
{
|
|
if ( direction == LeftToRight || direction == RightToLeft )
|
|
return Qt::Horizontal;
|
|
|
|
return Qt::Vertical;
|
|
}
|
|
|
|
//! Interval for the horizontal coordinates
|
|
QwtInterval hInterval;
|
|
|
|
//! Interval for the vertical coordinates
|
|
QwtInterval vInterval;
|
|
|
|
//! Direction
|
|
Direction direction;
|
|
};
|
|
|
|
//! A drawing primitive for columns
|
|
class QWT_EXPORT QwtColumnSymbol
|
|
{
|
|
public:
|
|
/*!
|
|
Style
|
|
\sa setStyle(), style()
|
|
*/
|
|
enum Style
|
|
{
|
|
//! No Style, the symbol draws nothing
|
|
NoStyle = -1,
|
|
|
|
/*!
|
|
The column is painted with a frame depending on the frameStyle()
|
|
and lineWidth() using the palette().
|
|
*/
|
|
Box,
|
|
|
|
/*!
|
|
Styles >= QwtColumnSymbol::UserStyle are reserved for derived
|
|
classes of QwtColumnSymbol that overload draw() with
|
|
additional application specific symbol types.
|
|
*/
|
|
UserStyle = 1000
|
|
};
|
|
|
|
/*!
|
|
Frame Style used in Box style().
|
|
\sa Style, setFrameStyle(), frameStyle(), setStyle(), setPalette()
|
|
*/
|
|
enum FrameStyle
|
|
{
|
|
//! No frame
|
|
NoFrame,
|
|
|
|
//! A plain frame style
|
|
Plain,
|
|
|
|
//! A raised frame style
|
|
Raised
|
|
};
|
|
|
|
public:
|
|
explicit QwtColumnSymbol( Style = NoStyle );
|
|
virtual ~QwtColumnSymbol();
|
|
|
|
void setFrameStyle( FrameStyle );
|
|
FrameStyle frameStyle() const;
|
|
|
|
void setLineWidth( int width );
|
|
int lineWidth() const;
|
|
|
|
void setPalette( const QPalette& );
|
|
const QPalette& palette() const;
|
|
|
|
void setStyle( Style );
|
|
Style style() const;
|
|
|
|
virtual void draw( QPainter*, const QwtColumnRect& ) const;
|
|
|
|
protected:
|
|
void drawBox( QPainter*, const QwtColumnRect& ) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QwtColumnSymbol)
|
|
|
|
class PrivateData;
|
|
PrivateData* m_data;
|
|
};
|
|
|
|
#endif
|