From db4c46e79eff78aba80f71ba8dd074b90115aef4 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 13 Dec 2008 02:28:05 +0000 Subject: [PATCH] Win32 - more context menu items --- src/drivers/win/res.rc | 19 +++++++++++++++++-- src/drivers/win/resource.h | 13 ++++++++++++- src/drivers/win/window.cpp | 23 +++++++++++++++++------ 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 9f0db8ff..a1714de8 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -323,16 +323,22 @@ END FCEUCONTEXTMENUS MENU BEGIN - POPUP "Game+Movie" + POPUP "Game+Movie+readonly" BEGIN MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie", FCEU_CONTEXT_STOPMOVIE + MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE + MENUITEM SEPARATOR + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO MENUITEM SEPARATOR MENUITEM "&Help....", FCEU_CONTEXT_MOVIEHELP END POPUP "Game+NoMovie" BEGIN MENUITEM "&Replay Movie", FCEUX_CONTEXT_REPLAYMOVIE + MENUITEM "Record Movie", FCEUX_CONTEXT_RECORDMOVIE + MENUITEM SEPARATOR + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM "Screenshot", FCEUX_CONTEXT_SCREENSHOT MENUITEM SEPARATOR MENUITEM "Close ROM", FCEU_CONTEXT_CLOSEROM END @@ -342,6 +348,15 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Help....", FCEU_CONTEXT_FCEUHELP END + POPUP "Game+Movie+readwrite" + BEGIN + MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE + MENUITEM SEPARATOR + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + END END diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 9a2ff9d3..5c958d08 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -606,6 +606,17 @@ #define FCEU_CONTEXT_STOPMOVIE 40296 #define ID_GAME_CLOSEROM 40297 #define FCEU_CONTEXT_CLOSEROM 40298 +#define ID_GAME_PLAYMOVIEFROMBEGINNING40299 40299 +#define ID_GAME_STOPMOVIERECORDING 40300 +#define ID_GAME_HELP40301 40301 +#define ID_GAME_RECORDMOVIE 40302 +#define FCEUX_CONTEXT_RECORDMOVIE 40303 +#define ID_GAME_SCREENSHOT 40304 +#define FCEUX_CONTEXT_SCREENSHOT 40305 +#define ID_GAME_REWINDTOLASTAUTO 40306 +#define FCEUX_CONTEXT_REWINDTOLASTAUTO 40307 +#define ID_GAME_REWINDTOLASTAUTO40308 40308 +#define ID_GAME_REWINDTOLASTAUTO40309 40309 #define IDC_DEBUGGER_ICONTRAY 55535 #define MW_ValueLabel2 65423 #define MW_ValueLabel1 65426 @@ -615,7 +626,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 125 -#define _APS_NEXT_COMMAND_VALUE 40299 +#define _APS_NEXT_COMMAND_VALUE 40310 #define _APS_NEXT_CONTROL_VALUE 1191 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 1a6de11e..beeae4a1 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -77,15 +77,15 @@ HMENU hfceuxcontext; //Handle to context menu HMENU hfceuxcontextsub; //Handle to context sub menu //Extern variables------------------------------------ - +extern bool movieSubtitles; extern FCEUGI *GameInfo; extern int EnableAutosave; extern bool frameAdvanceLagSkip; -extern bool movieSubtitles; extern bool turbo; extern int luaRunning; -// Extern functions +extern bool movie_readonly; +// Extern functions char *md5_asciistr(uint8 digest[16]); void SetAutoFirePattern(int onframes, int offframes); void SetAutoFireOffset(int offset); @@ -109,7 +109,7 @@ static LONG WindowXC=1<<30,WindowYC; int MainWindow_wndx, MainWindow_wndy; static uint32 mousex,mousey,mouseb; static int vchanged = 0; -bool CommentSubtitle = false; //Toggle for comment/subtitle dialog box + //Recent Menu Strings ------------------------------------ char *recent_files[] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; const unsigned int MENU_FIRST_RECENT_FILE = 600; @@ -732,9 +732,13 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { hfceuxcontext = LoadMenu(fceu_hInstance,"FCEUCONTEXTMENUS"); - //If There is a movie loaded - if (GameInfo && FCEUMOV_Mode(MOVIEMODE_PLAY|MOVIEMODE_RECORD)) + //If There is a movie loaded in read only + if (GameInfo && FCEUMOV_Mode(MOVIEMODE_PLAY|MOVIEMODE_RECORD) && movie_readonly) hfceuxcontextsub = GetSubMenu(hfceuxcontext,0); + + //If there is a movie loaded in read+write + else if (GameInfo && FCEUMOV_Mode(MOVIEMODE_PLAY|MOVIEMODE_RECORD) && !movie_readonly) + hfceuxcontextsub = GetSubMenu(hfceuxcontext,3); //If there is a ROM loaded but no movie else if (GameInfo) @@ -890,6 +894,7 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) break; //Movie submenu + case FCEUX_CONTEXT_RECORDMOVIE: case MENU_RECORD_MOVIE: FCEUD_MovieRecordTo(); break; @@ -922,6 +927,7 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) loggingSound = false; break; + case FCEUX_CONTEXT_SCREENSHOT: case ID_FILE_SCREENSHOT: FCEUI_SaveSnapshot(); break; @@ -1258,6 +1264,11 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) break; //Context Menus------------------------------------------------------ + case FCEUX_CONTEXT_REWINDTOLASTAUTO: + FCEUI_Autosave(); + break; + + //Movie help case FCEU_CONTEXT_MOVIEHELP: OpenHelpWindow(moviehelp); break;