]> git.saurik.com Git - wxWidgets.git/commitdiff
Made wxConvBrokenFileNames public.
authorRobert Roebling <robert@roebling.de>
Tue, 29 Mar 2005 23:15:54 +0000 (23:15 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 29 Mar 2005 23:15:54 +0000 (23:15 +0000)
 Made use of it from GTK+'s wxApp.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/app.h
include/wx/gtk1/app.h
src/common/strconv.cpp
src/gtk/app.cpp
src/gtk1/app.cpp

index d4671dd320cc1b92961016659c285ae48891207d..d80afdb2fdb915797fbe75e3cbe99b9055c6b3c4 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "wx/frame.h"
 #include "wx/icon.h"
+#include "wx/strconv.h"
 
 //-----------------------------------------------------------------------------
 // classes
@@ -67,6 +68,11 @@ public:
     // This returns the current visual: either that used by wxRootWindow
     // or the XVisualInfo* for SGI.
     GdkVisual      *GetGdkVisual();
+    
+#ifdef __WXGTK20__
+    wxConvBrokenFileNames *m_convBrokenFileNames;
+    wxMBConv *m_oldConvFileName;
+#endif
 
 private:
     // true if we're inside an assert modal dialog
index d4671dd320cc1b92961016659c285ae48891207d..d80afdb2fdb915797fbe75e3cbe99b9055c6b3c4 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "wx/frame.h"
 #include "wx/icon.h"
+#include "wx/strconv.h"
 
 //-----------------------------------------------------------------------------
 // classes
@@ -67,6 +68,11 @@ public:
     // This returns the current visual: either that used by wxRootWindow
     // or the XVisualInfo* for SGI.
     GdkVisual      *GetGdkVisual();
+    
+#ifdef __WXGTK20__
+    wxConvBrokenFileNames *m_convBrokenFileNames;
+    wxMBConv *m_oldConvFileName;
+#endif
 
 private:
     // true if we're inside an assert modal dialog
index e50265205707da7635b4549618421add26a5cd62..a43f43550f6347db67a7cd2a0a82f1bd4f07d646 100644 (file)
@@ -360,29 +360,12 @@ size_t wxMBConvLibc::WC2MB(char *buf, const wchar_t *psz, size_t n) const
     return wxWC2MB(buf, psz, n);
 }
 
-#ifdef __WXGTK20__
+#ifdef __UNIX__
 
 // ----------------------------------------------------------------------------
-// wxConvBrokenFileNames is made for GTK2 in Unicode mode when
-// files are accidentally written in an encoding which is not
-// the system encoding. Typically, the system encoding will be
-// UTF8 but there might be files stored in ISO8859-1 on disk.
+// wxConvBrokenFileNames 
 // ----------------------------------------------------------------------------
 
-class wxConvBrokenFileNames : public wxMBConv
-{
-public:
-    wxConvBrokenFileNames();
-    virtual ~wxConvBrokenFileNames() { delete m_conv; }
-
-    virtual size_t MB2WC(wchar_t *outputBuf, const char *psz, size_t outputSize) const;
-    virtual size_t WC2MB(char *outputBuf, const wchar_t *psz, size_t outputSize) const;
-
-private:
-    // the conversion object we forward to
-    wxMBConv *m_conv;
-};
-
 wxConvBrokenFileNames::wxConvBrokenFileNames()
 {
     // decide which conversion to use for the file names
@@ -429,7 +412,7 @@ wxConvBrokenFileNames::WC2MB(char *outputBuf,
     return m_conv->WC2MB( outputBuf, psz, outputSize );
 }
 
-#endif // __WXGTK20__
+#endif
 
 // ----------------------------------------------------------------------------
 // UTF-7
@@ -2764,10 +2747,6 @@ static wxCSConv wxConvISO8859_1Obj(wxFONTENCODING_ISO8859_1);
 static wxMBConvUTF7 wxConvUTF7Obj;
 static wxMBConvUTF8 wxConvUTF8Obj;
 
-#ifdef __WXGTK20__
-    static wxConvBrokenFileNames wxConvBrokenFileNamesObj;
-#endif
-
 WXDLLIMPEXP_DATA_BASE(wxMBConv&) wxConvLibc = wxConvLibcObj;
 WXDLLIMPEXP_DATA_BASE(wxCSConv&) wxConvLocal = wxConvLocalObj;
 WXDLLIMPEXP_DATA_BASE(wxCSConv&) wxConvISO8859_1 = wxConvISO8859_1Obj;
@@ -2777,8 +2756,6 @@ WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvCurrent = &wxConvLibcObj;
 WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvFileName = &
 #ifdef __WXOSX__
                                     wxConvUTF8Obj;
-#elif __WXGTK20__
-                                    wxConvBrokenFileNamesObj;
 #else
                                     wxConvLibcObj;
 #endif
index 6b9ddf198c6a8e4242d229ba5a38d8310704624d..dbe83542dc3e0aff07d0cc5960b7df556d4690f5 100644 (file)
@@ -606,6 +606,12 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
         wxConvCurrent = (wxMBConv*) NULL;
 #endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T
 
+#ifdef __WXGTK20__
+    m_convBrokenFileNames = new wxConvBrokenFileNames;
+    m_oldConvFileName = wxConvFileName;
+    wxConvFileName = m_convBrokenFileNames;
+#endif
+
 #if wxUSE_UNICODE
     // gtk_init() wants UTF-8, not wchar_t, so convert
     int i;
@@ -680,6 +686,11 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 
 void wxApp::CleanUp()
 {
+#ifdef __WXGTK20__
+    delete m_convBrokenFileNames;
+    wxConvFileName = m_oldConvFileName;
+#endif
+
     gdk_threads_leave();
 
     wxAppBase::CleanUp();
index 6b9ddf198c6a8e4242d229ba5a38d8310704624d..dbe83542dc3e0aff07d0cc5960b7df556d4690f5 100644 (file)
@@ -606,6 +606,12 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
         wxConvCurrent = (wxMBConv*) NULL;
 #endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T
 
+#ifdef __WXGTK20__
+    m_convBrokenFileNames = new wxConvBrokenFileNames;
+    m_oldConvFileName = wxConvFileName;
+    wxConvFileName = m_convBrokenFileNames;
+#endif
+
 #if wxUSE_UNICODE
     // gtk_init() wants UTF-8, not wchar_t, so convert
     int i;
@@ -680,6 +686,11 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 
 void wxApp::CleanUp()
 {
+#ifdef __WXGTK20__
+    delete m_convBrokenFileNames;
+    wxConvFileName = m_oldConvFileName;
+#endif
+
     gdk_threads_leave();
 
     wxAppBase::CleanUp();