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/System/Clock.hpp>
00039 #include <queue>
00040 #include <string>
00041
00042
00043 namespace sf
00044 {
00045 namespace priv
00046 {
00047 class WindowImpl;
00048 }
00049
00054 class SFML_API Window : public WindowListener, NonCopyable
00055 {
00056 public :
00057
00062 enum Style
00063 {
00064 Resizable,
00065 Fixed,
00066 Fullscreen
00067 };
00068
00073 Window();
00074
00084 Window(VideoMode Mode, const std::string& Title, Style WindowStyle = Resizable, int AntialiasingLevel = 0);
00085
00093 Window(WindowHandle Handle, int AntialiasingLevel = 0);
00094
00099 virtual ~Window();
00100
00110 void Create(VideoMode Mode, const std::string& Title, Style WindowStyle = Resizable, int AntialiasingLevel = 0);
00111
00119 void Create(WindowHandle Handle, int AntialiasingLevel = 0);
00120
00127 unsigned int GetWidth() const;
00128
00135 unsigned int GetHeight() const;
00136
00143 unsigned int GetDepthBits() const;
00144
00151 unsigned int GetStencilBits() const;
00152
00161 bool GetEvent(Event& EventReceived);
00162
00169 void UseVerticalSync(bool Enabled);
00170
00177 void ShowMouseCursor(bool Show);
00178
00187 void SetPosition(int Left, int Top);
00188
00195 bool SetCurrent() const;
00196
00201 void Display();
00202
00209 const Input& GetInput() const;
00210
00217 void SetFramerateLimit(unsigned int Limit);
00218
00225 float GetFrameTime() const;
00226
00227 private :
00228
00233 virtual void OnEvent(const Event& EventReceived);
00234
00241 void Initialize(priv::WindowImpl* Impl);
00242
00244
00246 priv::WindowImpl* myWindow;
00247 std::queue<Event> myEvents;
00248 Input myInput;
00249 Clock myClock;
00250 float myLastFrameTime;
00251 bool myIsExternal;
00252 unsigned int myFramerateLimit;
00253 };
00254
00255 }
00256
00257
00258 #endif // SFML_WINDOW_HPP