/***************************************************************** ksmserver - the KDE session management server Copyright (C) 2000 Matthias Ettrich ******************************************************************/ #ifndef SHUTDOWNDLG_H #define SHUTDOWNDLG_H #include #include #include class QPushButton; class QVButtonGroup; class QPopupMenu; class QTimer; #include // The (singleton) widget that makes the desktop gray. class KSMShutdownFeedback : public QWidget { Q_OBJECT public: static void start() { s_pSelf = new KSMShutdownFeedback(); s_pSelf->show(); } static void stop() { delete s_pSelf; s_pSelf = 0L; } static KSMShutdownFeedback * self() { return s_pSelf; } protected: ~KSMShutdownFeedback() {} private slots: void slotPaintEffect(); private: static KSMShutdownFeedback * s_pSelf; KSMShutdownFeedback(); int m_currentY; QPixmap m_root; }; // The confirmation dialog class KSMShutdownDlg : public QDialog { Q_OBJECT public: static bool confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, QString& bopt ); public slots: void slotLogout(); void slotHalt(); void slotReboot(); void slotReboot(int); protected: ~KSMShutdownDlg() {}; private: KSMShutdownDlg( QWidget* parent, bool maysd, KApplication::ShutdownType sdtype ); KApplication::ShutdownType m_shutdownType; QString m_bootOption; QPopupMenu *targets; QStringList rebootOptions; }; class KSMDelayedPushButton : public KPushButton { Q_OBJECT public: KSMDelayedPushButton( const KGuiItem &item, QWidget *parent, const char *name = 0 ); void setPopup( QPopupMenu *pop); private slots: void slotTimeout(); void slotPressed(); void slotReleased(); private: QPopupMenu *pop; QTimer *popt; }; #endif