ENH: use callback not ifdef for MFC message box errors

This commit is contained in:
Bill Hoffman 2001-10-29 10:41:31 -05:00
parent 539318f587
commit b0e3a2def0
3 changed files with 17 additions and 10 deletions

View File

@ -17,9 +17,9 @@ void FLTKMessageCallback(const char* message, const char* title, bool& nomore)
int ok =
fl_ask(message, "Press cancel to suppress any further messages.");
if(!ok)
{
{
nomore = true;
}
}
}
/**

View File

@ -61,6 +61,17 @@ BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP();
void MFCMessageCallback(const char* m, const char* title, bool& nomore)
{
std::string message = m;
message += "\n\n(Press Cancel to suppress any further messages.)";
if(::MessageBox(0, message.c_str(), title,
MB_OKCANCEL) == IDCANCEL)
{
nomore = true;
}
}
/////////////////////////////////////////////////////////////////////////////
// CMakeSetupDialog dialog
@ -68,6 +79,7 @@ CMakeSetupDialog::CMakeSetupDialog(const CMakeCommandLineInfo& cmdInfo,
CWnd* pParent /*=NULL*/)
: CDialog(CMakeSetupDialog::IDD, pParent)
{
cmSystemTools::SetErrorCallback(MFCMessageCallback);
m_RegistryKey = "Software\\Kitware\\CMakeSetup\\Settings\\StartPath";
//{{AFX_DATA_INIT(CMakeSetupDialog)

View File

@ -709,16 +709,11 @@ void cmSystemTools::Message(const char* m1, const char *title)
(*s_ErrorCallback)(m1, title, disableMessages);
return;
}
#if defined(_WIN32) && !defined(__CYGWIN__)
std::string message = m1;
message += "\n\n(Press Cancel to suppress any further messages.)";
if(::MessageBox(0, message.c_str(), title,
MB_OKCANCEL) == IDCANCEL)
else
{
disableMessages = true;
std::cerr << m1 << std::endl;
}
#endif
std::cerr << m1 << std::endl;
}