X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ede7b01760e920b31520b15c919445db882a8012..7c36630b570a7e8754d720313b6ea37724f561b0:/src/osx/cocoa/msgdlg.mm diff --git a/src/osx/cocoa/msgdlg.mm b/src/osx/cocoa/msgdlg.mm index 042a302c08..ad44f55600 100644 --- a/src/osx/cocoa/msgdlg.mm +++ b/src/osx/cocoa/msgdlg.mm @@ -4,7 +4,7 @@ // Author: Stefan Csomor // Modified by: // Created: 04/01/98 -// RCS-ID: $Id: msgdlg.cpp 54129 2008-06-11 19:30:52Z SC $ +// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -49,6 +49,13 @@ wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxPoint& WXUNUSED(pos)) : wxMessageDialogBase(parent, message, caption, style) { + m_sheetDelegate = [[ModalDialogDelegate alloc] init]; + [(ModalDialogDelegate*)m_sheetDelegate setImplementation: this]; +} + +wxMessageDialog::~wxMessageDialog() +{ + [m_sheetDelegate release]; } int wxMessageDialog::ShowModal() @@ -167,15 +174,13 @@ void wxMessageDialog::ShowWindowModal() if (parentWindow) { NSWindow* nativeParent = parentWindow->GetWXWindow(); - ModalDialogDelegate* sheetDelegate = [[ModalDialogDelegate alloc] init]; - [sheetDelegate setImplementation: this]; - [alert beginSheetModalForWindow: nativeParent modalDelegate: sheetDelegate + [alert beginSheetModalForWindow: nativeParent modalDelegate: m_sheetDelegate didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:) contextInfo: nil]; } } -void wxMessageDialog::ModalFinishedCallback(void* panel, int resultCode) +void wxMessageDialog::ModalFinishedCallback(void* WXUNUSED(panel), int resultCode) { int resultbutton = wxID_CANCEL; if ( resultCode < NSAlertFirstButtonReturn ) @@ -260,13 +265,25 @@ void* wxMessageDialog::ConstructNSAlert() // the MSW implementation even shows an OK button if it is not specified, we'll do the same else { - [alert addButtonWithTitle:cfOKString.AsNSString()]; - m_buttonId[ m_buttonCount++ ] = wxID_OK; - if (style & wxCANCEL) + if ( style & wxCANCEL_DEFAULT ) { [alert addButtonWithTitle:cfCancelString.AsNSString()]; m_buttonId[ m_buttonCount++ ] = wxID_CANCEL; + + [alert addButtonWithTitle:cfOKString.AsNSString()]; + m_buttonId[ m_buttonCount++ ] = wxID_OK; } + else + { + [alert addButtonWithTitle:cfOKString.AsNSString()]; + m_buttonId[ m_buttonCount++ ] = wxID_OK; + if (style & wxCANCEL) + { + [alert addButtonWithTitle:cfCancelString.AsNSString()]; + m_buttonId[ m_buttonCount++ ] = wxID_CANCEL; + } + } + } return alert; }