diff --git a/include/wx/cocoa/dialog.h b/include/wx/cocoa/dialog.h index b4e0145e91..a9e793a22d 100644 --- a/include/wx/cocoa/dialog.h +++ b/include/wx/cocoa/dialog.h @@ -102,6 +102,10 @@ protected: void OnOK(wxCommandEvent& event); void OnApply(wxCommandEvent& event); void OnCancel(wxCommandEvent& event); + + // end either modal or modeless dialog + void EndDialog(int rc); + }; #endif // _WX_COCOA_DIALOG_H_ diff --git a/src/cocoa/dialog.mm b/src/cocoa/dialog.mm index e15c2937aa..d18483cc86 100644 --- a/src/cocoa/dialog.mm +++ b/src/cocoa/dialog.mm @@ -175,6 +175,14 @@ void wxDialog::EndModal(int retCode) Show(false); } +void wxDialog::EndDialog(int retCode) +{ + if(IsModal()) + EndModal(retCode); + else + Show(false); +} + void wxDialog::OnCloseWindow(wxCloseEvent& event) { // We'll send a Cancel message by default, @@ -216,7 +224,7 @@ void wxDialog::OnOK(wxCommandEvent& event) { if ( Validate() && TransferDataFromWindow() ) { - EndModal(wxID_OK); + EndDialog(wxID_OK); } } @@ -230,6 +238,6 @@ void wxDialog::OnApply(wxCommandEvent& event) void wxDialog::OnCancel(wxCommandEvent& event) { wxLogTrace(wxTRACE_COCOA,wxT("Cancelled!")); - EndModal(wxID_CANCEL); + EndDialog(wxID_CANCEL); }