PixelLightAPI
.
|
00001 /*********************************************************\ 00002 * File: PLCoreDefinitions.h * 00003 * 00004 * Copyright (C) 2002-2011 The PixelLight Team (http://www.pixellight.org/) 00005 * 00006 * This file is part of PixelLight. 00007 * 00008 * PixelLight is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as published by 00010 * the Free Software Foundation, either version 3 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * PixelLight is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public License 00019 * along with PixelLight. If not, see <http://www.gnu.org/licenses/>. 00020 \*********************************************************/ 00021 00022 00023 #ifndef __PLCORE_DEFINITIONS_H__ 00024 #define __PLCORE_DEFINITIONS_H__ 00025 #pragma once 00026 00027 00028 //[-------------------------------------------------------] 00029 //[ Includes ] 00030 //[-------------------------------------------------------] 00031 #include "PLCore/PLCore.h" 00032 00033 00034 //[-------------------------------------------------------] 00035 //[ Namespace ] 00036 //[-------------------------------------------------------] 00037 namespace PLCore { 00038 00039 00040 //[-------------------------------------------------------] 00041 //[ Definitions ] 00042 //[-------------------------------------------------------] 00043 /** 00044 * @brief 00045 * Type IDs 00046 */ 00047 enum ETypeID { 00048 TypeInvalid = -1, 00049 TypeNull = 0, 00050 TypeVoid, 00051 TypeBool, 00052 TypeInt, 00053 TypeFloat, 00054 TypeDouble, 00055 TypeInt8, 00056 TypeInt16, 00057 TypeInt32, 00058 TypeInt64, 00059 TypeUInt8, 00060 TypeUInt16, 00061 TypeUInt32, 00062 TypeUInt64, 00063 TypeString, 00064 TypePtr, 00065 TypeRef, 00066 TypeObjectPtr 00067 }; 00068 00069 /** 00070 * @brief 00071 * Member types 00072 */ 00073 enum EMemberType { 00074 MemberAttribute = 0, 00075 MemberMethod, 00076 MemberConstructor, 00077 MemberEvent, 00078 MemberEventHandler 00079 }; 00080 00081 /** 00082 * @brief 00083 * Default value mode 00084 */ 00085 enum EDefaultValue { 00086 WithDefault = 0, /**< Retrieve all variables, including those with a default value */ 00087 NoDefault /**< Retrieve only variables that are different than their default value */ 00088 }; 00089 00090 /** 00091 * @brief 00092 * Recursive mode 00093 */ 00094 enum ERecursive { 00095 NonRecursive = 0, /**< Do (whatever) not recursively */ 00096 Recursive /**< Do (whatever) recursively */ 00097 }; 00098 00099 /** 00100 * @brief 00101 * Include base class in class searches 00102 */ 00103 enum EIncludeBase { 00104 IncludeBase = 0, /**< Include that base class itself in the list of derived classes */ 00105 NoBase /**< Only include derived classes, not the base class itself */ 00106 }; 00107 00108 /** 00109 * @brief 00110 * Include abstract classes in class searches 00111 */ 00112 enum EIncludeAbstract { 00113 IncludeAbstract = 0, /**< Include abstract classes in list of classes */ 00114 NoAbstract /**< Do not include abstract classes */ 00115 }; 00116 00117 00118 //[-------------------------------------------------------] 00119 //[ Namespace ] 00120 //[-------------------------------------------------------] 00121 } // PLCore 00122 00123 00124 #endif // __PLCORE_DEFINITIONS_H__
|