NLS Engine  v0.1
The Next Logical Step in game engine design.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines
OSinterface.h
Go to the documentation of this file.
00001 
00007 #pragma once
00008 
00009 // Standard Includes
00010 #include <string>
00011 #include <memory>
00012 
00013 // Library Includes
00014 #include <boost/any.hpp>
00015 #include <EngineConfig.h>
00016 
00017 // Local Includes
00018 #include "OSInterface_fwd.h"
00019 
00020 // Forward Declarations
00021 class PropertyMap;
00022 class MessageRouter;
00023 
00024 // Typedefs
00025 
00026 // Classes
00027 class OSInterface {
00028 public: // Public static members
00029   static void SetOS(OSInterfaceSPTR);
00030   static OSInterfaceSPTR GetOS();
00031   static bool HasOS();
00032   
00033 public:
00034   virtual ~OSInterface() {}
00035   
00037   virtual boost::any CreateGUIWindow(int, int, std::string, WINDOW_FLAGS = WINDOW_OUTER_SIZE) = 0;
00038   
00040   virtual void ShowInfo(std::string, std::string = NLS_I18N::TITLE_INFO) = 0;
00041   
00043   virtual void ShowWarning(std::string, std::string = NLS_I18N::TITLE_WARNING) = 0;
00044   
00046   virtual void ShowError(std::string, std::string = NLS_I18N::TITLE_CRITICAL) = 0;
00047   
00049   virtual void RouteMessages() = 0;
00050   
00052   virtual std::string GetPath(DIRS::TYPE) = 0;
00053   
00054   virtual void SetupTimer() = 0;
00055   virtual double GetElapsedTime() = 0;
00056   
00057 protected:
00058   OSInterface() {}
00059   
00060 private:
00061   static OSInterfaceSPTR operatingSystem;
00062 };