void wxMacConvertToPC( unsigned char *p ) ;
wxString wxMacMakePCStringFromMac( const char * p ) ;
+// converts this string into a pascal with optional pc 2 mac encoding
+void wxMacStringToPascal( const char * from , StringPtr to , bool pc2macEncoding ) ;
+
+// converts this string into a pascal with pc 2 mac encoding if s_macDefaultEncodingIsPC
+inline void wxMacStringToPascal( const char * from , StringPtr to )
+ { wxMacStringToPascal( from , to , wxApp::s_macDefaultEncodingIsPC ) ; }
+
+// converts this string into a pascal with optional mac 2 pc encoding
+wxString wxMacMakeStringFromPascal( StringPtr from , bool mac2pcEncoding ) ;
+
+// converts this pascal string into a wxString with pc 2 mac encoding if s_macDefaultEncodingIsPC
+inline wxString wxMacMakeStringFromPascal( StringPtr from )
+ { return wxMacMakeStringFromPascal( from , wxApp::s_macDefaultEncodingIsPC ) ; }
+
+// converts this c string into a wxString with optional mac 2 pc encoding
+wxString wxMacMakeStringFromMacString( const char* from , bool mac2pcEncoding ) ;
+
+// converts this c string into a wxString with pc 2 mac encoding if s_macDefaultEncodingIsPC
+inline wxString wxMacMakeStringFromMacString( const char* from )
+ { return wxMacMakeStringFromMacString( from , wxApp::s_macDefaultEncodingIsPC ) ; }
+
#endif
// _WX_APP_H_
int wxApp::s_lastMouseDown = 0 ;
long wxApp::sm_lastMessageTime = 0;
-#ifdef __WXMAC__
-
bool wxApp::s_macDefaultEncodingIsPC = true ;
bool wxApp::s_macSupportPCMenuShortcuts = true ;
long wxApp::s_macAboutMenuItemId = wxID_ABOUT ;
return result ;
}
-#endif
+wxString wxMacMakeStringFromMacString( const char* from , bool mac2pcEncoding )
+{
+ if (mac2pcEncoding)
+ {
+ return wxMacMakePCStringFromMac( from ) ;
+ }
+ else
+ {
+ return wxString( from ) ;
+ }
+}
+
+wxString wxMacMakeStringFromPascal( StringPtr from , bool mac2pcEncoding )
+{
+ // this is safe since a pascal string can never be larger than 256 bytes
+ char s[256] ;
+ CopyPascalStringToC( from , s ) ;
+ if (mac2pcEncoding)
+ {
+ return wxMacMakePCStringFromMac( s ) ;
+ }
+ else
+ {
+ return wxString( s ) ;
+ }
+}
+
+void wxMacStringToPascal( const char * from , StringPtr to , bool pc2macEncoding )
+{
+ if (pc2macEncoding)
+ {
+ CopyCStringToPascal( wxMacMakeMacStringFromPC( from ) , to ) ;
+ }
+ else
+ {
+ CopyCStringToPascal( from , to ) ;
+ }
+}
bool wxApp::Initialize()
{
int wxApp::s_lastMouseDown = 0 ;
long wxApp::sm_lastMessageTime = 0;
-#ifdef __WXMAC__
-
bool wxApp::s_macDefaultEncodingIsPC = true ;
bool wxApp::s_macSupportPCMenuShortcuts = true ;
long wxApp::s_macAboutMenuItemId = wxID_ABOUT ;
return result ;
}
-#endif
+wxString wxMacMakeStringFromMacString( const char* from , bool mac2pcEncoding )
+{
+ if (mac2pcEncoding)
+ {
+ return wxMacMakePCStringFromMac( from ) ;
+ }
+ else
+ {
+ return wxString( from ) ;
+ }
+}
+
+wxString wxMacMakeStringFromPascal( StringPtr from , bool mac2pcEncoding )
+{
+ // this is safe since a pascal string can never be larger than 256 bytes
+ char s[256] ;
+ CopyPascalStringToC( from , s ) ;
+ if (mac2pcEncoding)
+ {
+ return wxMacMakePCStringFromMac( s ) ;
+ }
+ else
+ {
+ return wxString( s ) ;
+ }
+}
+
+void wxMacStringToPascal( const char * from , StringPtr to , bool pc2macEncoding )
+{
+ if (pc2macEncoding)
+ {
+ CopyCStringToPascal( wxMacMakeMacStringFromPC( from ) , to ) ;
+ }
+ else
+ {
+ CopyCStringToPascal( from , to ) ;
+ }
+}
bool wxApp::Initialize()
{
short language = 0 ;
+void wxMacConvertNewlines( const char *source , char * destination ) ;
void wxMacConvertNewlines( const char *source , char * destination )
{
const char *s = source ;
Str255 pascalTitle ;
Str255 pascalText ;
char cText[256] ;
+
+ Str255 yesPString ;
+ Str255 noPString ;
+
+ wxMacStringToPascal( m_caption , pascalTitle ) ;
+ wxMacStringToPascal( _("Yes") , yesPString ) ;
+ wxMacStringToPascal( _("No") , noPString ) ;
if (wxApp::s_macDefaultEncodingIsPC)
{
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalTitle , wxMacMakeMacStringFromPC( m_caption ) ) ;
-#else
- strcpy( (char *) pascalTitle , wxMacMakeMacStringFromPC( m_caption ) ) ;
- c2pstr( (char *) pascalTitle ) ;
-#endif
strcpy(cText , wxMacMakeMacStringFromPC( m_message) ) ;
}
else
{
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalTitle , m_caption ) ;
-#else
- strcpy( (char *) pascalTitle , m_caption ) ;
- c2pstr( (char *) pascalTitle ) ;
-#endif
strcpy( cText , m_message ) ;
}
wxMacConvertNewlines( cText , cText ) ;
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalText , cText ) ;
-#else
- strcpy( (char *) pascalText , cText ) ;
- c2pstr( (char *) pascalText ) ;
-#endif
+ CopyCStringToPascal( cText , pascalText ) ;
wxASSERT_MSG( ( m_dialogStyle & 0x3F ) != wxYES , "this style is not supported on mac" ) ;
{
if (m_dialogStyle & wxCANCEL)
{
- param.defaultText = "\pYes" ;
+ param.defaultText = yesPString ;
param.cancelText = (StringPtr) kAlertDefaultCancelText;
- param.otherText = "\pNo";
+ param.otherText = noPString ;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = kAlertStdAlertCancelButton;
}
else
{
- param.defaultText = "\pYes" ;
+ param.defaultText = yesPString ;
param.cancelText = NULL;
- param.otherText = "\pNo";
+ param.otherText = noPString ;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = 0;
short language = 0 ;
+void wxMacConvertNewlines( const char *source , char * destination ) ;
void wxMacConvertNewlines( const char *source , char * destination )
{
const char *s = source ;
Str255 pascalTitle ;
Str255 pascalText ;
char cText[256] ;
+
+ Str255 yesPString ;
+ Str255 noPString ;
+
+ wxMacStringToPascal( m_caption , pascalTitle ) ;
+ wxMacStringToPascal( _("Yes") , yesPString ) ;
+ wxMacStringToPascal( _("No") , noPString ) ;
if (wxApp::s_macDefaultEncodingIsPC)
{
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalTitle , wxMacMakeMacStringFromPC( m_caption ) ) ;
-#else
- strcpy( (char *) pascalTitle , wxMacMakeMacStringFromPC( m_caption ) ) ;
- c2pstr( (char *) pascalTitle ) ;
-#endif
strcpy(cText , wxMacMakeMacStringFromPC( m_message) ) ;
}
else
{
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalTitle , m_caption ) ;
-#else
- strcpy( (char *) pascalTitle , m_caption ) ;
- c2pstr( (char *) pascalTitle ) ;
-#endif
strcpy( cText , m_message ) ;
}
wxMacConvertNewlines( cText , cText ) ;
-#if TARGET_CARBON
- c2pstrcpy( (StringPtr) pascalText , cText ) ;
-#else
- strcpy( (char *) pascalText , cText ) ;
- c2pstr( (char *) pascalText ) ;
-#endif
+ CopyCStringToPascal( cText , pascalText ) ;
wxASSERT_MSG( ( m_dialogStyle & 0x3F ) != wxYES , "this style is not supported on mac" ) ;
{
if (m_dialogStyle & wxCANCEL)
{
- param.defaultText = "\pYes" ;
+ param.defaultText = yesPString ;
param.cancelText = (StringPtr) kAlertDefaultCancelText;
- param.otherText = "\pNo";
+ param.otherText = noPString ;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = kAlertStdAlertCancelButton;
}
else
{
- param.defaultText = "\pYes" ;
+ param.defaultText = yesPString ;
param.cancelText = NULL;
- param.otherText = "\pNo";
+ param.otherText = noPString ;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = 0;