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 namespace sf_private
00043 {
00044 class sfWindowImpl;
00045 }
00046
00047
00052 class SFML_API sfWindow : public sfWindowListener, sfNonCopyable
00053 {
00054 public :
00055
00060 sfWindow();
00061
00070 sfWindow(sfVideoMode Mode, const std::string& Title, bool Fullscreen);
00071
00078 sfWindow(sfWindowHandle Handle);
00079
00084 virtual ~sfWindow();
00085
00094 void Create(sfVideoMode Mode, const std::string& Title, bool Fullscreen);
00095
00102 void Create(sfWindowHandle Handle);
00103
00110 unsigned int GetWidth() const;
00111
00118 unsigned int GetHeight() const;
00119
00126 unsigned int GetDepthBits() const;
00127
00134 unsigned int GetStencilBits() const;
00135
00144 bool GetEvent(sfEvent& Event);
00145
00152 void UseVerticalSync(bool Enabled);
00153
00160 void ShowMouseCursor(bool Show);
00161
00168 bool SetCurrent() const;
00169
00174 void Display();
00175
00182 const sfInput& GetInput() const;
00183
00190 float GetFrameTime() const;
00191
00192 private :
00193
00198 virtual void OnEvent(const sfEvent& Event);
00199
00206 void Initialize(sf_private::sfWindowImpl* Window);
00207
00209
00211 sf_private::sfWindowImpl* myWindow;
00212 std::queue<sfEvent> myEvents;
00213 sfInput myInput;
00214 sfClock myClock;
00215 float myLastFrameTime;
00216 };
00217
00218
00219 #endif // SFML_WINDOW_HPP