qvsfenum.h

来自「Windows上的MUD客户端程序」· C头文件 代码 · 共 41 行

H
41
字号
#ifndef  _QV_SF_ENUM_
#define  _QV_SF_ENUM_

#include <QvString.h>
#include <QvSubField.h>

class QvSFEnum : public QvSField {
  public:
    int value;
    QV_SFIELD_HEADER(QvSFEnum);

    // Sets up value/name correspondances
    void setEnums(int num, const int vals[], const QvName names[])
	{ numEnums = num; enumValues = vals; enumNames = names; }

    int			numEnums;	// Number of enumeration values
    const int		*enumValues;	// Enumeration values
    const QvName	*enumNames;	// Mnemonic names of values

	QvString	strValue;			// For unknown nodes

    // Looks up enum name, returns value. Returns FALSE if not found.
    QvBool		findEnumValue(const QvName &name, int &val) const;
};

#define	QV_NODE_SET_SF_ENUM_TYPE(fieldName, enumType)			      \
    do {								      \
	int _so_sf_enum_num;						      \
	const int *_so_sf_enum_vals;					      \
	const QvName *_so_sf_enum_names;				      \
	fieldData->getEnumData(QV__QUOTE(enumType),			      \
			       _so_sf_enum_num,				      \
			       _so_sf_enum_vals,			      \
			       _so_sf_enum_names);			      \
	fieldName.setEnums(_so_sf_enum_num,				      \
			   _so_sf_enum_vals,				      \
			   _so_sf_enum_names);				      \
    } while (0)

#endif /* _QV_SF_ENUM_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?