]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/utilsgtk.cpp
Patch from Hartwig for wxMac implementation
[wxWidgets.git] / src / gtk / utilsgtk.cpp
index 617a497427352fc3af1d7fa5407193cf737693e4..1f9ea333a74c9427a23cc32259467eb1d19d5c8e 100644 (file)
@@ -26,6 +26,7 @@
 #include "wx/unix/execute.h"
 
 #include "wx/gtk/private/timer.h"
+#include "wx/evtloop.h"
 
 #ifdef __WXDEBUG__
     #include "wx/gtk/assertdlg_gtk.h"
@@ -186,16 +187,17 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
 
 #if !wxUSE_UNICODE
 
-wxCharBuffer wxConvertToGTK(const wxString& s, wxFontEncoding enc)
+WXDLLIMPEXP_CORE wxCharBuffer
+wxConvertToGTK(const wxString& s, wxFontEncoding enc)
 {
     wxWCharBuffer wbuf;
     if ( enc == wxFONTENCODING_SYSTEM || enc == wxFONTENCODING_DEFAULT )
     {
-        wbuf = wxConvUI->cMB2WC(s);
+        wbuf = wxConvUI->cMB2WC(s.c_str());
     }
     else // another encoding, use generic conversion class
     {
-        wbuf = wxCSConv(enc).cMB2WC(s);
+        wbuf = wxCSConv(enc).cMB2WC(s.c_str());
     }
 
     if ( !wbuf && !s.empty() )
@@ -206,17 +208,18 @@ wxCharBuffer wxConvertToGTK(const wxString& s, wxFontEncoding enc)
         // we choose ISO8859-1 here arbitrarily, it's just the most common
         // encoding probably and, also importantly here, conversion from it
         // never fails as it's done internally by wxCSConv
-        wbuf = wxCSConv(wxFONTENCODING_ISO8859_1).cMB2WC(s);
+        wbuf = wxCSConv(wxFONTENCODING_ISO8859_1).cMB2WC(s.c_str());
     }
 
     return wxConvUTF8.cWC2MB(wbuf);
 }
 
-wxCharBuffer wxConvertFromGTK(const wxString& s, wxFontEncoding enc)
+WXDLLIMPEXP_CORE wxCharBuffer
+wxConvertFromGTK(const wxString& s, wxFontEncoding enc)
 {
     // this conversion should never fail as GTK+ always uses UTF-8 internally
     // so there are no complications here
-    const wxWCharBuffer wbuf(wxConvUTF8.cMB2WC(s));
+    const wxWCharBuffer wbuf(wxConvUTF8.cMB2WC(s.c_str()));
     if ( enc == wxFONTENCODING_SYSTEM )
         return wxConvUI->cWC2MB(wbuf);
 
@@ -311,11 +314,15 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
     return wxPORT_GTK;
 }
 
+#if wxUSE_TIMER
+
 wxTimerImpl *wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
 {
     return new wxGTKTimerImpl(timer);
 }
 
+#endif // wxUSE_TIMER
+
 #if wxUSE_DETECT_SM
 static wxString GetSM()
 {
@@ -363,6 +370,12 @@ static wxString GetSM()
 // wxGUIAppTraits
 //-----------------------------------------------------------------------------
 
+wxEventLoopBase *wxGUIAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop();
+}
+
+
 #if wxUSE_INTL
 void wxGUIAppTraits::SetLocale()
 {
@@ -476,9 +489,9 @@ bool wxGUIAppTraits::ShowAssertDialog(const wxString& msg)
 wxString wxGUIAppTraits::GetDesktopEnvironment() const
 {
     wxString de = wxSystemOptions::GetOption(_T("gtk.desktop"));
+#if wxUSE_DETECT_SM
     if ( de.empty() )
     {
-#if wxUSE_DETECT_SM
         static const wxString s_SM = GetSM();
 
         if (s_SM == wxT("GnomeSM"))