]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
don't disable hidden windows in wxWindowDisabler, it's at best useless
[wxWidgets.git] / include / wx / wxchar.h
index 03a406d0ffc491cf4e67bd73fcbb95d818d0370b..c6665ef5e51452d095ca85bccbcdb4b847d2007b 100644 (file)
     #define wxHAVE_TCHAR_SUPPORT
 #endif // compilers with (good) TCHAR support
 
+#ifdef __MWERKS__
+    #define HAVE_WPRINTF
+#endif
+
 #ifdef wxHAVE_TCHAR_SUPPORT
     // get TCHAR definition if we've got it
     #include <tchar.h>
             #define wxNEED_WX_STDIO_H
             #define wxNEED_WX_STDLIB_H
             #define wxNEED_WX_TIME_H
-        #else // !glibc
+        #elif defined(__MWERKS__) && ( defined(macintosh) || defined(__MACH__) )
+            // ctype.h functions (wctype.h)
+            #define  wxIsalnum   iswalnum
+            #define  wxIsalpha   iswalpha
+            #define  wxIsctrl    iswcntrl
+            #define  wxIsdigit   iswdigit
+            #define  wxIsgraph   iswgraph
+            #define  wxIslower   iswlower
+            #define  wxIsprint   iswprint
+            #define  wxIspunct   iswpunct
+            #define  wxIsspace   iswspace
+            #define  wxIsupper   iswupper
+            #define  wxIsxdigit  iswxdigit
+            #define  wxTolower   towlower
+            #define  wxToupper   towupper
+
+            // string.h functions (wchar.h)
+            #define  wxStrcat    wcscat
+            #define  wxStrchr    wcschr
+            #define  wxStrcmp    wcscmp
+            #define  wxStrcoll   wcscoll
+            #define  wxStrcpy    wcscpy
+            #define  wxStrcspn   wcscspn
+            #define  wxStrlen_   wxWcslen // wxStrlen_() is used in wxStrlen()
+            #define  wxStrncat   wcsncat
+            #define  wxStrncmp   wcsncmp
+            #define  wxStrncpy   wcsncpy
+            #define  wxStrpbrk   wcspbrk
+            #define  wxStrrchr   wcsrchr
+            #define  wxStrspn    wcsspn
+            #define  wxStrstr    wcsstr
+            #define  wxStrtod    wcstod
+            #define  wxStrtol    wcstol
+            #define  wxStrtoul   wcstoul
+            #define  wxStrxfrm   wcsxfrm
+
+            #define  wxFgetc     fgetwc
+            #define  wxFgetchar  fgetwchar
+            #define  wxFgets     fgetws
+            #define  wxFputc     fputwc
+            #define  wxFputchar  fputwchar
+            #define  wxGetc      getwc
+            #define  wxGetchar   getwchar
+            #define  wxGets      getws
+            #define  wxUngetc    ungetwc
+
+            #define wxNEED_PRINTF_CONVERSION
+
+            #define  wxPutc      putwc
+            #define  wxPutchar   putwchar
+            #define  wxFputs     fputws
+            
+            // stdio.h functions
+            
+             #define wxNEED_WX_STDIO_H
+
+            // stdlib.h functions
+            #define  wxAtof      watof
+            #define  wxAtoi      watoi
+            #define  wxAtol      watol
+            #define  wxGetenv(a)    ((wxChar*)NULL)
+            #define  wxSystem(a)    ((int)NULL)
+
+            // time.h functions
+            #define  wxAsctime   wasciitime
+            #define  wxCtime     wctime
+            #define  wxStrftime  wcsftime
+
+            /*
+            #define wxNEED_FPUTWC
+
+            #include <stdio.h>
+
+            int wxFputs(const wxChar *ch, FILE *stream);
+            int wxPutc(wxChar ch, FILE *stream);
+
+            #define wxPuts(ws) wxFputs(ws, stdout)
+            #define wxPutchar(wch) wxPutc(wch, stdout)
+
+            // we need %s to %ls conversion for printf and scanf etc
+            #define wxNEED_PRINTF_CONVERSION
+            // glibc doesn't have wide char equivalents of the other stuff so
+            // use our own versions
+            #define wxNEED_WX_STDIO_H
+            #define wxNEED_WX_STDLIB_H
+            #define wxNEED_WX_TIME_H
+            */
+        #else // !metrowerks for apple
             #error  "Please define wide character functions for your environment"
         #endif
     #else // ASCII
             defined(__EMX__) || defined(__DJGPP__)
         #define wxStricmp stricmp
         #define wxStrnicmp strnicmp
-    #elif defined(__SC__) || defined(__VISUALC__) || \
+    #elif defined(__SYMANTEC__) || defined(__VISUALC__) || \
             (defined(__MWERKS__) && defined(__INTEL__))
         #define wxStricmp _stricmp
         #define wxStrnicmp _strnicmp
@@ -594,6 +685,15 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use
 // printf() family saga
 // ----------------------------------------------------------------------------
 
+/*
+   For some systems vsnprintf() exists in the system libraries but not in the
+   headers, so we need to declare it ourselves to be able to use it.
+ */
+#if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL)
+    extern "C"
+    int vsnprintf(char *str, size_t size, const char *format, va_list ap);
+#endif // !HAVE_VSNPRINTF_DECL
+
 /*
    First of all, we always want to define safe snprintf() function to be used
    instead of sprintf(). Some compilers already have it (or rather vsnprintf()
@@ -605,6 +705,10 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use
  */
 #ifndef wxVsnprintf_
     #if wxUSE_UNICODE
+        #if defined(__MWERKS__)
+            #define HAVE_WCSRTOMBS 1
+            #define HAVE_VSWPRINTF 1
+        #endif
         #if defined(HAVE__VSNWPRINTF)
             #define wxVsnprintf_    _vsnwprintf
         /* MinGW?MSVCRT has the wrong vswprintf */
@@ -804,6 +908,9 @@ WXDLLEXPORT int      wxSystem(const wxChar *psz);
 
 // time.h functions
 #ifdef wxNEED_WX_TIME_H
+#if defined(__MWERKS__) && defined(macintosh)
+    #include <time.h> 
+#endif
     WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max,
                                   const wxChar *fmt, const struct tm *tm);
 #endif // wxNEED_WX_TIME_H