Qwt User's Guide
qwt_widget_overlay.h
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_WIDGET_OVERLAY_H
00011 #define QWT_WIDGET_OVERLAY_H
00012 
00013 #include "qwt_global.h"
00014 #include <qwidget.h>
00015 #include <qregion.h>
00016 
00017 class QPainter;
00018 
00040 class QWT_EXPORT QwtWidgetOverlay: public QWidget
00041 {
00042 public:
00060     enum MaskMode
00061     {
00063         NoMask,
00064 
00072         MaskHint,
00073 
00084         AlphaMask
00085     };
00086 
00102     enum RenderMode
00103     {
00105         AutoRenderMode,
00106 
00108         CopyAlphaMask,
00109 
00111         DrawOverlay
00112     };
00113 
00114     QwtWidgetOverlay( QWidget* );
00115     virtual ~QwtWidgetOverlay();
00116 
00117     void setMaskMode( MaskMode );
00118     MaskMode maskMode() const;
00119 
00120     void setRenderMode( RenderMode );
00121     RenderMode renderMode() const;
00122 
00123     void updateOverlay();
00124 
00125     virtual bool eventFilter( QObject *, QEvent *);
00126 
00127 protected:
00128     virtual void paintEvent( QPaintEvent* event );
00129     virtual void resizeEvent( QResizeEvent* event );
00130 
00131     virtual QRegion maskHint() const;
00132 
00137     virtual void drawOverlay( QPainter *painter ) const = 0;
00138 
00139 private:
00140     void updateMask();
00141     void draw( QPainter * ) const;
00142 
00143 private:
00144     class PrivateData;
00145     PrivateData *d_data;
00146 };
00147 
00148 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator