qt_demoe/third/3rd_qwt/qwt_plot_legenditem.h

137 lines
3.6 KiB
C
Raw Normal View History

2019-11-07 02:55:57 +00:00
/* -*- 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_LEGEND_ITEM_H
#define QWT_PLOT_LEGEND_ITEM_H
#include "qwt_global.h"
#include "qwt_plot_item.h"
#include "qwt_legend_data.h"
class QFont;
/*!
\brief A class which draws a legend inside the plot canvas
QwtPlotLegendItem can be used to draw a inside the plot canvas.
It can be used together with a QwtLegend or instead of it
to have more space for the plot canvas.
2021-10-08 02:51:37 +00:00
In opposite to QwtLegend the legend item is not interactive.
2019-11-07 02:55:57 +00:00
To identify mouse clicks on a legend item an event filter
needs to be installed catching mouse events ob the plot canvas.
The geometries of the legend items are available using
legendGeometries().
2021-10-08 02:51:37 +00:00
The legend item is aligned to plot canvas according to
2019-11-07 02:55:57 +00:00
its alignment() flags. It might have a background for the
complete legend ( usually semi transparent ) or for
each legend item.
2021-10-08 02:51:37 +00:00
\note An external QwtLegend with a transparent background
on top the plot canvas might be another option
2019-11-07 02:55:57 +00:00
with a similar effect.
*/
class QWT_EXPORT QwtPlotLegendItem: public QwtPlotItem
{
public:
/*!
\brief Background mode
2021-10-08 02:51:37 +00:00
Depending on the mode the complete legend or each item
2019-11-07 02:55:57 +00:00
might have an background.
The default setting is LegendBackground.
\sa setBackgroundMode(), setBackgroundBrush(), drawBackground()
*/
enum BackgroundMode
{
//! The legend has a background
LegendBackground,
//! Each item has a background
ItemBackground
};
explicit QwtPlotLegendItem();
virtual ~QwtPlotLegendItem();
virtual int rtti() const;
void setAlignment( Qt::Alignment );
Qt::Alignment alignment() const;
void setMaxColumns( uint );
uint maxColumns() const;
void setMargin( int );
int margin() const;
void setSpacing( int );
int spacing() const;
void setItemMargin( int );
int itemMargin() const;
void setItemSpacing( int );
int itemSpacing() const;
2021-10-08 02:51:37 +00:00
2019-11-07 02:55:57 +00:00
void setFont( const QFont& );
QFont font() const;
2021-10-08 02:51:37 +00:00
void setBorderDistance( int );
2019-11-07 02:55:57 +00:00
int borderDistance() const;
void setBorderRadius( double );
double borderRadius() const;
void setBorderPen( const QPen & );
QPen borderPen() const;
void setBackgroundBrush( const QBrush & );
QBrush backgroundBrush() const;
void setBackgroundMode( BackgroundMode );
BackgroundMode backgroundMode() const;
void setTextPen( const QPen & );
QPen textPen() const;
2021-10-08 02:51:37 +00:00
virtual void draw( QPainter *,
2019-11-07 02:55:57 +00:00
const QwtScaleMap &xMap, const QwtScaleMap &yMap,
2021-10-08 02:51:37 +00:00
const QRectF &canvasRect ) const;
2019-11-07 02:55:57 +00:00
void clearLegend();
virtual void updateLegend( const QwtPlotItem *,
const QList<QwtLegendData> & );
virtual QRect geometry( const QRectF &canvasRect ) const;
virtual QSize minimumSize( const QwtLegendData & ) const;
2021-10-08 02:51:37 +00:00
virtual int heightForWidth( const QwtLegendData &, int width ) const;
2019-11-07 02:55:57 +00:00
QList< const QwtPlotItem * > plotItems() const;
QList< QRect > legendGeometries( const QwtPlotItem * ) const;
protected:
2021-10-08 02:51:37 +00:00
virtual void drawLegendData( QPainter *painter,
2019-11-07 02:55:57 +00:00
const QwtPlotItem *, const QwtLegendData &, const QRectF & ) const;
virtual void drawBackground( QPainter *, const QRectF &rect ) const;
private:
class PrivateData;
PrivateData *d_data;
};
#endif