/* ErrorMsg */ void __cdecl ErrorMsg(const char* fmt, ...) { static FILE* pFile = NULL; DWORD dwWritten; char buf[5000]; char buf2[5000]; va_list va; va_start(va, fmt); vsprintf(buf, fmt, va); win_message_box_utf8(GetActiveWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR); strcpy(buf2, MAMEUINAME ": "); strcat(buf2,buf); strcat(buf2, "\n"); WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf2, strlen(buf2), &dwWritten, NULL); if (pFile == NULL) pFile = fopen("debug.txt", "wt"); if (pFile != NULL) { fprintf(pFile, "%s", buf2); fflush(pFile); } va_end(va); }
static void winui_output_error(void *param, const char *format, va_list argptr) { char buffer[1024]; // if we are in fullscreen mode, go to windowed mode if ((video_config.windowed == 0) && (win_window_list != NULL)) winwindow_toggle_full_screen(); vsnprintf(buffer, ARRAY_LENGTH(buffer), format, argptr); win_message_box_utf8(win_window_list ? win_window_list->hwnd : NULL, buffer, APPNAME, MB_OK); }
BOOL MessApproveImageList(HWND hParent, int drvindex) { char szMessage[256]; BOOL bResult = FALSE; windows_options o; if (g_szSelectedSoftware[0] && g_szSelectedDevice[0]) return TRUE; bResult = TRUE; if (!bResult) { win_message_box_utf8(hParent, szMessage, MAMEUINAME, MB_OK); } return bResult; }
static BOOL SoftwareDirectories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR) { BOOL bResult = FALSE; NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; LVITEM* pItem = &pDispInfo->item; if (pItem->pszText != NULL) { struct _stat file_stat; /* Don't allow empty entries. */ if (!_tcscmp(pItem->pszText, TEXT(""))) { return FALSE; } /* Check validity of edited directory. */ if (_tstat(pItem->pszText, &file_stat) == 0 && (file_stat.st_mode & S_IFDIR)) { bResult = TRUE; } else { if (win_message_box_utf8(NULL, "Directory does not exist, continue anyway?", MAMEUINAME, MB_OKCANCEL) == IDOK) bResult = TRUE; } } if (bResult == TRUE) { SoftwareDirectories_OnInsertBrowse(hDlg, TRUE, pItem->pszText); } return bResult; }
static int check_for_double_click_start(int argc) { STARTUPINFO startup_info = { sizeof(STARTUPINFO) }; // determine our startup information GetStartupInfo(&startup_info); // try to determine if MAME was simply double-clicked if (argc <= 1 && startup_info.dwFlags && !(startup_info.dwFlags & STARTF_USESTDHANDLES)) { char message_text[1024] = ""; int button; #ifndef MESS sprintf(message_text, "A.G.E. v"AGEVER"/"APPLONGNAME" v%s - Multiple Arcade Machine Emulator\n" "Copyright (C) 1997-2007 by Nicola Salmoria and the MAME Team\n" "Arcade Gambling Extension (A.G.E) v"AGEVER"\n" "Copyright (C) 2004-2006 by J. Wallace and the AGEMAME Development Team\n\n" APPLONGNAME " is a console application, you should launch it from a command prompt.\n" "\n" "Usage:\t age gamename [options]\n" "\n" "\t age -showusage\tfor a brief list of options\n" "\t age -showconfig\tfor a list of configuration options\n" "\t age -createconfig\tto create a configuration '.ini'\n" "\n" "Please consult the documentation for more information.\n" "\n" "Would you like to open the documentation now?" , build_version); #else sprintf(message_text, APPLONGNAME " is a console application, you should launch it from a command prompt.\n" "\n" "Please consult the documentation for more information.\n" "\n" "Would you like to open the documentation now?"); #endif // pop up a messagebox with some information button = win_message_box_utf8(NULL, message_text, APPLONGNAME " usage information...", MB_YESNO | MB_ICONASTERISK); if (button == IDYES) { // check if windows.txt exists FILE *fp = _tfopen(helpfile, TEXT("r")); if (fp) { HANDLE hShell32; HINSTANCE (WINAPI *pfnShellExecute)(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, int nShowCmd); fclose(fp); // if so, open it with the default application hShell32 = LoadLibrary(TEXT("shell32.dll")); if (NULL != hShell32) { #ifdef UNICODE pfnShellExecute = (HINSTANCE (WINAPI *)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,int))GetProcAddress(hShell32, "ShellExecuteW"); #else pfnShellExecute = (HINSTANCE (WINAPI *)(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,int))GetProcAddress(hShell32, "ShellExecuteA"); #endif if (NULL != pfnShellExecute) pfnShellExecute(NULL, TEXT("open"), helpfile, NULL, NULL, SW_SHOWNORMAL); FreeLibrary(hShell32); } } else { // if not, inform the user MessageBox(NULL, TEXT("Couldn't find the documentation."), TEXT("Error..."), MB_OK | MB_ICONERROR); } } return 1; } return 0; }
INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_INITDIALOG: CenterWindow(hDlg); hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MAMEUI_ICON)); SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIcon); hBrush = CreateSolidBrush(RGB(240, 240, 240)); DisableVisualStylesReset(hDlg); return true; case WM_CTLCOLORDLG: return (LRESULT) hBrush; case WM_CTLCOLORSTATIC: case WM_CTLCOLORBTN: hDC = (HDC)wParam; SetBkMode(hDC, TRANSPARENT); SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT)); return (LRESULT) hBrush; case WM_COMMAND: switch (GET_WM_COMMAND_ID(wParam, lParam)) { case IDOK: { bool resetFilters = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_FILTERS)); bool resetGames = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_GAMES)); bool resetDefaults = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_DEFAULT)); bool resetUI = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_UI)); bool resetInternalUI = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_MAME_UI)); if (resetFilters || resetGames || resetUI || resetDefaults || resetInternalUI) { char temp[512]; strcpy(temp, MAMEUINAME); strcat(temp, " will now reset the following\n"); strcat(temp, "to the default settings:\n\n"); if (resetDefaults) strcat(temp, "Global games options\n"); if (resetInternalUI) strcat(temp, "Internal MAME interface options\n"); if (resetGames) strcat(temp, "Individual game options\n"); if (resetFilters) strcat(temp, "Custom folder filters\n"); if (resetUI) { strcat(temp, "User interface settings\n\n"); strcat(temp, "Resetting the user interface options\n"); strcat(temp, "requires exiting "); strcat(temp, MAMEUINAME); strcat(temp, ".\n"); } strcat(temp, "\nDo you wish to continue?"); if (win_message_box_utf8(hDlg, temp, "Restore settings", MB_ICONQUESTION | MB_YESNO) == IDYES) { DestroyIcon(hIcon); DeleteObject(hBrush); if (resetFilters) ResetFilters(); if (resetGames) ResetAllGameOptions(); if (resetDefaults) ResetGameDefaults(); if (resetInternalUI) ResetInternalUI(); // This is the only case we need to exit and restart for. if (resetUI) { ResetInterface(); EndDialog(hDlg, 1); return true; } else { EndDialog(hDlg, 0); return true; } } else // Give the user a chance to change what they want to reset. break; } } // Nothing was selected but OK, just fall through case IDCANCEL: DeleteObject(hBrush); DestroyIcon(hIcon); EndDialog(hDlg, 0); return true; } break; } return false; }