summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend/kgreeter.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdm/kfrontend/kgreeter.h')
-rw-r--r--tdm/kfrontend/kgreeter.h180
1 files changed, 180 insertions, 0 deletions
diff --git a/tdm/kfrontend/kgreeter.h b/tdm/kfrontend/kgreeter.h
new file mode 100644
index 000000000..0de48a21d
--- /dev/null
+++ b/tdm/kfrontend/kgreeter.h
@@ -0,0 +1,180 @@
+/*
+
+Greeter widget for tdm
+
+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 TQLabel;
+class TQPushButton;
+class TQPopupMenu;
+class TQListViewItem;
+
+struct SessType {
+ TQString name, type;
+ bool hid;
+ int prio;
+
+ SessType() {}
+ SessType( const TQString &n, const TQString &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 done(int r);
+ void slotUserClicked( TQListViewItem * );
+ void slotSessionSelected( int );
+ void slotUserEntered();
+ void handleInputPipe();
+
+ public:
+ TQString curUser, dName;
+
+ protected:
+ void readFacesList();
+ void installUserList();
+ void insertUser( const TQImage &, const TQString &, struct passwd * );
+ void insertUsers( int limit = -1);
+ void putSession( const TQString &, const TQString &, bool, const char * );
+ void insertSessions();
+ virtual void pluginSetup();
+ void setPrevWM( int );
+
+ KSimpleConfig *stsFile;
+ UserListView *userView;
+ TQStringList *userList;
+ TQPopupMenu *sessMenu;
+ TQValueVector<SessType> sessionTypes;
+ TQStringList randomFaces;
+ TQMap<TQString, TQString> randomFacesMap;
+ int nNormals, nSpecials;
+ int curPrev, curSel;
+ bool prevValid;
+ bool needLoad;
+ bool themed;
+
+ static int curPlugin;
+ static PluginList pluginList;
+
+ private slots:
+ void slotLoadPrevWM();
+
+ private:
+ int mPipe_fd;
+ TQString mPipeFilename;
+
+ protected:
+ bool closingDown;
+
+ public: // from KGVerifyHandler
+ virtual void verifyPluginChanged( int id );
+ virtual void verifyClear();
+ virtual void verifyOk();
+ virtual void verifyFailed();
+// virtual void verifyRetry();
+ virtual void verifySetUser( const TQString &user );
+};
+
+class KStdGreeter : public KGreeter {
+ Q_OBJECT
+ typedef KGreeter inherited;
+
+ public:
+ KStdGreeter();
+
+ protected:
+ virtual void pluginSetup();
+
+ private:
+ KdmClock *clock;
+ TQLabel *pixLabel;
+ TQPushButton *goButton;
+ TQPushButton *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 TQString timedUser;
+ static int timedDelay;
+
+ public slots:
+ void slotThemeActivated( const TQString &id );
+ void slotSessMenu();
+ void slotActionMenu();
+ void slotAskAdminPassword();
+
+ protected:
+ virtual void updateStatus( bool fail, bool caps, int timedleft );
+ virtual void pluginSetup();
+ virtual void keyPressEvent( TQKeyEvent * );
+ virtual bool event( TQEvent *e );
+
+ private:
+// KdmClock *clock;
+ KdmThemer *themer;
+ KdmItem *caps_warning, *xauth_warning, *pam_error, *timed_label,
+ *console_rect, *userlist_rect,
+ *session_button, *system_button, *admin_button;
+
+ public: // from KGVerifyHandler
+ virtual void verifyFailed();
+ virtual void verifyRetry();
+};
+
+#endif /* KGREETER_H */