diff --git a/CSFML/VC2005/csfml-audio.vcproj b/CSFML/VC2005/csfml-audio.vcproj
index 89b49d4d5..bd18092ed 100644
--- a/CSFML/VC2005/csfml-audio.vcproj
+++ b/CSFML/VC2005/csfml-audio.vcproj
@@ -401,6 +401,10 @@
RelativePath="..\include\SFML\Audio\SoundStream.h"
>
+
+
diff --git a/CSFML/VC2005/csfml-graphics.vcproj b/CSFML/VC2005/csfml-graphics.vcproj
index de49140e2..5010d12a7 100644
--- a/CSFML/VC2005/csfml-graphics.vcproj
+++ b/CSFML/VC2005/csfml-graphics.vcproj
@@ -436,6 +436,10 @@
RelativePath="..\include\SFML\Graphics\String.h"
>
+
+
diff --git a/CSFML/VC2005/csfml-network.vcproj b/CSFML/VC2005/csfml-network.vcproj
index 19623f491..ef317933a 100644
--- a/CSFML/VC2005/csfml-network.vcproj
+++ b/CSFML/VC2005/csfml-network.vcproj
@@ -397,6 +397,10 @@
RelativePath="..\include\SFML\Network\SocketUDP.h"
>
+
+
diff --git a/CSFML/VC2005/csfml-system.vcproj b/CSFML/VC2005/csfml-system.vcproj
index d12b4266f..ce772a8fb 100644
--- a/CSFML/VC2005/csfml-system.vcproj
+++ b/CSFML/VC2005/csfml-system.vcproj
@@ -377,6 +377,10 @@
RelativePath="..\include\SFML\System\Thread.h"
>
+
+
diff --git a/CSFML/VC2005/csfml-window.vcproj b/CSFML/VC2005/csfml-window.vcproj
index e6de9907b..34d53f4b8 100644
--- a/CSFML/VC2005/csfml-window.vcproj
+++ b/CSFML/VC2005/csfml-window.vcproj
@@ -361,6 +361,10 @@
RelativePath="..\include\SFML\Window\Input.h"
>
+
+
diff --git a/CSFML/VC2008/csfml-audio.vcproj b/CSFML/VC2008/csfml-audio.vcproj
index b9ea96075..6eb1a0b88 100644
--- a/CSFML/VC2008/csfml-audio.vcproj
+++ b/CSFML/VC2008/csfml-audio.vcproj
@@ -400,6 +400,10 @@
RelativePath="..\include\SFML\Audio\SoundStream.h"
>
+
+
diff --git a/CSFML/VC2008/csfml-graphics.vcproj b/CSFML/VC2008/csfml-graphics.vcproj
index 891c51ded..d9e50bf98 100644
--- a/CSFML/VC2008/csfml-graphics.vcproj
+++ b/CSFML/VC2008/csfml-graphics.vcproj
@@ -431,6 +431,10 @@
RelativePath="..\include\SFML\Graphics\String.h"
>
+
+
diff --git a/CSFML/VC2008/csfml-network.vcproj b/CSFML/VC2008/csfml-network.vcproj
index 33de31d5d..6ce4f1197 100644
--- a/CSFML/VC2008/csfml-network.vcproj
+++ b/CSFML/VC2008/csfml-network.vcproj
@@ -396,6 +396,10 @@
RelativePath="..\include\SFML\Network\SocketUDP.h"
>
+
+
diff --git a/CSFML/VC2008/csfml-system.vcproj b/CSFML/VC2008/csfml-system.vcproj
index ab2741fce..f4a18db7a 100644
--- a/CSFML/VC2008/csfml-system.vcproj
+++ b/CSFML/VC2008/csfml-system.vcproj
@@ -376,6 +376,10 @@
RelativePath="..\include\SFML\System\Thread.h"
>
+
+
diff --git a/CSFML/VC2008/csfml-window.vcproj b/CSFML/VC2008/csfml-window.vcproj
index 68535ba3a..55ade5131 100644
--- a/CSFML/VC2008/csfml-window.vcproj
+++ b/CSFML/VC2008/csfml-window.vcproj
@@ -360,6 +360,10 @@
RelativePath="..\include\SFML\Window\Input.h"
>
+
+
diff --git a/CSFML/codeblocks/csfml-audio.cbp b/CSFML/codeblocks/csfml-audio.cbp
index 2e5bcde2b..5c8d9be1d 100644
--- a/CSFML/codeblocks/csfml-audio.cbp
+++ b/CSFML/codeblocks/csfml-audio.cbp
@@ -123,6 +123,7 @@
+
diff --git a/CSFML/codeblocks/csfml-graphics.cbp b/CSFML/codeblocks/csfml-graphics.cbp
index 3f2e39ab5..d51804033 100644
--- a/CSFML/codeblocks/csfml-graphics.cbp
+++ b/CSFML/codeblocks/csfml-graphics.cbp
@@ -7,7 +7,7 @@
-
+
@@ -31,7 +31,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
@@ -83,7 +83,7 @@
-
+
@@ -132,6 +132,7 @@
+
@@ -145,7 +146,6 @@
-
diff --git a/CSFML/codeblocks/csfml-network.cbp b/CSFML/codeblocks/csfml-network.cbp
index c9a0f6950..46ba432e2 100644
--- a/CSFML/codeblocks/csfml-network.cbp
+++ b/CSFML/codeblocks/csfml-network.cbp
@@ -114,6 +114,7 @@
+
diff --git a/CSFML/codeblocks/csfml-system.cbp b/CSFML/codeblocks/csfml-system.cbp
index d25898c18..63034b4e1 100644
--- a/CSFML/codeblocks/csfml-system.cbp
+++ b/CSFML/codeblocks/csfml-system.cbp
@@ -104,6 +104,7 @@
+
diff --git a/CSFML/codeblocks/csfml-window.cbp b/CSFML/codeblocks/csfml-window.cbp
index b6c8a389d..b26977648 100644
--- a/CSFML/codeblocks/csfml-window.cbp
+++ b/CSFML/codeblocks/csfml-window.cbp
@@ -1,135 +1,135 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CSFML/include/SFML/Audio/Music.h b/CSFML/include/SFML/Audio/Music.h
index 256cfaf84..cc87f42a1 100644
--- a/CSFML/include/SFML/Audio/Music.h
+++ b/CSFML/include/SFML/Audio/Music.h
@@ -30,13 +30,7 @@
////////////////////////////////////////////////////////////
#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfMusic defines a big sound played using streaming,
-/// so usually what we call a music :)
-////////////////////////////////////////////////////////////
-typedef struct sfMusic sfMusic;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Audio/Sound.h b/CSFML/include/SFML/Audio/Sound.h
index c749b59a4..eb7b2d443 100644
--- a/CSFML/include/SFML/Audio/Sound.h
+++ b/CSFML/include/SFML/Audio/Sound.h
@@ -29,15 +29,8 @@
// Headers
////////////////////////////////////////////////////////////
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfSound defines the properties of the sound such as position,
-/// volume, pitch, etc.
-////////////////////////////////////////////////////////////
-typedef struct sfSound sfSound;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Audio/SoundBuffer.h b/CSFML/include/SFML/Audio/SoundBuffer.h
index 5c6c16856..6740b9720 100644
--- a/CSFML/include/SFML/Audio/SoundBuffer.h
+++ b/CSFML/include/SFML/Audio/SoundBuffer.h
@@ -29,13 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfSoundBuffer is the low-level for loading and manipulating
-/// sound buffers
-////////////////////////////////////////////////////////////
-typedef struct sfSoundBuffer sfSoundBuffer;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Audio/SoundBufferRecorder.h b/CSFML/include/SFML/Audio/SoundBufferRecorder.h
index ee94e0414..4b2735538 100644
--- a/CSFML/include/SFML/Audio/SoundBufferRecorder.h
+++ b/CSFML/include/SFML/Audio/SoundBufferRecorder.h
@@ -29,14 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-#include
-
-
-////////////////////////////////////////////////////////////
-/// Specialized sfSoundRecorder which saves the captured
-/// audio data into a sound buffer
-////////////////////////////////////////////////////////////
-typedef struct sfSoundBufferRecorder sfSoundBufferRecorder;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Audio/SoundRecorder.h b/CSFML/include/SFML/Audio/SoundRecorder.h
index 2e62c31e0..d8d00cebe 100644
--- a/CSFML/include/SFML/Audio/SoundRecorder.h
+++ b/CSFML/include/SFML/Audio/SoundRecorder.h
@@ -29,14 +29,9 @@
// Headers
////////////////////////////////////////////////////////////
#include
-#include
+#include
-////////////////////////////////////////////////////////////
-/// sfSoundRecorder is an interface for capturing sound data
-////////////////////////////////////////////////////////////
-typedef struct sfSoundRecorder sfSoundRecorder;
-
typedef sfBool (*sfSoundRecorderStartCallback)(void*); ///< Type of the callback used when starting a capture
typedef sfBool (*sfSoundRecorderProcessCallback)(const sfInt16*, size_t, void*); ///< Type of the callback used to process audio data
typedef void (*sfSoundRecorderStopCallback)(void*); ///< Type of the callback used when stopping a capture
diff --git a/CSFML/include/SFML/Audio/SoundStream.h b/CSFML/include/SFML/Audio/SoundStream.h
index fa3b61639..9b3f0f960 100644
--- a/CSFML/include/SFML/Audio/SoundStream.h
+++ b/CSFML/include/SFML/Audio/SoundStream.h
@@ -30,16 +30,9 @@
////////////////////////////////////////////////////////////
#include
#include
+#include
-////////////////////////////////////////////////////////////
-/// sfSoundStream is a streamed sound, ie samples are acquired
-/// while the sound is playing. Use it for big sound that would
-/// require hundreds of MB in memory (see sfMusic),
-/// or for streaming sound from the network
-////////////////////////////////////////////////////////////
-typedef struct sfSoundStream sfSoundStream;
-
////////////////////////////////////////////////////////////
/// sfSoundStreamChunk defines the data to fill by the
/// OnGetData callback
diff --git a/CSFML/include/SFML/Audio/Types.h b/CSFML/include/SFML/Audio/Types.h
new file mode 100644
index 000000000..297c311d4
--- /dev/null
+++ b/CSFML/include/SFML/Audio/Types.h
@@ -0,0 +1,37 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008-2008 Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_AUDIO_TYPES_H
+#define SFML_AUDIO_TYPES_H
+
+
+typedef struct sfMusic sfMusic;
+typedef struct sfSound sfSound;
+typedef struct sfSoundBuffer sfSoundBuffer;
+typedef struct sfSoundBufferRecorder sfSoundBufferRecorder;
+typedef struct sfSoundRecorder sfSoundRecorder;
+typedef struct sfSoundStream sfSoundStream;
+
+
+#endif // SFML_AUDIO_TYPES_H
diff --git a/CSFML/include/SFML/Graphics/Font.h b/CSFML/include/SFML/Graphics/Font.h
index 9235af18c..cb092a438 100644
--- a/CSFML/include/SFML/Graphics/Font.h
+++ b/CSFML/include/SFML/Graphics/Font.h
@@ -29,13 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfFont is the low-level class for loading and
-/// manipulating character fonts (see sfString)
-////////////////////////////////////////////////////////////
-typedef struct sfFont sfFont;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/Image.h b/CSFML/include/SFML/Graphics/Image.h
index 5c96c7409..8ed7b1b77 100644
--- a/CSFML/include/SFML/Graphics/Image.h
+++ b/CSFML/include/SFML/Graphics/Image.h
@@ -31,16 +31,7 @@
#include
#include
#include
-
-
-typedef struct sfRenderWindow sfRenderWindow;
-
-
-////////////////////////////////////////////////////////////
-/// sfImage is the low-level class for loading and
-/// manipulating images
-////////////////////////////////////////////////////////////
-typedef struct sfImage sfImage;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/PostFX.h b/CSFML/include/SFML/Graphics/PostFX.h
index 53b7d558c..e1c355302 100644
--- a/CSFML/include/SFML/Graphics/PostFX.h
+++ b/CSFML/include/SFML/Graphics/PostFX.h
@@ -29,13 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-#include
-
-
-////////////////////////////////////////////////////////////
-/// PostFX is used to apply a post effect to a window
-////////////////////////////////////////////////////////////
-typedef struct sfPostFX sfPostFX;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/RenderWindow.h b/CSFML/include/SFML/Graphics/RenderWindow.h
index 2f97f57ff..a1c2e5219 100644
--- a/CSFML/include/SFML/Graphics/RenderWindow.h
+++ b/CSFML/include/SFML/Graphics/RenderWindow.h
@@ -30,25 +30,12 @@
////////////////////////////////////////////////////////////
#include
#include
-#include
-#include
#include
-#include
-#include
-#include
-#include
+#include
#include
-#include
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfRenderWindow is a simple wrapper for sfWindow that
-/// allows easy 2D rendering
-////////////////////////////////////////////////////////////
-typedef struct sfRenderWindow sfRenderWindow;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/Shape.h b/CSFML/include/SFML/Graphics/Shape.h
index a71d6852c..1f9ed57b8 100644
--- a/CSFML/include/SFML/Graphics/Shape.h
+++ b/CSFML/include/SFML/Graphics/Shape.h
@@ -31,14 +31,7 @@
#include
#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfShape defines a drawable convex Shape ; it also defines
-/// helper functions to draw simple Shapes like
-/// lines, rectangles, circles, etc.
-////////////////////////////////////////////////////////////
-typedef struct sfShape sfShape;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/Sprite.h b/CSFML/include/SFML/Graphics/Sprite.h
index ae0bbfa7a..dabaac29a 100644
--- a/CSFML/include/SFML/Graphics/Sprite.h
+++ b/CSFML/include/SFML/Graphics/Sprite.h
@@ -31,15 +31,8 @@
#include
#include
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfSprite defines a sprite : texture, transformations,
-/// color, and draw on screen
-////////////////////////////////////////////////////////////
-typedef struct sfSprite sfSprite;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/String.h b/CSFML/include/SFML/Graphics/String.h
index 41e5a1156..6a6dee4d1 100644
--- a/CSFML/include/SFML/Graphics/String.h
+++ b/CSFML/include/SFML/Graphics/String.h
@@ -31,14 +31,8 @@
#include
#include
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfString defines a graphical 2D text, that can be drawn on screen
-////////////////////////////////////////////////////////////
-typedef struct sfString sfString;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Graphics/Types.h b/CSFML/include/SFML/Graphics/Types.h
new file mode 100644
index 000000000..26e99f083
--- /dev/null
+++ b/CSFML/include/SFML/Graphics/Types.h
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008 Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_GRAPHICS_TYPES_H
+#define SFML_GRAPHICS_TYPES_H
+
+
+typedef struct sfFont sfFont;
+typedef struct sfImage sfImage;
+typedef struct sfPostFX sfPostFX;
+typedef struct sfRenderWindow sfRenderWindow;
+typedef struct sfShape sfShape;
+typedef struct sfSprite sfSprite;
+typedef struct sfString sfString;
+typedef struct sfView sfView;
+
+
+#endif // SFML_GRAPHICS_TYPES_H
diff --git a/CSFML/include/SFML/Graphics/View.h b/CSFML/include/SFML/Graphics/View.h
index d648929d7..9814c9337 100644
--- a/CSFML/include/SFML/Graphics/View.h
+++ b/CSFML/include/SFML/Graphics/View.h
@@ -30,13 +30,7 @@
////////////////////////////////////////////////////////////
#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// This class defines a view (position, size, etc.) ;
-/// you can consider it as a 2D camera
-////////////////////////////////////////////////////////////
-typedef struct sfView sfView;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Network/Ftp.h b/CSFML/include/SFML/Network/Ftp.h
index 1122e1cb0..9baa794f9 100644
--- a/CSFML/include/SFML/Network/Ftp.h
+++ b/CSFML/include/SFML/Network/Ftp.h
@@ -30,6 +30,7 @@
////////////////////////////////////////////////////////////
#include
#include
+#include
////////////////////////////////////////////////////////////
@@ -110,16 +111,6 @@ enum sfFtpStatus
};
-////////////////////////////////////////////////////////////
-/// sfFtpListingResponse wraps a FTP directory listing response,
-/// which is basically :
-/// - a status code
-/// - a message
-/// - a list of directory and files
-////////////////////////////////////////////////////////////
-typedef struct sfFtpListingResponse sfFtpListingResponse;
-
-
////////////////////////////////////////////////////////////
/// Destroy an existing Ftp listing response
///
@@ -180,16 +171,6 @@ CSFML_API size_t sfFtpListingResponse_GetCount(sfFtpListingResponse* FtpListingR
////////////////////////////////////////////////////////////
CSFML_API const char* sfFtpListingResponse_GetFilename(sfFtpListingResponse* FtpListingResponse, size_t Index);
-
-////////////////////////////////////////////////////////////
-/// sfFtpDirectoryResponse wraps a FTP directory response, which is basically :
-/// - a status code
-/// - a message
-/// - a directory name
-////////////////////////////////////////////////////////////
-typedef struct sfFtpDirectoryResponse sfFtpDirectoryResponse;
-
-
////////////////////////////////////////////////////////////
/// Destroy an existing Ftp directory response
///
@@ -240,14 +221,6 @@ CSFML_API const char* sfFtpDirectoryResponse_GetMessage(sfFtpDirectoryResponse*
CSFML_API const char* sfFtpDirectoryResponse_GetDirectory(sfFtpDirectoryResponse* FtpDirectoryResponse);
-////////////////////////////////////////////////////////////
-/// sfFtpResponse wraps a FTP response, which is basically :
-/// - a status code
-/// - a message
-////////////////////////////////////////////////////////////
-typedef struct sfFtpResponse sfFtpResponse;
-
-
////////////////////////////////////////////////////////////
/// Destroy an existing Ftp response
///
@@ -287,16 +260,6 @@ CSFML_API sfFtpStatus sfFtpResponse_GetStatus(sfFtpResponse* FtpResponse);
////////////////////////////////////////////////////////////
CSFML_API const char* sfFtpResponse_GetMessage(sfFtpResponse* FtpResponse);
-
-////////////////////////////////////////////////////////////
-/// sfFtp provides methods for manipulating the FTP
-/// protocol (described in RFC 959).
-/// It provides easy access and transfers to remote
-/// directories and files on a FTP server
-////////////////////////////////////////////////////////////
-typedef struct sfFtp sfFtp;
-
-
////////////////////////////////////////////////////////////
/// Construct a new Ftp
///
diff --git a/CSFML/include/SFML/Network/Http.h b/CSFML/include/SFML/Network/Http.h
index 261b876d1..d34b0ad12 100644
--- a/CSFML/include/SFML/Network/Http.h
+++ b/CSFML/include/SFML/Network/Http.h
@@ -29,6 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
+#include
////////////////////////////////////////////////////////////
@@ -78,14 +79,6 @@ enum sfHttpStatus
};
-////////////////////////////////////////////////////////////
-/// sfHttpRequest wraps an HTTP request, which is basically :
-/// - a header with a method, a target URI, and a set of field/value pairs
-/// - an optional body (for POST requests)
-////////////////////////////////////////////////////////////
-typedef struct sfHttpRequest sfHttpRequest;
-
-
////////////////////////////////////////////////////////////
/// Construct a new Http request
///
@@ -154,15 +147,6 @@ CSFML_API void sfHttpRequest_SetHttpVersion(sfHttpRequest* HttpRequest, unsigned
////////////////////////////////////////////////////////////
CSFML_API void sfHttpRequest_SetBody(sfHttpRequest* HttpRequest, const char* Body);
-
-////////////////////////////////////////////////////////////
-/// sfHttpResponse wraps an HTTP response, which is basically :
-/// - a header with a status code and a set of field/value pairs
-/// - a body (the content of the requested resource)
-////////////////////////////////////////////////////////////
-typedef struct sfHttpResponse sfHttpResponse;
-
-
////////////////////////////////////////////////////////////
/// Destroy an existing Http response
///
@@ -226,15 +210,6 @@ CSFML_API unsigned int sfHttpResponse_GetMinorVersion(sfHttpResponse* HttpRespon
////////////////////////////////////////////////////////////
CSFML_API const char* sfHttpResponse_GetBody(sfHttpResponse* HttpResponse);
-
-////////////////////////////////////////////////////////////
-/// sfHttp provides methods for manipulating the HTTP
-/// protocol (described in RFC 1945).
-/// It can connect to a website, get its files, send requests, etc.
-////////////////////////////////////////////////////////////
-typedef struct sfHttp sfHttp;
-
-
////////////////////////////////////////////////////////////
/// Construct a new Http object
///
diff --git a/CSFML/include/SFML/Network/Packet.h b/CSFML/include/SFML/Network/Packet.h
index 6d2a9bbd0..a07272660 100644
--- a/CSFML/include/SFML/Network/Packet.h
+++ b/CSFML/include/SFML/Network/Packet.h
@@ -29,12 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfPacket wraps data to send / to receive through the network
-////////////////////////////////////////////////////////////
-typedef struct sfPacket sfPacket;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Network/Selector.h b/CSFML/include/SFML/Network/Selector.h
index 7c74e5434..879a4e4f5 100644
--- a/CSFML/include/SFML/Network/Selector.h
+++ b/CSFML/include/SFML/Network/Selector.h
@@ -29,16 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-#include
-#include
-
-
-////////////////////////////////////////////////////////////
-/// sfSelectorTCP and sfSelectorUDP allow reading from multiple sockets
-/// without blocking. It's a kind of multiplexer
-////////////////////////////////////////////////////////////
-typedef struct sfSelectorTCP sfSelectorTCP;
-typedef struct sfSelectorUDP sfSelectorUDP;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Network/SocketTCP.h b/CSFML/include/SFML/Network/SocketTCP.h
index a0912383c..7dc2a524b 100644
--- a/CSFML/include/SFML/Network/SocketTCP.h
+++ b/CSFML/include/SFML/Network/SocketTCP.h
@@ -30,15 +30,8 @@
////////////////////////////////////////////////////////////
#include
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// SocketTCP wraps a socket using TCP protocol to
-/// send data safely (but a bit slower)
-////////////////////////////////////////////////////////////
-typedef struct sfSocketTCP sfSocketTCP;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Network/SocketUDP.h b/CSFML/include/SFML/Network/SocketUDP.h
index a43f87fd0..c4aa9a95b 100644
--- a/CSFML/include/SFML/Network/SocketUDP.h
+++ b/CSFML/include/SFML/Network/SocketUDP.h
@@ -30,15 +30,8 @@
////////////////////////////////////////////////////////////
#include
#include
-#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfSocketUDP wraps a socket using UDP protocol to
-/// send data fastly (but with less safety)
-////////////////////////////////////////////////////////////
-typedef struct sfSocketUDP sfSocketUDP;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Network/Types.h b/CSFML/include/SFML/Network/Types.h
new file mode 100644
index 000000000..a0a770fa2
--- /dev/null
+++ b/CSFML/include/SFML/Network/Types.h
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008-2008 Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_NETWORK_TYPES_H
+#define SFML_NETWORK_TYPES_H
+
+
+typedef struct sfFtpDirectoryResponse sfFtpDirectoryResponse;
+typedef struct sfFtpListingResponse sfFtpListingResponse;
+typedef struct sfFtpResponse sfFtpResponse;
+typedef struct sfFtp sfFtp;
+typedef struct sfHttpRequest sfHttpRequest;
+typedef struct sfHttpResponse sfHttpResponse;
+typedef struct sfHttp sfHttp;
+typedef struct sfPacket sfPacket;
+typedef struct sfSelectorTCP sfSelectorTCP;
+typedef struct sfSelectorUDP sfSelectorUDP;
+typedef struct sfSocketTCP sfSocketTCP;
+typedef struct sfSocketUDP sfSocketUDP;
+
+
+#endif // SFML_NETWORK_TYPES_H
diff --git a/CSFML/include/SFML/System/Clock.h b/CSFML/include/SFML/System/Clock.h
index dee4f06f9..f7a22fd84 100644
--- a/CSFML/include/SFML/System/Clock.h
+++ b/CSFML/include/SFML/System/Clock.h
@@ -29,13 +29,9 @@
// Headers
////////////////////////////////////////////////////////////
#include
+#include
-////////////////////////////////////////////////////////////
-/// sfClock is an utility structure for manipulating time
-////////////////////////////////////////////////////////////
-typedef struct sfClock sfClock;
-
////////////////////////////////////////////////////////////
/// Create a new clock and start it
///
diff --git a/CSFML/include/SFML/System/Mutex.h b/CSFML/include/SFML/System/Mutex.h
index 9aaddb6cc..f40ee18a2 100644
--- a/CSFML/include/SFML/System/Mutex.h
+++ b/CSFML/include/SFML/System/Mutex.h
@@ -29,15 +29,9 @@
// Headers
////////////////////////////////////////////////////////////
#include
+#include
-////////////////////////////////////////////////////////////
-/// sfMutex defines a mutex (MUTual EXclusion) object,
-/// that allows a thread to lock critical instructions
-/// to avoid simultaneous access with other threads.
-////////////////////////////////////////////////////////////
-typedef struct sfMutex sfMutex;
-
////////////////////////////////////////////////////////////
/// Create a new mutex
///
diff --git a/CSFML/include/SFML/System/Thread.h b/CSFML/include/SFML/System/Thread.h
index ee7656862..608146e3d 100644
--- a/CSFML/include/SFML/System/Thread.h
+++ b/CSFML/include/SFML/System/Thread.h
@@ -29,12 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfThread defines an easy way to manipulate a thread
-////////////////////////////////////////////////////////////
-typedef struct sfThread sfThread;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/System/Types.h b/CSFML/include/SFML/System/Types.h
new file mode 100644
index 000000000..9519907d9
--- /dev/null
+++ b/CSFML/include/SFML/System/Types.h
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008-2008 Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_SYSTEM_TYPES_H
+#define SFML_SYSTEM_TYPES_H
+
+
+typedef struct sfClock sfClock;
+typedef struct sfMutex sfMutex;
+typedef struct sfThread sfThread;
+
+
+#endif // SFML_SYSTEM_TYPES_H
diff --git a/CSFML/include/SFML/Window/Context.h b/CSFML/include/SFML/Window/Context.h
index 52f228896..29650a4f9 100644
--- a/CSFML/include/SFML/Window/Context.h
+++ b/CSFML/include/SFML/Window/Context.h
@@ -29,14 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
-
-
-////////////////////////////////////////////////////////////
-/// Class wrapping an OpenGL context with no window.
-/// This class is for internal use mainly, it is required
-/// to solve tricky problems involving multi-threading
-////////////////////////////////////////////////////////////
-typedef struct sfContext sfContext;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Window/Input.h b/CSFML/include/SFML/Window/Input.h
index b57753ed8..730a2e7bb 100644
--- a/CSFML/include/SFML/Window/Input.h
+++ b/CSFML/include/SFML/Window/Input.h
@@ -30,14 +30,7 @@
////////////////////////////////////////////////////////////
#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfInput handles real-time input from keyboard and mouse.
-/// Use it instead of events to handle continuous moves and more
-/// game-friendly inputs
-////////////////////////////////////////////////////////////
-typedef struct sfInput sfInput;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/include/SFML/Window/Types.h b/CSFML/include/SFML/Window/Types.h
new file mode 100644
index 000000000..ef988994d
--- /dev/null
+++ b/CSFML/include/SFML/Window/Types.h
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008-2008 Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_WINDOW_TYPES_H
+#define SFML_WINDOW_TYPES_H
+
+
+typedef struct sfContext sfContext;
+typedef struct sfInput sfInput;
+typedef struct sfWindow sfWindow;
+
+
+#endif // SFML_WINDOW_TYPES_H
diff --git a/CSFML/include/SFML/Window/Window.h b/CSFML/include/SFML/Window/Window.h
index a8cc22f8d..5d27fcc90 100644
--- a/CSFML/include/SFML/Window/Window.h
+++ b/CSFML/include/SFML/Window/Window.h
@@ -30,16 +30,9 @@
////////////////////////////////////////////////////////////
#include
#include
-#include
#include
#include
-
-
-////////////////////////////////////////////////////////////
-/// sfWindow is a rendering window ; it can create a new window
-/// or connect to an existing one
-////////////////////////////////////////////////////////////
-typedef struct sfWindow sfWindow;
+#include
////////////////////////////////////////////////////////////
diff --git a/CSFML/src/SFML/Graphics/String.cpp b/CSFML/src/SFML/Graphics/String.cpp
index a9f3db47c..ef360a310 100644
--- a/CSFML/src/SFML/Graphics/String.cpp
+++ b/CSFML/src/SFML/Graphics/String.cpp
@@ -26,6 +26,7 @@
// Headers
////////////////////////////////////////////////////////////
#include
+#include
#include
#include
#include