00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef TEDDY__APPLICATION__BASE_ROOT__H
00026 #define TEDDY__APPLICATION__BASE_ROOT__H
00027
00028
00029 #include "Teddy/MixIn/Options.h"
00030 using Teddy::MixIn::Options;
00031
00032
00033 namespace Teddy {
00034 namespace Application {
00035
00036
00038 class BaseRoot {
00039 public:
00040 BaseRoot();
00041 virtual ~BaseRoot();
00042
00043 void start ( int argc, char **argv );
00044 virtual void setDefaultOptions();
00045 virtual void parseOptions ();
00046
00047 int getScreenWidth ();
00048 int getScreenHeight ();
00049 Options &getScreenOptions ();
00050 Options &getAudioOptions ();
00051 bool hasOpt ( char *key );
00052 const char *getOptString ( char *key );
00053 int getOptInt ( char *key );
00054 float getOptFloat ( char *key );
00055 const char *getArg ( int i );
00056
00057 protected:
00058 int argc;
00059 char **argv;
00060 Options screen_options;
00061 Options audio_options;
00062 int screen_width;
00063 int screen_height;
00064 };
00065
00066
00067 };
00068 };
00069
00070
00071 #if !defined( __MINGW32__ )
00072
00073 #define TEDDY_MAIN \
00074 extern "C" { \
00075 int main( int argc, char **argv ){ \
00076 Root *root = new Root(); \
00077 root->start( argc, argv ); \
00078 return 0; \
00079 } \
00080 }
00081
00082 #else
00083
00084 #define TEDDY_MAIN \
00085 extern "C" { \
00086 int SDL_main( int argc, char **argv ){ \
00087 Root *root = new Root(); \
00088 root->start( argc, argv ); \
00089 return 0; \
00090 } \
00091 }
00092
00093 #endif
00094
00095 #endif // TEDDY__APPLICATION__BASE_ROOT__H
00096
00097