Cleaned up some code.

This commit is contained in:
rheiny 2007-02-07 20:50:47 +00:00
parent 507ddedda5
commit 5befd8b8be
4 changed files with 148 additions and 72 deletions

View File

@ -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;

Binary file not shown.

View File

@ -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

View File

@ -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;
}
/**