replace wxAddProcessCallback() with wxAppTraits::AddProcessCallback() to fix linking problems in Unix ports; also reduce code duplication between GUI and base versions making src/unix/baseunix.cpp unnecessary any longer

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-03-22 00:07:13 +00:00
parent 9c97f8ea88
commit 1d043598b7
15 changed files with 302 additions and 1095 deletions

View File

@@ -30,7 +30,6 @@
#include "wx/utils.h"
#endif //WX_PRECOMP
#include "wx/apptrait.h"
#include "wx/unix/execute.h"
#include "wx/evtloop.h"
#include "wx/gsocket.h"
@@ -45,45 +44,8 @@
// wxConsoleAppTraits implementation
// ============================================================================
int
wxConsoleAppTraits::WaitForChild(wxExecuteData& execData)
{
int exitcode = 0;
if ( execData.flags & wxEXEC_SYNC )
{
if ( waitpid(execData.pid, &exitcode, 0) == -1 || !WIFEXITED(exitcode) )
{
wxLogSysError(_("Waiting for subprocess termination failed"));
}
}
else // asynchronous execution
{
wxEndProcessData *endProcData = new wxEndProcessData;
endProcData->process = execData.process;
endProcData->pid = execData.pid;
endProcData->tag = wxAddProcessCallback
(
endProcData,
execData.pipeEndProcDetect.Detach(wxPipe::Read)
);
execData.pipeEndProcDetect.Close();
exitcode = execData.pid;
}
return exitcode;
}
#if wxUSE_TIMER
wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
{
// this doesn't work yet as there is no main loop in console applications
// (but it will be added later)
return new wxUnixTimerImpl(timer);
}
#endif // wxUSE_TIMER
// Note: wxConsoleAppTraits::CreateEventLoop() is defined in evtloopunix.cpp!