static wxTimer *wxTheSleepTimer = NULL;
+void wxUsleep(unsigned long milliseconds)
+{
+#ifdef __WIN32__
+ ::Sleep(milliseconds);
+#else
+ if (inTimer)
+ return;
+
+ wxTheSleepTimer = new wxSleepTimer;
+ inTimer = TRUE;
+ wxTheSleepTimer->Start(milliseconds);
+ while (inTimer)
+ {
+ if (wxTheApp->Pending())
+ wxTheApp->Dispatch();
+ }
+ delete wxTheSleepTimer;
+ wxTheSleepTimer = NULL;
+#endif
+}
+
void wxSleep(int nSecs)
{
#if 0 // WIN32 hangs app
if ((home = getenv("TMP")) != NULL ||
(home = getenv("TMPDIR")) != NULL ||
(home = getenv("TEMP")) != NULL)
- return *home ? home : "\\";
+ return *home ? home : (char*)"\\";
}
if (Stricmp(tmp, WXSTRINGCAST user1) == 0)
user1 = "";
#endif
}
+// ---------------------------------------------------------------------------
+// window information functions
+// ---------------------------------------------------------------------------
+
wxString WXDLLEXPORT wxGetWindowText(WXHWND hWnd)
{
wxString str;
return str;
}
+wxString WXDLLEXPORT wxGetWindowClass(WXHWND hWnd)
+{
+ wxString str;
+
+ int len = 256; // some starting value
+
+ for ( ;; )
+ {
+ // as we've #undefined GetClassName we must now manually choose the
+ // right function to call
+ int count =
+
+ #ifndef __WIN32__
+ GetClassName
+ #else // Win32
+ #ifdef UNICODE
+ GetClassNameW
+ #else // !Unicode
+ #ifdef __TWIN32__
+ GetClassName
+ #else // !Twin32
+ GetClassNameA
+ #endif // Twin32/!Twin32
+ #endif // Unicode/ANSI
+ #endif // Win16/32
+ ((HWND)hWnd, str.GetWriteBuf(len), len);
+
+ str.UngetWriteBuf();
+ if ( count == len )
+ {
+ // the class name might have been truncated, retry with larger
+ // buffer
+ len *= 2;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ return str;
+}
+
+WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd)
+{
+#ifndef __WIN32__
+ return GetWindowWord((HWND)hWnd, GWW_ID);
+#else // Win32
+ return GetWindowLong((HWND)hWnd, GWL_ID);
+#endif // Win16/32
+}
+
#if 0
//------------------------------------------------------------------------
// wild character routines