]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fmapbase.cpp
Applied patch [ 1204548 ] Add Get and SetVolume to wxMediaCtrl and fix bug 1200182
[wxWidgets.git] / src / common / fmapbase.cpp
index e9b303613cdf74b7cc64aa1025a05e75a4c25324..e473054fe8e1de1239f8859fd9e7c04e9ad4335a 100644 (file)
@@ -72,6 +72,7 @@ static wxFontEncoding gs_encodings[] =
     wxFONTENCODING_ISO8859_14,
     wxFONTENCODING_ISO8859_15,
     wxFONTENCODING_KOI8,
     wxFONTENCODING_ISO8859_14,
     wxFONTENCODING_ISO8859_15,
     wxFONTENCODING_KOI8,
+    wxFONTENCODING_KOI8_U,
     wxFONTENCODING_CP932,
     wxFONTENCODING_CP936,
     wxFONTENCODING_CP949,
     wxFONTENCODING_CP932,
     wxFONTENCODING_CP936,
     wxFONTENCODING_CP949,
@@ -115,6 +116,7 @@ static const wxChar* gs_encodingDescs[] =
     wxTRANSLATE( "Celtic (ISO-8859-14)" ),
     wxTRANSLATE( "Western European with Euro (ISO-8859-15)" ),
     wxTRANSLATE( "KOI8-R" ),
     wxTRANSLATE( "Celtic (ISO-8859-14)" ),
     wxTRANSLATE( "Western European with Euro (ISO-8859-15)" ),
     wxTRANSLATE( "KOI8-R" ),
+    wxTRANSLATE( "KOI8-U" ),
     wxTRANSLATE( "Windows Japanese (CP 932)" ),
     wxTRANSLATE( "Windows Chinese Simplified (CP 936)" ),
     wxTRANSLATE( "Windows Korean (CP 949)" ),
     wxTRANSLATE( "Windows Japanese (CP 932)" ),
     wxTRANSLATE( "Windows Chinese Simplified (CP 936)" ),
     wxTRANSLATE( "Windows Korean (CP 949)" ),
@@ -158,6 +160,7 @@ static const wxChar* gs_encodingNames[] =
     wxT( "iso-8859-14" ),
     wxT( "iso-8859-15" ),
     wxT( "koi8-r" ),
     wxT( "iso-8859-14" ),
     wxT( "iso-8859-15" ),
     wxT( "koi8-r" ),
+    wxT( "koi8-u" ),
     wxT( "windows-932" ),
     wxT( "windows-936" ),
     wxT( "windows-949" ),
     wxT( "windows-932" ),
     wxT( "windows-936" ),
     wxT( "windows-949" ),
@@ -195,8 +198,8 @@ class wxFontMapperModule : public wxModule
 {
 public:
     wxFontMapperModule() : wxModule() { }
 {
 public:
     wxFontMapperModule() : wxModule() { }
-    virtual bool OnInit() { return TRUE; }
-    virtual void OnExit() { delete wxFontMapper::Set(NULL); }
+    virtual bool OnInit() { return true; }
+    virtual void OnExit() { delete (wxFontMapperBase*)wxFontMapperBase::Set(NULL); }
 
     DECLARE_DYNAMIC_CLASS(wxFontMapperModule)
 };
 
     DECLARE_DYNAMIC_CLASS(wxFontMapperModule)
 };
@@ -218,7 +221,7 @@ wxFontMapperBase::wxFontMapperBase()
 {
 #if wxUSE_CONFIG && wxUSE_FILECONFIG
     m_config = NULL;
 {
 #if wxUSE_CONFIG && wxUSE_FILECONFIG
     m_config = NULL;
-    m_configIsDummy = FALSE;
+    m_configIsDummy = false;
 #endif // wxUSE_CONFIG
 }
 
 #endif // wxUSE_CONFIG
 }
 
@@ -230,8 +233,11 @@ wxFontMapperBase::~wxFontMapperBase()
 #endif // wxUSE_CONFIG
 }
 
 #endif // wxUSE_CONFIG
 }
 
+bool wxFontMapperBase::IsWxFontMapper()
+{   return false; }
+
 /* static */
 /* static */
-wxFontMapper *wxFontMapperBase::Get()
+wxFontMapperBase *wxFontMapperBase::Get()
 {
     if ( !sm_instance )
     {
 {
     if ( !sm_instance )
     {
@@ -252,7 +258,7 @@ wxFontMapper *wxFontMapperBase::Get()
         }
     }
 
         }
     }
 
-    return sm_instance;
+    return (wxFontMapperBase*)sm_instance;
 }
 
 /* static */
 }
 
 /* static */
@@ -292,7 +298,7 @@ wxConfigBase *wxFontMapperBase::GetConfig()
     if ( !m_config )
     {
         // try the default
     if ( !m_config )
     {
         // try the default
-        m_config = wxConfig::Get(FALSE /*don't create on demand*/ );
+        m_config = wxConfig::Get(false /*don't create on demand*/ );
 
         if ( !m_config )
         {
 
         if ( !m_config )
         {
@@ -302,7 +308,7 @@ wxConfigBase *wxFontMapperBase::GetConfig()
             // but will allow us to remember the results of the questions at
             // least during this run
             m_config = new wxMemoryConfig;
             // but will allow us to remember the results of the questions at
             // least during this run
             m_config = new wxMemoryConfig;
-            m_configIsDummy = TRUE;
+            m_configIsDummy = true;
             // VS: we can't call wxConfig::Set(m_config) here because that would
             //     disable automatic wxConfig instance creation if this code was
             //     called before wxApp::OnInit (this happens in wxGTK -- it sets
             // VS: we can't call wxConfig::Set(m_config) here because that would
             //     disable automatic wxConfig instance creation if this code was
             //     called before wxApp::OnInit (this happens in wxGTK -- it sets
@@ -310,13 +316,13 @@ wxConfigBase *wxFontMapperBase::GetConfig()
         }
     }
 
         }
     }
 
-    if ( m_configIsDummy && wxConfig::Get(FALSE) != NULL )
+    if ( m_configIsDummy && wxConfig::Get(false) != NULL )
     {
         // VS: in case we created dummy m_config (see above), we want to switch back
         //     to the real one as soon as one becomes available.
         delete m_config;
     {
         // VS: in case we created dummy m_config (see above), we want to switch back
         //     to the real one as soon as one becomes available.
         delete m_config;
-        m_config = wxConfig::Get(FALSE);
-        m_configIsDummy = FALSE;
+        m_config = wxConfig::Get(false);
+        m_configIsDummy = false;
         // FIXME: ideally, we should add keys from dummy config to the real one now,
         //        but it is a low-priority task because typical wxWin application
         //        either doesn't use wxConfig at all or creates wxConfig object in
         // FIXME: ideally, we should add keys from dummy config to the real one now,
         //        but it is a low-priority task because typical wxWin application
         //        either doesn't use wxConfig at all or creates wxConfig object in
@@ -346,7 +352,7 @@ bool wxFontMapperBase::ChangePath(const wxString& pathNew, wxString *pathOld)
 {
     wxConfigBase *config = GetConfig();
     if ( !config )
 {
     wxConfigBase *config = GetConfig();
     if ( !config )
-        return FALSE;
+        return false;
 
     *pathOld = config->GetPath();
 
 
     *pathOld = config->GetPath();
 
@@ -363,7 +369,7 @@ bool wxFontMapperBase::ChangePath(const wxString& pathNew, wxString *pathOld)
 
     config->SetPath(path);
 
 
     config->SetPath(path);
 
-    return TRUE;
+    return true;
 }
 
 void wxFontMapperBase::RestorePath(const wxString& pathOld)
 }
 
 void wxFontMapperBase::RestorePath(const wxString& pathOld)
@@ -434,7 +440,7 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
             config->SetPath(FONTMAPPER_CHARSET_ALIAS_PATH);
 
             wxString alias = config->Read(charset);
             config->SetPath(FONTMAPPER_CHARSET_ALIAS_PATH);
 
             wxString alias = config->Read(charset);
-            if ( !!alias )
+            if ( !alias.IsEmpty() )
             {
                 // yes, we do - use it instead
                 cs = alias;
             {
                 // yes, we do - use it instead
                 cs = alias;
@@ -516,15 +522,23 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
         {
             encoding = wxFONTENCODING_EUC_JP;
         }
         {
             encoding = wxFONTENCODING_EUC_JP;
         }
+        else if ( cs == wxT("EUC-KR") ||
+                  cs == wxT("EUC_KR") )
+        {
+            encoding = wxFONTENCODING_CP949;
+        }
         else if ( cs == wxT("KOI8-R") ||
         else if ( cs == wxT("KOI8-R") ||
-                  cs == wxT("KOI8-U") ||
                   cs == wxT("KOI8-RU") )
         {
             // although koi8-ru is not strictly speaking the same as koi8-r,
             // they are similar enough to make mapping it to koi8 better than
                   cs == wxT("KOI8-RU") )
         {
             // although koi8-ru is not strictly speaking the same as koi8-r,
             // they are similar enough to make mapping it to koi8 better than
-            // not reckognizing it at all
+            // not recognizing it at all
             encoding = wxFONTENCODING_KOI8;
         }
             encoding = wxFONTENCODING_KOI8;
         }
+        else if ( cs == wxT("KOI8-U") )
+        {
+            encoding = wxFONTENCODING_KOI8_U;
+        }
         else if ( cs.Left(3) == wxT("ISO") )
         {
             // the dash is optional (or, to be exact, it is not, but
         else if ( cs.Left(3) == wxT("ISO") )
         {
             // the dash is optional (or, to be exact, it is not, but
@@ -532,14 +546,14 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
             const wxChar *p = cs.c_str() + 3;
             if ( *p == wxT('-') )
                 p++;
             const wxChar *p = cs.c_str() + 3;
             if ( *p == wxT('-') )
                 p++;
-                
+
             // printf( "iso %s\n", (const char*) cs.ToAscii() );
 
             unsigned int value;
             if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
             {
                 // printf( "value %d\n", (int)value );
             // printf( "iso %s\n", (const char*) cs.ToAscii() );
 
             unsigned int value;
             if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
             {
                 // printf( "value %d\n", (int)value );
-   
+
                 // make it 0 based and check that it is strictly positive in
                 // the process (no such thing as iso8859-0 encoding)
                 if ( (value-- > 0) &&
                 // make it 0 based and check that it is strictly positive in
                 // the process (no such thing as iso8859-0 encoding)
                 if ( (value-- > 0) &&
@@ -555,12 +569,12 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
         else if ( cs.Left(4) == wxT("8859") )
         {
             const wxChar *p = cs.c_str();
         else if ( cs.Left(4) == wxT("8859") )
         {
             const wxChar *p = cs.c_str();
-            
+
             unsigned int value;
             if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
             {
                 // printf( "value %d\n", (int)value );
             unsigned int value;
             if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
             {
                 // printf( "value %d\n", (int)value );
-   
+
                 // make it 0 based and check that it is strictly positive in
                 // the process (no such thing as iso8859-0 encoding)
                 if ( (value-- > 0) &&
                 // make it 0 based and check that it is strictly positive in
                 // the process (no such thing as iso8859-0 encoding)
                 if ( (value-- > 0) &&
@@ -700,5 +714,26 @@ wxString wxFontMapperBase::GetEncodingName(wxFontEncoding encoding)
     return str;
 }
 
     return str;
 }
 
+/* static */
+wxFontEncoding wxFontMapperBase::GetEncodingFromName(const wxString& name)
+{
+    const size_t count = WXSIZEOF(gs_encodingNames);
+
+    for ( size_t i = 0; i < count; i++ )
+    {
+        if ( gs_encodingNames[i] == name )
+        {
+            return gs_encodings[i];
+        }
+    }
+
+    if ( name == _("default") )
+    {
+        return wxFONTENCODING_DEFAULT;
+    }
+
+    return wxFONTENCODING_MAX;
+}
+
 #endif // wxUSE_FONTMAP
 
 #endif // wxUSE_FONTMAP