Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libSDL
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
libSDL
Commits
aa7b525b
Commit
aa7b525b
authored
Aug 03, 2010
by
dewyatt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Large commit with initial reading string support, TSF UILess code, etc.
parent
12881b42
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
947 additions
and
160 deletions
+947
-160
SDL_win32keyboard.c
src/video/win32/SDL_win32keyboard.c
+797
-65
SDL_win32video.h
src/video/win32/SDL_win32video.h
+150
-95
No files found.
src/video/win32/SDL_win32keyboard.c
View file @
aa7b525b
This diff is collapsed.
Click to expand it.
src/video/win32/SDL_win32video.h
View file @
aa7b525b
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2010 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#include "SDL_config.h"
#ifndef _SDL_win32video_h
#define _SDL_win32video_h
#include "../SDL_sysvideo.h"
#define WIN32_LEAN_AND_MEAN
#define STRICT
#define UNICODE
#undef WINVER
#define WINVER 0x500
/* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
#include <windows.h>
#if SDL_VIDEO_RENDER_D3D
//#include <d3d9.h>
#define D3D_DEBUG_INFO
#include "d3d9.h"
#endif
#if SDL_VIDEO_RENDER_DDRAW
/* WIN32_LEAN_AND_MEAN was defined, so we have to include this by hand */
#include <objbase.h>
#include "ddraw.h"
#endif
#include "SDL_win32clipboard.h"
#include "SDL_win32events.h"
#include "SDL_win32gamma.h"
#include "SDL_win32keyboard.h"
#include "SDL_win32modes.h"
#include "SDL_win32mouse.h"
#include "SDL_win32opengl.h"
#include "SDL_win32window.h"
#ifdef UNICODE
#define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "UCS-2", (char *)S, (SDL_wcslen(S)+1)*sizeof(WCHAR))
#define WIN_UTF8ToString(S) (WCHAR *)SDL_iconv_string("UCS-2", "UTF-8", (char *)S, SDL_strlen(S)+1)
#else
#define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "ASCII", (char *)S, (SDL_strlen(S)+1))
#define WIN_UTF8ToString(S) SDL_iconv_string("ASCII", "UTF-8", (char *)S, SDL_strlen(S)+1)
#endif
extern
void
WIN_SetError
(
const
char
*
prefix
);
/* Private display data */
typedef
struct
SDL_VideoData
{
#if SDL_VIDEO_RENDER_D3D
HANDLE
d3dDLL
;
IDirect3D9
*
d3d
;
#endif
#if SDL_VIDEO_RENDER_DDRAW
HANDLE
ddrawDLL
;
IDirectDraw
*
ddraw
;
#endif
const
SDL_scancode
*
key_layout
;
DWORD
clipboard_count
;
SDL_bool
ime_com_initialized
;
struct
ITfThreadMgr
*
ime_thread_mgr
;
SDL_bool
ime_initialized
;
SDL_bool
ime_enabled
;
SDL_bool
ime_available
;
HWND
ime_hwnd_main
;
HWND
ime_hwnd_current
;
HIMC
ime_himc
;
}
SDL_VideoData
;
#endif
/* _SDL_win32video_h */
/* vi: set ts=4 sw=4 expandtab: */
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2010 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#include "SDL_config.h"
#ifndef _SDL_win32video_h
#define _SDL_win32video_h
#include "../SDL_sysvideo.h"
#define WIN32_LEAN_AND_MEAN
#define STRICT
#define UNICODE
#undef WINVER
#define WINVER 0x500
/* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
#include <windows.h>
#include <msctf.h>
#if SDL_VIDEO_RENDER_D3D
//#include <d3d9.h>
#define D3D_DEBUG_INFO
#include "d3d9.h"
#endif
#if SDL_VIDEO_RENDER_DDRAW
/* WIN32_LEAN_AND_MEAN was defined, so we have to include this by hand */
#include <objbase.h>
#include "ddraw.h"
#endif
#include "SDL_win32clipboard.h"
#include "SDL_win32events.h"
#include "SDL_win32gamma.h"
#include "SDL_win32keyboard.h"
#include "SDL_win32modes.h"
#include "SDL_win32mouse.h"
#include "SDL_win32opengl.h"
#include "SDL_win32window.h"
#include "SDL_events.h"
#ifdef UNICODE
#define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "UCS-2", (char *)S, (SDL_wcslen(S)+1)*sizeof(WCHAR))
#define WIN_UTF8ToString(S) (WCHAR *)SDL_iconv_string("UCS-2", "UTF-8", (char *)S, SDL_strlen(S)+1)
#else
#define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "ASCII", (char *)S, (SDL_strlen(S)+1))
#define WIN_UTF8ToString(S) SDL_iconv_string("ASCII", "UTF-8", (char *)S, SDL_strlen(S)+1)
#endif
extern
void
WIN_SetError
(
const
char
*
prefix
);
typedef
struct
{
void
**
lpVtbl
;
int
refcount
;
void
*
data
;
}
TSFSink
;
// Definition from Win98DDK version of IMM.H
typedef
struct
tagINPUTCONTEXT2
{
HWND
hWnd
;
BOOL
fOpen
;
POINT
ptStatusWndPos
;
POINT
ptSoftKbdPos
;
DWORD
fdwConversion
;
DWORD
fdwSentence
;
union
{
LOGFONTA
A
;
LOGFONTW
W
;
}
lfFont
;
COMPOSITIONFORM
cfCompForm
;
CANDIDATEFORM
cfCandForm
[
4
];
HIMCC
hCompStr
;
HIMCC
hCandInfo
;
HIMCC
hGuideLine
;
HIMCC
hPrivate
;
DWORD
dwNumMsgBuf
;
HIMCC
hMsgBuf
;
DWORD
fdwInit
;
DWORD
dwReserve
[
3
];
}
INPUTCONTEXT2
,
*
PINPUTCONTEXT2
,
NEAR
*
NPINPUTCONTEXT2
,
FAR
*
LPINPUTCONTEXT2
;
/* Private display data */
typedef
struct
SDL_VideoData
{
#if SDL_VIDEO_RENDER_D3D
HANDLE
d3dDLL
;
IDirect3D9
*
d3d
;
#endif
#if SDL_VIDEO_RENDER_DDRAW
HANDLE
ddrawDLL
;
IDirectDraw
*
ddraw
;
#endif
const
SDL_scancode
*
key_layout
;
DWORD
clipboard_count
;
SDL_bool
ime_com_initialized
;
struct
ITfThreadMgr
*
ime_threadmgr
;
SDL_bool
ime_initialized
;
SDL_bool
ime_enabled
;
SDL_bool
ime_available
;
HWND
ime_hwnd_main
;
HWND
ime_hwnd_current
;
HIMC
ime_himc
;
WCHAR
ime_composition
[
SDL_TEXTEDITINGEVENT_TEXT_SIZE
];
WCHAR
ime_readingstring
[
16
];
int
ime_cursor
;
HKL
ime_hkl
;
HMODULE
ime_himm32
;
UINT
(
WINAPI
*
GetReadingString
)(
HIMC
himc
,
UINT
uReadingBufLen
,
LPWSTR
lpwReadingBuf
,
PINT
pnErrorIndex
,
BOOL
*
pfIsVertical
,
PUINT
puMaxReadingLen
);
BOOL
(
WINAPI
*
ShowReadingWindow
)(
HIMC
himc
,
BOOL
bShow
);
LPINPUTCONTEXT2
(
WINAPI
*
ImmLockIMC
)(
HIMC
himc
);
BOOL
(
WINAPI
*
ImmUnlockIMC
)(
HIMC
himc
);
LPVOID
(
WINAPI
*
ImmLockIMCC
)(
HIMCC
himcc
);
BOOL
(
WINAPI
*
ImmUnlockIMCC
)(
HIMCC
himcc
);
SDL_bool
ime_uiless
;
struct
ITfThreadMgrEx
*
ime_threadmgrex
;
DWORD
ime_uielemsinkcookie
;
DWORD
ime_alpnsinkcookie
;
DWORD
ime_openmodesinkcookie
;
DWORD
ime_convmodesinkcookie
;
TSFSink
*
ime_uielemsink
;
TSFSink
*
ime_ippasink
;
}
SDL_VideoData
;
#endif
/* _SDL_win32video_h */
/* vi: set ts=4 sw=4 expandtab: */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment