00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __CENUM_H
00022 #define __CENUM_H
00023
00024 #include "cobject.h"
00025
00026
00027
00028
00038 class SIM_API cEnum : public cObject
00039 {
00040 private:
00041 struct sEnum {
00042 int key;
00043 char *string;
00044 };
00045 sEnum *vect;
00046 int size;
00047 int items;
00048
00049 public:
00052
00056 cEnum(const cEnum& cenum);
00057
00061 cEnum(const char *name=NULL, int siz=17);
00062
00066 virtual ~cEnum();
00067
00072 cEnum& operator=(const cEnum& list);
00074
00077
00081 virtual const char *className() const {return "cEnum";}
00082
00087 virtual cObject *dup() const {return new cEnum(*this);}
00088
00093 virtual void info(char *buf);
00095
00098
00102 void insert(int key, const char *str);
00103
00108 const char *stringFor(int key);
00109
00114 int lookup(const char *str, int fallback=-1);
00116 };
00117
00118
00119
00135 class SIM_API sEnumBuilder
00136 {
00137 public:
00141 sEnumBuilder(const char *name, ...);
00142 };
00143
00144 #endif
00145