mirror of
https://github.com/SFML/SFML.git
synced 2024-11-28 22:31:09 +08:00
Removed support for Windows 9x (required deprecated functions) (#469)
This commit is contained in:
parent
b8f15d5a71
commit
cd68d66204
@ -49,6 +49,9 @@ if(WINDOWS)
|
|||||||
${SRCROOT}/Win32/WindowImplWin32.hpp
|
${SRCROOT}/Win32/WindowImplWin32.hpp
|
||||||
)
|
)
|
||||||
source_group("windows" FILES ${PLATFORM_SRC})
|
source_group("windows" FILES ${PLATFORM_SRC})
|
||||||
|
|
||||||
|
# make sure that we use the Unicode version of the Win API functions
|
||||||
|
add_definitions(-DUNICODE)
|
||||||
elseif(LINUX)
|
elseif(LINUX)
|
||||||
set(PLATFORM_SRC
|
set(PLATFORM_SRC
|
||||||
${SRCROOT}/Linux/Display.cpp
|
${SRCROOT}/Linux/Display.cpp
|
||||||
|
@ -55,8 +55,7 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
unsigned int windowCount = 0;
|
unsigned int windowCount = 0;
|
||||||
const char* classNameA = "SFML_Window";
|
const wchar_t* className = L"SFML_Window";
|
||||||
const wchar_t* classNameW = L"SFML_Window";
|
|
||||||
sf::priv::WindowImplWin32* fullscreenWindow = NULL;
|
sf::priv::WindowImplWin32* fullscreenWindow = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,14 +132,7 @@ m_mouseInside (false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create the window
|
// Create the window
|
||||||
if (hasUnicodeSupport())
|
m_handle = CreateWindow(className, title.toWideString().c_str(), win32Style, left, top, width, height, NULL, NULL, GetModuleHandle(NULL), this);
|
||||||
{
|
|
||||||
m_handle = CreateWindowW(classNameW, title.toWideString().c_str(), win32Style, left, top, width, height, NULL, NULL, GetModuleHandle(NULL), this);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_handle = CreateWindowA(classNameA, title.toAnsiString().c_str(), win32Style, left, top, width, height, NULL, NULL, GetModuleHandle(NULL), this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// By default, the OS limits the size of the window the the desktop size,
|
// By default, the OS limits the size of the window the the desktop size,
|
||||||
// we have to resize it after creation to apply the real size
|
// we have to resize it after creation to apply the real size
|
||||||
@ -173,16 +165,7 @@ WindowImplWin32::~WindowImplWin32()
|
|||||||
|
|
||||||
// Unregister window class if we were the last window
|
// Unregister window class if we were the last window
|
||||||
if (windowCount == 0)
|
if (windowCount == 0)
|
||||||
{
|
UnregisterClass(className, GetModuleHandle(NULL));
|
||||||
if (hasUnicodeSupport())
|
|
||||||
{
|
|
||||||
UnregisterClassW(classNameW, GetModuleHandle(NULL));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnregisterClassA(classNameA, GetModuleHandle(NULL));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -259,14 +242,7 @@ void WindowImplWin32::setSize(const Vector2u& size)
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
void WindowImplWin32::setTitle(const String& title)
|
void WindowImplWin32::setTitle(const String& title)
|
||||||
{
|
{
|
||||||
if (hasUnicodeSupport())
|
SetWindowText(m_handle, title.toWideString().c_str());
|
||||||
{
|
|
||||||
SetWindowTextW(m_handle, title.toWideString().c_str());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetWindowTextA(m_handle, title.toAnsiString().c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -332,36 +308,18 @@ void WindowImplWin32::setKeyRepeatEnabled(bool enabled)
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
void WindowImplWin32::registerWindowClass()
|
void WindowImplWin32::registerWindowClass()
|
||||||
{
|
{
|
||||||
if (hasUnicodeSupport())
|
WNDCLASSW windowClass;
|
||||||
{
|
windowClass.style = 0;
|
||||||
WNDCLASSW windowClass;
|
windowClass.lpfnWndProc = &WindowImplWin32::globalOnEvent;
|
||||||
windowClass.style = 0;
|
windowClass.cbClsExtra = 0;
|
||||||
windowClass.lpfnWndProc = &WindowImplWin32::globalOnEvent;
|
windowClass.cbWndExtra = 0;
|
||||||
windowClass.cbClsExtra = 0;
|
windowClass.hInstance = GetModuleHandle(NULL);
|
||||||
windowClass.cbWndExtra = 0;
|
windowClass.hIcon = NULL;
|
||||||
windowClass.hInstance = GetModuleHandle(NULL);
|
windowClass.hCursor = 0;
|
||||||
windowClass.hIcon = NULL;
|
windowClass.hbrBackground = 0;
|
||||||
windowClass.hCursor = 0;
|
windowClass.lpszMenuName = NULL;
|
||||||
windowClass.hbrBackground = 0;
|
windowClass.lpszClassName = className;
|
||||||
windowClass.lpszMenuName = NULL;
|
RegisterClass(&windowClass);
|
||||||
windowClass.lpszClassName = classNameW;
|
|
||||||
RegisterClassW(&windowClass);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WNDCLASSA windowClass;
|
|
||||||
windowClass.style = 0;
|
|
||||||
windowClass.lpfnWndProc = &WindowImplWin32::globalOnEvent;
|
|
||||||
windowClass.cbClsExtra = 0;
|
|
||||||
windowClass.cbWndExtra = 0;
|
|
||||||
windowClass.hInstance = GetModuleHandle(NULL);
|
|
||||||
windowClass.hIcon = NULL;
|
|
||||||
windowClass.hCursor = 0;
|
|
||||||
windowClass.hbrBackground = 0;
|
|
||||||
windowClass.lpszMenuName = NULL;
|
|
||||||
windowClass.lpszClassName = classNameA;
|
|
||||||
RegisterClassA(&windowClass);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -929,24 +887,6 @@ Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
|
||||||
bool WindowImplWin32::hasUnicodeSupport()
|
|
||||||
{
|
|
||||||
OSVERSIONINFO version;
|
|
||||||
ZeroMemory(&version, sizeof(version));
|
|
||||||
version.dwOSVersionInfoSize = sizeof(version);
|
|
||||||
|
|
||||||
if (GetVersionEx(&version))
|
|
||||||
{
|
|
||||||
return version.dwPlatformId == VER_PLATFORM_WIN32_NT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
LRESULT CALLBACK WindowImplWin32::globalOnEvent(HWND handle, UINT message, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK WindowImplWin32::globalOnEvent(HWND handle, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
@ -980,9 +920,7 @@ LRESULT CALLBACK WindowImplWin32::globalOnEvent(HWND handle, UINT message, WPARA
|
|||||||
if ((message == WM_SYSCOMMAND) && (wParam == SC_KEYMENU))
|
if ((message == WM_SYSCOMMAND) && (wParam == SC_KEYMENU))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
static const bool hasUnicode = hasUnicodeSupport();
|
return DefWindowProc(handle, message, wParam, lParam);
|
||||||
return hasUnicode ? DefWindowProcW(handle, message, wParam, lParam) :
|
|
||||||
DefWindowProcA(handle, message, wParam, lParam);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace priv
|
} // namespace priv
|
||||||
|
@ -212,17 +212,6 @@ private :
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags);
|
static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
|
||||||
/// \brief Check if the current version of the OS supports
|
|
||||||
/// unicode messages and functions ; Windows 95/98/Me
|
|
||||||
/// may not support it, whereas Windows NT/2000/XP/Vista
|
|
||||||
/// will
|
|
||||||
///
|
|
||||||
/// \return True if the OS supports unicode
|
|
||||||
///
|
|
||||||
////////////////////////////////////////////////////////////
|
|
||||||
static bool hasUnicodeSupport();
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
/// \brief Function called whenever one of our windows receives a message
|
/// \brief Function called whenever one of our windows receives a message
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user