save_kine() { char base[128]; int fmat=1; sprintf(base,"frame"); #ifdef NOGIF #else new_int("format:1-ppm,2-gif",&fmat); #endif new_string("Base file name",base); if(strlen(base)>0) save_movie(base,fmat); }
// // FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static char dest[1024]; int i,wmId,wmEvent; PAINTSTRUCT ps; HDC hdc; HMENU hMenu; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case ID_FILE_OPEN: file_open(hWnd); break; case ID_FILE_LOADPATCH: file_open_patch(hWnd); break; case ID_FILE_UNLOAD: emu_event(E_UNLOAD,0); break; case ID_NES_PAUSE: emu_event(E_TOGGLERUNNING,0); break; case ID_NES_SOFTRESET: emu_event(E_SOFTRESET,0); break; case ID_NES_HARDRESET: emu_event(E_HARDRESET,0); break; case ID_NES_LOADSTATE: emu_event(E_LOADSTATE,0); break; case ID_NES_SAVESTATE: emu_event(E_SAVESTATE,0); break; case ID_MOVIE_LOAD: load_movie(hWnd); break; case ID_MOVIE_SAVE: save_movie(hWnd); break; case ID_MOVIE_PLAY: emu_event(E_PLAYMOVIE,0); break; case ID_MOVIE_RECORD: emu_event(E_RECORDMOVIE,0); break; case ID_MOVIE_STOP: emu_event(E_STOPMOVIE,0); break; case ID_FDS_FLIPDISK: emu_event(E_FLIPDISK,0); break; case ID_VIEW_CONFIGURATION: ConfigurationPropertySheet(hWnd); break; case ID_VIEW_DEBUGGER: DialogBox(hInst,(LPCTSTR)IDD_DEBUGGER,hWnd,(DLGPROC)DebuggerDlg); break; case ID_VIEW_SEARCH: DialogBox(hInst,(LPCTSTR)IDD_CHEATSEARCH,hWnd,(DLGPROC)CheatSearchDlg); break; case ID_VIEW_CONSOLE: hMenu = GetMenu(hWnd); if(GetWindowLong(hConsole,GWL_USERDATA) == 0) { CheckMenuItem(hMenu,ID_VIEW_CONSOLE,MF_CHECKED); ShowWindow(hConsole,SW_SHOW); SetWindowLong(hConsole,GWL_USERDATA,1); } else { CheckMenuItem(hMenu,ID_VIEW_CONSOLE,MF_UNCHECKED); ShowWindow(hConsole,SW_HIDE); SetWindowLong(hConsole,GWL_USERDATA,0); } break; case IDM_ABOUT: DialogBox(hInst,(LPCTSTR)IDD_ABOUT,hWnd,(DLGPROC)AboutDlg); break; case ID_HELP_SUPPORTEDMAPPERS: DialogBox(hInst,(LPCTSTR)IDD_MAPPERS,hWnd,(DLGPROC)MappersDlg); break; case IDM_EXIT: if(config_get_bool("video.fullscreen") != 0) emu_event(E_WINDOWED,0); else DestroyWindow(hWnd); break; case ID_VIEW_FULLSCREEN: emu_event(E_TOGGLEFULLSCREEN,0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_ENTERMENULOOP: sound_pause(); for(i=0; nesids[i] != -1; i++) { EnableMenuItem(GetMenu(hWnd),nesids[i],nes->cart ? MF_ENABLED : MF_GRAYED); } break; case WM_EXITMENULOOP: sound_play(); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... EndPaint(hWnd, &ps); break; case WM_DESTROY: quit++; if(hConsole) DestroyWindow(hConsole); PostQuitMessage(0); break; case WM_SIZE: // video_resize(); break; case WM_DROPFILES: DragQueryFile((HDROP)wParam,0,dest,1024); DragFinish((HDROP)wParam); loadrom(dest); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }