+ int resultbutton = wxID_CANCEL ;
+
+ short result ;
+ Str255 pascalTitle ;
+ Str255 pascalText ;
+ char cText[2048] ;
+
+ Str255 yesPString ;
+ Str255 noPString ;
+
+ wxMacStringToPascal( m_caption , pascalTitle ) ;
+ wxMacStringToPascal( _("Yes") , yesPString ) ;
+ wxMacStringToPascal( _("No") , noPString ) ;
+
+ if (wxApp::s_macDefaultEncodingIsPC)
+ {
+ strcpy(cText , wxMacMakeMacStringFromPC( m_message) ) ;
+ }
+ else
+ {
+ strcpy( cText , m_message ) ;
+ }
+
+ wxMacConvertNewlines( cText , cText ) ;
+ CopyCStringToPascal( cText , pascalText ) ;
+
+ wxASSERT_MSG( ( m_dialogStyle & 0x3F ) != wxYES , "this style is not supported on mac" ) ;
+
+
+ AlertStdAlertParamRec param;
+
+ param.movable = true;
+ param.filterProc = NULL ;
+
+ if (m_dialogStyle & wxYES_NO)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ {
+ param.defaultText = yesPString ;
+ param.cancelText = (StringPtr) kAlertDefaultCancelText;
+ param.otherText = noPString ;
+ param.helpButton = false ;
+ param.defaultButton = kAlertStdAlertOKButton;
+ param.cancelButton = kAlertStdAlertCancelButton;
+ }
+ else
+ {
+ param.defaultText = yesPString ;
+ param.cancelText = NULL;
+ param.otherText = noPString ;
+ param.helpButton = false ;
+ param.defaultButton = kAlertStdAlertOKButton;
+ param.cancelButton = 0;
+ }
+ }
+ else if (m_dialogStyle & wxOK)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ {
+ // thats a cancel missing
+ param.defaultText = (StringPtr) kAlertDefaultOKText ;
+ param.cancelText = NULL;
+ param.otherText = NULL;
+ param.helpButton = false ;
+ param.defaultButton = kAlertStdAlertOKButton;
+ param.cancelButton = 0;
+ }
+ else
+ {
+ param.defaultText = (StringPtr) kAlertDefaultOKText ;
+ param.cancelText = NULL;
+ param.otherText = NULL;
+ param.helpButton = false ;
+ param.defaultButton = kAlertStdAlertOKButton;
+ param.cancelButton = 0;
+ }
+ }
+ else
+ {
+ return resultbutton ;
+ }
+
+ param.position = 0;
+
+ if (m_dialogStyle & wxICON_EXCLAMATION)
+ StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, ¶m, &result );
+ else if (m_dialogStyle & wxICON_HAND)
+ StandardAlert( kAlertStopAlert, pascalTitle, pascalText, ¶m, &result );
+ else if (m_dialogStyle & wxICON_INFORMATION)
+ StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, ¶m, &result );
+ else if (m_dialogStyle & wxICON_QUESTION)
+ StandardAlert( kAlertCautionAlert, pascalTitle, pascalText, ¶m, &result );
+ else
+ StandardAlert( kAlertPlainAlert, pascalTitle, pascalText, ¶m, &result );
+
+ if (m_dialogStyle & wxOK)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ {
+ //TODO add Cancelbutton
+ switch( result )
+ {
+ case 1 :
+ resultbutton = wxID_OK ;
+ break ;
+ case 2 :
+ break ;
+ case 3 :
+ break ;
+ }
+ }
+ else
+ {
+ switch( result )
+ {
+ case 1 :
+ resultbutton = wxID_OK ;
+ break ;
+ case 2 :
+ break ;
+ case 3 :
+ break ;
+ }
+ }
+ }
+ else if (m_dialogStyle & wxYES_NO)
+ {
+ if (m_dialogStyle & wxCANCEL)
+ {
+ switch( result )
+ {
+ case 1 :
+ resultbutton = wxID_YES ;
+ break ;
+ case 2 :
+ resultbutton = wxID_CANCEL ;
+ break ;
+ case 3 :
+ resultbutton = wxID_NO ;
+ break ;
+ }
+ }
+ else
+ {
+ switch( result )
+ {
+ case 1 :
+ resultbutton = wxID_YES ;
+ break ;
+ case 2 :
+ break ;
+ case 3 :
+ resultbutton = wxID_NO ;
+ break ;
+ }
+ }
+ }
+
+ return resultbutton ;