]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
Also allow key events for Shift-Tab when wxWANTS_CHARS style is used
[wxWidgets.git] / src / common / utilscmn.cpp
index ff9c48807c6c3d026b21ba1be0c0f39a79a26410..449bafe65fea735a240a8776d68455f8c0dd87dc 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
 
@@ -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)
 // ----------------------------------------------------------------------------
@@ -312,7 +300,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 +347,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 +360,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 +373,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 +386,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();
@@ -554,6 +541,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
 
 // ----------------------------------------------------------------------------