00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KGREETERPLUGIN_H
00025 #define KGREETERPLUGIN_H
00026
00027 #include <tqvariant.h>
00028 #include <tqmessagebox.h>
00029 #include <kdemacros.h>
00030
00031 class KdmThemer;
00032
00033 class TQWidget;
00034 class TQLayoutItem;
00035
00036 class KGreeterPluginHandler {
00037 public:
00038
00039 enum { IsSecret = 1, IsUser = 2, IsPassword = 4, IsOldPassword = 8,
00040 IsNewPassword = 16 };
00046 virtual void gplugReturnText( const char *text, int tag ) = 0;
00052 virtual void gplugReturnBinary( const char *data ) = 0;
00061 virtual void gplugSetUser( const TQString &user ) = 0;
00065 virtual void gplugStart() = 0;
00073 virtual void gplugActivity() = 0;
00079 virtual void gplugMsgBox( TQMessageBox::Icon type, const TQString &text ) = 0;
00080 };
00081
00089 class KGreeterPlugin {
00090 public:
00091 KGreeterPlugin( KGreeterPluginHandler *h ) : handler( h ) {}
00092 virtual ~KGreeterPlugin() {}
00093
00100 enum Function { Authenticate, AuthChAuthTok, ChAuthTok };
00101
00116 enum Context { Login, Shutdown, Unlock, ChangeTok,
00117 ExUnlock, ExChangeTok };
00118
00125 virtual void loadUsers( const TQStringList &users ) = 0;
00126
00137 virtual void presetEntity( const TQString &entity, int field ) = 0;
00138
00143 virtual TQString getEntity() const = 0;
00144
00152 virtual void setUser( const TQString &user ) = 0;
00153
00159 virtual void setEnabled( bool on ) = 0;
00160
00176 virtual bool textMessage( const char *message, bool error ) = 0;
00177
00188 virtual void textPrompt( const char *prompt, bool echo, bool nonBlocking ) = 0;
00189
00205 virtual bool binaryPrompt( const char *prompt, bool nonBlocking ) = 0;
00206
00214 virtual void start() = 0;
00215
00223 virtual void suspend() = 0;
00224
00229 virtual void resume() = 0;
00230
00236 virtual void next() = 0;
00237
00243 virtual void abort() = 0;
00244
00253 virtual void succeeded() = 0;
00254
00261 virtual void failed() = 0;
00262
00271 virtual void revive() = 0;
00272
00277 virtual void clear() = 0;
00278
00283 TQLayoutItem *getLayoutItem() const { return layoutItem; }
00284
00285 protected:
00286 KGreeterPluginHandler *handler;
00287 TQLayoutItem *layoutItem;
00288 };
00289
00290 struct KDE_EXPORT kgreeterplugin_info {
00295 const char *name;
00296
00301 const char *method;
00302
00306 enum {
00311 Local = 1,
00316 Fielded = 2,
00324 Presettable = 4
00325 };
00326
00327
00328
00329
00330 int flags;
00331
00348 bool (*init)( const TQString &method,
00349 TQVariant (*getConf)( void *ctx, const char *key,
00350 const TQVariant &dflt ),
00351 void *ctx );
00352
00357 void (*done)( void );
00358
00393 KGreeterPlugin *(*create)( KGreeterPluginHandler *handler,
00394 KdmThemer *themer,
00395 TQWidget *parent, TQWidget *predecessor,
00396 const TQString &fixedEntity,
00397 KGreeterPlugin::Function func,
00398 KGreeterPlugin::Context ctx );
00399 };
00400
00401 #endif