/*************************************************************************** * Copyright (C) 2007 by Alexis Ménard * * Copyright (C) 2007 Sebastian Kuegler * * Copyright (C) 2006 Aaron Seigo * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * ***************************************************************************/ #ifndef PLASMA_DIALOG_H #define PLASMA_DIALOG_H #include #include #include #include namespace Plasma { class DialogPrivate; /** * @class Dialog plasma/dialog.h * * @short A dialog that uses the Plasma style * * Dialog provides a dialog-like widget that can be used to display additional * information. * * Dialog uses the plasma theme, and usually has no window decoration. It's meant * as an interim solution to display widgets as extension to plasma applets, for * example when you click on an applet like the devicenotifier or the clock, the * widget that is then displayed, is a Dialog. */ class PLASMA_EXPORT Dialog : public QWidget { Q_OBJECT public: /** * @arg parent the parent widget, for plasmoids, this is usually 0. * @arg f the Qt::WindowFlags, default is to not show a windowborder. */ explicit Dialog(QWidget * parent = 0, Qt::WindowFlags f = Qt::Window); virtual ~Dialog(); void setGraphicsWidget(QGraphicsWidget *widget); QGraphicsWidget *graphicsWidget(); Q_SIGNALS: /** * Fires when the dialog automatically resizes. */ void dialogResized(); /** * Emit a signal when the dialog become visible/invisible */ void dialogVisible(bool status); protected: /** * Reimplemented from QWidget */ void paintEvent(QPaintEvent *e); void resizeEvent(QResizeEvent *e); bool eventFilter(QObject *watched, QEvent *event); void hideEvent (QHideEvent * event); void showEvent (QShowEvent * event); private: DialogPrivate * const d; friend class DialogPrivate; /** * React to theme changes */ Q_PRIVATE_SLOT(d, void themeUpdated()) }; } // Plasma namespace #endif