X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..904ccf52370e021b55b8a4c1afc5f62bc904da20:/src/mac/msgdlg.cpp

diff --git a/src/mac/msgdlg.cpp b/src/mac/msgdlg.cpp
index f19da7bb4f..03230aa707 100644
--- a/src/mac/msgdlg.cpp
+++ b/src/mac/msgdlg.cpp
@@ -13,19 +13,18 @@
 #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 ;
@@ -69,221 +68,159 @@ int wxMessageDialog::ShowModal()
 	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[256] ;
 
-	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, &param, &result );
-	  else if (m_dialogStyle & wxICON_HAND)
-				StandardAlert( kAlertStopAlert, pascalTitle, pascalText, &param, &result );
-	  else if (m_dialogStyle & wxICON_INFORMATION)
+  if (m_dialogStyle & wxICON_EXCLAMATION)
 			StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, &param, &result );
-	  else if (m_dialogStyle & wxICON_QUESTION)
-				StandardAlert( kAlertCautionAlert, pascalTitle, pascalText, &param, &result );
-		else
-				StandardAlert( kAlertPlainAlert, pascalTitle, pascalText, &param, &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, &param, &result );
+  else if (m_dialogStyle & wxICON_INFORMATION)
+		StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, &param, &result );
+  else if (m_dialogStyle & wxICON_QUESTION)
+			StandardAlert( kAlertCautionAlert, pascalTitle, pascalText, &param, &result );
+	else
+			StandardAlert( kAlertPlainAlert, pascalTitle, pascalText, &param, &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 ;
 }