#ifndef fields_h #define fields_h #define FLD_TYPE_STRING 0 #define FLD_TYPE_BOOL 1 #define FLD_TYPE_NUM 2 #define FLD_TYPE_ENUM 3 #define FLD_TYPE_PAD 4 #define FLD_TYPE_TITLE 5 #define FLD_TYPE_COMBO 6 #define FLD_TYPE_LIST 7 class LDAPOBJECT; class CONFDB; class FIELD_DEF: public ARRAY_OBJ{ public: SSTRING id; SSTRING title; SSTRING fdefault; // default value , I had to use fdefault because default conflict with an underlying attribute int type; int minimum,maximum; // Limits for numeric field int order; // Field order char browse; // This field is used to build the record // browser char must_fill; // The string field must be filled (not empty) char multi; // Multiple values allowed SSTRING oclass; // Associated objectclass SSTRINGS values; // Possible list values // Variables for the edit process struct { SSTRINGS strs; // Used for single or multivalue int num; char sel; } val; int field_num; // Field number in the dialog for error // reporting /*~PROTOBEG~ FIELD_DEF */ public: FIELD_DEF (void); void delval (CONFDB&c_data, const char *key); int edit (void); const char *getvalstr (void)const; void loadval (CONFDB *c_data, const char *key); void saveval (CONFDB&c_data, const char *key); void saveval (LDAPOBJECT&ldapo); void set (const char *s); /*~PROTOEND~ FIELD_DEF */ }; class FIELD_DEFS: public ARRAY{ public: CONFIG_FILE *f_form; CONFDB *c_form; /*~PROTOBEG~ FIELD_DEFS */ public: FIELD_DEFS (CONFDB *formconfig); FIELD_DEFS (CONFIG_FILE *formfile); FIELD_DEFS (const char *filename); FIELD_DEFS (void); void delval (CONFDB&c_data, const char *key); int edit (void); SSTRING *getdefault (const char *sid); FIELD_DEF *getitem (int no)const; void loadval (CONFDB *c_data, const char *key); int read (void); void saveval (CONFDB&c_data, const char *key); void saveval (LDAPOBJECT&ldapo); int set (const char *id, const char *val); void setupdia (DIALOG&dia); int write (void); /*~PROTOEND~ FIELD_DEFS */ }; class USERACCT_COMNG; class DICTIONARY; #endif