diff --git a/stepmania/src/arch/ArchHooks/ArchHooks.h b/stepmania/src/arch/ArchHooks/ArchHooks.h index 0238d4cfc4..a0a829d81a 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks.h +++ b/stepmania/src/arch/ArchHooks/ArchHooks.h @@ -28,6 +28,11 @@ public: * and we can safely log and throw. */ virtual void DumpDebugInfo() { } + /* Message box stuff. Not supported on all archs. */ + enum MessageBoxResult { abort, retry, ignore }; + virtual void MessageBoxOK( CString sMessage ) {} + virtual MessageBoxResult MessageBoxAbortRetryIgnore( CString sMessage ) { return ignore; } + virtual ~ArchHooks() { } }; diff --git a/stepmania/src/arch/ArchHooks/ArchHooks_Win32.cpp b/stepmania/src/arch/ArchHooks/ArchHooks_Win32.cpp index 2b08909590..3c0a5facbf 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks_Win32.cpp +++ b/stepmania/src/arch/ArchHooks/ArchHooks_Win32.cpp @@ -34,6 +34,22 @@ void ArchHooks_Win32::DumpDebugInfo() SearchForDebugInfo(); } +void ArchHooks_Win32::MessageBoxOK( CString sMessage ) +{ + MessageBox(NULL, sMessage, "StepMania", MB_OK ); +} + +ArchHooks::MessageBoxResult ArchHooks_Win32::MessageBoxAbortRetryIgnore( CString sMessage ) +{ + switch( MessageBox(NULL, sMessage, "StepMania", MB_ABORTRETRYIGNORE ) ) + { + case IDABORT: return abort; + case IDRETRY: return retry; + default: ASSERT(0); + case IDIGNORE: return ignore; + } +} + /* * Copyright (c) 2002-2003 by the person(s) listed below. All rights reserved. * diff --git a/stepmania/src/arch/ArchHooks/ArchHooks_Win32.h b/stepmania/src/arch/ArchHooks/ArchHooks_Win32.h index 6182376893..a9d9d1f546 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks_Win32.h +++ b/stepmania/src/arch/ArchHooks/ArchHooks_Win32.h @@ -9,6 +9,8 @@ public: void Log(CString str, bool important); void DumpDebugInfo(); void AdditionalLog(CString str); + void MessageBoxOK( CString sMessage ); + MessageBoxResult MessageBoxAbortRetryIgnore( CString sMessage ); }; #undef ARCH_HOOKS