PixelLightAPI  .
FrontendContext.h
Go to the documentation of this file.
00001 /*********************************************************\
00002  *  File: FrontendContext.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_FRONTENDCONTEXT_H__
00024 #define __PLCORE_FRONTENDCONTEXT_H__
00025 #pragma once
00026 
00027 
00028 //[-------------------------------------------------------]
00029 //[ Includes                                              ]
00030 //[-------------------------------------------------------]
00031 #include "PLCore/Application/ApplicationContext.h"
00032 
00033 
00034 //[-------------------------------------------------------]
00035 //[ Namespace                                             ]
00036 //[-------------------------------------------------------]
00037 namespace PLCore {
00038 
00039 
00040 //[-------------------------------------------------------]
00041 //[ Classes                                               ]
00042 //[-------------------------------------------------------]
00043 /**
00044 *  @brief
00045 *    Frontend context
00046 *
00047 *  @remarks
00048 *    The frontend context stores data and information for an frontend,
00049 *    such as startup information (what was the current directory when the
00050 *    frontend started) or paths to needed resources.
00051 */
00052 class FrontendContext : public ApplicationContext {
00053 
00054 
00055     //[-------------------------------------------------------]
00056     //[ Public functions                                      ]
00057     //[-------------------------------------------------------]
00058     public:
00059         /**
00060         *  @brief
00061         *    Constructor
00062         */
00063         PLCORE_API FrontendContext();
00064 
00065         /**
00066         *  @brief
00067         *    Destructor
00068         */
00069         PLCORE_API virtual ~FrontendContext();
00070 
00071 
00072         //[-------------------------------------------------------]
00073         //[ Options and data                                      ]
00074         //[-------------------------------------------------------]
00075         /**
00076         *  @brief
00077         *    Get frontend executable name
00078         *
00079         *  @return
00080         *    Name of the frontend executable (default: "")
00081         *
00082         *  @remarks
00083         *    The name of the frontend executable (one can also call it "host", the running executable) is
00084         *    used as default whenever a name is required (log, configuration, window title and so on).
00085         */
00086         inline String GetName() const;
00087 
00088         /**
00089         *  @brief
00090         *    Set frontend executable name
00091         *
00092         *  @param[in] sName
00093         *    Name of the frontend executable (default: "")
00094         *
00095         *  @see
00096         *    - GetName()
00097         */
00098         inline void SetName(const String &sName);
00099 
00100         /**
00101         *  @brief
00102         *    Returns the name of the frontend RTTI class to use
00103         *
00104         *  @return
00105         *    The name of the frontend RTTI class to use (default: "PLCore::FrontendPixelLight")
00106         */
00107         inline String GetFrontend() const;
00108 
00109         /**
00110         *  @brief
00111         *    Sets the name of the frontend RTTI class to use
00112         *
00113         *  @param[in] sFrontend
00114         *    The name of the frontend RTTI class to use (default: "PLCore::FrontendPixelLight")
00115         */
00116         inline void SetFrontend(const String &sFrontend);
00117 
00118         /**
00119         *  @brief
00120         *    Returns the name of the frontend RTTI class constructor to use
00121         *
00122         *  @return
00123         *    The name of the frontend RTTI class constructor to use (default: "")
00124         */
00125         inline String GetFrontendConstructor() const;
00126 
00127         /**
00128         *  @brief
00129         *    Sets the name of the frontend RTTI class constructor to use
00130         *
00131         *  @param[in]
00132         *    The name of the frontend RTTI class constructor to use (default: "")
00133         */
00134         inline void SetFrontendConstructor(const String &sFrontendConstructor);
00135 
00136         /**
00137         *  @brief
00138         *    Returns the parameters for the frontend RTTI class constructor
00139         *
00140         *  @return
00141         *    Parameters for the frontend RTTI class constructor (default: "")
00142         */
00143         inline String GetFrontendConstructorParameters() const;
00144 
00145         /**
00146         *  @brief
00147         *    Sets the parameters for the frontend RTTI class constructor
00148         *
00149         *  @param[in] sFrontendConstructorParameters
00150         *    Parameters for the frontend RTTI class constructor (default: "")
00151         */
00152         inline void SetFrontendConstructorParameters(const String &sFrontendConstructorParameters);
00153 
00154         /**
00155         *  @brief
00156         *    Returns the parameters for the instanced frontend RTTI class
00157         *
00158         *  @return
00159         *    The parameters for the instanced frontend RTTI class (default: "")
00160         */
00161         inline String GetFrontendParameters() const;
00162 
00163         /**
00164         *  @brief
00165         *    Sets the parameters for the instanced frontend RTTI class
00166         *
00167         *  @param[in] sFrontendParameters
00168         *    The parameters for the instanced frontend RTTI class (default: "")
00169         */
00170         inline void SetFrontendParameters(const String &sFrontendParameters);
00171 
00172         /**
00173         *  @brief
00174         *    Returns the name of the frontend implementation RTTI class to use
00175         *
00176         *  @return
00177         *    The name of the frontend implementation RTTI class to use (default: "PLFrontendOS::Frontend")
00178         */
00179         inline String GetFrontendImplementation() const;
00180 
00181         /**
00182         *  @brief
00183         *    Sets the name of the frontend implementation RTTI class to use
00184         *
00185         *  @param[in] sFrontendImplementation
00186         *    The name of the frontend implementation RTTI class to use (default: "PLFrontendOS::Frontend")
00187         */
00188         inline void SetFrontendImplementation(const String &sFrontendImplementation);
00189 
00190         /**
00191         *  @brief
00192         *    Returns the name of the frontend implementation RTTI class constructor to use
00193         *
00194         *  @return
00195         *    The name of the frontend implementation RTTI class constructor to use (default: "")
00196         */
00197         inline String GetFrontendImplementationConstructor() const;
00198 
00199         /**
00200         *  @brief
00201         *    Sets the name of the frontend implementation RTTI class constructor to use
00202         *
00203         *  @param[in] sFrontendImplementationConstructor
00204         *    The name of the frontend implementation RTTI class constructor to use (default: "")
00205         */
00206         inline void SetFrontendImplementationConstructor(const String &sFrontendImplementationConstructor);
00207 
00208         /**
00209         *  @brief
00210         *    Returns the parameters for the frontend implementation RTTI class constructor
00211         *
00212         *  @return
00213         *    The parameters for the frontend implementation RTTI class constructor (default: "")
00214         */
00215         inline String GetFrontendImplementationConstructorParameters() const;
00216 
00217         /**
00218         *  @brief
00219         *    Sets the parameters for the frontend implementation RTTI class constructor
00220         *
00221         *  @param[in] sFrontendImplementationConstructorParameters
00222         *    The parameters for the frontend implementation RTTI class constructor (default: "")
00223         */
00224         inline void SetFrontendImplementationConstructorParameters(const String &sFrontendImplementationConstructorParameters);
00225 
00226         /**
00227         *  @brief
00228         *    Returns the parameters for the instanced frontend implementation RTTI class
00229         *
00230         *  @return
00231         *    The parameters for the instanced frontend implementation RTTI class (default: "")
00232         */
00233         inline String GetFrontendImplementationParameters() const;
00234 
00235         /**
00236         *  @brief
00237         *    Sets the parameters for the instanced frontend implementation RTTI class
00238         *
00239         *  @param[in] sFrontendImplementationParameters
00240         *    The parameters for the instanced frontend implementation RTTI class (default: "")
00241         */
00242         inline void SetFrontendImplementationParameters(const String &sFrontendImplementationParameters);
00243 
00244 
00245     //[-------------------------------------------------------]
00246     //[ Protected data                                        ]
00247     //[-------------------------------------------------------]
00248     protected:
00249         String m_sName;                                         /**< Name of the frontend executable                                   (default: "") */
00250         String m_sFrontend;                                     /**< Name of the frontend RTTI class to use                            (default: "PLCore::FrontendPixelLight") */
00251         String m_sFrontendConstructor;                          /**< Name of the frontend RTTI class constructor to use                (default: "") */
00252         String m_sFrontendConstructorParameters;                /**< Parameters for the frontend RTTI class constructor                (default: "") */
00253         String m_sFrontendParameters;                           /**< Parameters for the instanced frontend RTTI class                  (default: "") */
00254         String m_sFrontendImplementation;                       /**< Name of the frontend implementation RTTI class to use             (default: "PLFrontendOS::Frontend") */
00255         String m_sFrontendImplementationConstructor;            /**< Name of the frontend implementation RTTI class constructor to use (default: "") */
00256         String m_sFrontendImplementationConstructorParameters;  /**< Parameters for the frontend implementation RTTI class constructor (default: "") */
00257         String m_sFrontendImplementationParameters;             /**< Parameters for the instanced frontend implementation RTTI class   (default: "") */
00258 
00259 
00260 };
00261 
00262 
00263 //[-------------------------------------------------------]
00264 //[ Namespace                                             ]
00265 //[-------------------------------------------------------]
00266 } // PLCore
00267 
00268 
00269 //[-------------------------------------------------------]
00270 //[ Implementation                                        ]
00271 //[-------------------------------------------------------]
00272 #include "PLCore/Frontend/FrontendContext.inl"
00273 
00274 
00275 #endif // __PLCORE_FRONTENDCONTEXT_H__


PixelLight PixelLight 0.9.10-R1
Copyright (C) 2002-2011 by The PixelLight Team
Last modified Fri Dec 23 2011 15:50:53
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported