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