Added 0.030 of PicoDrive and moved license files into root
[cyclone68000.git] / PicoDrive / FrameWindow.cpp
CommitLineData
15eb0001 1\r
2#include "stdafx.h"\r
3\r
4HWND FrameWnd=NULL;\r
5struct GXDisplayProperties GXDisp;\r
6struct GXKeyList GXKey;\r
7\r
8// Window procedure for frame window\r
9static LRESULT CALLBACK FrameProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)\r
10{\r
11 switch (Msg)\r
12 {\r
13 case WM_COMMAND:\r
14 switch (LOWORD(wParam))\r
15 {\r
16 case IDOK: case IDCANCEL: SendMessage(hWnd,WM_CLOSE,0,0); break;\r
17\r
18 case ID_LOADROM: FileLoadRom(); break;\r
19 case ID_OPTIONS_GRAB: DebugScreenGrab(); break;\r
20 case ID_OPTIONS_SAVE: FileState(0); break;\r
21 case ID_OPTIONS_LOAD: FileState(1); break;\r
22 }\r
23 return 0;\r
24\r
25 case WM_KILLFOCUS: GXSuspend(); return 0;\r
26 case WM_SETFOCUS: GXResume(); return 0;\r
27\r
28 case WM_CLOSE: PostQuitMessage(0); return 0;\r
29\r
30 case WM_DESTROY:\r
31 GXCloseInput();\r
32 GXCloseDisplay();\r
33 FrameWnd=NULL; // Blank window handle\r
34 return 0;\r
35 }\r
36\r
37 return DefWindowProc(hWnd,Msg,wParam,lParam);\r
38}\r
39\r
40static int GxInit()\r
41{\r
42 GXOpenDisplay(FrameWnd,GX_FULLSCREEN);\r
43 GXOpenInput();\r
44 GXDisp=GXGetDisplayProperties();\r
45 GXKey=GXGetDefaultKeys(GX_NORMALKEYS);\r
46\r
47 // The real layout of the 3800:\r
48 if (Main3800) { GXDisp.cbxPitch=-640; GXDisp.cbyPitch=2; }\r
49\r
50 return 0;\r
51}\r
52\r
53int FrameInit()\r
54{\r
55 WNDCLASS wc;\r
56 SHMENUBARINFO mbi;\r
57 TCHAR title[128]={0};\r
58 RECT rect={0,0,0,0};\r
59\r
60 memset(&wc,0,sizeof(wc));\r
61 memset(&mbi,0,sizeof(mbi));\r
62\r
63 // Register the Frame window class\r
64 wc.lpfnWndProc=FrameProc;\r
65 wc.hInstance=GetModuleHandle(NULL);\r
66 wc.lpszClassName=APP_TITLE;\r
67 wc.hbrBackground=(HBRUSH)CreateSolidBrush(0x404040);\r
68 RegisterClass(&wc);\r
69\r
70 FrameWnd=CreateWindowEx(WS_EX_CAPTIONOKBTN,APP_TITLE,APP_TITLE,WS_VISIBLE,\r
71 CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,\r
72 NULL,NULL,wc.hInstance,NULL);\r
73 \r
74 wsprintf(title,APP_TITLE L" v%x.%.3x",PicoVer>>12,PicoVer&0xfff);\r
75 SetWindowText(FrameWnd,title);\r
76\r
77 // Show SIP\r
78 mbi.cbSize=sizeof(mbi);\r
79 mbi.hwndParent=FrameWnd;\r
80 mbi.nToolBarId=IDR_MENUBAR1;\r
81 mbi.hInstRes=wc.hInstance;\r
82 SHCreateMenuBar(&mbi);\r
83\r
84 // Resize Frame to avoid the SIP\r
85 GetWindowRect(FrameWnd,&rect);\r
86 MoveWindow(FrameWnd, rect.left,rect.top, rect.right-rect.left,rect.bottom-rect.top-26, 1);\r
87\r
88 GxInit();\r
89\r
90 FileLoadRom();\r
91 return 0;\r
92}\r