]> git.saurik.com Git - wxWidgets.git/commitdiff
removal of pc-mac charset conversion for wxMac
authorStefan Csomor <csomor@advancedconcepts.ch>
Sun, 14 Sep 2003 18:40:43 +0000 (18:40 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sun, 14 Sep 2003 18:40:43 +0000 (18:40 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

26 files changed:
include/wx/app.h
include/wx/filefn.h
include/wx/mac/private.h
include/wx/wxchar.h
src/common/appbase.cpp
src/common/filefn.cpp
src/common/wxchar.cpp
src/generic/logg.cpp
src/mac/app.cpp
src/mac/carbon/app.cpp
src/mac/carbon/choice.cpp
src/mac/carbon/clipbrd.cpp
src/mac/carbon/dc.cpp
src/mac/carbon/dnd.cpp
src/mac/carbon/listbox.cpp
src/mac/carbon/textctrl.cpp
src/mac/carbon/tooltip.cpp
src/mac/carbon/utils.cpp
src/mac/choice.cpp
src/mac/clipbrd.cpp
src/mac/dc.cpp
src/mac/dnd.cpp
src/mac/listbox.cpp
src/mac/textctrl.cpp
src/mac/tooltip.cpp
src/mac/utils.cpp

index 477ce55e93256b5130ff6e6d790f1e664cc11c7c..edd3eef48865a0ff307693c7e9911a9ec1777490 100644 (file)
@@ -291,12 +291,6 @@ public:
     int      argc;
     wxChar **argv;
 
-#ifdef __WXMAC__
-    // This is needed in the wxAppConsole class because it is refereced from
-    // the wxBase library
-    static bool           s_macDefaultEncodingIsPC ;
-#endif
-
 protected:
     // the function which creates the traits object when GetTraits() needs it
     // for the first time
index 32ff8ffaf357e691de2a1f9c3afbae2601d27f57..2acd4857c446a254eb22e9c148dde65b04988a85 100644 (file)
@@ -157,18 +157,11 @@ enum wxSeekMode
 WXDLLIMPEXP_BASE int wxStat( const wxChar *file_name, wxStructStat *buf );
 WXDLLIMPEXP_BASE int wxAccess( const wxChar *pathname, int mode );
 WXDLLIMPEXP_BASE int wxOpen( const wxChar *pathname, int flags, mode_t mode );
-#else
-#if defined(__WXMAC__) && !defined(__DARWIN__)  && !wxUSE_UNICODE
-#include <sys/stat.h>
-WXDLLIMPEXP_BASE int wxStat( const wxChar *file_name, wxStructStat *buf );
-WXDLLIMPEXP_BASE int wxAccess( const wxChar *pathname, int mode );
-WXDLLIMPEXP_BASE int wxOpen( const wxChar *pathname, int flags, mode_t mode );
 #else
     #define   wxOpen       open
     #define   wxStat       stat
     #define   wxAccess     access
 #endif
-#endif
 
 #endif  // VC++
 
index 5ebbdf1857703ee62fbfbc0a8fe3905231a436b9..d909c2009bf9c58e90fb3617c528247843c32821 100644 (file)
@@ -161,11 +161,6 @@ void wxMacCleanupConverters() ;
 void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
 wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
 
-wxCharBuffer wxMacStringToCString( const wxString &from ) ;
-wxWCharBuffer wxMacStringToWString( const wxString &from ) ;
-wxString wxMacMakeStringFromCString( const char * from , int len ) ;
-wxString wxMacMakeStringFromCString( const char * from ) ;
-
 #if TARGET_CARBON
 
 class wxMacCFStringHolder                                                             
@@ -227,81 +222,7 @@ private:
     bool m_release ;                                                        
 } ;
 
-//  CFStringRef wxMacStringToCFString( const wxString &str ) ;
-//  wxString wxMacMakeStringFromCFString( CFStringRef cf ) ;
 #endif
 
-#if 0
-
-void wxMacConvertToPC( const char *from , char *to , int len ) ;
-void wxMacConvertFromPC( const char *from , char *to , int len ) ;
-void wxMacConvertToPC( const char *from , char *to , int len ) ;
-
-wxString wxMacMakeMacStringFromPC( const wxChar * p ) ;
-
-wxString wxMacMakePCStringFromMac( const wxChar * p ) ;
-
-
-// converts this c string into a wxString with optional mac 2 pc encoding
-wxString wxMacMakeStringFromMacString( const wxChar* from , bool mac2pcEncoding ) ;
-
-// converts this c string into a wxString with pc 2 mac encoding if s_macDefaultEncodingIsPC
-inline wxString wxMacMakeStringFromMacString( const wxChar* from  ) 
-  { return wxMacMakeStringFromMacString( from , wxApp::s_macDefaultEncodingIsPC ) ; }
-
-#if wxUSE_UNICODE
-
-wxString wxMacMakeMacStringFromPC( const char * p ) ;
-
-wxString wxMacMakePCStringFromMac( const char * p ) ;
-
-// 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
-
-// converts this c string into a wxString with pc 2 mac encoding if s_macDefaultEncodingIsPC
-inline wxString wxMacMakeStringFromMacString( const wxString& from  ) 
-  { return wxApp::s_macDefaultEncodingIsPC ? 
-      wxMacMakeStringFromMacString( from.c_str() , true ) : from ; }
-
-// 
-// Pascal Strings
-//
-
-// converts this string into a pascal with optional pc 2 mac encoding
-void wxMacStringToPascal( const wxChar * from , StringPtr to , bool pc2macEncoding ) ;
-
-// converts this string into a pascal with pc 2 mac encoding if s_macDefaultEncodingIsPC
-inline void wxMacStringToPascal( const wxChar * from , StringPtr to ) 
-  { wxMacStringToPascal( from , to , wxApp::s_macDefaultEncodingIsPC ) ; }
-
-// converts this string into a pascal with optional mac 2 pc encoding
-wxString wxMacMakeStringFromPascal( ConstStringPtr from , bool mac2pcEncoding ) ;
-
-// converts this pascal string into a wxString with pc 2 mac encoding if s_macDefaultEncodingIsPC
-inline wxString wxMacMakeStringFromPascal( ConstStringPtr from  ) 
-  { return wxMacMakeStringFromPascal( from , wxApp::s_macDefaultEncodingIsPC ) ; }
-
-// 
-// CFStringRefs (Carbon only)
-//
-
-#if TARGET_CARBON
-// converts this string into a carbon foundation string with optional pc 2 mac encoding
-CFStringRef wxMacStringToCFString( const wxString &str , bool pc2macEncoding ) ;
-
-// converts this string into a carbon foundation string with optional pc 2 mac encoding
-inline CFStringRef wxMacStringToCFString( const wxString &str ) 
-  { return wxMacStringToCFString( str , wxApp::s_macDefaultEncodingIsPC ) ; }
-
-#endif //TARGET_CARBON
-
-#endif // 0
-
 #endif
     // _WX_PRIVATE_H_
index 27148c595d09d98cdd1ee2d40b4411e92f588508..c2c2605bf22d86dd224a5fc1b5a8c95488e7d81a 100644 (file)
         #define  wxStrxfrm   strxfrm
 
         // stdio.h functions
-        #if defined(__WXMAC__) && !defined(__DARWIN__)  && !wxUSE_UNICODE
-        #include <stdio.h>
-        WXDLLIMPEXP_BASE FILE *   wxFopen(const wxChar *path, const wxChar *mode);
-        WXDLLIMPEXP_BASE FILE *   wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream);
-        WXDLLIMPEXP_BASE int      wxRemove(const wxChar *path);
-        WXDLLIMPEXP_BASE int      wxRename(const wxChar *oldpath, const wxChar *newpath);
-        #else
         #define  wxFopen     fopen
         #define  wxFreopen   freopen
         #define  wxRemove    remove
         #define  wxRename    rename
-        #endif
+
         #define  wxPerror    perror
         #define  wxTmpnam    tmpnam
 
index 1ba660b4f31aff63ab3e9710be725701564e0eac..51f2c8f1b6685d6ba2b37fd8a538b3e6a8903433 100644 (file)
@@ -93,10 +93,6 @@ wxAppConsole *wxAppConsole::ms_appInstance = NULL;
 
 wxAppInitializerFunction wxAppConsole::ms_appInitFn = NULL;
 
-#ifdef __WXMAC__
-bool wxAppConsole::s_macDefaultEncodingIsPC = true ;
-#endif
-
 // ============================================================================
 // wxAppConsole implementation
 // ============================================================================
index d26964413aac9dfde38b6c9ab2eaf3a06f868d9c..8c6e4a720417c642cd1d39b4b73d19f9fdac811a 100644 (file)
@@ -196,25 +196,6 @@ const off_t wxInvalidOffset = (off_t)-1;
 // implementation
 // ============================================================================
 
-#if defined(__WXMAC__) && !defined(__DARWIN__) && !wxUSE_UNICODE
-
-WXDLLEXPORT int wxStat( const wxChar *file_name, wxStructStat *buf )
-{
-    return stat( wxMacStringToCString( file_name ), buf );
-}
-
-WXDLLEXPORT int wxAccess( const wxChar *pathname, int mode )
-{
-    return access( wxMacStringToCString( pathname ), mode );
-}
-
-WXDLLEXPORT int wxOpen( const wxChar *pathname, int flags, mode_t mode )
-{
-    return open( wxMacStringToCString( pathname ), flags, mode );
-}
-
-#endif
-
 #ifdef wxNEED_WX_UNISTD_H
 
 WXDLLEXPORT int wxStat( const wxChar *file_name, wxStructStat *buf )
@@ -991,7 +972,7 @@ wxString wxMacFSSpec2MacFilename( const FSSpec *spec )
         (*myPath)[length-1] = 0 ;
 
     // create path string for return value
-    wxString result = wxMacMakeStringFromCString( *myPath ) ;
+    wxString result( *myPath , wxConvLocal) ;
 
     // free allocated handle
     ::HUnlock( myPath ) ;
@@ -1037,7 +1018,7 @@ void wxMacFilename2FSSpec( const char *path , FSSpec *spec )
 #if wxUSE_UNICODE
 WXDLLEXPORT void wxMacFilename2FSSpec( const wxChar *path , FSSpec *spec ) 
 {
-    return wxMacFilename2FSSpec( wxMacStringToCString( wxString( path ) ) , spec ) ;
+    return wxMacFilename2FSSpec( wxConvFile.cWC2MB(path) , spec ) ;
 }
 #endif
 
index 230a9338ac7f2e9e2ebfaedee1178a8ce2759678..11233ff4fd70fe9215b75ab884b0d2b2d3f57ac3 100644 (file)
@@ -1205,28 +1205,6 @@ WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base)
 }
 #endif // wxNEED_WX_STRING_H
 
-#if defined(__WXMAC__) && !defined(__DARWIN__) && !wxUSE_UNICODE
-WXDLLEXPORT FILE * wxFopen(const wxChar *path, const wxChar *mode)
-{
-    return fopen( wxMacStringToCString(path), mode );
-}
-
-WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream)
-{
-    return freopen( wxMacStringToCString(path), mode, stream );
-}
-
-WXDLLEXPORT int wxRemove(const wxChar *path)
-{
-    return remove( wxMacStringToCString(path) );
-}
-
-WXDLLEXPORT int wxRename(const wxChar *oldpath, const wxChar *newpath)
-{
-    return rename( wxMacStringToCString(oldpath), wxMacStringToCString(newpath) );
-}
-#endif
-
 #ifdef wxNEED_WX_STDIO_H
 WXDLLEXPORT FILE * wxFopen(const wxChar *path, const wxChar *mode)
 {
index ca78f51f9e80861a245c78d917cba90e985a4ef7..daea3accf774a2cd09dee56e7be5245b77dd8785 100644 (file)
@@ -1171,14 +1171,7 @@ void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
     wxString msg;
     TimeStamp(&msg);
 
-#if defined(__WXMAC__)
-    // VZ: this is a bug in wxMac, it *must* accept '\n' as new line, the
-    //     translation must be done in wxTextCtrl, not here! (FIXME)
-    msg << szString << wxT('\r');
-#else
     msg << szString << wxT('\n');
-#endif
-
     m_pTextCtrl->AppendText(msg);
 }
 
index 9b891f5fa448ea8a0396d3c47b7367fb2a7a12c2..90ff659bcbb4c93ae650759be50a661f384321c5 100644 (file)
@@ -600,7 +600,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #endif
 
 #endif
-    wxMacSetupConverters() ;
 
     s_macCursorRgn = ::NewRgn() ;
 
@@ -702,7 +701,6 @@ void wxApp::CleanUp()
     //   __wxterminate in Mach-O shared libraries
     wxStAppResource::CloseSharedLibraryResource();
 #endif
-    wxMacCleanupConverters() ;
 
     UMACleanupToolbox() ;
     if (s_macCursorRgn) {
index 9b891f5fa448ea8a0396d3c47b7367fb2a7a12c2..90ff659bcbb4c93ae650759be50a661f384321c5 100644 (file)
@@ -600,7 +600,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #endif
 
 #endif
-    wxMacSetupConverters() ;
 
     s_macCursorRgn = ::NewRgn() ;
 
@@ -702,7 +701,6 @@ void wxApp::CleanUp()
     //   __wxterminate in Mach-O shared libraries
     wxStAppResource::CloseSharedLibraryResource();
 #endif
-    wxMacCleanupConverters() ;
 
     UMACleanupToolbox() ;
     if (s_macCursorRgn) {
index c130d3798aa099eb4a68f8d16755fe6194fcd73b..c963dcad3271faf238ae96a51b3ea303e50c752a 100644 (file)
@@ -272,8 +272,7 @@ wxSize wxChoice::DoGetBestSize() const
                 &baseline );
             wLine = bounds.h ;
         #else
-            wxCharBuffer text = wxMacStringToCString( str ) ;
-            wLine = ::TextWidth( text , 0 , strlen(text) ) ;
+            wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }
index d7a5b8bc5292488a904babb1073ee06ee18dec66..5ef8fdb107219295dbfb439eb0399c7c2f13c67a 100644 (file)
@@ -136,18 +136,14 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
         return NULL ;
     }
 
-    if ( dataFormat.GetType() == wxDF_TEXT && wxApp::s_macDefaultEncodingIsPC )
+    if ( dataFormat.GetType() == wxDF_TEXT )
     {
-        wxString st = wxMacMakeStringFromCString( (char*) data ) ;
-#if wxUSE_UNICODE
-        wxCharBuffer buf = st.ToAscii() ;
-#else
-        const char* buf = st ;
-#endif
-        char* newdata = new char[strlen(buf)+1] ;
-        memcpy( newdata , buf , strlen(buf)+1 ) ;
-        delete[] ((char*) data ) ;
-        data = newdata ;
+        char * buf = (char*) data ;
+        while( (buf=strchr(buf,0x0a)) != NULL )
+        {
+            *buf = 13 ;
+            buf++ ;
+        }
     }
 
     return data;
@@ -252,8 +248,7 @@ bool wxClipboard::AddData( wxDataObject *data )
            case wxDF_OEMTEXT:
            {
                wxTextDataObject* textDataObject = (wxTextDataObject*) data;
-               wxString str(textDataObject->GetText());
-               wxCharBuffer buf = wxMacStringToCString( str ) ;
+               wxCharBuffer buf = textDataObject->GetText().mb_str() ;
                err = UMAPutScrap( strlen(buf) , kScrapFlavorTypeText , (void*) buf.data()  ) ;
            }
            break ;
index edfaa69506e051cd1971a41aecb7123c6d202a03..9285b2006ae9799d685dd0fea70bde1b9f9bb814 100644 (file)
@@ -55,6 +55,8 @@ const double RAD2DEG  = 180.0 / M_PI;
 const short kEmulatedMode = -1 ;
 const short kUnsupportedMode = -2 ;
 
+extern TECObjectRef s_TECNativeCToUnicode ;
+
 // set to 0 if problems arise
 #define wxMAC_EXPERIMENTAL_DC 1
 
@@ -1353,24 +1355,9 @@ void  wxDC::DoDrawRotatedText(const wxString& str, wxCoord x, wxCoord y,
     status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) (const wxChar*) str , 0 , str.Length() , str.Length() , 1 ,
         &chars , (ATSUStyle*) &m_macATSUIStyle , &atsuLayout ) ;
 #else
-    TECObjectRef ec;
-    status = TECCreateConverter(&ec,
-                                wxApp::s_macDefaultEncodingIsPC
-                                    ? (int)kTextEncodingWindowsLatin1
-                                    : (int)kTextEncodingMacRoman,
-                                kTextEncodingUnicodeDefault);
-        
-    wxASSERT_MSG( status == noErr , wxT("couldn't start converter") ) ;
-    ByteCount byteOutLen ;
-    ByteCount byteInLen = str.Length() ;
-    ByteCount byteBufferLen = byteInLen *2 ;
-    char* buf = new char[byteBufferLen] ;
-    status = TECConvertText(ec, (ConstTextPtr)str.c_str() , byteInLen, &byteInLen,
-        (TextPtr)buf, byteBufferLen, &byteOutLen);
-    wxASSERT_MSG( status == noErr , wxT("couldn't convert text") ) ;
-    status = TECDisposeConverter(ec);
-    wxASSERT_MSG( status == noErr , wxT("couldn't dispose converter") ) ;
-    status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) buf , 0 , byteOutLen / 2 , byteOutLen / 2 , 1 ,
+    wxWCharBuffer wchar = str.wc_str( wxConvLocal ) ;
+    int wlen = wxWcslen( wchar.data() ) ;
+    status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) wchar.data() , 0 , wlen , wlen , 1 ,
         &chars , (ATSUStyle*) &m_macATSUIStyle , &atsuLayout ) ;
 #endif
     wxASSERT_MSG( status == noErr , wxT("couldn't create the layout of the rotated text") );
@@ -1418,10 +1405,6 @@ void  wxDC::DoDrawRotatedText(const wxString& str, wxCoord x, wxCoord y,
     CalcBoundingBox(XDEV2LOG(rect.left), YDEV2LOG(rect.top) );
     CalcBoundingBox(XDEV2LOG(rect.right), YDEV2LOG(rect.bottom) );
     ::ATSUDisposeTextLayout(atsuLayout);
-#if wxUSE_UNICODE
-#else
-    delete[] buf ;
-#endif
 }
 
 void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
@@ -1501,7 +1484,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
                 else
 #endif
                 {
-                    wxCharBuffer text = wxMacStringToCString(linetext) ; 
+                    wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
                     ::DrawText( text , 0 , strlen(text) ) ;
                     line++ ;
                     ::MoveTo( xx , yy + line*(fi.descent + fi.ascent + fi.leading) );
@@ -1543,7 +1526,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
         else
 #endif
         {
-            wxCharBuffer text = wxMacStringToCString(linetext) ; 
+            wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
             ::DrawText( text , 0 , strlen(text) ) ;
          }
     }
@@ -1583,21 +1566,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
     if ( externalLeading )
         *externalLeading = YDEV2LOGREL( fi.leading ) ;
     int length = strtext.Length() ;
-    /*
-    const char *text = NULL ;
-    wxString macText ;
-    if ( wxApp::s_macDefaultEncodingIsPC )
-    {
-        macText = wxMacMakeMacStringFromPC( string ) ;
-        text = macText ;
-        length = macText.Length() ;
-    } 
-    else
-    {
-        text = string ;
-        length = string.Length() ;
-    }
-    */
+
     int laststop = 0 ;
     int i = 0 ;
     int curwidth = 0 ;
@@ -1628,7 +1597,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
                 else
 #endif
                 {
-                    wxCharBuffer text = wxMacStringToCString(linetext) ; 
+                    wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
                     curwidth = ::TextWidth( text , 0 , strlen(text) ) ;
                 }
                 if ( curwidth > *width )
@@ -1656,7 +1625,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
         else
 #endif
         {
-            wxCharBuffer text = wxMacStringToCString(linetext) ; 
+            wxCharBuffer text = linetext.mb_str(wxConvLocal) ;  
             curwidth = ::TextWidth( text , 0 , strlen(text) ) ;
         }
         if ( curwidth > *width )
index 8372417d08874b4fea0ec448293d3636b9afbd4f..22ced39ede9fbf79b9fbd1cc2cf95cd94d7cc111 100644 (file)
@@ -206,7 +206,7 @@ bool wxDropTarget::GetData()
                         if( theType == 'TEXT' )
                         {
                             theData[dataSize]=0 ; 
-                            wxString convert = wxMacMakeStringFromCString( theData ) ;    
+                            wxString convert( theData , wxConvLocal ) ;    
                             m_dataObject->SetData( format, convert.Length() * sizeof(wxChar), (const wxChar*) convert );
                         }
                         else if ( theType == kDragFlavorTypeHFS )
@@ -302,7 +302,7 @@ wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
             dataSize-- ;
             dataPtr[ dataSize ] = 0 ;
             wxString st( (wxChar*) dataPtr ) ;
-            wxCharBuffer buf = wxMacStringToCString( st ) ;
+            wxCharBuffer buf = st.mb_str( wxConvLocal) ;
             AddDragItemFlavor(theDrag, theItem, type , buf.data(), strlen(buf), 0);
         }
         else if (type == kDragFlavorTypeHFS )
index d5c590caeb37523d6c210fec38887eae35704ca3..b72970b0c2f6d585bb6a30fcce7d1d6ffebfc295 100644 (file)
@@ -137,7 +137,7 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
                        }
 #else
             {  
-               wxCharBuffer text = wxMacStringToCString( linetext ) ;
+               wxCharBuffer text = linetext.mb_str( wxConvLocal) ;
                 MoveTo(drawRect->left + 4 , drawRect->top + 10 );
                 DrawText(text, 0 , strlen(text) );
             }
@@ -633,8 +633,7 @@ wxSize wxListBox::DoGetBestSize() const
                 &baseline );
             wLine = bounds.h ;
         #else
-            wxCharBuffer text = wxMacStringToCString( str ) ;
-            wLine = ::TextWidth( text , 0 , strlen(text) ) ;
+            wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }
index 50daa9708f5015097acb48c4e05a28bc64ccb6d5..e86d3299a3d75db2ce3fd00bcece8742ff8479ca 100644 (file)
@@ -687,7 +687,7 @@ const short kVerticalMargin = 2 ;
 const short kHorizontalMargin = 2 ;
 
 bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
-           const wxString& st,
+           const wxString& str,
            const wxPoint& pos,
            const wxSize& size, long style,
            const wxValidator& validator,
@@ -747,6 +747,8 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         m_editable = FALSE ;
     }
 
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
         m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , false , 0 , 0 , 1,
@@ -771,7 +773,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
 
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text = st.mb_str(wxConvLocal) ;
         ::SetControlData( (ControlHandle) m_macControl, 0, ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag , strlen(text) , text ) ;
     }
     else
@@ -785,7 +787,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         TXNSetData( ((TXNObject) m_macTXN) , kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2,
           kTXNStartOffset, kTXNEndOffset);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal)  ;
         TXNSetData( ((TXNObject) m_macTXN) , kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNStartOffset, kTXNEndOffset);
 #endif
@@ -817,7 +819,7 @@ wxString wxTextCtrl::GetValue() const
             ::GetControlData( (ControlHandle) m_macControl, 0,
                 ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag,
                 actualSize , buf.data() , &actualSize ) ;
-            result = wxMacMakeStringFromCString( buf ) ;
+            result = wxString( buf , wxConvLocal) ;
         }
     }
     else
@@ -856,14 +858,14 @@ wxString wxTextCtrl::GetValue() const
             if ( actualSize > 0 )
             {
                 HLock( theText ) ;
-                result = wxMacMakeStringFromCString( *theText , actualSize ) ;
+                result = wxString( *theText , wxConvLocal , actualSize ) ;
                 HUnlock( theText ) ;
             }
             DisposeHandle( theText ) ;
         }
 #endif
     }
-
+    result.Replace(wxT("\r"),wxT("\n")) ;
     return result ;
 }
 
@@ -880,11 +882,13 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
    }
 }
 
-void wxTextCtrl::SetValue(const wxString& st)
+void wxTextCtrl::SetValue(const wxString& str)
 {
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         ::SetControlData( (ControlHandle) m_macControl, 0, ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag , strlen(text) , text ) ;
     }
     else
@@ -896,7 +900,7 @@ void wxTextCtrl::SetValue(const wxString& st)
         TXNSetData( ((TXNObject) m_macTXN), kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2 ,
           kTXNStartOffset, kTXNEndOffset);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNStartOffset, kTXNEndOffset);
 #endif
@@ -1167,8 +1171,10 @@ long wxTextCtrl::GetLastPosition() const
     }
 }
 
-void wxTextCtrl::Replace(long from, long to, const wxString& value)
+void wxTextCtrl::Replace(long from, long to, const wxString& str)
 {
+    wxString value = str ;
+    value.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
         ControlEditTextSelectionRec selection ;
@@ -1270,11 +1276,13 @@ bool wxTextCtrl::LoadFile(const wxString& file)
     return FALSE;
 }
 
-void wxTextCtrl::WriteText(const wxString& st)
+void wxTextCtrl::WriteText(const wxString& str)
 {
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TEInsert( text , strlen(text) , ((TEHandle) m_macTE) ) ;
     }
     else
@@ -1288,7 +1296,7 @@ void wxTextCtrl::WriteText(const wxString& st)
         TXNSetData( ((TXNObject) m_macTXN), kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2 ,
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
 #endif
@@ -1477,12 +1485,12 @@ int wxTextCtrl::GetLineLength(long lineNo) const
             for (size_t j = i; j < content.Length(); j++)
             {
                 count++;
-                if (content[j] == '\r') return count;
+                if (content[j] == '\n') return count;
             }
 
             return count;
         }
-        if (content[i] == '\r') count++;
+        if (content[i] == '\n') count++;
     }
     return 0;
 }
@@ -1503,7 +1511,7 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
 
             for (size_t j = i; j < content.Length(); j++)
             {
-                if (content[j] == '\r')
+                if (content[j] == '\n')
                     return tmp;
 
                 tmp += content[j];
@@ -1511,7 +1519,7 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
 
             return tmp;
         }
-        if (content[i] == '\r') count++;
+        if (content[i] == '\n') count++;
     }
     return wxEmptyString ;
 }
index 042a6f2c35e3902fd35e127b135ba72d5fe5d0e3..3334d6b70bce575315d8b92922464517dfa21bcb 100644 (file)
@@ -262,7 +262,7 @@ void wxMacToolTip::Draw()
         int width = 0 ;
         int thiswidth = 0 ;
         int laststop = 0 ;
-        wxCharBuffer text = wxMacStringToCString( m_label ) ;
+        wxCharBuffer text = m_label.mb_str( wxConvLocal)  ;
 
         while( i < length )
         {
index 377d61880d58461488200d15aaf08df7be0f8986..16f91e18e350ba621e7d7d047111c43f9077291d 100644 (file)
@@ -546,6 +546,8 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 // wxMac Specific utility functions
 //---------------------------------------------------------------------------
 
+#if 0
+
 char StringMac[] =  "\x0d\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
                     "\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
                     "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xae\xaf"
@@ -632,17 +634,17 @@ void wxMacConvertToPC( const char *from , char *to , int len )
 
 TECObjectRef s_TECNativeCToUnicode = NULL ;
 TECObjectRef s_TECUnicodeToNativeC = NULL ;
-TECObjectRef s_TECPlatformToNativeC = NULL ;
-TECObjectRef s_TECNativeCToPlatform = NULL ;
+
 void wxMacSetupConverters()
 {
     // if we assume errors are happening here we need low level debugging
     // since the high level assert will use the encoders that are not yet
     // setup...
-    const int kEncoding = wxApp::s_macDefaultEncodingIsPC
-                            ? (int)kTextEncodingWindowsLatin1
-                            : (int)kTextEncodingMacRoman;
-
+#if TARGET_CARBON
+    const TextEncodingBase kEncoding = CFStringGetSystemEncoding();
+#else
+    const TextEncodingBase kEncoding = kTextEncodingMacRoman;
+#endif
     OSStatus status = noErr ;
     status = TECCreateConverter(&s_TECNativeCToUnicode,
                                 kEncoding,
@@ -652,18 +654,6 @@ void wxMacSetupConverters()
     status = TECCreateConverter(&s_TECUnicodeToNativeC,
                                 kTextEncodingUnicodeDefault,
                                 kEncoding);
-
-    if ( wxApp::s_macDefaultEncodingIsPC )
-    {
-        status = TECCreateConverter(&s_TECPlatformToNativeC,
-                                    kTextEncodingMacRoman,
-                                    kTextEncodingWindowsLatin1);
-
-
-        status = TECCreateConverter(&s_TECNativeCToPlatform,
-                                    kTextEncodingWindowsLatin1,
-                                    kTextEncodingMacRoman);
-    }
 }
 
 void wxMacCleanupConverters()
@@ -672,10 +662,6 @@ void wxMacCleanupConverters()
     status = TECDisposeConverter(s_TECNativeCToUnicode);
 
     status = TECDisposeConverter(s_TECUnicodeToNativeC);
-
-    status = TECDisposeConverter(s_TECPlatformToNativeC);
-
-    status = TECDisposeConverter(s_TECNativeCToPlatform);
 }
 
 wxWCharBuffer wxMacStringToWString( const wxString &from )
@@ -709,17 +695,7 @@ wxString wxMacMakeStringFromCString( const char * from , int len )
     status = TECConvertText(s_TECNativeCToUnicode, (ConstTextPtr)from , byteInLen, &byteInLen,
         (TextPtr)buf, byteBufferLen, &byteOutLen);
 #else
-    if ( !wxApp::s_macDefaultEncodingIsPC )
-        memcpy( buf , from , len ) ;
-    else
-    {
-        ByteCount byteOutLen ;
-        ByteCount byteInLen = len ;
-        ByteCount byteBufferLen = byteInLen ;
-
-        status = TECConvertText(s_TECPlatformToNativeC, (ConstTextPtr)from , byteInLen, &byteInLen,
-            (TextPtr)buf, byteBufferLen, &byteOutLen);
-    }
+    memcpy( buf , from , len ) ;
 #endif
     buf[len] = 0 ;
     result.UngetWriteBuf() ;
@@ -743,26 +719,14 @@ wxCharBuffer wxMacStringToCString( const wxString &from )
         (TextPtr)result.data(), byteBufferLen, &byteOutLen);
     return result ;
 #else
-    if ( !wxApp::s_macDefaultEncodingIsPC )
-        return wxCharBuffer( from.c_str() ) ;
-    else
-    {
-        wxCharBuffer result( from.Length() ) ;
-        OSStatus status = noErr ;
-        ByteCount byteOutLen ;
-        ByteCount byteInLen = from.Length() ;
-        ByteCount byteBufferLen = byteInLen ;
-
-        status = TECConvertText(s_TECNativeCToPlatform, (ConstTextPtr)from.c_str() , byteInLen, &byteInLen,
-            (TextPtr)result.data(), byteBufferLen, &byteOutLen);
-        return result ;
-    }
+    return wxCharBuffer( from.c_str() ) ;
 #endif
 }
+#endif
 
 void wxMacStringToPascal( const wxString&from , StringPtr to )
 {
-    wxCharBuffer buf = wxMacStringToCString( from ) ;
+    wxCharBuffer buf = from.mb_str( wxConvLocal ) ;
     int len = strlen(buf) ;
 
     if ( len > 255 )
@@ -773,7 +737,7 @@ void wxMacStringToPascal( const wxString&from , StringPtr to )
 
 wxString wxMacMakeStringFromPascal( ConstStringPtr from )
 {
-    return wxMacMakeStringFromCString( (char*) &from[1] , from[0] ) ;
+    return wxString( (char*) &from[1] , wxConvLocal , from[0] ) ;
 }
 
 #endif // wxUSE_BASE
@@ -794,8 +758,7 @@ void wxMacCFStringHolder::Assign( const wxString &str )
                (const unsigned short*)str.wc_str(), str.Len() );
 #else
     m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
-        wxApp::s_macDefaultEncodingIsPC ?
-        kCFStringEncodingWindowsLatin1 : CFStringGetSystemEncoding() ) ;
+        CFStringGetSystemEncoding() ) ;
 #endif
     m_release = true ;
 }
@@ -808,89 +771,13 @@ wxString wxMacCFStringHolder::AsString()
 #if wxUSE_UNICODE
     CFStringGetCharacters( m_cfs , CFRangeMake( 0 , len ) , (UniChar*) buf ) ;
 #else
-    CFStringGetCString( m_cfs , buf , len+1 , wxApp::s_macDefaultEncodingIsPC ?
-        kCFStringEncodingWindowsLatin1 : CFStringGetSystemEncoding() ) ;
+    CFStringGetCString( m_cfs , buf , len+1 , CFStringGetSystemEncoding() ) ;
 #endif
     buf[len] = 0 ;
     result.UngetWriteBuf() ;
     return result ;
 }
 
-#if 0
-
-wxString wxMacMakeMacStringFromPC( const wxChar * p )
-{
-    wxString result ;
-    int len = wxStrlen ( p ) ;
-    if ( len > 0 )
-    {
-        wxChar* ptr = result.GetWriteBuf(len) ;
-        wxMacConvertFromPC( p , ptr , len ) ;
-        ptr[len] = 0 ;
-        result.UngetWriteBuf( len ) ;
-    }
-    return result ;
-}
-
-wxString wxMacMakePCStringFromMac( const wxChar * p )
-{
-    wxString result ;
-    int len = wxStrlen ( p ) ;
-    if ( len > 0 )
-    {
-        wxChar* ptr = result.GetWriteBuf(len) ;
-        wxMacConvertToPC( p , ptr , len ) ;
-        ptr[len] = 0 ;
-        result.UngetWriteBuf( len ) ;
-    }
-    return result ;
-}
-
-wxString wxMacMakeStringFromMacString( const wxChar* from , bool mac2pcEncoding )
-{
-    if (mac2pcEncoding)
-    {
-      return wxMacMakePCStringFromMac( from ) ;
-    }
-    else
-    {
-      return wxString( from ) ;
-    }
-}
-
-//
-// Pascal Strings
-//
-
-wxString wxMacMakeStringFromPascal( ConstStringPtr 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 wxChar * from , StringPtr to , bool pc2macEncoding )
-{
-    if (pc2macEncoding)
-    {
-      CopyCStringToPascal( wxMacMakeMacStringFromPC( from ) , to ) ;
-    }
-    else
-    {
-      CopyCStringToPascal( from , to ) ;
-    }
-}
-#endif
-
-
 #endif //TARGET_CARBON
 
 // ----------------------------------------------------------------------------
index c130d3798aa099eb4a68f8d16755fe6194fcd73b..c963dcad3271faf238ae96a51b3ea303e50c752a 100644 (file)
@@ -272,8 +272,7 @@ wxSize wxChoice::DoGetBestSize() const
                 &baseline );
             wLine = bounds.h ;
         #else
-            wxCharBuffer text = wxMacStringToCString( str ) ;
-            wLine = ::TextWidth( text , 0 , strlen(text) ) ;
+            wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }
index d7a5b8bc5292488a904babb1073ee06ee18dec66..5ef8fdb107219295dbfb439eb0399c7c2f13c67a 100644 (file)
@@ -136,18 +136,14 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
         return NULL ;
     }
 
-    if ( dataFormat.GetType() == wxDF_TEXT && wxApp::s_macDefaultEncodingIsPC )
+    if ( dataFormat.GetType() == wxDF_TEXT )
     {
-        wxString st = wxMacMakeStringFromCString( (char*) data ) ;
-#if wxUSE_UNICODE
-        wxCharBuffer buf = st.ToAscii() ;
-#else
-        const char* buf = st ;
-#endif
-        char* newdata = new char[strlen(buf)+1] ;
-        memcpy( newdata , buf , strlen(buf)+1 ) ;
-        delete[] ((char*) data ) ;
-        data = newdata ;
+        char * buf = (char*) data ;
+        while( (buf=strchr(buf,0x0a)) != NULL )
+        {
+            *buf = 13 ;
+            buf++ ;
+        }
     }
 
     return data;
@@ -252,8 +248,7 @@ bool wxClipboard::AddData( wxDataObject *data )
            case wxDF_OEMTEXT:
            {
                wxTextDataObject* textDataObject = (wxTextDataObject*) data;
-               wxString str(textDataObject->GetText());
-               wxCharBuffer buf = wxMacStringToCString( str ) ;
+               wxCharBuffer buf = textDataObject->GetText().mb_str() ;
                err = UMAPutScrap( strlen(buf) , kScrapFlavorTypeText , (void*) buf.data()  ) ;
            }
            break ;
index edfaa69506e051cd1971a41aecb7123c6d202a03..9285b2006ae9799d685dd0fea70bde1b9f9bb814 100644 (file)
@@ -55,6 +55,8 @@ const double RAD2DEG  = 180.0 / M_PI;
 const short kEmulatedMode = -1 ;
 const short kUnsupportedMode = -2 ;
 
+extern TECObjectRef s_TECNativeCToUnicode ;
+
 // set to 0 if problems arise
 #define wxMAC_EXPERIMENTAL_DC 1
 
@@ -1353,24 +1355,9 @@ void  wxDC::DoDrawRotatedText(const wxString& str, wxCoord x, wxCoord y,
     status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) (const wxChar*) str , 0 , str.Length() , str.Length() , 1 ,
         &chars , (ATSUStyle*) &m_macATSUIStyle , &atsuLayout ) ;
 #else
-    TECObjectRef ec;
-    status = TECCreateConverter(&ec,
-                                wxApp::s_macDefaultEncodingIsPC
-                                    ? (int)kTextEncodingWindowsLatin1
-                                    : (int)kTextEncodingMacRoman,
-                                kTextEncodingUnicodeDefault);
-        
-    wxASSERT_MSG( status == noErr , wxT("couldn't start converter") ) ;
-    ByteCount byteOutLen ;
-    ByteCount byteInLen = str.Length() ;
-    ByteCount byteBufferLen = byteInLen *2 ;
-    char* buf = new char[byteBufferLen] ;
-    status = TECConvertText(ec, (ConstTextPtr)str.c_str() , byteInLen, &byteInLen,
-        (TextPtr)buf, byteBufferLen, &byteOutLen);
-    wxASSERT_MSG( status == noErr , wxT("couldn't convert text") ) ;
-    status = TECDisposeConverter(ec);
-    wxASSERT_MSG( status == noErr , wxT("couldn't dispose converter") ) ;
-    status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) buf , 0 , byteOutLen / 2 , byteOutLen / 2 , 1 ,
+    wxWCharBuffer wchar = str.wc_str( wxConvLocal ) ;
+    int wlen = wxWcslen( wchar.data() ) ;
+    status = ::ATSUCreateTextLayoutWithTextPtr( (UniCharArrayPtr) wchar.data() , 0 , wlen , wlen , 1 ,
         &chars , (ATSUStyle*) &m_macATSUIStyle , &atsuLayout ) ;
 #endif
     wxASSERT_MSG( status == noErr , wxT("couldn't create the layout of the rotated text") );
@@ -1418,10 +1405,6 @@ void  wxDC::DoDrawRotatedText(const wxString& str, wxCoord x, wxCoord y,
     CalcBoundingBox(XDEV2LOG(rect.left), YDEV2LOG(rect.top) );
     CalcBoundingBox(XDEV2LOG(rect.right), YDEV2LOG(rect.bottom) );
     ::ATSUDisposeTextLayout(atsuLayout);
-#if wxUSE_UNICODE
-#else
-    delete[] buf ;
-#endif
 }
 
 void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
@@ -1501,7 +1484,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
                 else
 #endif
                 {
-                    wxCharBuffer text = wxMacStringToCString(linetext) ; 
+                    wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
                     ::DrawText( text , 0 , strlen(text) ) ;
                     line++ ;
                     ::MoveTo( xx , yy + line*(fi.descent + fi.ascent + fi.leading) );
@@ -1543,7 +1526,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
         else
 #endif
         {
-            wxCharBuffer text = wxMacStringToCString(linetext) ; 
+            wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
             ::DrawText( text , 0 , strlen(text) ) ;
          }
     }
@@ -1583,21 +1566,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
     if ( externalLeading )
         *externalLeading = YDEV2LOGREL( fi.leading ) ;
     int length = strtext.Length() ;
-    /*
-    const char *text = NULL ;
-    wxString macText ;
-    if ( wxApp::s_macDefaultEncodingIsPC )
-    {
-        macText = wxMacMakeMacStringFromPC( string ) ;
-        text = macText ;
-        length = macText.Length() ;
-    } 
-    else
-    {
-        text = string ;
-        length = string.Length() ;
-    }
-    */
+
     int laststop = 0 ;
     int i = 0 ;
     int curwidth = 0 ;
@@ -1628,7 +1597,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
                 else
 #endif
                 {
-                    wxCharBuffer text = wxMacStringToCString(linetext) ; 
+                    wxCharBuffer text = linetext.mb_str(wxConvLocal) ; 
                     curwidth = ::TextWidth( text , 0 , strlen(text) ) ;
                 }
                 if ( curwidth > *width )
@@ -1656,7 +1625,7 @@ void  wxDC::DoGetTextExtent( const wxString &strtext, wxCoord *width, wxCoord *h
         else
 #endif
         {
-            wxCharBuffer text = wxMacStringToCString(linetext) ; 
+            wxCharBuffer text = linetext.mb_str(wxConvLocal) ;  
             curwidth = ::TextWidth( text , 0 , strlen(text) ) ;
         }
         if ( curwidth > *width )
index 8372417d08874b4fea0ec448293d3636b9afbd4f..22ced39ede9fbf79b9fbd1cc2cf95cd94d7cc111 100644 (file)
@@ -206,7 +206,7 @@ bool wxDropTarget::GetData()
                         if( theType == 'TEXT' )
                         {
                             theData[dataSize]=0 ; 
-                            wxString convert = wxMacMakeStringFromCString( theData ) ;    
+                            wxString convert( theData , wxConvLocal ) ;    
                             m_dataObject->SetData( format, convert.Length() * sizeof(wxChar), (const wxChar*) convert );
                         }
                         else if ( theType == kDragFlavorTypeHFS )
@@ -302,7 +302,7 @@ wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
             dataSize-- ;
             dataPtr[ dataSize ] = 0 ;
             wxString st( (wxChar*) dataPtr ) ;
-            wxCharBuffer buf = wxMacStringToCString( st ) ;
+            wxCharBuffer buf = st.mb_str( wxConvLocal) ;
             AddDragItemFlavor(theDrag, theItem, type , buf.data(), strlen(buf), 0);
         }
         else if (type == kDragFlavorTypeHFS )
index d5c590caeb37523d6c210fec38887eae35704ca3..b72970b0c2f6d585bb6a30fcce7d1d6ffebfc295 100644 (file)
@@ -137,7 +137,7 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
                        }
 #else
             {  
-               wxCharBuffer text = wxMacStringToCString( linetext ) ;
+               wxCharBuffer text = linetext.mb_str( wxConvLocal) ;
                 MoveTo(drawRect->left + 4 , drawRect->top + 10 );
                 DrawText(text, 0 , strlen(text) );
             }
@@ -633,8 +633,7 @@ wxSize wxListBox::DoGetBestSize() const
                 &baseline );
             wLine = bounds.h ;
         #else
-            wxCharBuffer text = wxMacStringToCString( str ) ;
-            wLine = ::TextWidth( text , 0 , strlen(text) ) ;
+            wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
         #endif
             lbWidth = wxMax(lbWidth, wLine);
         }
index 50daa9708f5015097acb48c4e05a28bc64ccb6d5..e86d3299a3d75db2ce3fd00bcece8742ff8479ca 100644 (file)
@@ -687,7 +687,7 @@ const short kVerticalMargin = 2 ;
 const short kHorizontalMargin = 2 ;
 
 bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
-           const wxString& st,
+           const wxString& str,
            const wxPoint& pos,
            const wxSize& size, long style,
            const wxValidator& validator,
@@ -747,6 +747,8 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         m_editable = FALSE ;
     }
 
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
         m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , false , 0 , 0 , 1,
@@ -771,7 +773,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
 
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text = st.mb_str(wxConvLocal) ;
         ::SetControlData( (ControlHandle) m_macControl, 0, ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag , strlen(text) , text ) ;
     }
     else
@@ -785,7 +787,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         TXNSetData( ((TXNObject) m_macTXN) , kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2,
           kTXNStartOffset, kTXNEndOffset);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal)  ;
         TXNSetData( ((TXNObject) m_macTXN) , kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNStartOffset, kTXNEndOffset);
 #endif
@@ -817,7 +819,7 @@ wxString wxTextCtrl::GetValue() const
             ::GetControlData( (ControlHandle) m_macControl, 0,
                 ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag,
                 actualSize , buf.data() , &actualSize ) ;
-            result = wxMacMakeStringFromCString( buf ) ;
+            result = wxString( buf , wxConvLocal) ;
         }
     }
     else
@@ -856,14 +858,14 @@ wxString wxTextCtrl::GetValue() const
             if ( actualSize > 0 )
             {
                 HLock( theText ) ;
-                result = wxMacMakeStringFromCString( *theText , actualSize ) ;
+                result = wxString( *theText , wxConvLocal , actualSize ) ;
                 HUnlock( theText ) ;
             }
             DisposeHandle( theText ) ;
         }
 #endif
     }
-
+    result.Replace(wxT("\r"),wxT("\n")) ;
     return result ;
 }
 
@@ -880,11 +882,13 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
    }
 }
 
-void wxTextCtrl::SetValue(const wxString& st)
+void wxTextCtrl::SetValue(const wxString& str)
 {
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         ::SetControlData( (ControlHandle) m_macControl, 0, ( m_windowStyle & wxTE_PASSWORD ) ? kControlEditTextPasswordTag : kControlEditTextTextTag , strlen(text) , text ) ;
     }
     else
@@ -896,7 +900,7 @@ void wxTextCtrl::SetValue(const wxString& st)
         TXNSetData( ((TXNObject) m_macTXN), kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2 ,
           kTXNStartOffset, kTXNEndOffset);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNStartOffset, kTXNEndOffset);
 #endif
@@ -1167,8 +1171,10 @@ long wxTextCtrl::GetLastPosition() const
     }
 }
 
-void wxTextCtrl::Replace(long from, long to, const wxString& value)
+void wxTextCtrl::Replace(long from, long to, const wxString& str)
 {
+    wxString value = str ;
+    value.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
         ControlEditTextSelectionRec selection ;
@@ -1270,11 +1276,13 @@ bool wxTextCtrl::LoadFile(const wxString& file)
     return FALSE;
 }
 
-void wxTextCtrl::WriteText(const wxString& st)
+void wxTextCtrl::WriteText(const wxString& str)
 {
+    wxString st = str ;
+    st.Replace(wxT("\n"), wxT("\r"));
     if ( !m_macUsesTXN )
     {
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TEInsert( text , strlen(text) , ((TEHandle) m_macTE) ) ;
     }
     else
@@ -1288,7 +1296,7 @@ void wxTextCtrl::WriteText(const wxString& st)
         TXNSetData( ((TXNObject) m_macTXN), kTXNUnicodeTextData,  (void*)st.wc_str(), st.Length() * 2 ,
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
 #else
-       wxCharBuffer text = wxMacStringToCString( st ) ;
+       wxCharBuffer text =  st.mb_str(wxConvLocal) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)text.data(), strlen( text ) ,
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
 #endif
@@ -1477,12 +1485,12 @@ int wxTextCtrl::GetLineLength(long lineNo) const
             for (size_t j = i; j < content.Length(); j++)
             {
                 count++;
-                if (content[j] == '\r') return count;
+                if (content[j] == '\n') return count;
             }
 
             return count;
         }
-        if (content[i] == '\r') count++;
+        if (content[i] == '\n') count++;
     }
     return 0;
 }
@@ -1503,7 +1511,7 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
 
             for (size_t j = i; j < content.Length(); j++)
             {
-                if (content[j] == '\r')
+                if (content[j] == '\n')
                     return tmp;
 
                 tmp += content[j];
@@ -1511,7 +1519,7 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
 
             return tmp;
         }
-        if (content[i] == '\r') count++;
+        if (content[i] == '\n') count++;
     }
     return wxEmptyString ;
 }
index 042a6f2c35e3902fd35e127b135ba72d5fe5d0e3..3334d6b70bce575315d8b92922464517dfa21bcb 100644 (file)
@@ -262,7 +262,7 @@ void wxMacToolTip::Draw()
         int width = 0 ;
         int thiswidth = 0 ;
         int laststop = 0 ;
-        wxCharBuffer text = wxMacStringToCString( m_label ) ;
+        wxCharBuffer text = m_label.mb_str( wxConvLocal)  ;
 
         while( i < length )
         {
index 377d61880d58461488200d15aaf08df7be0f8986..16f91e18e350ba621e7d7d047111c43f9077291d 100644 (file)
@@ -546,6 +546,8 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
 // wxMac Specific utility functions
 //---------------------------------------------------------------------------
 
+#if 0
+
 char StringMac[] =  "\x0d\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
                     "\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
                     "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xae\xaf"
@@ -632,17 +634,17 @@ void wxMacConvertToPC( const char *from , char *to , int len )
 
 TECObjectRef s_TECNativeCToUnicode = NULL ;
 TECObjectRef s_TECUnicodeToNativeC = NULL ;
-TECObjectRef s_TECPlatformToNativeC = NULL ;
-TECObjectRef s_TECNativeCToPlatform = NULL ;
+
 void wxMacSetupConverters()
 {
     // if we assume errors are happening here we need low level debugging
     // since the high level assert will use the encoders that are not yet
     // setup...
-    const int kEncoding = wxApp::s_macDefaultEncodingIsPC
-                            ? (int)kTextEncodingWindowsLatin1
-                            : (int)kTextEncodingMacRoman;
-
+#if TARGET_CARBON
+    const TextEncodingBase kEncoding = CFStringGetSystemEncoding();
+#else
+    const TextEncodingBase kEncoding = kTextEncodingMacRoman;
+#endif
     OSStatus status = noErr ;
     status = TECCreateConverter(&s_TECNativeCToUnicode,
                                 kEncoding,
@@ -652,18 +654,6 @@ void wxMacSetupConverters()
     status = TECCreateConverter(&s_TECUnicodeToNativeC,
                                 kTextEncodingUnicodeDefault,
                                 kEncoding);
-
-    if ( wxApp::s_macDefaultEncodingIsPC )
-    {
-        status = TECCreateConverter(&s_TECPlatformToNativeC,
-                                    kTextEncodingMacRoman,
-                                    kTextEncodingWindowsLatin1);
-
-
-        status = TECCreateConverter(&s_TECNativeCToPlatform,
-                                    kTextEncodingWindowsLatin1,
-                                    kTextEncodingMacRoman);
-    }
 }
 
 void wxMacCleanupConverters()
@@ -672,10 +662,6 @@ void wxMacCleanupConverters()
     status = TECDisposeConverter(s_TECNativeCToUnicode);
 
     status = TECDisposeConverter(s_TECUnicodeToNativeC);
-
-    status = TECDisposeConverter(s_TECPlatformToNativeC);
-
-    status = TECDisposeConverter(s_TECNativeCToPlatform);
 }
 
 wxWCharBuffer wxMacStringToWString( const wxString &from )
@@ -709,17 +695,7 @@ wxString wxMacMakeStringFromCString( const char * from , int len )
     status = TECConvertText(s_TECNativeCToUnicode, (ConstTextPtr)from , byteInLen, &byteInLen,
         (TextPtr)buf, byteBufferLen, &byteOutLen);
 #else
-    if ( !wxApp::s_macDefaultEncodingIsPC )
-        memcpy( buf , from , len ) ;
-    else
-    {
-        ByteCount byteOutLen ;
-        ByteCount byteInLen = len ;
-        ByteCount byteBufferLen = byteInLen ;
-
-        status = TECConvertText(s_TECPlatformToNativeC, (ConstTextPtr)from , byteInLen, &byteInLen,
-            (TextPtr)buf, byteBufferLen, &byteOutLen);
-    }
+    memcpy( buf , from , len ) ;
 #endif
     buf[len] = 0 ;
     result.UngetWriteBuf() ;
@@ -743,26 +719,14 @@ wxCharBuffer wxMacStringToCString( const wxString &from )
         (TextPtr)result.data(), byteBufferLen, &byteOutLen);
     return result ;
 #else
-    if ( !wxApp::s_macDefaultEncodingIsPC )
-        return wxCharBuffer( from.c_str() ) ;
-    else
-    {
-        wxCharBuffer result( from.Length() ) ;
-        OSStatus status = noErr ;
-        ByteCount byteOutLen ;
-        ByteCount byteInLen = from.Length() ;
-        ByteCount byteBufferLen = byteInLen ;
-
-        status = TECConvertText(s_TECNativeCToPlatform, (ConstTextPtr)from.c_str() , byteInLen, &byteInLen,
-            (TextPtr)result.data(), byteBufferLen, &byteOutLen);
-        return result ;
-    }
+    return wxCharBuffer( from.c_str() ) ;
 #endif
 }
+#endif
 
 void wxMacStringToPascal( const wxString&from , StringPtr to )
 {
-    wxCharBuffer buf = wxMacStringToCString( from ) ;
+    wxCharBuffer buf = from.mb_str( wxConvLocal ) ;
     int len = strlen(buf) ;
 
     if ( len > 255 )
@@ -773,7 +737,7 @@ void wxMacStringToPascal( const wxString&from , StringPtr to )
 
 wxString wxMacMakeStringFromPascal( ConstStringPtr from )
 {
-    return wxMacMakeStringFromCString( (char*) &from[1] , from[0] ) ;
+    return wxString( (char*) &from[1] , wxConvLocal , from[0] ) ;
 }
 
 #endif // wxUSE_BASE
@@ -794,8 +758,7 @@ void wxMacCFStringHolder::Assign( const wxString &str )
                (const unsigned short*)str.wc_str(), str.Len() );
 #else
     m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
-        wxApp::s_macDefaultEncodingIsPC ?
-        kCFStringEncodingWindowsLatin1 : CFStringGetSystemEncoding() ) ;
+        CFStringGetSystemEncoding() ) ;
 #endif
     m_release = true ;
 }
@@ -808,89 +771,13 @@ wxString wxMacCFStringHolder::AsString()
 #if wxUSE_UNICODE
     CFStringGetCharacters( m_cfs , CFRangeMake( 0 , len ) , (UniChar*) buf ) ;
 #else
-    CFStringGetCString( m_cfs , buf , len+1 , wxApp::s_macDefaultEncodingIsPC ?
-        kCFStringEncodingWindowsLatin1 : CFStringGetSystemEncoding() ) ;
+    CFStringGetCString( m_cfs , buf , len+1 , CFStringGetSystemEncoding() ) ;
 #endif
     buf[len] = 0 ;
     result.UngetWriteBuf() ;
     return result ;
 }
 
-#if 0
-
-wxString wxMacMakeMacStringFromPC( const wxChar * p )
-{
-    wxString result ;
-    int len = wxStrlen ( p ) ;
-    if ( len > 0 )
-    {
-        wxChar* ptr = result.GetWriteBuf(len) ;
-        wxMacConvertFromPC( p , ptr , len ) ;
-        ptr[len] = 0 ;
-        result.UngetWriteBuf( len ) ;
-    }
-    return result ;
-}
-
-wxString wxMacMakePCStringFromMac( const wxChar * p )
-{
-    wxString result ;
-    int len = wxStrlen ( p ) ;
-    if ( len > 0 )
-    {
-        wxChar* ptr = result.GetWriteBuf(len) ;
-        wxMacConvertToPC( p , ptr , len ) ;
-        ptr[len] = 0 ;
-        result.UngetWriteBuf( len ) ;
-    }
-    return result ;
-}
-
-wxString wxMacMakeStringFromMacString( const wxChar* from , bool mac2pcEncoding )
-{
-    if (mac2pcEncoding)
-    {
-      return wxMacMakePCStringFromMac( from ) ;
-    }
-    else
-    {
-      return wxString( from ) ;
-    }
-}
-
-//
-// Pascal Strings
-//
-
-wxString wxMacMakeStringFromPascal( ConstStringPtr 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 wxChar * from , StringPtr to , bool pc2macEncoding )
-{
-    if (pc2macEncoding)
-    {
-      CopyCStringToPascal( wxMacMakeMacStringFromPC( from ) , to ) ;
-    }
-    else
-    {
-      CopyCStringToPascal( from , to ) ;
-    }
-}
-#endif
-
-
 #endif //TARGET_CARBON
 
 // ----------------------------------------------------------------------------