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/Utilities/NonCopyable.hpp>
00033 #include <SFML/Window/Event.hpp>
00034 #include <SFML/Window/Input.hpp>
00035 #include <SFML/Window/VideoMode.hpp>
00036 #include <SFML/Window/WindowListener.hpp>
00037 #include <queue>
00038 #include <string>
00039
00040 namespace sf_private
00041 {
00042 class sfWindowImpl;
00043 }
00044
00045
00050 class SFML_API sfWindow : public sfWindowListener, sfNonCopyable
00051 {
00052 public :
00053
00058 sfWindow();
00059
00068 sfWindow(sfVideoMode Mode, const std::string& Title, bool Fullscreen);
00069
00076 sfWindow(void* Handle);
00077
00082 virtual ~sfWindow();
00083
00092 void Create(sfVideoMode Mode, const std::string& Title, bool Fullscreen);
00093
00100 void Create(void* Handle);
00101
00108 unsigned int GetWidth() const;
00109
00116 unsigned int GetHeight() const;
00117
00126 bool GetEvent(sfEvent& Event);
00127
00134 void UseVerticalSync(bool Enabled);
00135
00142 bool SetCurrent() const;
00143
00148 void Display();
00149
00156 const sfInput& GetInput() const;
00157
00164 float GetFrameTime() const;
00165
00166 private :
00167
00172 virtual void OnEvent(const sfEvent& Event);
00173
00180 void Initialize(sf_private::sfWindowImpl* Window);
00181
00183
00185 sf_private::sfWindowImpl* myWindow;
00186 std::queue<sfEvent> myEvents;
00187 sfInput myInput;
00188 float myLastFrameTime;
00189 };
00190
00191
00192 #endif // SFML_WINDOW_HPP