const wxString& caption,
long style,
const wxPoint& WXUNUSED(pos))
- : wxMessageDialogBase(parent, message, caption, style)
+ : wxMessageDialogWithCustomLabels(parent, message, caption, style)
{
- m_yes = _("Yes");
- m_no = _("No");
- m_ok = _("OK");
- m_cancel = _("Cancel");
-}
-
-bool wxMessageDialog::SetYesNoLabels(const wxString& yes,const wxString& no)
-{
- m_yes = yes;
- m_no = no;
- return true;
-}
-
-bool wxMessageDialog::SetYesNoCancelLabels(const wxString& yes, const wxString& no, const wxString& cancel)
-{
- m_yes = yes;
- m_no = no;
- m_cancel = cancel;
- return true;
-}
-
-bool wxMessageDialog::SetOKLabel(const wxString& ok)
-{
- m_ok = ok;
- return true;
-}
-
-bool wxMessageDialog::SetOKCancelLabels(const wxString& ok, const wxString& cancel)
-{
- m_ok = ok;
- m_cancel = cancel;
- return true;
}
int wxMessageDialog::ShowModal()
wxCFStringRef cfTitle( msgtitle, GetFont().GetEncoding() );
wxCFStringRef cfText( msgtext, GetFont().GetEncoding() );
- wxCFStringRef cfNoString( m_no.c_str(), GetFont().GetEncoding() );
- wxCFStringRef cfYesString( m_yes.c_str(), GetFont().GetEncoding() );
- wxCFStringRef cfOKString( m_ok.c_str() , GetFont().GetEncoding()) ;
- wxCFStringRef cfCancelString( m_cancel.c_str(), GetFont().GetEncoding() );
+ wxCFStringRef cfNoString( GetNoLabel(), GetFont().GetEncoding() );
+ wxCFStringRef cfYesString( GetYesLabel(), GetFont().GetEncoding() );
+ wxCFStringRef cfOKString( GetOKLabel(), GetFont().GetEncoding()) ;
+ wxCFStringRef cfCancelString( GetCancelLabel(), GetFont().GetEncoding() );
int buttonId[4] = { 0, 0, 0, wxID_CANCEL /* time-out */ };
else
{
NSAlert* alert = [[NSAlert alloc] init];
-
- wxCFStringRef cfNoString( m_no.c_str(), GetFont().GetEncoding() );
- wxCFStringRef cfYesString( m_yes.c_str(), GetFont().GetEncoding() );
- wxCFStringRef cfOKString( m_ok.c_str(), GetFont().GetEncoding() );
- wxCFStringRef cfCancelString( m_cancel.c_str(), GetFont().GetEncoding() );
+
+ wxCFStringRef cfNoString( GetNoLabel(), GetFont().GetEncoding() );
+ wxCFStringRef cfYesString( GetYesLabel(), GetFont().GetEncoding() );
+ wxCFStringRef cfOKString( GetOKLabel(), GetFont().GetEncoding() );
+ wxCFStringRef cfCancelString( GetCancelLabel(), GetFont().GetEncoding() );
wxCFStringRef cfTitle( msgtitle, GetFont().GetEncoding() );
wxCFStringRef cfText( msgtext, GetFont().GetEncoding() );
[alert setMessageText:cfTitle.AsNSString()];
[alert setInformativeText:cfText.AsNSString()];
-
+
int buttonId[3] = { 0, 0, 0 };
int buttonCount = 0;
}
}
- int button = [alert runModal];
-
+
+ wxNonOwnedWindow* parentWindow = NULL;
+ int button = -1;
+
+ if (GetParent())
+ {
+ parentWindow = dynamic_cast<wxNonOwnedWindow*>(wxGetTopLevelParent(GetParent()));
+ }
+
+ /*
+ if (parentWindow)
+ {
+ NSWindow* nativeParent = parentWindow->GetWXWindow();
+ ModalDialogDelegate* sheetDelegate = [[ModalDialogDelegate alloc] init];
+ [alert beginSheetModalForWindow: nativeParent modalDelegate: sheetDelegate
+ didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:)
+ contextInfo: nil];
+ [sheetDelegate waitForSheetToFinish];
+ button = [sheetDelegate code];
+ [sheetDelegate release];
+ }
+ else
+*/
+ {
+ button = [alert runModal];
+ }
[alert release];
-
+
if ( button < NSAlertFirstButtonReturn )
resultbutton = wxID_CANCEL;
else