2 // This file is part of the PicoDrive Megadrive Emulator
\r
4 // Copyright (c) 2011 FinalDave (emudave (at) gmail.com)
\r
6 // This code is licensed under the GNU General Public License version 2.0 and the MAME License.
\r
7 // You can choose the license that has the most advantages for you.
\r
9 // SVN repository can be found at http://code.google.com/p/cyclone68000/
\r
14 struct GXDisplayProperties GXDisp;
\r
15 struct GXKeyList GXKey;
\r
17 // Window procedure for frame window
\r
18 static LRESULT CALLBACK FrameProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
\r
23 switch (LOWORD(wParam))
\r
25 case IDOK: case IDCANCEL: SendMessage(hWnd,WM_CLOSE,0,0); break;
\r
27 case ID_LOADROM: FileLoadRom(); break;
\r
28 case ID_OPTIONS_GRAB: DebugScreenGrab(); break;
\r
29 case ID_OPTIONS_SAVE: FileState(0); break;
\r
30 case ID_OPTIONS_LOAD: FileState(1); break;
\r
34 case WM_KILLFOCUS: GXSuspend(); return 0;
\r
35 case WM_SETFOCUS: GXResume(); return 0;
\r
37 case WM_CLOSE: PostQuitMessage(0); return 0;
\r
42 FrameWnd=NULL; // Blank window handle
\r
46 return DefWindowProc(hWnd,Msg,wParam,lParam);
\r
51 GXOpenDisplay(FrameWnd,GX_FULLSCREEN);
\r
53 GXDisp=GXGetDisplayProperties();
\r
54 GXKey=GXGetDefaultKeys(GX_NORMALKEYS);
\r
56 // The real layout of the 3800:
\r
57 if (Main3800) { GXDisp.cbxPitch=-640; GXDisp.cbyPitch=2; }
\r
66 TCHAR title[128]={0};
\r
67 RECT rect={0,0,0,0};
\r
69 memset(&wc,0,sizeof(wc));
\r
70 memset(&mbi,0,sizeof(mbi));
\r
72 // Register the Frame window class
\r
73 wc.lpfnWndProc=FrameProc;
\r
74 wc.hInstance=GetModuleHandle(NULL);
\r
75 wc.lpszClassName=APP_TITLE;
\r
76 wc.hbrBackground=(HBRUSH)CreateSolidBrush(0x404040);
\r
79 FrameWnd=CreateWindowEx(WS_EX_CAPTIONOKBTN,APP_TITLE,APP_TITLE,WS_VISIBLE,
\r
80 CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
\r
81 NULL,NULL,wc.hInstance,NULL);
\r
83 wsprintf(title,APP_TITLE L" v%x.%.3x",PicoVer>>12,PicoVer&0xfff);
\r
84 SetWindowText(FrameWnd,title);
\r
87 mbi.cbSize=sizeof(mbi);
\r
88 mbi.hwndParent=FrameWnd;
\r
89 mbi.nToolBarId=IDR_MENUBAR1;
\r
90 mbi.hInstRes=wc.hInstance;
\r
91 SHCreateMenuBar(&mbi);
\r
93 // Resize Frame to avoid the SIP
\r
94 GetWindowRect(FrameWnd,&rect);
\r
95 MoveWindow(FrameWnd, rect.left,rect.top, rect.right-rect.left,rect.bottom-rect.top-26, 1);
\r