You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kdeui/kwindowinfo.h

146 lines
3.9 KiB

// -*- c++ -*-
/*
* copyright : (C) 2001-2002 by Richard Moore
* License : This file is released under the terms of the LGPL, version 2.
* email : rich@kde.org
*/
#ifndef KWINDOWINFO_H
#define KWINDOWINFO_H
#include <qobject.h>
#include <qpixmap.h>
#include <qstring.h>
#include <kdelibs_export.h>
/**
* Displays messages in the window icon and title. The message is usually
* transient with the original title and icon being restored automatically
* after a specified time. The simplest use displays a text message in the
* window title:
* \code
* KWindowInfo::showMessage( this, i18n("Message Body") );
* \endcode
* This more complex example changes the window icon, as well as
* displaying the text. In addition, this example overrides the
* default timeout to ensure the message is only displayed for 1
* second.
* \code
* QPixmap px;
* px.load( "lo16-app-logtracker.png" );
* KWindowInfo::showMessage( this, i18n("Message Body"), px, 1000 );
* \endcode
* If the parent window inherits KSystemTray then KWindowInfo changes the
* pixmap and tooltip of the system window to display the message.
*
* @author Richard Moore, rich@kde.org
* @since 3.1
*/
class KDEUI_EXPORT KWindowInfo : public QObject
{
Q_OBJECT
public:
/**
* Creates a KWindowInfo with the specified parent.
*/
KWindowInfo( QWidget *parent, const char *name=0 );
/**
* Cleans up.
*/
virtual ~KWindowInfo();
/**
* Returns true iff the object should delete itself when it resets.
*/
bool autoDelete() const { return autoDel; }
/**
* Set to true if you want the object to delete itself when the message
* timeout occurs.
*/
void setAutoDelete( bool enable ) { autoDel = enable; }
/**
* Utility method to display a title bar message for the specified
* window.
*/
static void showMessage( QWidget *window, const QString &text, int timeout = -1 );
/**
* Utility method to display a title bar message and icon for the
* specified window.
*/
static void showMessage( QWidget *window, const QString &text,
const QPixmap &pix, int timeout = -1 );
public slots:
/**
* Shows the specified text in the window title.
*/
void message( const QString &text );
/**
* Shows the specified text in the window title, and sets the window icon.
*/
void message( const QString &text, const QPixmap &pix );
/**
* Shows the specified text in the window title for the specified time.
*/
void message( const QString &text, int timeout );
/**
* Shows the specified icon and text in the window title and WM
* icon, for the specified time. The time is a delay specified in
* milliseconds, or one of the two special values. The special
* values are -1 which means the default timeout should be used,
* and 0 which means the message is permanent.
*/
void message( const QString &text, const QPixmap &pix, int timeout );
/**
* Shows the specified text in the window title with no timeout.
*/
void permanent( const QString &text );
/**
* Shows the specified text and icon in the window title with no timeout.
*/
void permanent( const QString &text, const QPixmap &pix );
protected:
/**
* Displays the message in the titlebar/icon.
*/
virtual void display( const QString &text, const QPixmap &pix );
protected slots:
/**
* Saves the window title and icon.
*/
virtual void save();
/**
* Resets the window title and icon to the saved values. If
* auto-delete is enabled then the object is deleted.
*/
virtual void restore();
private:
QWidget *win;
QPixmap oldIcon;
QPixmap oldMiniIcon;
QString oldText;
bool autoDel;
/* @internal */
class Private *d;
};
#endif // KWINDOWINFO_H