source: trunk/src/ddraw/os2DDWindow.cpp@ 2012

Last change on this file since 2012 was 522, checked in by sandervl, 26 years ago

divewrap bugfixes + removal of FS save/restore macro calls

File size: 1.4 KB
Line 
1#define INCL_WIN
2#include <os2wrap.h>
3#include <odinwrap.h>
4#include "os2DDWindow.h"
5
6PFNWP pfnOrgClientProc = NULL;
7
8MRESULT EXPENTRY DDOS2WindowProc(HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2);
9extern VOID SwitchDisplay(HWND hwnd);
10
11ODINFUNCTION1(BOOL , OS2DdSubClassWindow ,HWND, hwndClient)
12{
13 HWND hwndParent;
14
15 // only allow subclassing once!
16
17 if(NULL==pfnOrgClientProc)
18 {
19 hwndParent = WinQueryWindow(hwndClient,QW_PARENT);
20
21 if(hwndParent!=HWND_DESKTOP)
22 hwndFrame = hwndParent;
23 else
24 hwndFrame = hwndClient;
25
26 pfnOrgClientProc = WinSubclassWindow(hwndFrame,DDOS2WindowProc);
27
28 return TRUE;
29 }
30
31 return FALSE;
32}
33
34
35MRESULT EXPENTRY DDOS2WindowProc(HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
36{
37 USHORT usFlags;
38
39 switch(ulMsg)
40 {
41 // capture the mouse
42 case WM_ACTIVATE:
43 if(mp1)
44 WinSetCapture(HWND_DESKTOP,hwnd);
45 else
46 WinSetCapture(HWND_DESKTOP,NULLHANDLE);
47 break;
48 case WM_CHAR:
49 // Check for CTRL+SHIFT+F12 to toggle between stretched (FS) / windowd mode
50 usFlags = SHORT1FROMMP(mp1);
51 if(!(usFlags & KC_KEYUP))
52 {
53 if( (usFlags & KC_VIRTUALKEY) && (usFlags & KC_SHIFT) && (usFlags & KC_CTRL))
54 {
55 if(VK_F12 == SHORT2FROMMP(mp2))
56 SwitchDisplay(hwnd);
57 }
58 }
59 break;
60 default:
61 break;
62 }
63
64 return pfnOrgClientProc(hwnd, ulMsg, mp1,mp2);
65}
66
Note: See TracBrowser for help on using the repository browser.