diff options
Diffstat (limited to 'tdm/kfrontend/tdmshutdown.h')
-rw-r--r-- | tdm/kfrontend/tdmshutdown.h | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/tdm/kfrontend/tdmshutdown.h b/tdm/kfrontend/tdmshutdown.h new file mode 100644 index 000000000..6a2ee3a70 --- /dev/null +++ b/tdm/kfrontend/tdmshutdown.h @@ -0,0 +1,240 @@ +/* + +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 TDMSHUTDOWN_H +#define TDMSHUTDOWN_H + +#include "tdmconfig.h" // for HAVE_VTS +#include "kgverify.h" + +#include <kpushbutton.h> + +#include <tqradiobutton.h> +#include <tqtoolbutton.h> +#include <tqpixmap.h> + +class TQLabel; +class KPushButton; +class TQButtonGroup; +class TQGroupBox; +class TQComboBox; +class TQCheckBox; +class TQLineEdit; + +enum { Authed = TQDialog::Accepted + 1, Schedule }; + +class TDMShutdownBase : public FDialog, public KGVerifyHandler { + Q_OBJECT + typedef FDialog inherited; + + public: + TDMShutdownBase( int _uid, TQWidget *_parent ); + virtual ~TDMShutdownBase(); + + protected slots: + virtual void accept(); + + protected: + virtual void accepted(); + + protected: + void updateNeedRoot(); + void complete( TQWidget *prevWidget ); + + TQVBoxLayout *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; + TQLabel *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 TQString &user ); +}; + + +class TDMShutdown : public TDMShutdownBase { + Q_OBJECT + typedef TDMShutdownBase inherited; + + public: + TDMShutdown( int _uid, TQWidget *_parent = 0 ); + static void scheduleShutdown( TQWidget *_parent = 0 ); + + protected slots: + virtual void accept(); + + protected: + virtual void accepted(); + + private slots: + void slotTargetChanged(); + void slotWhenChanged(); + + private: + TQButtonGroup *howGroup; + TQGroupBox *schedGroup; + TQRadioButton *restart_rb; + TQLineEdit *le_start, *le_timeout; + TQCheckBox *cb_force; + TQComboBox *targets; + int oldTarget; + int sch_st, sch_to; + +}; + +class TDMRadioButton : public TQRadioButton { + Q_OBJECT + typedef TQRadioButton inherited; + + public: + TDMRadioButton( const TQString &label, TQWidget *parent ); + + private: + virtual void mouseDoubleClickEvent( TQMouseEvent * ); + + signals: + void doubleClicked(); + +}; + +class TDMDelayedPushButton : public KPushButton { + Q_OBJECT + typedef KPushButton inherited; + + public: + TDMDelayedPushButton( const KGuiItem &item, TQWidget *parent, const char *name = 0 ); + void setPopup( TQPopupMenu *pop ); + + private slots: + void slotTimeout(); + void slotPressed(); + void slotReleased(); + + private: + TQPopupMenu *pop; + TQTimer popt; +}; + +class TDMSlimShutdown : public FDialog { + Q_OBJECT + typedef FDialog inherited; + + public: + TDMSlimShutdown( TQWidget *_parent = 0 ); + ~TDMSlimShutdown(); + 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 TDMConfShutdown : public TDMShutdownBase { + Q_OBJECT + typedef TDMShutdownBase inherited; + + public: + TDMConfShutdown( int _uid, struct dpySpec *sess, int type, const char *os, + TQWidget *_parent = 0 ); +}; + +class TDMCancelShutdown : public TDMShutdownBase { + Q_OBJECT + typedef TDMShutdownBase inherited; + + public: + TDMCancelShutdown( int how, int start, int timeout, int force, int uid, + const char *os, TQWidget *_parent ); +}; + +class KSMPushButton : public KPushButton +{ + Q_OBJECT + +public: + + KSMPushButton( const KGuiItem &item, TQWidget *parent, const char *name = 0 ); + +protected: + virtual void keyPressEvent(TQKeyEvent*e); + virtual void keyReleaseEvent(TQKeyEvent*e); + +private: + + bool m_pressed; + +}; + +class FlatButton : public TQToolButton +{ + Q_OBJECT + + public: + + FlatButton( TQWidget *parent = 0, const char *name = 0 ); + ~FlatButton(); + + protected: + virtual void keyPressEvent(TQKeyEvent*e); + virtual void keyReleaseEvent(TQKeyEvent*e); + + private slots: + + private: + void init(); + + bool m_pressed; + TQString m_text; + TQPixmap m_pixmap; + +}; + +#endif /* TDMSHUTDOWN_H */ |