diff options
Diffstat (limited to 'kdm/kfrontend/kdmshutdown.h')
-rw-r--r-- | kdm/kfrontend/kdmshutdown.h | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/kdm/kfrontend/kdmshutdown.h b/kdm/kfrontend/kdmshutdown.h new file mode 100644 index 000000000..9020b1513 --- /dev/null +++ b/kdm/kfrontend/kdmshutdown.h @@ -0,0 +1,196 @@ +/* + +Shutdown dialog + +Copyright (C) 1997, 1998 Steffen Hansen <hansen@kde.org> +Copyright (C) 2000-2003,2005 Oswald Buddenhagen <ossi@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 KDMSHUTDOWN_H +#define KDMSHUTDOWN_H + +#include "kdmconfig.h" // for HAVE_VTS +#include "kgverify.h" + +#include <kpushbutton.h> + +#include <qradiobutton.h> + +class QLabel; +class KPushButton; +class QButtonGroup; +class QGroupBox; +class QComboBox; +class QCheckBox; +class QLineEdit; + +enum { Authed = QDialog::Accepted + 1, Schedule }; + +class KDMShutdownBase : public FDialog, public KGVerifyHandler { + Q_OBJECT + typedef FDialog inherited; + + public: + KDMShutdownBase( int _uid, QWidget *_parent ); + virtual ~KDMShutdownBase(); + + protected slots: + virtual void accept(); + + protected: + virtual void accepted(); + + protected: + void updateNeedRoot(); + void complete( QWidget *prevWidget ); + + QVBoxLayout *box; +#ifdef HAVE_VTS + bool willShut; +#else + static const bool willShut = true; +#endif + bool mayNuke, doesNuke, mayOk, maySched; + + private slots: + void slotSched(); + void slotActivatePlugMenu(); + + private: + KPushButton *okButton, *cancelButton; + QLabel *rootlab; + KGStdVerify *verify; + int needRoot, uid; + + static int curPlugin; + static PluginList pluginList; + + public: // from KGVerifyHandler + virtual void verifyPluginChanged( int id ); + virtual void verifyOk(); + virtual void verifyFailed(); + virtual void verifyRetry(); + virtual void verifySetUser( const QString &user ); +}; + + +class KDMShutdown : public KDMShutdownBase { + Q_OBJECT + typedef KDMShutdownBase inherited; + + public: + KDMShutdown( int _uid, QWidget *_parent = 0 ); + static void scheduleShutdown( QWidget *_parent = 0 ); + + protected slots: + virtual void accept(); + + protected: + virtual void accepted(); + + private slots: + void slotTargetChanged(); + void slotWhenChanged(); + + private: + QButtonGroup *howGroup; + QGroupBox *schedGroup; + QRadioButton *restart_rb; + QLineEdit *le_start, *le_timeout; + QCheckBox *cb_force; + QComboBox *targets; + int oldTarget; + int sch_st, sch_to; + +}; + +class KDMRadioButton : public QRadioButton { + Q_OBJECT + typedef QRadioButton inherited; + + public: + KDMRadioButton( const QString &label, QWidget *parent ); + + private: + virtual void mouseDoubleClickEvent( QMouseEvent * ); + + signals: + void doubleClicked(); + +}; + +class KDMDelayedPushButton : public KPushButton { + Q_OBJECT + typedef KPushButton inherited; + + public: + KDMDelayedPushButton( 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; +}; + +class KDMSlimShutdown : public FDialog { + Q_OBJECT + typedef FDialog inherited; + + public: + KDMSlimShutdown( QWidget *_parent = 0 ); + ~KDMSlimShutdown(); + static void externShutdown( int type, const char *os, int uid ); + + private slots: + void slotHalt(); + void slotReboot(); + void slotReboot( int ); + void slotSched(); + + private: + bool checkShutdown( int type, const char *os ); + char **targetList; + +}; + +class KDMConfShutdown : public KDMShutdownBase { + Q_OBJECT + typedef KDMShutdownBase inherited; + + public: + KDMConfShutdown( int _uid, struct dpySpec *sess, int type, const char *os, + QWidget *_parent = 0 ); +}; + +class KDMCancelShutdown : public KDMShutdownBase { + Q_OBJECT + typedef KDMShutdownBase inherited; + + public: + KDMCancelShutdown( int how, int start, int timeout, int force, int uid, + const char *os, QWidget *_parent ); +}; + +#endif /* KDMSHUTDOWN_H */ |