00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CENUM_H
00020 #define __CENUM_H
00021
00022 #include "cobject.h"
00023
00024
00025
00026
00036 class SIM_API cEnum : public cObject
00037 {
00038 private:
00039 struct sEnum {
00040 int key;
00041 char *string;
00042 };
00043 sEnum *vect;
00044 int size;
00045 int items;
00046
00047 public:
00050
00054 cEnum(const cEnum& cenum);
00055
00059 cEnum(const char *name=NULL, int siz=17);
00060
00064 virtual ~cEnum();
00065
00070 cEnum& operator=(const cEnum& list);
00072
00075
00080 virtual cObject *dup() const {return new cEnum(*this);}
00081
00086 virtual void info(char *buf);
00088
00091
00095 void insert(int key, const char *str);
00096
00101 const char *stringFor(int key);
00102
00107 int lookup(const char *str, int fallback=-1);
00109 };
00110
00111
00112
00128 class SIM_API sEnumBuilder
00129 {
00130 public:
00134 sEnumBuilder(const char *name, ...);
00135 };
00136
00137 #endif
00138