added wxEXEC_BLOCK flag (patch 1620430)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -98,6 +98,7 @@ public:
|
|||||||
void OnClear(wxCommandEvent& event);
|
void OnClear(wxCommandEvent& event);
|
||||||
|
|
||||||
void OnSyncExec(wxCommandEvent& event);
|
void OnSyncExec(wxCommandEvent& event);
|
||||||
|
void OnSyncNoEventsExec(wxCommandEvent& event);
|
||||||
void OnAsyncExec(wxCommandEvent& event);
|
void OnAsyncExec(wxCommandEvent& event);
|
||||||
void OnShell(wxCommandEvent& event);
|
void OnShell(wxCommandEvent& event);
|
||||||
void OnExecWithRedirect(wxCommandEvent& event);
|
void OnExecWithRedirect(wxCommandEvent& event);
|
||||||
@@ -300,6 +301,7 @@ enum
|
|||||||
Exec_Kill,
|
Exec_Kill,
|
||||||
Exec_ClearLog,
|
Exec_ClearLog,
|
||||||
Exec_SyncExec = 200,
|
Exec_SyncExec = 200,
|
||||||
|
Exec_SyncNoEventsExec,
|
||||||
Exec_AsyncExec,
|
Exec_AsyncExec,
|
||||||
Exec_Shell,
|
Exec_Shell,
|
||||||
Exec_POpen,
|
Exec_POpen,
|
||||||
@@ -333,6 +335,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(Exec_ClearLog, MyFrame::OnClear)
|
EVT_MENU(Exec_ClearLog, MyFrame::OnClear)
|
||||||
|
|
||||||
EVT_MENU(Exec_SyncExec, MyFrame::OnSyncExec)
|
EVT_MENU(Exec_SyncExec, MyFrame::OnSyncExec)
|
||||||
|
EVT_MENU(Exec_SyncNoEventsExec, MyFrame::OnSyncNoEventsExec)
|
||||||
EVT_MENU(Exec_AsyncExec, MyFrame::OnAsyncExec)
|
EVT_MENU(Exec_AsyncExec, MyFrame::OnAsyncExec)
|
||||||
EVT_MENU(Exec_Shell, MyFrame::OnShell)
|
EVT_MENU(Exec_Shell, MyFrame::OnShell)
|
||||||
EVT_MENU(Exec_Redirect, MyFrame::OnExecWithRedirect)
|
EVT_MENU(Exec_Redirect, MyFrame::OnExecWithRedirect)
|
||||||
@@ -437,6 +440,8 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
|
|||||||
wxMenu *execMenu = new wxMenu;
|
wxMenu *execMenu = new wxMenu;
|
||||||
execMenu->Append(Exec_SyncExec, _T("Sync &execution...\tCtrl-E"),
|
execMenu->Append(Exec_SyncExec, _T("Sync &execution...\tCtrl-E"),
|
||||||
_T("Launch a program and return when it terminates"));
|
_T("Launch a program and return when it terminates"));
|
||||||
|
execMenu->Append(Exec_SyncNoEventsExec, _T("Sync execution and &block...\tCtrl-B"),
|
||||||
|
_T("Launch a program and block until it terminates"));
|
||||||
execMenu->Append(Exec_AsyncExec, _T("&Async execution...\tCtrl-A"),
|
execMenu->Append(Exec_AsyncExec, _T("&Async execution...\tCtrl-A"),
|
||||||
_T("Launch a program and return immediately"));
|
_T("Launch a program and return immediately"));
|
||||||
execMenu->Append(Exec_Shell, _T("Execute &shell command...\tCtrl-S"),
|
execMenu->Append(Exec_Shell, _T("Execute &shell command...\tCtrl-S"),
|
||||||
@@ -648,6 +653,25 @@ void MyFrame::OnSyncExec(wxCommandEvent& WXUNUSED(event))
|
|||||||
m_cmdLast = cmd;
|
m_cmdLast = cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnSyncNoEventsExec(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
|
||||||
|
DIALOG_TITLE,
|
||||||
|
m_cmdLast);
|
||||||
|
|
||||||
|
if ( !cmd )
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxLogStatus( _T("'%s' is running please wait..."), cmd.c_str() );
|
||||||
|
|
||||||
|
int code = wxExecute(cmd, wxEXEC_BLOCK);
|
||||||
|
|
||||||
|
wxLogStatus(_T("Process '%s' terminated with exit code %d."),
|
||||||
|
cmd.c_str(), code);
|
||||||
|
|
||||||
|
m_cmdLast = cmd;
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::OnAsyncExec(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnAsyncExec(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
|
wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
|
||||||
|
Reference in New Issue
Block a user