added copyright line to top of source files next to license information
[cyclone68000.git] / PicoDrive / FrameWindow.cpp
CommitLineData
15eb0001 1\r
58db92b9 2// This file is part of the PicoDrive Megadrive Emulator\r
3\r
c41b9b97 4// Copyright (c) 2011 FinalDave (emudave (at) gmail.com)\r
5\r
58db92b9 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
8\r
9// SVN repository can be found at http://code.google.com/p/cyclone68000/\r
10\r
15eb0001 11#include "stdafx.h"\r
12\r
13HWND FrameWnd=NULL;\r
14struct GXDisplayProperties GXDisp;\r
15struct GXKeyList GXKey;\r
16\r
17// Window procedure for frame window\r
18static LRESULT CALLBACK FrameProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)\r
19{\r
20 switch (Msg)\r
21 {\r
22 case WM_COMMAND:\r
23 switch (LOWORD(wParam))\r
24 {\r
25 case IDOK: case IDCANCEL: SendMessage(hWnd,WM_CLOSE,0,0); break;\r
26\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
31 }\r
32 return 0;\r
33\r
34 case WM_KILLFOCUS: GXSuspend(); return 0;\r
35 case WM_SETFOCUS: GXResume(); return 0;\r
36\r
37 case WM_CLOSE: PostQuitMessage(0); return 0;\r
38\r
39 case WM_DESTROY:\r
40 GXCloseInput();\r
41 GXCloseDisplay();\r
42 FrameWnd=NULL; // Blank window handle\r
43 return 0;\r
44 }\r
45\r
46 return DefWindowProc(hWnd,Msg,wParam,lParam);\r
47}\r
48\r
49static int GxInit()\r
50{\r
51 GXOpenDisplay(FrameWnd,GX_FULLSCREEN);\r
52 GXOpenInput();\r
53 GXDisp=GXGetDisplayProperties();\r
54 GXKey=GXGetDefaultKeys(GX_NORMALKEYS);\r
55\r
56 // The real layout of the 3800:\r
57 if (Main3800) { GXDisp.cbxPitch=-640; GXDisp.cbyPitch=2; }\r
58\r
59 return 0;\r
60}\r
61\r
62int FrameInit()\r
63{\r
64 WNDCLASS wc;\r
65 SHMENUBARINFO mbi;\r
66 TCHAR title[128]={0};\r
67 RECT rect={0,0,0,0};\r
68\r
69 memset(&wc,0,sizeof(wc));\r
70 memset(&mbi,0,sizeof(mbi));\r
71\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
77 RegisterClass(&wc);\r
78\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
82 \r
83 wsprintf(title,APP_TITLE L" v%x.%.3x",PicoVer>>12,PicoVer&0xfff);\r
84 SetWindowText(FrameWnd,title);\r
85\r
86 // Show SIP\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
92\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
96\r
97 GxInit();\r
98\r
99 FileLoadRom();\r
100 return 0;\r
101}\r