PixelLightAPI
.
|
00001 /*********************************************************\ 00002 * File: CoreConfigGroup.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_CONFIGGROUP_H__ 00024 #define __PLCORE_CONFIGGROUP_H__ 00025 #pragma once 00026 00027 00028 //[-------------------------------------------------------] 00029 //[ Includes ] 00030 //[-------------------------------------------------------] 00031 #include "PLCore/Config/Config.h" 00032 00033 00034 //[-------------------------------------------------------] 00035 //[ Namespace ] 00036 //[-------------------------------------------------------] 00037 namespace PLCore { 00038 00039 00040 //[-------------------------------------------------------] 00041 //[ Classes ] 00042 //[-------------------------------------------------------] 00043 /** 00044 * @brief 00045 * PLCore general configuration 'collection' class 00046 */ 00047 class CoreConfigGroup : public ConfigGroup { 00048 00049 00050 //[-------------------------------------------------------] 00051 //[ RTTI interface ] 00052 //[-------------------------------------------------------] 00053 pl_class(PLCORE_RTTI_EXPORT, CoreConfigGroup, "PLCore", PLCore::ConfigGroup, "PLCore general configuration 'collection' class") 00054 pl_class_end 00055 00056 00057 //[-------------------------------------------------------] 00058 //[ Protected functions ] 00059 //[-------------------------------------------------------] 00060 protected: 00061 /** 00062 * @brief 00063 * Default constructor 00064 */ 00065 CoreConfigGroup(); 00066 00067 /** 00068 * @brief 00069 * Destructor 00070 */ 00071 virtual ~CoreConfigGroup(); 00072 00073 00074 }; 00075 00076 /** 00077 * @brief 00078 * PLCore configuration classes 00079 */ 00080 class CoreConfig : public CoreConfigGroup { 00081 00082 00083 //[-------------------------------------------------------] 00084 //[ RTTI interface ] 00085 //[-------------------------------------------------------] 00086 pl_class(PLCORE_RTTI_EXPORT, CoreConfig, "PLCore", PLCore::CoreConfigGroup, "PLCore configuration classes") 00087 // Attributes 00088 pl_attribute(FirstRun, bool, true, ReadWrite, DirectValue, "Is this the first application start?", "") 00089 pl_attribute(Language, String, "", ReadWrite, DirectValue, "Current used language, if empty the current set OS locale language is used (for instance 'German'", "") 00090 // Constructors 00091 pl_constructor_0(DefaultConstructor, "Default constructor", "") 00092 pl_class_end 00093 00094 00095 //[-------------------------------------------------------] 00096 //[ Public functions ] 00097 //[-------------------------------------------------------] 00098 public: 00099 /** 00100 * @brief 00101 * Default constructor 00102 */ 00103 PLCORE_API CoreConfig(); 00104 00105 /** 00106 * @brief 00107 * Destructor 00108 */ 00109 PLCORE_API virtual ~CoreConfig(); 00110 00111 00112 }; 00113 00114 /** 00115 * @brief 00116 * PLCore frontend configuration classes 00117 */ 00118 class FrontendConfig : public CoreConfigGroup { 00119 00120 00121 //[-------------------------------------------------------] 00122 //[ RTTI interface ] 00123 //[-------------------------------------------------------] 00124 pl_class(PLCORE_RTTI_EXPORT, FrontendConfig, "PLCore", PLCore::CoreConfigGroup, "PLCore frontend configuration classes") 00125 // Attributes 00126 pl_attribute(X, int, 0, ReadWrite, DirectValue, "X position of the frontend (in screen coordinates)", "") 00127 pl_attribute(Y, int, 0, ReadWrite, DirectValue, "Y position of the frontend (in screen coordinates)", "") 00128 pl_attribute(Width, uint32, 800, ReadWrite, DirectValue, "Width of the frontend", "") 00129 pl_attribute(Height, uint32, 600, ReadWrite, DirectValue, "Height of the frontend", "") 00130 // Constructors 00131 pl_constructor_0(DefaultConstructor, "Default constructor", "") 00132 pl_class_end 00133 00134 00135 //[-------------------------------------------------------] 00136 //[ Public functions ] 00137 //[-------------------------------------------------------] 00138 public: 00139 /** 00140 * @brief 00141 * Default constructor 00142 */ 00143 PLCORE_API FrontendConfig(); 00144 00145 /** 00146 * @brief 00147 * Destructor 00148 */ 00149 PLCORE_API virtual ~FrontendConfig(); 00150 00151 00152 }; 00153 00154 00155 //[-------------------------------------------------------] 00156 //[ Namespace ] 00157 //[-------------------------------------------------------] 00158 } // PLCore 00159 00160 00161 #endif // __PLCORE_CONFIGGROUP_H__
|