/* -*- 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_LEGEND_H #define QWT_LEGEND_H #include "qwt_global.h" #include #include class QScrollBar; class QwtLegendItemManager; /*! \brief The legend widget The QwtLegend widget is a tabular arrangement of legend items. Legend items might be any type of widget, but in general they will be a QwtLegendItem. \sa QwtLegendItem, QwtLegendItemManager QwtPlot */ class QWT_EXPORT QwtLegend : public QFrame { Q_OBJECT public: /*! \brief Interaction mode for the legend items The default is QwtLegend::ReadOnlyItem. \sa setItemMode(), itemMode(), QwtLegendItem::IdentifierMode QwtLegendItem::clicked(), QwtLegendItem::checked(), QwtPlot::legendClicked(), QwtPlot::legendChecked() */ enum LegendItemMode { //! The legend item is not interactive, like a label ReadOnlyItem, //! The legend item is clickable, like a push button ClickableItem, //! The legend item is checkable, like a checkable button CheckableItem }; explicit QwtLegend( QWidget *parent = NULL ); virtual ~QwtLegend(); void setItemMode( LegendItemMode ); LegendItemMode itemMode() const; QWidget *contentsWidget(); const QWidget *contentsWidget() const; void insert( const QwtLegendItemManager *, QWidget * ); void remove( const QwtLegendItemManager * ); QWidget *find( const QwtLegendItemManager * ) const; QwtLegendItemManager *find( const QWidget * ) const; virtual QList legendItems() const; void clear(); bool isEmpty() const; uint itemCount() const; virtual bool eventFilter( QObject *, QEvent * ); virtual QSize sizeHint() const; virtual int heightForWidth( int w ) const; QScrollBar *horizontalScrollBar() const; QScrollBar *verticalScrollBar() const; protected: virtual void layoutContents(); private: class PrivateData; PrivateData *d_data; }; #endif