00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_WINDOW_HPP
00026 #define SFML_WINDOW_HPP
00027
00029
00031 #include <SFML/Config.hpp>
00032 #include <SFML/System/NonCopyable.hpp>
00033 #include <SFML/Window/Event.hpp>
00034 #include <SFML/Window/Input.hpp>
00035 #include <SFML/Window/VideoMode.hpp>
00036 #include <SFML/Window/WindowHandle.hpp>
00037 #include <SFML/Window/WindowListener.hpp>
00038 #include <SFML/Window/WindowStyle.hpp>
00039 #include <SFML/System/Clock.hpp>
00040 #include <queue>
00041 #include <string>
00042
00043
00044 namespace sf
00045 {
00046 namespace priv
00047 {
00048 class WindowImpl;
00049 }
00050
00055 class SFML_API Window : public WindowListener, NonCopyable
00056 {
00057 public :
00058
00063 Window();
00064
00074 Window(VideoMode Mode, const std::string& Title, unsigned long WindowStyle = Style::Resize | Style::Close, int AntialiasingLevel = 0);
00075
00083 Window(WindowHandle Handle, int AntialiasingLevel = 0);
00084
00089 virtual ~Window();
00090
00100 void Create(VideoMode Mode, const std::string& Title, unsigned long WindowStyle = Style::Resize | Style::Close, int AntialiasingLevel = 0);
00101
00109 void Create(WindowHandle Handle, int AntialiasingLevel = 0);
00110
00117 unsigned int GetWidth() const;
00118
00125 unsigned int GetHeight() const;
00126
00133 unsigned int GetDepthBits() const;
00134
00141 unsigned int GetStencilBits() const;
00142
00151 bool GetEvent(Event& EventReceived);
00152
00159 void UseVerticalSync(bool Enabled);
00160
00167 void ShowMouseCursor(bool Show);
00168
00176 void SetCursorPosition(unsigned int Left, unsigned int Top);
00177
00186 void SetPosition(int Left, int Top);
00187
00194 void Show(bool State);
00195
00202 bool SetCurrent() const;
00203
00208 void Display();
00209
00216 const Input& GetInput() const;
00217
00224 void SetFramerateLimit(unsigned int Limit);
00225
00232 float GetFrameTime() const;
00233
00241 void SetJoystickThreshold(float Threshold);
00242
00243 private :
00244
00249 virtual void OnCreate();
00250
00255 virtual void OnDisplay();
00256
00263 virtual void OnEventReceived(const Event& EventReceived);
00264
00271 virtual void OnEvent(const Event& EventReceived);
00272
00279 void Initialize(priv::WindowImpl* Impl);
00280
00282
00284 priv::WindowImpl* myWindow;
00285 std::queue<Event> myEvents;
00286 Input myInput;
00287 Clock myClock;
00288 float myLastFrameTime;
00289 bool myIsExternal;
00290 unsigned int myFramerateLimit;
00291 };
00292
00293 }
00294
00295
00296 #endif // SFML_WINDOW_HPP