00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef KPASSIVEPOPUP_H
00012 #define KPASSIVEPOPUP_H
00013
00014 #include <qframe.h>
00015
00016 #include <kdelibs_export.h>
00017
00018 class QBoxLayout;
00019 class QTimer;
00020 class QLabel;
00021 class QVBox;
00022
00068 class KDEUI_EXPORT KPassivePopup : public QFrame
00069 {
00070 Q_OBJECT
00071 Q_PROPERTY (bool autoDelete READ autoDelete WRITE setAutoDelete )
00072 Q_PROPERTY (int timeout READ timeout WRITE setTimeout )
00073
00074 public:
00079 enum PopupStyle
00080 {
00081 Boxed,
00082 Balloon,
00083 CustomStyle=128
00084 };
00085
00089 KPassivePopup( QWidget *parent=0, const char *name=0, WFlags f=0 );
00090
00094 KPassivePopup( WId parent, const char *name=0, WFlags f=0 );
00095
00100 KPassivePopup( int popupStyle, QWidget *parent=0, const char *name=0, WFlags f=0 );
00101
00106 KPassivePopup( int popupStyle, WId parent, const char *name=0, WFlags f=0 );
00107
00111 virtual ~KPassivePopup();
00112
00116 void setView( QWidget *child );
00117
00121 void setView( const QString &caption, const QString &text = QString::null );
00122
00126 virtual void setView( const QString &caption, const QString &text, const QPixmap &icon );
00127
00148 QVBox * standardView( const QString& caption, const QString& text,
00149 const QPixmap& icon, QWidget *parent = 0L );
00150
00154 QWidget *view() const { return msgView; }
00155
00159 int timeout() const { return hideDelay; }
00160
00167 virtual void setAutoDelete( bool autoDelete );
00168
00173 bool autoDelete() const { return m_autoDelete; }
00174
00180 void setAnchor( const QPoint& anchor );
00181
00182
00183
00184
00191 static KPassivePopup *message( const QString &text, QWidget *parent, const char *name=0 );
00192
00199 static KPassivePopup *message( const QString &caption, const QString &text,
00200 QWidget *parent, const char *name=0 );
00201
00208 static KPassivePopup *message( const QString &caption, const QString &text,
00209 const QPixmap &icon,
00210 QWidget *parent, const char *name=0, int timeout = -1 );
00211
00218 static KPassivePopup *message( const QString &caption, const QString &text,
00219 const QPixmap &icon,
00220 WId parent, const char *name=0, int timeout = -1 );
00221
00228 static KPassivePopup *message( int popupStyle, const QString &text, QWidget *parent,
00229 const char *name=0 );
00230
00237 static KPassivePopup *message( int popupStyle, const QString &caption, const QString &text,
00238 QWidget *parent, const char *name=0 );
00239
00246 static KPassivePopup *message( int popupStyle, const QString &caption, const QString &text,
00247 const QPixmap &icon,
00248 QWidget *parent, const char *name=0, int timeout = -1 );
00249
00256 static KPassivePopup *message( int popupStyle, const QString &caption, const QString &text,
00257 const QPixmap &icon,
00258 WId parent, const char *name=0, int timeout = -1 );
00259
00260
00261 public slots:
00270 void setTimeout( int delay );
00271
00275 virtual void show();
00276
00281 void show(const QPoint &p);
00282
00283 signals:
00287 void clicked();
00288
00292 void clicked( QPoint pos );
00293
00294 protected:
00298 virtual void positionSelf();
00299
00304 virtual void hideEvent( QHideEvent * );
00305
00309 void moveNear( QRect target );
00310
00314 virtual void mouseReleaseEvent( QMouseEvent *e );
00315
00324 QRect defaultArea() const;
00325
00330 void updateMask();
00331
00336 virtual void paintEvent( QPaintEvent* pe );
00337
00338 private:
00339 void init( int popupStyle );
00340
00341 WId window;
00342 QWidget *msgView;
00343 QBoxLayout *topLayout;
00344 int hideDelay;
00345 QTimer *hideTimer;
00346
00347 QLabel *ttlIcon;
00348 QLabel *ttl;
00349 QLabel *msg;
00350
00351 bool m_autoDelete;
00352
00353
00354 class Private;
00355 Private *d;
00356 };
00357
00358 #endif // KPASSIVEPOPUP_H
00359
00360
00361
00362
00363