]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
Give wxListBox a GetClassDefaultAttributes so wxCalendarCtrl (and
[wxWidgets.git] / src / common / utilscmn.cpp
index ff9c48807c6c3d026b21ba1be0c0f39a79a26410..268fdd05f16faaae55da1706a059083d401f52cc 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) && !defined(__EMX__)
+// Some older compilers (such as EMX) cannot handle
+// #pragma interface/implementation correctly, iff 
+// #pragma implementation is used in _two_ translation
+// units (as created by e.g. event.cpp compiled for
+// libwx_base and event.cpp compiled for libwx_gui_core).
+// So we must not use those pragmas for those compilers in
+// such files.
     #pragma implementation "utils.h"
 #endif
 
 // ----------------------------------------------------------------------------
 
 #if WXWIN_COMPATIBILITY_2_2
-    const wxChar *wxInternalErrorStr = wxT("wxWindows Internal Error");
-    const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
+    const wxChar *wxInternalErrorStr = wxT("wxWidgets Internal Error");
+    const wxChar *wxFatalErrorStr = wxT("wxWidgets Fatal Error");
 #endif // WXWIN_COMPATIBILITY_2_2
 
 // ============================================================================
@@ -123,25 +130,6 @@ copystring (const wxChar *s)
 
 #endif // WXWIN_COMPATIBILITY_2_4
 
-// Id generation
-static long wxCurrentId = 100;
-
-long
-wxNewId (void)
-{
-  return wxCurrentId++;
-}
-
-long
-wxGetCurrentId(void) { return wxCurrentId; }
-
-void
-wxRegisterId (long id)
-{
-  if (id >= wxCurrentId)
-    wxCurrentId = id + 1;
-}
-
 // ----------------------------------------------------------------------------
 // String <-> Number conversions (deprecated)
 // ----------------------------------------------------------------------------
@@ -278,6 +266,11 @@ wxString wxNow()
 #endif
 }
 
+void wxUsleep(unsigned long milliseconds)
+{
+    wxMilliSleep(milliseconds);
+}
+
 const wxChar *wxGetInstallPrefix()
 {
     wxString prefix;
@@ -312,7 +305,12 @@ int wxGetOsVersion(int *verMaj, int *verMin)
     if ( ! traits )
         traits = &traitsConsole;
 
-    return traits->GetOSVersion(verMaj, verMin);
+    wxToolkitInfo& info = traits->GetToolkitInfo();
+    if ( verMaj )
+        *verMaj = info.versionMajor;
+    if ( verMin )
+        *verMin = info.versionMinor;
+    return info.os;
 }
 
 // ----------------------------------------------------------------------------
@@ -354,8 +352,7 @@ wxString wxGetUserId()
     static const int maxLoginLen = 256; // FIXME arbitrary number
 
     wxString buf;
-    bool ok = wxGetUserId(buf.GetWriteBuf(maxLoginLen), maxLoginLen);
-    buf.UngetWriteBuf();
+    bool ok = wxGetUserId(wxStringBuffer(buf, maxLoginLen), maxLoginLen);
 
     if ( !ok )
         buf.Empty();
@@ -368,8 +365,7 @@ wxString wxGetUserName()
     static const int maxUserNameLen = 1024; // FIXME arbitrary number
 
     wxString buf;
-    bool ok = wxGetUserName(buf.GetWriteBuf(maxUserNameLen), maxUserNameLen);
-    buf.UngetWriteBuf();
+    bool ok = wxGetUserName(wxStringBuffer(buf, maxUserNameLen), maxUserNameLen);
 
     if ( !ok )
         buf.Empty();
@@ -382,9 +378,7 @@ wxString wxGetHostName()
     static const size_t hostnameSize = 257;
 
     wxString buf;
-    bool ok = wxGetHostName(buf.GetWriteBuf(hostnameSize), hostnameSize);
-
-    buf.UngetWriteBuf();
+    bool ok = wxGetHostName(wxStringBuffer(buf, hostnameSize), hostnameSize);
 
     if ( !ok )
         buf.Empty();
@@ -397,9 +391,7 @@ wxString wxGetFullHostName()
     static const size_t hostnameSize = 257;
 
     wxString buf;
-    bool ok = wxGetFullHostName(buf.GetWriteBuf(hostnameSize), hostnameSize);
-
-    buf.UngetWriteBuf();
+    bool ok = wxGetFullHostName(wxStringBuffer(buf, hostnameSize), hostnameSize);
 
     if ( !ok )
         buf.Empty();
@@ -513,7 +505,10 @@ static long wxDoExecuteWithCapture(const wxString& command,
         }
 
     }
-#endif // wxUSE_STREAMS
+#else
+    wxUnusedVar(output);
+    wxUnusedVar(error);
+#endif // wxUSE_STREAMS/!wxUSE_STREAMS
 
     delete process;
 
@@ -554,6 +549,25 @@ bool wxYieldIfNeeded()
 
 #if wxUSE_GUI
 
+// Id generation
+static long wxCurrentId = 100;
+
+long
+wxNewId (void)
+{
+  return wxCurrentId++;
+}
+
+long
+wxGetCurrentId(void) { return wxCurrentId; }
+
+void
+wxRegisterId (long id)
+{
+  if (id >= wxCurrentId)
+    wxCurrentId = id + 1;
+}
+
 #if wxUSE_MENUS
 
 // ----------------------------------------------------------------------------
@@ -741,7 +755,14 @@ wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt)
 int wxMessageBox(const wxString& message, const wxString& caption, long style,
                  wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y) )
 {
-    wxMessageDialog dialog(parent, message, caption, style);
+    long decorated_style = style;
+
+    if ( ( style & ( wxICON_EXCLAMATION | wxICON_HAND | wxICON_INFORMATION | wxICON_QUESTION ) ) == 0 )
+    {
+        decorated_style |= ( style & wxYES ) ? wxICON_QUESTION : wxICON_INFORMATION ;
+    }
+
+    wxMessageDialog dialog(parent, message, caption, decorated_style);
 
     int ans = dialog.ShowModal();
     switch ( ans )