#pragma implementation "msgdlg.h"
#endif
+#include "wx/app.h"
#include "wx/msgdlg.h"
+#include "wx/intl.h"
#include "wx/mac/uma.h"
+#if !USE_SHARED_LIBRARY
IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
-
-#define kMacOKAlertResourceID 128
-#define kMacYesNoAlertResourceID 129
-#define kMacYesNoCancelAlertResourceID 130
-#define kMacNoYesAlertResourceID 131
-#define kMacNoYesCancelAlertResourceID 132
+#endif
short language = 0 ;
+void wxMacConvertNewlines( const char *source , char * destination ) ;
void wxMacConvertNewlines( const char *source , char * destination )
{
const char *s = source ;
short result ;
Str255 pascalTitle ;
Str255 pascalText ;
-
- strcpy( (char*) pascalTitle , m_caption ) ;
- c2pstr( (char*) pascalTitle ) ;
- strcpy( (char*) pascalText , m_message ) ;
- wxMacConvertNewlines( (char*)pascalText ,(char*) pascalText) ;
- c2pstr( (char*) pascalText ) ;
+ char cText[2048] ;
- if ( !UMAHasAppearance() )
+ Str255 yesPString ;
+ Str255 noPString ;
+
+ wxMacStringToPascal( m_caption , pascalTitle ) ;
+ wxMacStringToPascal( _("Yes") , yesPString ) ;
+ wxMacStringToPascal( _("No") , noPString ) ;
+
+ if (wxApp::s_macDefaultEncodingIsPC)
{
- int resourceID ;
-
- if (m_dialogStyle & wxYES_NO)
- {
- if (m_dialogStyle & wxCANCEL)
- resourceID = kMacYesNoCancelAlertResourceID;
- else
- resourceID = kMacYesNoAlertResourceID + language * 10 ;
- }
- else if (m_dialogStyle & wxOK)
- {
- if (m_dialogStyle & wxCANCEL)
- resourceID = kMacOKAlertResourceID; // wrong
- else
- resourceID = kMacOKAlertResourceID;
- }
- else
- {
- return resultbutton ;
- }
- /*
- if (hWnd)
- msStyle |= MB_APPLMODAL;
- else
- msStyle |= MB_TASKMODAL;
- */
+ strcpy(cText , wxMacMakeMacStringFromPC( m_message) ) ;
+ }
+ else
+ {
+ strcpy( cText , m_message ) ;
+ }
- ParamText( pascalTitle , pascalText , NULL , NULL ) ;
+ wxMacConvertNewlines( cText , cText ) ;
+ CopyCStringToPascal( cText , pascalText ) ;
- if (m_dialogStyle & wxICON_EXCLAMATION)
- result = Alert( resourceID , NULL ) ;
- else if (m_dialogStyle & wxICON_HAND)
- result = StopAlert( resourceID , NULL ) ;
- else if (m_dialogStyle & wxICON_INFORMATION)
- result = NoteAlert( resourceID , NULL ) ;
- else if (m_dialogStyle & wxICON_QUESTION)
- result = CautionAlert( resourceID , NULL ) ;
- else
- result = Alert( resourceID , NULL ) ;
+ wxASSERT_MSG( ( m_dialogStyle & 0x3F ) != wxYES , "this style is not supported on mac" ) ;
- resultbutton = result ;
-
- if (m_dialogStyle & wxYES_NO)
- {
- if (m_dialogStyle & wxCANCEL)
- {
- switch( result )
- {
- case 1 :
- resultbutton = wxID_YES ;
- break ;
- case 2 :
- resultbutton = wxID_NO ;
- break ;
- case 3 :
- resultbutton = wxID_CANCEL ;
- break ;
- }
- }
- else
- {
- switch( result )
- {
- case 1 :
- resultbutton = wxID_YES ;
- break ;
- case 2 :
- resultbutton = wxID_NO ;
- break ;
- case 3 :
- break ;
- }
- }
- }
- }
+
+ 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
{
- AlertStdAlertParamRec param;
-
- param.movable = true;
- param.filterProc = NULL ;
-
- if (m_dialogStyle & wxYES_NO)
- {
- if (m_dialogStyle & wxCANCEL)
- {
- param.defaultText = "\pYes" ;
- param.cancelText = (StringPtr) kAlertDefaultCancelText;
- param.otherText = "\pNo";
- param.helpButton = false ;
- param.defaultButton = kAlertStdAlertOKButton;
- param.cancelButton = kAlertStdAlertCancelButton;
- }
- else
- {
- param.defaultText = "\pYes" ;
- param.cancelText = NULL;
- param.otherText = "\pNo";
- 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 ;
- }
+ return resultbutton ;
+ }
- param.position = 0;
+ 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)
+ if (m_dialogStyle & wxICON_EXCLAMATION)
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
+ 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 )
{
- switch( result )
- {
- case 1 :
- resultbutton = wxID_OK ;
- break ;
- case 2 :
- break ;
- case 3 :
- break ;
- }
+ 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 ;
- }
+ 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 ;
}