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_USER_INTERFACE__H
00026 #define TEDDY__APPLICATION__BASE_USER_INTERFACE__H
00027
00028
00029
00030 namespace Teddy {
00031 namespace Graphics { class View; };
00032 namespace PhysicalComponents { class Console; };
00033 namespace PhysicalComponents { class Layer; };
00034 namespace PhysicalComponents { class Projection; };
00035 namespace PhysicalComponents { class WindowManager; };
00036 };
00037 using namespace Teddy::Graphics;
00038 using namespace Teddy::PhysicalComponents;
00039
00040
00041 namespace Teddy {
00042 namespace Application {
00043
00044
00045 class BaseRoot;
00046
00047
00049 class BaseUserInterface {
00050 public:
00051 BaseUserInterface( BaseRoot *root );
00052
00053 virtual void addComponents () = 0;
00054 void enterRunLoop ();
00055
00056 Layer *getLayer ();
00057 Projection *getProjection ();
00058 View *getView ();
00059 WindowManager *getWindowManager();
00060 void setProjection( Projection *projection );
00061
00062 protected:
00063 Layer *layer;
00064 Projection *projection;
00065 View *view;
00066 WindowManager *window_manager;
00067 };
00068
00069
00070 };
00071 };
00072
00073
00074 #endif // TEDDY__APPLICATION__BASE_USER_INTERFACE__H
00075