src/locale/winrt/SDL_syslocale.c
changeset 13797 55ec5ae4aa0b
child 13835 3f63f707ca4f
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/locale/winrt/SDL_syslocale.c	Mon May 04 02:27:29 2020 -0400
     1.3 @@ -0,0 +1,58 @@
     1.4 +/*
     1.5 +  Simple DirectMedia Layer
     1.6 +  Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
     1.7 +
     1.8 +  This software is provided 'as-is', without any express or implied
     1.9 +  warranty.  In no event will the authors be held liable for any damages
    1.10 +  arising from the use of this software.
    1.11 +
    1.12 +  Permission is granted to anyone to use this software for any purpose,
    1.13 +  including commercial applications, and to alter it and redistribute it
    1.14 +  freely, subject to the following restrictions:
    1.15 +
    1.16 +  1. The origin of this software must not be misrepresented; you must not
    1.17 +     claim that you wrote the original software. If you use this software
    1.18 +     in a product, an acknowledgment in the product documentation would be
    1.19 +     appreciated but is not required.
    1.20 +  2. Altered source versions must be plainly marked as such, and must not be
    1.21 +     misrepresented as being the original software.
    1.22 +  3. This notice may not be removed or altered from any source distribution.
    1.23 +*/
    1.24 +
    1.25 +#include <Windows.h>
    1.26 +
    1.27 +#include "../../SDL_internal.h"
    1.28 +#include "../SDL_syslocale.h"
    1.29 +
    1.30 +/*using namespace Windows::Graphics::Display;*/
    1.31 +#include <wchar.h>
    1.32 +
    1.33 +void
    1.34 +SDL_SYS_GetPreferredLocales(char *buf, size_t buflen)
    1.35 +{
    1.36 +    WCHAR wbuffer[128] = L"";
    1.37 +    int ret = 0;
    1.38 +
    1.39 +    /* !!! FIXME: do we not have GetUserPreferredUILanguages on WinPhone or UWP? */
    1.40 +# if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
    1.41 +    ret = GetLocaleInfoEx(LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_SNAME, wbuffer, SDL_arraylen(wbuffer));
    1.42 +# else
    1.43 +    ret = GetSystemDefaultLocaleName(wbuffer, SDL_arraysize(wbuffer));
    1.44 +# endif
    1.45 +
    1.46 +    if (ret > 0)
    1.47 +    {
    1.48 +        /* Need to convert LPWSTR to LPSTR, that is wide char to char. */
    1.49 +        int i;
    1.50 +
    1.51 +        if (ret >= (buflen - 1) ) {
    1.52 +            ret = (int) (buflen - 1);
    1.53 +        }
    1.54 +        for (i = 0; i < ret; i++) {
    1.55 +            buf[i] = (char) wbuffer[i];  /* assume this was ASCII anyhow. */
    1.56 +        }
    1.57 +    }
    1.58 +}
    1.59 +
    1.60 +/* vi: set ts=4 sw=4 expandtab: */
    1.61 +