Cleaned up the app registration stuff a bit
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401291
This commit is contained in:
parent
31d40ce879
commit
f708868dbd
5 changed files with 28 additions and 34 deletions
|
@ -58,6 +58,7 @@ LPWSTR SDL_Appname = NULL;
|
|||
#else
|
||||
LPSTR SDL_Appname = NULL;
|
||||
#endif
|
||||
Uint32 SDL_Appstyle = 0;
|
||||
HINSTANCE SDL_Instance = NULL;
|
||||
HWND SDL_Window = NULL;
|
||||
RECT SDL_bounds = {0, 0, 0, 0};
|
||||
|
@ -693,36 +694,40 @@ int SDL_RegisterApp(char *name, Uint32 style, void *hInst)
|
|||
return(0);
|
||||
}
|
||||
|
||||
/* This function needs to be passed the correct process handle
|
||||
by the application.
|
||||
*/
|
||||
if ( ! hInst ) {
|
||||
hInst = SDL_GetModuleHandle();
|
||||
#ifndef CS_BYTEALIGNCLIENT
|
||||
#define CS_BYTEALIGNCLIENT 0
|
||||
#endif
|
||||
if ( ! name && ! SDL_Appname ) {
|
||||
name = "SDL_app";
|
||||
SDL_Appstyle = CS_BYTEALIGNCLIENT;
|
||||
SDL_Instance = hInst ? hInst : SDL_GetModuleHandle();
|
||||
}
|
||||
|
||||
/* Register the application class */
|
||||
class.hCursor = NULL;
|
||||
if ( name ) {
|
||||
#ifdef _WIN32_WCE
|
||||
{
|
||||
/* WinCE uses the UNICODE version */
|
||||
int nLen = strlen(name)+1;
|
||||
SDL_Appname = malloc(nLen*2);
|
||||
MultiByteToWideChar(CP_ACP, 0, name, -1, SDL_Appname, nLen);
|
||||
}
|
||||
#else
|
||||
{
|
||||
int nLen = strlen(name)+1;
|
||||
SDL_Appname = malloc(nLen);
|
||||
strcpy(SDL_Appname, name);
|
||||
}
|
||||
#endif /* _WIN32_WCE */
|
||||
class.hIcon = LoadImage(hInst, SDL_Appname, IMAGE_ICON,
|
||||
SDL_Appstyle = style;
|
||||
SDL_Instance = hInst ? hInst : SDL_GetModuleHandle();
|
||||
}
|
||||
|
||||
/* Register the application class */
|
||||
class.hCursor = NULL;
|
||||
class.hIcon = LoadImage(SDL_Instance, SDL_Appname,
|
||||
IMAGE_ICON,
|
||||
0, 0, LR_DEFAULTCOLOR);
|
||||
class.lpszMenuName = NULL;
|
||||
class.lpszClassName = SDL_Appname;
|
||||
class.hbrBackground = NULL;
|
||||
class.hInstance = hInst;
|
||||
class.style = style;
|
||||
class.hInstance = SDL_Instance;
|
||||
class.style = SDL_Appstyle;
|
||||
#ifdef HAVE_OPENGL
|
||||
class.style |= CS_OWNDC;
|
||||
#endif
|
||||
|
@ -733,7 +738,6 @@ int SDL_RegisterApp(char *name, Uint32 style, void *hInst)
|
|||
SDL_SetError("Couldn't register application class");
|
||||
return(-1);
|
||||
}
|
||||
SDL_Instance = hInst;
|
||||
|
||||
#ifdef WM_MOUSELEAVE
|
||||
/* Get the version of TrackMouseEvent() we use */
|
||||
|
@ -757,11 +761,7 @@ int SDL_RegisterApp(char *name, Uint32 style, void *hInst)
|
|||
return(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unregisters the windowclass registered in SDL_RegisterApp above.
|
||||
* Called from DIB_VideoQuit and DX5_VideoQuit when
|
||||
* SDL_QuitSubSystem(INIT_VIDEO) is called.
|
||||
*/
|
||||
/* Unregisters the windowclass registered in SDL_RegisterApp above. */
|
||||
void SDL_UnregisterApp()
|
||||
{
|
||||
WNDCLASS class;
|
||||
|
@ -772,9 +772,9 @@ void SDL_UnregisterApp()
|
|||
if ( GetClassInfo(SDL_Instance, SDL_Appname, &class) ) {
|
||||
UnregisterClass(SDL_Appname, SDL_Instance);
|
||||
}
|
||||
}
|
||||
app_registered = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef NO_GETKEYBOARDSTATE
|
||||
/* JFP: Implementation of ToUnicode() that works on 9x/ME/2K/XP */
|
||||
|
|
|
@ -406,10 +406,7 @@ int DIB_CreateWindow(_THIS)
|
|||
{
|
||||
char *windowid = getenv("SDL_WINDOWID");
|
||||
|
||||
#ifndef CS_BYTEALIGNCLIENT
|
||||
#define CS_BYTEALIGNCLIENT 0
|
||||
#endif
|
||||
SDL_RegisterApp("SDL_app", CS_BYTEALIGNCLIENT, 0);
|
||||
SDL_RegisterApp(NULL, 0, 0);
|
||||
|
||||
SDL_windowid = (windowid != NULL);
|
||||
if ( SDL_windowid ) {
|
||||
|
@ -452,4 +449,5 @@ void DIB_DestroyWindow(_THIS)
|
|||
} else {
|
||||
DestroyWindow(SDL_Window);
|
||||
}
|
||||
SDL_UnregisterApp();
|
||||
}
|
||||
|
|
|
@ -958,7 +958,6 @@ void DIB_VideoQuit(_THIS)
|
|||
}
|
||||
DIB_QuitGamma(this);
|
||||
DIB_DestroyWindow(this);
|
||||
SDL_UnregisterApp();
|
||||
FlushMessageQueue();
|
||||
|
||||
SDL_Window = NULL;
|
||||
|
|
|
@ -858,10 +858,7 @@ int DX5_CreateWindow(_THIS)
|
|||
SDL_DIfun[i] = NULL;
|
||||
}
|
||||
|
||||
#ifndef CS_BYTEALIGNCLIENT
|
||||
#define CS_BYTEALIGNCLIENT 0
|
||||
#endif
|
||||
SDL_RegisterApp("SDL_app", CS_BYTEALIGNCLIENT, 0);
|
||||
SDL_RegisterApp(NULL, 0, 0);
|
||||
|
||||
SDL_windowid = (windowid != NULL);
|
||||
if ( SDL_windowid ) {
|
||||
|
@ -907,4 +904,5 @@ void DX5_DestroyWindow(_THIS)
|
|||
} else {
|
||||
DestroyWindow(SDL_Window);
|
||||
}
|
||||
SDL_UnregisterApp();
|
||||
}
|
||||
|
|
|
@ -2387,7 +2387,6 @@ void DX5_VideoQuit(_THIS)
|
|||
DIB_QuitGamma(this);
|
||||
if ( SDL_Window ) {
|
||||
DX5_DestroyWindow(this);
|
||||
SDL_UnregisterApp();
|
||||
FlushMessageQueue();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue