]> git.saurik.com Git - wxWidgets.git/commitdiff
wxMac Unicode support
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 27 Mar 2003 20:21:51 +0000 (20:21 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 27 Mar 2003 20:21:51 +0000 (20:21 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/filename.cpp
src/common/gdicmn.cpp
src/common/intl.cpp
src/common/log.cpp
src/common/wxchar.cpp
src/generic/statusbr.cpp
src/generic/treectlg.cpp

index 40175687d3be531f73e6f1d9dcdf9e00e273867c..639e5363c3eeca932e0ce501eeeefab5c522193e 100644 (file)
@@ -1784,18 +1784,18 @@ public :
   }
   MacDefaultExtensionRecord( const MacDefaultExtensionRecord& from )
   {
-    strcpy( m_ext , from.m_ext ) ;
+    wxStrcpy( m_ext , from.m_ext ) ;
     m_type = from.m_type ;
     m_creator = from.m_creator ;
   }
-  MacDefaultExtensionRecord( const char * extension , OSType type , OSType creator )
+  MacDefaultExtensionRecord( const wxChar * extension , OSType type , OSType creator )
   {
-    strncpy( m_ext , extension , kMacExtensionMaxLength ) ;
+    wxStrncpy( m_ext , extension , kMacExtensionMaxLength ) ;
     m_ext[kMacExtensionMaxLength] = 0 ;
     m_type = type ;
     m_creator = creator ;
   }
-  char m_ext[kMacExtensionMaxLength] ;
+  wxChar m_ext[kMacExtensionMaxLength] ;
   OSType m_type ;
   OSType m_creator ;
 }  ;
@@ -1819,7 +1819,7 @@ static void MacEnsureDefaultExtensionsLoaded()
     // load the default extensions
     MacDefaultExtensionRecord defaults[1] =
     {
-      MacDefaultExtensionRecord( "txt" , 'TEXT' , 'ttxt' ) ,
+      MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
 
     } ;
     // we could load the pc exchange prefs here too
@@ -1891,7 +1891,7 @@ void wxFileName::MacRegisterDefaultTypeAndCreator( const wxString& ext , wxUint3
   MacDefaultExtensionRecord rec ;
   rec.m_type = type ;
   rec.m_creator = creator ;
-  strncpy( rec.m_ext , ext.Lower().c_str() , kMacExtensionMaxLength ) ;
+  wxStrncpy( rec.m_ext , ext.Lower().c_str() , kMacExtensionMaxLength ) ;
   gMacDefaultExtensions.Add( rec ) ;
 }
 #endif
index 24b8f4381eb7ccb31a402b3dff47f616fc7e6f9f..1539beb7bae8cd1c76c98e23f789b37559d464ef 100644 (file)
@@ -463,8 +463,7 @@ void wxInitializeStockObjects ()
 
        GetThemeFont(kThemeSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
        sizeFont = fontSize ;
-    p2cstrcpy( (char*) fontName , fontName ) ;
-    wxSWISS_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , fontName );
+    wxSWISS_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal(fontName) );
 #elif defined(__WXPM__)
   static const int sizeFont = 12;
 #else
@@ -485,8 +484,7 @@ void wxInitializeStockObjects ()
     wxNORMAL_FONT = new wxFont (sizeFont, wxMODERN, wxNORMAL, wxNORMAL);
     wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
        GetThemeFont(kThemeSmallSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
-    p2cstrcpy( (char*) fontName , fontName ) ;
-    wxSMALL_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , fontName );
+    wxSMALL_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal( fontName ) );
 #else
   wxSMALL_FONT = new wxFont (sizeFont - 2, wxSWISS, wxNORMAL, wxNORMAL);
   wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
index 8750d40097c6d9876d74fc1d4690bfcaa154b8fe..e78a33c9d0195b46f91ab3133a5cf141248cc6f0 100644 (file)
@@ -924,279 +924,279 @@ void wxLocale::AddCatalogLookupPathPrefix(const wxString& prefix)
         }
     }
 #elif defined(__WXMAC__)
-    const char* lc = NULL ;
+    const wxChar * lc = NULL ;
     long lang = GetScriptVariable( smSystemScript, smScriptLang) ;
     switch( GetScriptManagerVariable( smRegionCode ) ) {
       case verUS :
-        lc = "en_US" ;
+        lc = wxT("en_US") ;
         break ;
       case verFrance :
-        lc = "fr_FR" ;
+        lc = wxT("fr_FR") ;
         break ;
       case verBritain :
-        lc = "en_GB" ;
+        lc = wxT("en_GB") ;
         break ;
       case verGermany :
-        lc = "de_DE" ;
+        lc = wxT("de_DE") ;
         break ;
       case verItaly :
-        lc = "it_IT" ;
+        lc = wxT("it_IT") ;
         break ;
       case verNetherlands :
-        lc = "nl_NL" ;
+        lc = wxT("nl_NL") ;
         break ;
       case verFlemish :
-        lc = "nl_BE" ;
+        lc = wxT("nl_BE") ;
         break ;
       case verSweden :
-        lc = "sv_SE" ;
+        lc = wxT("sv_SE" );
         break ;
       case verSpain :
-        lc = "es_ES" ;
+        lc = wxT("es_ES" );
         break ;
       case verDenmark :
-        lc = "da_DK" ;
+        lc = wxT("da_DK") ;
         break ;
       case verPortugal :
-        lc = "pt_PT" ;
+        lc = wxT("pt_PT") ;
         break ;
       case verFrCanada:
-        lc = "fr_CA" ;
+        lc = wxT("fr_CA") ;
         break ;
       case verNorway:
-        lc = "no_NO" ;
+        lc = wxT("no_NO") ;
         break ;
       case verIsrael:
-        lc = "iw_IL" ;
+        lc = wxT("iw_IL") ;
         break ;
       case verJapan:
-        lc = "ja_JP" ;
+        lc = wxT("ja_JP") ;
         break ;
       case verAustralia:
-        lc = "en_AU" ;
+        lc = wxT("en_AU") ;
         break ;
       case verArabic:
-        lc = "ar" ;
+        lc = wxT("ar") ;
         break ;
       case verFinland:
-        lc = "fi_FI" ;
+        lc = wxT("fi_FI") ;
         break ;
       case verFrSwiss:
-        lc = "fr_CH" ;
+        lc = wxT("fr_CH") ;
         break ;
       case verGrSwiss:
-        lc = "de_CH" ;
+        lc = wxT("de_CH") ;
         break ;
       case verGreece:
-        lc = "el_GR" ;
+        lc = wxT("el_GR") ;
         break ;
       case verIceland:
-        lc = "is_IS" ;
+        lc = wxT("is_IS") ;
         break ;
       case verMalta:
-        lc = "mt_MT" ;
+        lc = wxT("mt_MT") ;
         break ;
       case verCyprus:
       // _CY is not part of wx, so we have to translate according to the system language
         if ( lang == langGreek ) {
-          lc = "el_GR" ;
+          lc = wxT("el_GR") ;
         }
         else if ( lang == langTurkish ) {
-          lc = "tr_TR" ;
+          lc = wxT("tr_TR") ;
         }
         break ;
       case verTurkey:
-        lc = "tr_TR" ;
+        lc = wxT("tr_TR") ;
         break ;
       case verYugoCroatian:
-        lc = "hr_HR" ;
+        lc = wxT("hr_HR") ;
         break ;
       case verIndiaHindi:
-        lc = "hi_IN" ;
+        lc = wxT("hi_IN") ;
         break ;
       case verPakistanUrdu:
-        lc = "ur_PK" ;
+        lc = wxT("ur_PK") ;
         break ;
       case verTurkishModified:
-        lc = "tr_TR" ;
+        lc = wxT("tr_TR") ;
         break ;
       case verItalianSwiss:
-        lc = "it_CH" ;
+        lc = wxT("it_CH") ;
         break ;
       case verInternational:
-        lc = "en" ;
+        lc = wxT("en") ;
         break ;
       case verRomania:
-        lc = "ro_RO" ;
+        lc = wxT("ro_RO") ;
         break ;
       case verGreecePoly:
-        lc = "el_GR" ;
+        lc = wxT("el_GR") ;
         break ;
       case verLithuania:
-        lc = "lt_LT" ;
+        lc = wxT("lt_LT") ;
         break ;
       case verPoland:
-        lc = "pl_PL" ;
+        lc = wxT("pl_PL") ;
         break ;
       case verMagyar :
       case verHungary:
-        lc = "hu_HU" ;
+        lc = wxT("hu_HU") ;
         break ;
       case verEstonia:
-        lc = "et_EE" ;
+        lc = wxT("et_EE") ;
         break ;
       case verLatvia:
-        lc = "lv_LV" ;
+        lc = wxT("lv_LV") ;
         break ;
       case verSami:
         // not known
         break ;
       case verFaroeIsl:
-        lc = "fo_FO" ;
+        lc = wxT("fo_FO") ;
         break ;
       case verIran:
-        lc = "fa_IR" ;
+        lc = wxT("fa_IR") ;
         break ;
       case verRussia:
-        lc = "ru_RU" ;
+        lc = wxT("ru_RU") ;
         break ;
        case verIreland:
-        lc = "ga_IE" ;
+        lc = wxT("ga_IE") ;
         break ;
       case verKorea:
-        lc = "ko_KR" ;
+        lc = wxT("ko_KR") ;
         break ;
       case verChina:
-        lc = "zh_CN" ;
+        lc = wxT("zh_CN") ;
         break ;
       case verTaiwan:
-        lc = "zh_TW" ;
+        lc = wxT("zh_TW") ;
         break ;
       case verThailand:
-        lc = "th_TH" ;
+        lc = wxT("th_TH") ;
         break ;
       case verCzech:
-        lc = "cs_CZ" ;
+        lc = wxT("cs_CZ") ;
         break ;
       case verSlovak:
-        lc = "sk_SK" ;
+        lc = wxT("sk_SK") ;
         break ;
       case verBengali:
-        lc = "bn" ;
+        lc = wxT("bn") ;
         break ;
       case verByeloRussian:
-        lc = "be_BY" ;
+        lc = wxT("be_BY") ;
         break ;
       case verUkraine:
-        lc = "uk_UA" ;
+        lc = wxT("uk_UA") ;
         break ;
       case verGreeceAlt:
-        lc = "el_GR" ;
+        lc = wxT("el_GR") ;
         break ;
       case verSerbian:
-        lc = "sr_YU" ;
+        lc = wxT("sr_YU") ;
         break ;
       case verSlovenian:
-        lc = "sl_SI" ;
+        lc = wxT("sl_SI") ;
         break ;
       case verMacedonian:
-        lc = "mk_MK" ;
+        lc = wxT("mk_MK") ;
         break ;
       case verCroatia:
-        lc = "hr_HR" ;
+        lc = wxT("hr_HR") ;
         break ;
       case verBrazil:
-        lc = "pt_BR " ;
+        lc = wxT("pt_BR ") ;
         break ;
       case verBulgaria:
-        lc = "bg_BG" ;
+        lc = wxT("bg_BG") ;
         break ;
       case verCatalonia:
-        lc = "ca_ES" ;
+        lc = wxT("ca_ES") ;
         break ;
       case verScottishGaelic:
-        lc = "gd" ;
+        lc = wxT("gd") ;
         break ;
       case verManxGaelic:
-        lc = "gv" ;
+        lc = wxT("gv") ;
         break ;
       case verBreton:
-        lc = "br" ;
+        lc = wxT("br") ;
         break ;
       case verNunavut:
-        lc = "iu_CA" ;
+        lc = wxT("iu_CA") ;
         break ;
       case verWelsh:
-        lc = "cy" ;
+        lc = wxT("cy") ;
         break ;
       case verIrishGaelicScript:
-        lc = "ga_IE" ;
+        lc = wxT("ga_IE") ;
         break ;
       case verEngCanada:
-        lc = "en_CA" ;
+        lc = wxT("en_CA") ;
         break ;
       case verBhutan:
-        lc = "dz_BT" ;
+        lc = wxT("dz_BT") ;
         break ;
       case verArmenian:
-        lc = "hy_AM" ;
+        lc = wxT("hy_AM") ;
         break ;
       case verGeorgian:
-        lc = "ka_GE" ;
+        lc = wxT("ka_GE") ;
         break ;
       case verSpLatinAmerica:
-        lc = "es_AR" ;
+        lc = wxT("es_AR") ;
         break ;
       case verTonga:
-        lc = "to_TO" ;
+        lc = wxT("to_TO" );
         break ;
       case verFrenchUniversal:
-        lc = "fr_FR" ;
+        lc = wxT("fr_FR") ;
         break ;
       case verAustria:
-        lc = "de_AT" ;
+        lc = wxT("de_AT") ;
         break ;
       case verGujarati:
-        lc = "gu_IN" ;
+        lc = wxT("gu_IN") ;
         break ;
       case verPunjabi:
-        lc = "pa" ;
+        lc = wxT("pa") ;
         break ;
       case verIndiaUrdu:
-        lc = "ur_IN" ;
+        lc = wxT("ur_IN") ;
         break ;
       case verVietnam:
-        lc = "vi_VN" ;
+        lc = wxT("vi_VN") ;
         break ;
       case verFrBelgium:
-        lc = "fr_BE" ;
+        lc = wxT("fr_BE") ;
         break ;
       case verUzbek:
-        lc = "uz_UZ" ;
+        lc = wxT("uz_UZ") ;
         break ;
       case verSingapore:
-        lc = "zh_SG" ;
+        lc = wxT("zh_SG") ;
         break ;
       case verNynorsk:
-        lc = "nn_NO" ;
+        lc = wxT("nn_NO") ;
         break ;
       case verAfrikaans:
-        lc = "af_ZA" ;
+        lc = wxT("af_ZA") ;
         break ;
       case verEsperanto:
-        lc = "eo" ;
+        lc = wxT("eo") ;
         break ;
       case verMarathi:
-        lc = "mr_IN" ;
+        lc = wxT("mr_IN") ;
         break ;
       case verTibetan:
-        lc = "bo" ;
+        lc = wxT("bo") ;
         break ;
       case verNepal:
-        lc = "ne_NP" ;
+        lc = wxT("ne_NP") ;
         break ;
       case verGreenland:
-        lc = "kl_GL" ;
+        lc = wxT("kl_GL") ;
         break ;
       default :
         break ;
index c51d5c62bf4a4ec69346b6d82723cec2c7370350..9214732ed839a4a80bdfea044152b860577c5660 100644 (file)
@@ -717,9 +717,8 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
 
 #if defined(__WXMAC__) && !defined(__DARWIN__) && wxUSE_GUI
     Str255 pstr ;
-    strcpy( (char*) pstr , str.c_str() ) ;
-    strcat( (char*) pstr , ";g" ) ;
-    c2pstr( (char*) pstr ) ;
+    wxString output = str + wxT(";g") ;
+    wxMacStringToPascal( output.c_str() , pstr ) ;
 
     Boolean running = false ;
 
index 7bcd579cc015c8ae4fd12d71f7062f3b9e8db523..afff852e810621c44ac5de19bc3c636ee7c15143 100644 (file)
@@ -848,8 +848,11 @@ int wxFscanf( FILE *stream, const wxChar *format, ... )
 {
     va_list argptr;
     va_start(argptr, format);
-
+#ifdef __WXMAC__ 
+    int ret = ::vfwscanf(stream, wxFormatConverter(format), argptr);
+#else
     int ret = vfwscanf(stream, wxFormatConverter(format), argptr);
+#endif
 
     va_end(argptr);
 
index 2c8d40fbd847087f421f90931ca5f4f9a24347ac..ce2b35cb4b70bf7d9378687b98561923ff16242c 100644 (file)
@@ -330,7 +330,7 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const
 void wxStatusBarGeneric::InitColours()
 {
     // Shadow colours
-#if defined(__WIN95__)
+#if defined(__WIN95__) || defined(__WXMAC__)
     wxColour mediumShadowColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW));
     m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
 
index 3c45e0461d6dfb671990f1d2d72d45f9821db754..e4d3c35fad07363eb081cee2a1b5a3dea562a6b8 100644 (file)
 #include "wx/settings.h"
 #include "wx/dcclient.h"
 
+#ifdef __WXMAC__
+    #include "wx/mac/private.h"
+#endif
+
 // -----------------------------------------------------------------------------
 // array types
 // -----------------------------------------------------------------------------
@@ -2128,7 +2132,20 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
 
     if ( item->IsSelected() )
     {
+// under mac selections are only a rectangle in case they don't have the focus
+#ifdef __WXMAC__
+        if ( !m_hasFocus )
+        {
+            dc.SetBrush( *wxTRANSPARENT_BRUSH ) ;
+            dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHT ) , 1 , wxSOLID ) ) ;
+        }
+        else
+        {
+            dc.SetBrush( *m_hilightBrush ) ;
+        }
+#else
         dc.SetBrush(*(m_hasFocus ? m_hilightBrush : m_hilightUnfocusedBrush));
+#endif
     }
     else
     {
@@ -2309,10 +2326,25 @@ void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level
 
                 if (HasFlag(wxTR_AQUA_BUTTONS))
                 {
+#ifdef __WXMAC__
+                    wxMacPortSetter helper(&dc) ;
+                    wxMacWindowClipper clipper(this) ;
+                    wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ;
+
+                    int loc_x = x - 5 ;
+                    int loc_y = y_mid - 6 ;
+                    MacWindowToRootWindow( & loc_x , & loc_y ) ;
+                    Rect bounds = { loc_y , loc_x , loc_y + 18 , loc_x + 12 } ;
+                    ThemeButtonDrawInfo info = { kThemeStateActive , item->IsExpanded() ? kThemeDisclosureDown : kThemeDisclosureRight ,
+                        kThemeAdornmentNone }; 
+                    DrawThemeButton( &bounds, kThemeDisclosureButton , 
+                        &info , NULL , NULL , NULL , NULL ) ;
+#else
                     if (item->IsExpanded())
                         dc.DrawBitmap( *m_arrowDown, x-5, y_mid-6, TRUE );
                     else
                         dc.DrawBitmap( *m_arrowRight, x-5, y_mid-6, TRUE );
+#endif
                 }
                 else
                 {