From 5befd8b8be8e19f2ad5bd78edeb2f649ca2d38a7 Mon Sep 17 00:00:00 2001 From: rheiny Date: Wed, 7 Feb 2007 20:50:47 +0000 Subject: [PATCH] Cleaned up some code. --- src/drivers/win/main.cpp | 9 +- src/drivers/win/res.rc | Bin 132312 -> 132584 bytes src/drivers/win/resource.h | 8 +- src/drivers/win/window.cpp | 203 ++++++++++++++++++++++++------------- 4 files changed, 148 insertions(+), 72 deletions(-) diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 12046359..4d002b70 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -68,7 +68,14 @@ int SetMainWindowStuff(void); int GetClientAbsRect(LPRECT lpRect); void UpdateFCEUWindow(void); -HWND hAppWnd=0; +/** +* Handle of the main window. +**/ +HWND hAppWnd = 0; + +/** +* FCE Ultra Instance +**/ HINSTANCE fceu_hInstance; HRESULT ddrval; diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 9f723845ea6965fa91b8e11acc22f392b114c1e5..37115285c08f1823d75f3bd94d96f25148ffab27 100644 GIT binary patch delta 245 zcmcc7$?>9_V?&0-!x;6M4Iu;}y&OpG-^=`K;2R4{`#P`4{X1kj|A$q!pX xC%d%F(1pml0L6lVHaS7<2xf3*2m-1F+5^-Bk_iK{gWz^Ho3(B?Yh_$i4*(eTJzD?( delta 103 zcmV-t0GR*iiwM|>2(V}vlfW4SlOi7$lW-Xpv$7ZzXOl3x1e5&22(#3GMgfyh#8Q)( zfu@sE?tqg(h6a=1f{vH+t^rh&K!ygB5QK)8;-djRm*A}d7?b>joC7fcF_SUmRf9x^ Jw?u{kq< diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index d26207ed..cb2f244b 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -4,6 +4,7 @@ // #define GUI_BOT_CLOSE 1 #define CLOSE_BUTTON 1 +#define BUTTON_CLOSE 1 #define GUI_BOT_VALUES 2 #define MENU_OPEN_FILE 100 #define EDIT_CHEATS 100 @@ -11,8 +12,12 @@ #define IDI_ICON1 101 #define IDI_ICON2 102 #define MENU_RECENT_FILES 102 +#define CB_LOAD_FILE_OPEN 102 +#define CB_AUTO_HIDE_MENU 104 #define MENU_SAVE_STATE 110 +#define CB_ASK_EXIT 110 #define MENU_LOAD_STATE 111 +#define CB_DISABLE_SCREEN_SAVER 111 #define MENU_RECORD_MOVIE 141 #define MENU_REPLAY_MOVIE 142 #define MENU_STOP_MOVIE 143 @@ -34,6 +39,7 @@ #define MENU_GAME_GENIE 310 #define MENU_PAL 311 #define MENU_DIRECTORIES 320 +#define MENU_GUI_OPTIONS 327 #define GUI_BOT_A_1 1000 #define GUI_BOT_B_1 1001 #define GUI_BOT_SELECT_1 1002 @@ -170,7 +176,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 103 -#define _APS_NEXT_COMMAND_VALUE 40038 +#define _APS_NEXT_COMMAND_VALUE 40039 #define _APS_NEXT_CONTROL_VALUE 1117 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index ed22741a..3535c683 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -851,7 +851,11 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) ConfigDirectories(); break; - case 327:ConfigGUI();break; + case MENU_GUI_OPTIONS: + // GUI Options menu was selected. + ConfigGUI(); + break; + case 321:ConfigInput(hWnd);break; case 322:ConfigTiming();break; case 323:ShowNetplayConsole();break; @@ -1437,91 +1441,150 @@ static void ConfigTiming(void) DoTimingConfigFix(); } -static BOOL CALLBACK GUIConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +/** +* Processes information from the GUI options dialog after +* the dialog was closed. +* +* @param hwndDlg Handle of the dialog window. +**/ +void CloseGuiDialog(HWND hwndDlg) { - switch(uMsg) { - case WM_INITDIALOG: - if(eoptions&EO_FOAFTERSTART) - CheckDlgButton(hwndDlg,102,BST_CHECKED); - if(eoptions&EO_HIDEMENU) - CheckDlgButton(hwndDlg,104,BST_CHECKED); - if(goptions & GOO_CONFIRMEXIT) - CheckDlgButton(hwndDlg,110,BST_CHECKED); - if(goptions & GOO_DISABLESS) - CheckDlgButton(hwndDlg,111,BST_CHECKED); - break; - case WM_CLOSE: - case WM_QUIT: goto gornk; - case WM_COMMAND: - if(!(wParam>>16)) - switch(wParam&0xFFFF) - { - case 1: - gornk: - if(IsDlgButtonChecked(hwndDlg,102)==BST_CHECKED) - eoptions|=EO_FOAFTERSTART; - else - eoptions&=~EO_FOAFTERSTART; - if(IsDlgButtonChecked(hwndDlg,104)==BST_CHECKED) - eoptions|=EO_HIDEMENU; - else - eoptions&=~EO_HIDEMENU; + if(IsDlgButtonChecked(hwndDlg, CB_LOAD_FILE_OPEN) == BST_CHECKED) + { + eoptions |= EO_FOAFTERSTART; + } + else + { + eoptions &= ~EO_FOAFTERSTART; + } - goptions &= ~(GOO_CONFIRMEXIT | GOO_DISABLESS); + if(IsDlgButtonChecked(hwndDlg, CB_AUTO_HIDE_MENU) == BST_CHECKED) + { + eoptions |= EO_HIDEMENU; + } + else + { + eoptions &= ~EO_HIDEMENU; + } - if(IsDlgButtonChecked(hwndDlg,110)==BST_CHECKED) - goptions |= GOO_CONFIRMEXIT; - if(IsDlgButtonChecked(hwndDlg,111)==BST_CHECKED) - goptions |= GOO_DISABLESS; - EndDialog(hwndDlg,0); - break; - } - } - return 0; + goptions &= ~(GOO_CONFIRMEXIT | GOO_DISABLESS); + + if(IsDlgButtonChecked(hwndDlg, CB_ASK_EXIT)==BST_CHECKED) + { + goptions |= GOO_CONFIRMEXIT; + } + + if(IsDlgButtonChecked(hwndDlg, CB_DISABLE_SCREEN_SAVER)==BST_CHECKED) + { + goptions |= GOO_DISABLESS; + } + + EndDialog(hwndDlg,0); } -static void ConfigGUI(void) +/** +* Message loop of the GUI configuration dialog. +**/ +BOOL CALLBACK GUIConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - DialogBox(fceu_hInstance,"GUICONFIG",hAppWnd,GUIConCallB); + switch(uMsg) + { + case WM_INITDIALOG: + + if(eoptions & EO_FOAFTERSTART) + { + CheckDlgButton(hwndDlg, CB_LOAD_FILE_OPEN, BST_CHECKED); + } + + if(eoptions&EO_HIDEMENU) + { + CheckDlgButton(hwndDlg, CB_AUTO_HIDE_MENU, BST_CHECKED); + } + + if(goptions & GOO_CONFIRMEXIT) + { + CheckDlgButton(hwndDlg, CB_ASK_EXIT, BST_CHECKED); + } + + if(goptions & GOO_DISABLESS) + { + CheckDlgButton(hwndDlg, CB_DISABLE_SCREEN_SAVER, BST_CHECKED); + } + + break; + + case WM_CLOSE: + case WM_QUIT: + CloseGuiDialog(hwndDlg); + + case WM_COMMAND: + if(!(wParam>>16)) + { + switch(wParam&0xFFFF) + { + case BUTTON_CLOSE: + CloseGuiDialog(hwndDlg); + } + } + } + + return 0; } - -static int BrowseForFolder(HWND hParent, char *htext, char *buf) +/** +* Shows the GUI configuration dialog. +**/ +void ConfigGUI(void) { - BROWSEINFO bi; - LPCITEMIDLIST pidl; - int ret=1; + DialogBox(fceu_hInstance, "GUICONFIG", hAppWnd, GUIConCallB); +} - buf[0]=0; +/** +* Displays a folder selection dialog. +* +* @param hParent Handle of the parent window. +* @param htext Text +* @param buf Storage buffer for the name of the selected path. +* +* @return 0 or 1 to indicate failure or success. +**/ +int BrowseForFolder(HWND hParent, const char *htext, char *buf) +{ + BROWSEINFO bi; + LPCITEMIDLIST pidl; - memset(&bi,0,sizeof(bi)); - - bi.hwndOwner=hParent; - bi.lpszTitle=htext; - bi.ulFlags=BIF_RETURNONLYFSDIRS; + buf[0] = 0; - if(FAILED(CoInitialize(0))) - return(0); + memset(&bi, 0, sizeof(bi)); - if(!(pidl=SHBrowseForFolder(&bi))) - { - ret=0; - goto end1; - } + bi.hwndOwner = hParent; + bi.lpszTitle = htext; + bi.ulFlags = BIF_RETURNONLYFSDIRS; - if(!SHGetPathFromIDList(pidl,buf)) - { - ret=0; - goto end2; - } + if(FAILED(CoInitialize(0))) + { + return 0; + } - end2: - /* This probably isn't the best way to free the memory... */ - CoTaskMemFree((PVOID)pidl); + if(!(pidl = SHBrowseForFolder(&bi))) + { + CoUninitialize(); + return 0; + } - end1: - CoUninitialize(); - return(ret); + if(!SHGetPathFromIDList(pidl, buf)) + { + CoTaskMemFree((PVOID)pidl); + CoUninitialize(); + + return 0; + } + + /* This probably isn't the best way to free the memory... */ + CoTaskMemFree((PVOID)pidl); + CoUninitialize(); + + return 1; } /**