]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/msgdlg.cpp
made GetColourFromGTKWidget() more general, it is now used for all colours
[wxWidgets.git] / src / mac / msgdlg.cpp
index 5aa8554038e4959c5e492e2f80a5c1c413f5f1ec..17fae2c24f145ed7993f3925928f59adf5103cd3 100644 (file)
@@ -13,6 +13,7 @@
 #pragma implementation "msgdlg.h"
 #endif
 
 #pragma implementation "msgdlg.h"
 #endif
 
+#include "wx/app.h"
 #include "wx/msgdlg.h"
 #include "wx/mac/uma.h"
 
 #include "wx/msgdlg.h"
 #include "wx/mac/uma.h"
 
@@ -28,6 +29,7 @@ IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
 
 short language = 0 ;
 
 
 short language = 0 ;
 
+void wxMacConvertNewlines( const char *source , char * destination ) ;
 void wxMacConvertNewlines( const char *source , char * destination )
 {
        const char *s = source ;
 void wxMacConvertNewlines( const char *source , char * destination )
 {
        const char *s = source ;
@@ -71,12 +73,28 @@ int wxMessageDialog::ShowModal()
        short result ;
        Str255 pascalTitle ;
        Str255 pascalText ;
        short result ;
        Str255 pascalTitle ;
        Str255 pascalText ;
+       char   cText[256] ;
+
+       Str255 yesPString ;
+       Str255 noPString ;
+       
+       wxMacStringToPascal( m_caption , pascalTitle ) ;
+       wxMacStringToPascal( _("Yes") , yesPString ) ;
+       wxMacStringToPascal(  _("No") , noPString ) ;
        
        
-       strcpy( (char*) pascalTitle , m_caption ) ;
-       c2pstr( (char*) pascalTitle ) ;
-       strcpy( (char*) pascalText , m_message ) ;
-       wxMacConvertNewlines( (char*)pascalText ,(char*) pascalText) ;
-       c2pstr( (char*) pascalText ) ;
+       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" ) ;
 
        if ( !UMAHasAppearance() )
        {
 
        if ( !UMAHasAppearance() )
        {
@@ -166,18 +184,18 @@ int wxMessageDialog::ShowModal()
          {
            if (m_dialogStyle & wxCANCEL)
            {
          {
            if (m_dialogStyle & wxCANCEL)
            {
-                               param.defaultText       = "\pYes" ;
+                               param.defaultText       = yesPString ;
                                param.cancelText        = (StringPtr) kAlertDefaultCancelText;
                                param.cancelText        = (StringPtr) kAlertDefaultCancelText;
-                               param.otherText         = "\pNo";
+                               param.otherText         = noPString ;
                                param.helpButton        = false ;
                                param.defaultButton = kAlertStdAlertOKButton;
                                param.cancelButton      = kAlertStdAlertCancelButton;
            }
            else
            {
                                param.helpButton        = false ;
                                param.defaultButton = kAlertStdAlertOKButton;
                                param.cancelButton      = kAlertStdAlertCancelButton;
            }
            else
            {
-                               param.defaultText       = "\pYes" ;
+                               param.defaultText       = yesPString ;
                                param.cancelText        = NULL;
                                param.cancelText        = NULL;
-                               param.otherText         = "\pNo";
+                               param.otherText         = noPString ;
                                param.helpButton        = false ;
                                param.defaultButton = kAlertStdAlertOKButton;
                                param.cancelButton      = 0;
                                param.helpButton        = false ;
                                param.defaultButton = kAlertStdAlertOKButton;
                                param.cancelButton      = 0;