Qwt User's Guide
|
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