48 EnumDef(
const char* nm,
const char* s[]);
49 bool isValidKey(
const char*)
const;
50 int indexOf(
const char* s)
const;
52 int getEnumValForIndex(
int)
const;
53 const char* getKeyForIndex(
int i)
const;
54 uiString getUiStringForIndex(
int i)
const;
55 void setUiStringForIndex(
int,
const uiString&);
59 const char* getIconFileForIndex(
int idx)
const;
60 void setIconFileForIndex(
int idx,
const char*);
65 void remove(
const char* key);
66 void add(
const char* key,
const uiString&,
67 int enumval,
const char* iconfile);
77 mDeprecated bool isValidName(
const char* key)
const;
87 bool parse(
const char* txt,ENUM& res)
const;
88 bool parse(
const IOPar& par,
const char* key,ENUM& res)
const;
89 ENUM parse(
const char* txt)
const;
90 ENUM getEnumForIndex(
int idx)
const;
91 const char* getKey(ENUM theenum)
const;
98 toString(ENUM theenum)
const {
return getKey(theenum); }
188 #define mDeclareEnumUtils(enm) \ 190 static const EnumDefImpl<enm>& enm##Def(); \ 191 static mDeprecated const char** enm##Names();\ 192 static mDeprecated bool parseEnum##enm(const char*,enm&); \ 193 static mDeprecated bool parseEnum(const char*,enm&); \ 194 static mDeprecated bool parseEnum(const IOPar&,const char*,enm&); \ 195 static mDeprecated enm parseEnum##enm(const char*); \ 196 static const char* toString(enm); \ 197 static uiString toUiString(enm); \ 198 static mDeprecated const char* get##enm##String(enm); \ 200 static EnumDefImpl<enm>* enm##CreateDef(); \ 201 static const char* enm##Keys_[]; \ 202 static ConstPtrMan<EnumDefImpl<enm> > enm##Definition_; \ 205 #define mDeclareNameSpaceEnumUtils(mod,enm) \ 206 mExtern(mod) const EnumDefImpl<enm>& enm##Def(); \ 207 mExtern(mod) mDeprecated const char** enm##Names();\ 208 mExtern(mod) mDeprecated bool parseEnum(const IOPar&,const char*,enm&); \ 209 mExtern(mod) mDeprecated bool parseEnum(const char*,enm&); \ 210 mExtern(mod) mDeprecated bool parseEnum##enm(const char*,enm&); \ 211 mExtern(mod) mDeprecated enm parseEnum##enm(const char*); \ 212 mExtern(mod) const char* toString(enm); \ 213 mExtern(mod) uiString toUiString(enm); \ 214 mExtern(mod) mDeprecated const char* get##enm##String(enm); 217 #define DeclareEnumUtils(enm) mDeclareEnumUtils(enm) 218 #define DeclareNameSpaceEnumUtils(mod,enm) \ 219 mDeclareNameSpaceEnumUtils(mod,enm) 221 #define _mDefineEnumUtils(prefix,enm,createfunc,prettynm) \ 222 const EnumDefImpl<prefix::enm>& prefix::enm##Def() \ 223 { return *enm##Definition_.createIfNull( createfunc ); } \ 224 bool prefix::parseEnum##enm(const char* txt, prefix::enm& res ) \ 226 const bool isok = prefix::enm##Def().parse( txt, res ); \ 227 if ( !isok ) res = (prefix::enm) 0; \ 230 bool prefix::parseEnum(const char* txt, prefix::enm& res ) \ 231 { return prefix::enm##Def().parse( txt, res ); } \ 232 bool prefix::parseEnum( const IOPar& par, const char* key, prefix::enm& res ) \ 233 { return prefix::enm##Def().parse( par, key, res ); } \ 234 prefix::enm prefix::parseEnum##enm(const char* txt) \ 235 { return prefix::enm##Def().parse( txt ); } \ 236 const char* prefix::get##enm##String( prefix::enm theenum ) \ 237 { return prefix::toString( theenum ); } \ 238 const char* prefix::toString( prefix::enm theenum ) \ 239 { return enm##Def().getKey( theenum ); } \ 240 uiString prefix::toUiString( prefix::enm theenum ) \ 241 { return enm##Def().toUiString( theenum ); } \ 244 #define mDefineEnumUtils(clss,enm,prettynm) \ 245 EnumDefImpl<clss::enm>* clss::enm##CreateDef() \ 246 { return new EnumDefImpl<clss::enm>( prettynm, clss::enm##Keys_ ); } \ 247 const char** clss::enm##Names() { return clss::enm##Keys_ ; } \ 248 ConstPtrMan<EnumDefImpl<clss::enm> > clss::enm##Definition_ = 0; \ 249 _mDefineEnumUtils( clss, enm, clss::enm##CreateDef, prettynm ); \ 250 const char* clss::enm##Keys_[] = 252 #define mDefineNameSpaceEnumUtils(nmspc,enm,prettynm) \ 253 extern const char* nmspc##enm##Keys_[]; \ 254 static EnumDefImpl<nmspc::enm>* nmspc##enm##CreateDef() \ 255 { return new EnumDefImpl<nmspc::enm>( prettynm, nmspc##enm##Keys_ ); } \ 256 const char** nmspc::enm##Names() { return nmspc##enm##Keys_; } \ 257 static ConstPtrMan<EnumDefImpl<nmspc::enm> > enm##Definition_ = 0; \ 258 _mDefineEnumUtils( nmspc, enm, nmspc##enm##CreateDef, prettynm );\ 259 const char* nmspc##enm##Keys_[] = 262 #define DefineEnumNames(clss,enm,deflen,prettynm) \ 263 mDefineEnumUtils(clss,enm,prettynm) 264 #define DefineNameSpaceEnumNames(nmspc,enm,deflen,prettynm) \ 265 mDefineNameSpaceEnumUtils(nmspc,enm,prettynm) 266 #define mEnumTr(str) tr(str) 268 template <
class ENUM>
inline 275 pErrMsg(
"Wrong number of uistrings" );
283 pErrMsg(
"Wrong number of iconfiles" );
287 template <
class ENUM>
inline 301 template <
class ENUM>
inline 305 const char* val = par.
find( key );
306 return parse( val, res );
310 template <
class ENUM>
inline 313 return (ENUM)
enums_[idx];
317 template <
class ENUM>
inline 324 template <
class ENUM>
inline 335 template <
class ENUM>
inline 343 template <
class ENUM>
inline #define mExpClass(module)
Definition: commondefs.h:157
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
BufferStringSet iconfiles_
Definition: enums.h:74
BufferString & get(size_type idx)
Definition: bufstringset.h:49
Definition: uistring.h:88
Set of BufferString objects.
Definition: bufstringset.h:25
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:173
int indexOf(const char *s) const
const char * getKey(ENUM theenum) const
Definition: enums.h:325
const BufferStringSet & keys() const
Definition: enums.h:56
bool isValidKey(const char *) const
size_type size() const
Definition: uistring.h:250
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
ENUM getEnumForIndex(int idx) const
Definition: enums.h:311
const char * toString(ENUM theenum) const
Definition: enums.h:98
const char * find(const char *) const
returns null if not found
const uiStringSet & strings() const
Definition: enums.h:57
uiString getUiStringForIndex(int i) const
uiStringSet uistrings_
Definition: enums.h:71
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
void init()
Definition: enums.h:344
const char * buf() const
Definition: odstring.h:45
#define mDeprecated
Definition: plfdefs.h:213
T convert(Type inptyp, T val, Type outtyp)
Definition: angles.h:74
object with a name.
Definition: namedobj.h:20
uiString toUiString(ENUM theenum) const
Definition: enums.h:336
TypeSet< int > enums_
Definition: enums.h:73
Definition: uistring.h:235
size_type size() const
Definition: bufstringset.h:37
BufferStringSet keys_
Definition: enums.h:72
bool parse(const char *txt, ENUM &res) const
Definition: enums.h:288
#define mClass(module)
Definition: commondefs.h:161
#define pErrMsg(msg)
Usual access point for programmer error messages.
Definition: errmsg.h:34
virtual size_type indexOf(T, bool forward=true, size_type start=-1) const
Definition: typeset.h:332
Holds data pertinent to a certain enum. It does not know the enum values themselves, but treat them as integers.
Definition: enums.h:44
EnumDefImpl(const char *nm, const char *s[])
Definition: enums.h:269