src/video/wincommon/SDL_sysevents.c
changeset 1152 51a8702d8ecd
parent 1150 7d8e1925f35b
child 1251 86d0d01290ea
equal deleted inserted replaced
1151:be9c9c8f6d53 1152:51a8702d8ecd
    38 #include "SDL_events_c.h"
    38 #include "SDL_events_c.h"
    39 #include "SDL_sysvideo.h"
    39 #include "SDL_sysvideo.h"
    40 #include "SDL_lowvideo.h"
    40 #include "SDL_lowvideo.h"
    41 #include "SDL_syswm_c.h"
    41 #include "SDL_syswm_c.h"
    42 #include "SDL_main.h"
    42 #include "SDL_main.h"
       
    43 #include "SDL_loadso.h"
    43 
    44 
    44 #ifdef WMMSG_DEBUG
    45 #ifdef WMMSG_DEBUG
    45 #include "wmmsg.h"
    46 #include "wmmsg.h"
    46 #endif
    47 #endif
    47 
    48 
    69 #endif
    70 #endif
    70 WORD *gamma_saved = NULL;
    71 WORD *gamma_saved = NULL;
    71 
    72 
    72 
    73 
    73 /* Functions called by the message processing function */
    74 /* Functions called by the message processing function */
    74 LONG
    75 LONG (*HandleMessage)(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)=NULL;
    75 (*HandleMessage)(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)=NULL;
       
    76 void (*WIN_RealizePalette)(_THIS);
    76 void (*WIN_RealizePalette)(_THIS);
    77 void (*WIN_PaletteChanged)(_THIS, HWND window);
    77 void (*WIN_PaletteChanged)(_THIS, HWND window);
    78 void (*WIN_WinPAINT)(_THIS, HDC hdc);
    78 void (*WIN_WinPAINT)(_THIS, HDC hdc);
    79 extern void DIB_SwapGamma(_THIS);
    79 extern void DIB_SwapGamma(_THIS);
       
    80 
       
    81 #if defined(_WIN32_WCE)
       
    82 
       
    83 // dynamically load aygshell dll because we want SDL to work on HPC and be300
       
    84 HINSTANCE aygshell = NULL;
       
    85 BOOL (WINAPI *SHFullScreen)(HWND hwndRequester, DWORD dwState) = 0;
       
    86 
       
    87 #define SHFS_SHOWTASKBAR            0x0001
       
    88 #define SHFS_HIDETASKBAR            0x0002
       
    89 #define SHFS_SHOWSIPBUTTON          0x0004
       
    90 #define SHFS_HIDESIPBUTTON          0x0008
       
    91 #define SHFS_SHOWSTARTICON          0x0010
       
    92 #define SHFS_HIDESTARTICON          0x0020
       
    93 
       
    94 static void LoadAygshell(void)
       
    95 {
       
    96 	if( !aygshell )
       
    97 		 aygshell = SDL_LoadObject("aygshell.dll");
       
    98 	if( aygshell )
       
    99 	{
       
   100 		SHFullScreen = (int (WINAPI *)(struct HWND__ *,unsigned long)) SDL_LoadFunction(aygshell, "SHFullScreen");
       
   101 	}
       
   102 }
       
   103 
       
   104 #endif
    80 
   105 
    81 static void SDL_RestoreGameMode(void)
   106 static void SDL_RestoreGameMode(void)
    82 {
   107 {
    83 #ifndef NO_CHANGEDISPLAYSETTINGS
   108 #ifndef NO_CHANGEDISPLAYSETTINGS
    84 	ShowWindow(SDL_Window, SW_RESTORE);
   109 	ShowWindow(SDL_Window, SW_RESTORE);
   211 					}
   236 					}
   212 					if ( WINDIB_FULLSCREEN() ) {
   237 					if ( WINDIB_FULLSCREEN() ) {
   213 						SDL_RestoreGameMode();
   238 						SDL_RestoreGameMode();
   214 					}
   239 					}
   215 				}
   240 				}
       
   241 #if defined(_WIN32_WCE)
       
   242 			if ( WINDIB_FULLSCREEN() )
       
   243 			{
       
   244 						LoadAygshell();
       
   245 						if( aygshell ) 
       
   246 							SHFullScreen(SDL_Window, SHFS_HIDESTARTICON|SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON);
       
   247 						else
       
   248 							ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_HIDE);
       
   249 
       
   250 			}
       
   251 #endif
       
   252 
   216 				posted = SDL_PrivateAppActive(1, appstate);
   253 				posted = SDL_PrivateAppActive(1, appstate);
   217 				WIN_GetKeyboardState();
   254 				WIN_GetKeyboardState();
   218 			} else {
   255 			} else {
   219 				/* Lose the following states */
   256 				/* Lose the following states */
   220 				appstate = SDL_APPINPUTFOCUS;
   257 				appstate = SDL_APPINPUTFOCUS;
   228 					if ( ! DDRAW_FULLSCREEN() ) {
   265 					if ( ! DDRAW_FULLSCREEN() ) {
   229 						DIB_SwapGamma(this);
   266 						DIB_SwapGamma(this);
   230 					}
   267 					}
   231 					if ( WINDIB_FULLSCREEN() ) {
   268 					if ( WINDIB_FULLSCREEN() ) {
   232 						SDL_RestoreDesktopMode();
   269 						SDL_RestoreDesktopMode();
       
   270 #if defined(_WIN32_WCE)
       
   271 						LoadAygshell();
       
   272 						if( aygshell ) 
       
   273 							SHFullScreen(SDL_Window, SHFS_SHOWSTARTICON|SHFS_SHOWTASKBAR|SHFS_SHOWSIPBUTTON);
       
   274 						else
       
   275 							ShowWindow(FindWindow(TEXT("HHTaskBar"),NULL),SW_SHOW);
       
   276 
       
   277 #endif
   233 					}
   278 					}
   234 				}
   279 				}
   235 				posted = SDL_PrivateAppActive(0, appstate);
   280 				posted = SDL_PrivateAppActive(0, appstate);
   236 			}
   281 			}
   237 			return(0);
   282 			return(0);