diff options
Diffstat (limited to 'kdm/kfrontend/kgreeter.h')
-rw-r--r-- | kdm/kfrontend/kgreeter.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/kdm/kfrontend/kgreeter.h b/kdm/kfrontend/kgreeter.h new file mode 100644 index 000000000..32191fafe --- /dev/null +++ b/kdm/kfrontend/kgreeter.h @@ -0,0 +1,164 @@ +/* + +Greeter widget for kdm + +Copyright (C) 1997, 1998 Steffen Hansen <[email protected]> +Copyright (C) 2000-2004 Oswald Buddenhagen <[email protected]> + + +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 KGREETER_H +#define KGREETER_H + +#include "kgverify.h" +#include "kgdialog.h" + +class KdmClock; +class UserListView; +class KdmThemer; +class KdmItem; + +class KListView; +class KSimpleConfig; + +class QLabel; +class QPushButton; +class QPopupMenu; +class QListViewItem; + +struct SessType { + QString name, type; + bool hid; + int prio; + + SessType() {} + SessType( const QString &n, const QString &t, bool h, int p ) : + name( n ), type( t ), hid( h ), prio( p ) {} + bool operator<( const SessType &st ) { + return hid != st.hid ? hid < st.hid : + prio != st.prio ? prio < st.prio : + name < st.name; + } +}; + +class KGreeter : public KGDialog, public KGVerifyHandler { + Q_OBJECT + typedef KGDialog inherited; + + public: + KGreeter( bool themed = false ); + ~KGreeter(); + + public slots: + void accept(); + void reject(); + void slotUserClicked( QListViewItem * ); + void slotSessionSelected( int ); + void slotUserEntered(); + + protected: + void installUserList(); + void insertUser( const QImage &, const QString &, struct passwd * ); + void insertUsers(); + void putSession( const QString &, const QString &, bool, const char * ); + void insertSessions(); + virtual void pluginSetup(); + void setPrevWM( int ); + + QString curUser, dName; + KSimpleConfig *stsFile; + UserListView *userView; + QStringList *userList; + QPopupMenu *sessMenu; + QValueVector<SessType> sessionTypes; + int nNormals, nSpecials; + int curPrev, curSel; + bool prevValid; + bool needLoad; + + static int curPlugin; + static PluginList pluginList; + + private slots: + void slotLoadPrevWM(); + + public: // from KGVerifyHandler + virtual void verifyPluginChanged( int id ); + virtual void verifyClear(); + virtual void verifyOk(); + virtual void verifyFailed(); +// virtual void verifyRetry(); + virtual void verifySetUser( const QString &user ); +}; + +class KStdGreeter : public KGreeter { + Q_OBJECT + typedef KGreeter inherited; + + public: + KStdGreeter(); + + protected: + virtual void pluginSetup(); + + private: + KdmClock *clock; + QLabel *pixLabel; + QPushButton *goButton; + QPushButton *menuButton; + + public: // from KGVerifyHandler + virtual void verifyFailed(); + virtual void verifyRetry(); +}; + +class KThemedGreeter : public KGreeter { + Q_OBJECT + typedef KGreeter inherited; + + public: + KThemedGreeter(); + bool isOK() { return themer != 0; } + static QString timedUser; + static int timedDelay; + + public slots: + void slotThemeActivated( const QString &id ); + void slotSessMenu(); + void slotActionMenu(); + + protected: + virtual void updateStatus( bool fail, bool caps, int timedleft ); + virtual void pluginSetup(); + virtual void keyPressEvent( QKeyEvent * ); + virtual bool event( QEvent *e ); + + private: +// KdmClock *clock; + KdmThemer *themer; + KdmItem *caps_warning, *xauth_warning, *pam_error, *timed_label, + *console_rect, *userlist_rect, + *session_button, *system_button; + + public: // from KGVerifyHandler + virtual void verifyFailed(); + virtual void verifyRetry(); +}; + +#endif /* KGREETER_H */ |