const wxString& caption,
long style,
const wxPoint& WXUNUSED(pos))
- : wxMessageDialogWithCustomLabels(parent, message, caption, style)
+ : wxMessageDialogBase(parent, message, caption, style)
{
}
const long style = GetMessageDialogStyle();
- wxASSERT_MSG( (style & 0x3F) != wxYES, wxT("this style is not supported on Mac") );
+ wxASSERT_MSG( (style & 0x3F) != wxYES,
+ "this style is not supported on Mac" );
AlertType alertType = kAlertPlainAlert;
- if (style & wxICON_EXCLAMATION)
- alertType = kAlertCautionAlert;
- else if (style & wxICON_HAND)
- alertType = kAlertStopAlert;
- else if (style & wxICON_INFORMATION)
- alertType = kAlertNoteAlert;
- else if (style & wxICON_QUESTION)
- alertType = kAlertNoteAlert;
-
-
- // work out what to display
- // if the extended text is empty then we use the caption as the title
- // and the message as the text (for backwards compatibility)
- // but if the extended message is not empty then we use the message as the title
- // and the extended message as the text because that makes more sense
+
+ switch ( GetEffectiveIcon() )
+ {
+ case wxICON_ERROR:
+ alertType = kAlertStopAlert;
+ break;
+
+ case wxICON_WARNING:
+ alertType = kAlertCautionAlert;
+ break;
+
+ case wxICON_QUESTION:
+ case wxICON_INFORMATION:
+ alertType = kAlertNoteAlert;
+ break;
+ }
+
+ // (the standard alert has two slots [title, text]
+ // for the three wxStrings [caption, message, extended message])
+ //
+ // if the extended text is empty we use the caption and
+ // the message (for backwards compatibility)
+ //
+ // if the extended text is not empty we ignore the caption
+ // and use the message and the extended message
+
wxString msgtitle,msgtext;
if(m_extendedMessage.IsEmpty())
{
- msgtitle = m_caption;
- msgtext = m_message;
+ if ( m_caption.IsEmpty() )
+ msgtitle = m_message;
+ else
+ {
+ msgtitle = m_caption;
+ msgtext = m_message;
+ }
}
else
{
wxCFStringRef cfCancelString( GetCancelLabel().c_str(), GetFont().GetEncoding() );
wxCFStringRef cfTitle( msgtitle, GetFont().GetEncoding() );
- wxCFStringRef cfText( msgtext, GetFont().GetEncoding() );
+ wxCFStringRef cfText = msgtext.IsEmpty() ? NULL : wxCFStringRef( msgtext, GetFont().GetEncoding() );
param.movable = true;
param.flags = 0;
{
DialogRef alertRef;
CreateStandardAlert( alertType, cfTitle, cfText, ¶m, &alertRef );
+ wxDialog::OSXBeginModalDialog();
RunStandardAlert( alertRef, NULL, &result );
+ wxDialog::OSXEndModalDialog();
}
else
{
}
}
}
-
+
SetReturnCode(resultbutton);
return resultbutton;