Improve message handler to include client data.
This commit is contained in:
parent
eab24670e3
commit
6769e84472
@ -52,9 +52,10 @@ void onsig(int)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeErrorHandler(const char* message, const char* title, bool&)
|
void CMakeErrorHandler(const char* message, const char* title, bool&, void* clientData)
|
||||||
{
|
{
|
||||||
cmCursesForm::CurrentForm->AddError(message, title);
|
cmCursesForm* self = static_cast<cmCursesForm*>( clientData );
|
||||||
|
self->AddError(message, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
@ -128,7 +129,7 @@ int main(int argc, char** argv)
|
|||||||
myform = new cmCursesMainForm(args, x);
|
myform = new cmCursesMainForm(args, x);
|
||||||
myform->LoadCache(cacheDir.c_str());
|
myform->LoadCache(cacheDir.c_str());
|
||||||
|
|
||||||
cmSystemTools::SetErrorCallback(CMakeErrorHandler);
|
cmSystemTools::SetErrorCallback(CMakeErrorHandler, myform);
|
||||||
|
|
||||||
cmCursesForm::CurrentForm = myform;
|
cmCursesForm::CurrentForm = myform;
|
||||||
|
|
||||||
|
@ -74,7 +74,8 @@ bool cmSystemTools::s_DisableRunCommandOutput = false;
|
|||||||
bool cmSystemTools::s_ErrorOccured = false;
|
bool cmSystemTools::s_ErrorOccured = false;
|
||||||
bool cmSystemTools::s_DisableMessages = false;
|
bool cmSystemTools::s_DisableMessages = false;
|
||||||
|
|
||||||
void (*cmSystemTools::s_ErrorCallback)(const char*, const char*, bool&);
|
void (*cmSystemTools::s_ErrorCallback)(const char*, const char*, bool&, void*);
|
||||||
|
void* cmSystemTools::s_ErrorCallbackClientData = 0;
|
||||||
|
|
||||||
// adds the elements of the env variable path to the arg passed in
|
// adds the elements of the env variable path to the arg passed in
|
||||||
void cmSystemTools::GetPath(std::vector<std::string>& path)
|
void cmSystemTools::GetPath(std::vector<std::string>& path)
|
||||||
@ -984,9 +985,10 @@ void cmSystemTools::Error(const char* m1, const char* m2,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void cmSystemTools::SetErrorCallback(ErrorCallback f)
|
void cmSystemTools::SetErrorCallback(ErrorCallback f, void* clientData)
|
||||||
{
|
{
|
||||||
s_ErrorCallback = f;
|
s_ErrorCallback = f;
|
||||||
|
s_ErrorCallbackClientData = clientData;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmSystemTools::Message(const char* m1, const char *title)
|
void cmSystemTools::Message(const char* m1, const char *title)
|
||||||
@ -997,7 +999,7 @@ void cmSystemTools::Message(const char* m1, const char *title)
|
|||||||
}
|
}
|
||||||
if(s_ErrorCallback)
|
if(s_ErrorCallback)
|
||||||
{
|
{
|
||||||
(*s_ErrorCallback)(m1, title, s_DisableMessages);
|
(*s_ErrorCallback)(m1, title, s_DisableMessages, s_ErrorCallbackClientData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -149,14 +149,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
static const char* GetExecutableExtension();
|
static const char* GetExecutableExtension();
|
||||||
|
|
||||||
typedef void (*ErrorCallback)(const char*, const char*, bool&);
|
typedef void (*ErrorCallback)(const char*, const char*, bool&, void*);
|
||||||
/**
|
/**
|
||||||
* Set the function used by GUI's to display error messages
|
* Set the function used by GUI's to display error messages
|
||||||
* Function gets passed: message as a const char*,
|
* Function gets passed: message as a const char*,
|
||||||
* title as a const char*, and a reference to bool that when
|
* title as a const char*, and a reference to bool that when
|
||||||
* set to false, will disable furthur messages (cancel).
|
* set to false, will disable furthur messages (cancel).
|
||||||
*/
|
*/
|
||||||
static void SetErrorCallback(ErrorCallback f);
|
static void SetErrorCallback(ErrorCallback f, void* clientData=0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display an error message.
|
* Display an error message.
|
||||||
@ -308,6 +308,7 @@ private:
|
|||||||
static bool s_DisableMessages;
|
static bool s_DisableMessages;
|
||||||
static bool s_DisableRunCommandOutput;
|
static bool s_DisableRunCommandOutput;
|
||||||
static ErrorCallback s_ErrorCallback;
|
static ErrorCallback s_ErrorCallback;
|
||||||
|
static void* s_ErrorCallbackClientData;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user