summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend/kgverify.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdm/kfrontend/kgverify.h')
-rw-r--r--tdm/kfrontend/kgverify.h249
1 files changed, 249 insertions, 0 deletions
diff --git a/tdm/kfrontend/kgverify.h b/tdm/kfrontend/kgverify.h
new file mode 100644
index 000000000..44fab973a
--- /dev/null
+++ b/tdm/kfrontend/kgverify.h
@@ -0,0 +1,249 @@
+/*
+
+Shell for tdm conversation plugins
+
+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 KGVERIFY_H
+#define KGVERIFY_H
+
+#include "kgreeterplugin.h"
+#include "kfdialog.h"
+
+#include <tqlayout.h>
+#include <tqtimer.h>
+#include <tqvaluevector.h>
+
+#include <sys/time.h>
+#include <time.h>
+
+// helper class, nuke when qt supports suspend()/resume()
+class QXTimer : public TQObject {
+ Q_OBJECT
+ typedef TQObject inherited;
+
+ public:
+ QXTimer();
+ void start( int msec );
+ void stop();
+ void suspend();
+ void resume();
+
+ signals:
+ void timeout();
+
+ private slots:
+ void slotTimeout();
+
+ private:
+ TQTimer timer;
+ struct timeval stv;
+ long left;
+};
+
+class KGVerifyHandler {
+ public:
+ virtual void verifyPluginChanged( int id ) = 0;
+ virtual void verifyClear();
+ virtual void verifyOk() = 0;
+ virtual void verifyFailed() = 0;
+ virtual void verifyRetry() = 0;
+ virtual void verifySetUser( const TQString &user ) = 0;
+ virtual void updateStatus( bool fail, bool caps, int left ); // for themed only
+};
+
+class TQWidget;
+class TQLabel;
+class TQPopupMenu;
+class TQTimer;
+class KPushButton;
+class KLibrary;
+
+struct GreeterPluginHandle {
+ KLibrary *library;
+ kgreeterplugin_info *info;
+};
+
+typedef TQValueVector<int> PluginList;
+
+class KGVerify : public TQObject, public KGreeterPluginHandler {
+ Q_OBJECT
+ typedef TQObject inherited;
+
+ public:
+ KGVerify( KGVerifyHandler *handler, KdmThemer *themer,
+ TQWidget *parent, TQWidget *predecessor,
+ const TQString &fixedEntity, const PluginList &pluginList,
+ KGreeterPlugin::Function func, KGreeterPlugin::Context ctx );
+ virtual ~KGVerify();
+ TQPopupMenu *getPlugMenu();
+ void loadUsers( const TQStringList &users );
+ void presetEntity( const TQString &entity, int field );
+ TQString getEntity() const;
+ void setUser( const TQString &user );
+ void setPassword( const TQString &pass );
+ /* virtual */ void selectPlugin( int id );
+ bool entitiesLocal() const;
+ bool entitiesFielded() const;
+ bool entityPresettable() const;
+ bool isClassic() const;
+ TQString pluginName() const;
+ void setEnabled( bool on );
+ void abort();
+ void suspend();
+ void resume();
+ void accept();
+ void reject();
+
+ int coreLock;
+
+ static bool handleFailVerify( TQWidget *parent );
+ static PluginList init( const TQStringList &plugins );
+ static void done();
+
+ public slots:
+ void start();
+
+ protected:
+ bool eventFilter( TQObject *, TQEvent * );
+ void MsgBox( TQMessageBox::Icon typ, const TQString &msg );
+ void setTimer();
+ void updateLockStatus();
+ virtual void updateStatus() = 0;
+ void handleVerify();
+
+ QXTimer timer;
+ TQString fixedEntity, presEnt, curUser;
+ PluginList pluginList;
+ KGVerifyHandler *handler;
+ KdmThemer *themer;
+ TQWidget *parent, *predecessor;
+ KGreeterPlugin *greet;
+ TQPopupMenu *plugMenu;
+ int curPlugin, presFld, timedLeft, deadTicks;
+ TQCString pName;
+ KGreeterPlugin::Function func;
+ KGreeterPlugin::Context ctx;
+ bool capsLocked;
+ bool enabled, running, suspended, failed, delayed, cont;
+ bool authTok, isClear, timeable;
+
+ static void VMsgBox( TQWidget *parent, const TQString &user, TQMessageBox::Icon type, const TQString &mesg );
+ static void VErrBox( TQWidget *parent, const TQString &user, const char *msg );
+ static void VInfoBox( TQWidget *parent, const TQString &user, const char *msg );
+
+ static TQValueVector<GreeterPluginHandle> greetPlugins;
+
+ private:
+ bool applyPreset();
+ void performAutoLogin();
+ bool scheduleAutoLogin( bool initial );
+ void doReject( bool initial );
+
+ private slots:
+ //virtual void slotPluginSelected( int id ) = 0;
+ void slotTimeout();
+ void slotActivity();
+
+ public: // from KGreetPluginHandler
+ virtual void gplugReturnText( const char *text, int tag );
+ virtual void gplugReturnBinary( const char *data );
+ virtual void gplugSetUser( const TQString &user );
+ virtual void gplugStart();
+ virtual void gplugActivity();
+ virtual void gplugMsgBox( TQMessageBox::Icon type, const TQString &text );
+
+ static TQVariant getConf( void *ctx, const char *key, const TQVariant &dflt );
+};
+
+class KGStdVerify : public KGVerify {
+ Q_OBJECT
+ typedef KGVerify inherited;
+
+ public:
+ KGStdVerify( KGVerifyHandler *handler, TQWidget *parent,
+ TQWidget *predecessor, const TQString &fixedEntity,
+ const PluginList &pluginList,
+ KGreeterPlugin::Function func, KGreeterPlugin::Context ctx );
+ virtual ~KGStdVerify();
+ TQLayout *getLayout() const { return TQT_TQLAYOUT(grid); }
+ void selectPlugin( int id );
+
+ protected:
+ void updateStatus();
+
+ private:
+ TQGridLayout *grid;
+ TQLabel *failedLabel;
+ int failedLabelState;
+
+ private slots:
+ void slotPluginSelected( int id );
+};
+
+class KGThemedVerify : public KGVerify {
+ Q_OBJECT
+ typedef KGVerify inherited;
+
+ public:
+ KGThemedVerify( KGVerifyHandler *handler, KdmThemer *themer,
+ TQWidget *parent, TQWidget *predecessor,
+ const TQString &fixedEntity,
+ const PluginList &pluginList,
+ KGreeterPlugin::Function func,
+ KGreeterPlugin::Context ctx );
+ virtual ~KGThemedVerify();
+ void selectPlugin( int id );
+
+ protected:
+ void updateStatus();
+
+ private slots:
+ void slotPluginSelected( int id );
+};
+
+class KGChTok : public FDialog, public KGVerifyHandler {
+ Q_OBJECT
+ typedef FDialog inherited;
+
+ public:
+ KGChTok( TQWidget *parent, const TQString &user,
+ const PluginList &pluginList, int curPlugin,
+ KGreeterPlugin::Function func, KGreeterPlugin::Context ctx );
+ ~KGChTok();
+
+ public slots:
+ void accept();
+
+ private:
+ KPushButton *okButton, *cancelButton;
+ KGStdVerify *verify;
+
+ public: // from KGVerifyHandler
+ virtual void verifyPluginChanged( int id );
+ virtual void verifyOk();
+ virtual void verifyFailed();
+ virtual void verifyRetry();
+ virtual void verifySetUser( const TQString &user );
+};
+
+#endif /* KGVERIFY_H */