plasma-framework/dialog.h
Rob Scheepmaker dcaf4a4b8a And finally we can drag even the last ExtenderItem from PopupApplet without stuff
breaking all around, and some random crashes are avoided too, all by making the
Dialog in PopupApplet no longer of the type Qt::Popup and installing an event filter
to still hide the dialog when you click somewhere else on your screen.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=857095
2008-09-04 17:09:34 +00:00

98 lines
3.4 KiB
C++

/***************************************************************************
* Copyright (C) 2007 by Alexis Ménard <darktears31@gmail.com> *
* Copyright (C) 2007 Sebastian Kuegler <sebas@kde.org> *
* Copyright (C) 2006 Aaron Seigo <aseigo@kde.org> *
* *
* 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 <QtGui/QWidget>
#include <QtGui/QGraphicsSceneEvent>
#include <QtGui/QGraphicsView>
#include <plasma/plasma_export.h>
namespace Plasma
{
class DialogPrivate;
/**
* @class Dialog plasma/dialog.h <Plasma/Dialog>
*
* @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