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__SPACE_GAME__FRONT_CAMERA_H
00026 #define TEDDY__SPACE_GAME__FRONT_CAMERA_H
00027
00028
00029 #include "Teddy/PhysicalComponents/EventListener.h"
00030 #include "Teddy/PhysicalComponents/Projection.h"
00031
00032
00033
00034 namespace Teddy {
00035 namespace Scenes { class Camera; };
00036 namespace PhysicalComponents { class Label; };
00037 namespace PhysicalComponents { class WindowFrame; };
00038 };
00039 using namespace Teddy::PhysicalComponents;
00040 using namespace Teddy::Scenes;
00041
00042
00043 namespace Teddy {
00044 namespace SpaceGame {
00045
00046
00047 class Root;
00048 class PlayerShip;
00049
00050
00057 class FrontCamera : public Projection, public EventListener {
00058 public:
00059 FrontCamera( const char *name, Camera *camera, Root *root, LayoutConstraint *lc, bool frame );
00060 virtual ~FrontCamera();
00061
00062 virtual void drawSelf();
00063
00064
00065 virtual void focusActive( const bool active );
00066
00067
00068 virtual void mouseKey ( const int button, const int state, const int x, const int y );
00069 virtual void mouseMotion( const int x, const int y, const int dx, const int dy );
00070
00071 virtual Area *getTarget ( const Event e ) const;
00072
00073
00074 virtual void keyDown ( const SDL_keysym key );
00075 virtual void keyUp ( const SDL_keysym key );
00076
00077 protected:
00078 Root *root;
00079 WindowFrame *window_frame;
00080 PlayerShip *player_ship;
00081 Label *title;
00082 int mouse_drag_x [4];
00083 int mouse_drag_y [4];
00084 int mouse_click_x[4];
00085 int mouse_click_y[4];
00086 int mouse_b [4];
00087 static bool keys[SDLK_LAST+1];
00088 };
00089
00090
00091 };
00092 };
00093
00094
00095 #endif // TEDDY__SPACE_GAME__FRONT_CAMERA_H
00096