]> git.saurik.com Git - wxWidgets.git/commitdiff
many compilation fixes for WinCE using VC8 (it now build, although still doesn't...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 27 Jul 2007 16:34:24 +0000 (16:34 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 27 Jul 2007 16:34:24 +0000 (16:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

24 files changed:
include/wx/filefn.h
include/wx/msw/wince/checklst.h
include/wx/msw/wince/chkconf.h
include/wx/msw/wince/tbarwce.h
include/wx/platform.h
include/wx/wxcrt.h
include/wx/wxcrtbase.h
src/common/appbase.cpp
src/common/strconv.cpp
src/common/wxcrt.cpp
src/msw/app.cpp
src/msw/bitmap.cpp
src/msw/combo.cpp
src/msw/dlmsw.cpp
src/msw/fontenum.cpp
src/msw/menu.cpp
src/msw/pen.cpp
src/msw/printwin.cpp
src/msw/renderer.cpp
src/msw/stattext.cpp
src/msw/tbar95.cpp
src/msw/wince/checklst.cpp
src/msw/wince/crt.cpp
src/msw/wince/tbarwce.cpp

index 54c1fcc928efc544b1d8e966e9219554f775c638..c47f40a2ca0e5288cf2fe2ad6ceaf4e19de86693 100644 (file)
@@ -423,14 +423,17 @@ enum wxFileKind
     #define wxCRT_Lstat wxCRT_Stat
 #endif
 
-inline int wxStat(const wxString& path, wxStructStat *buf)
-    { return wxCRT_Stat(path.fn_str(), buf); }
-inline int wxLstat(const wxString& path, wxStructStat *buf)
-    { return wxCRT_Lstat(path.fn_str(), buf); }
 inline int wxAccess(const wxString& path, mode_t mode)
     { return wxCRT_Access(path.fn_str(), mode); }
 inline int wxOpen(const wxString& path, int flags, mode_t mode)
     { return wxCRT_Open(path.fn_str(), flags, mode); }
+
+// FIXME-CE: provide our own implementations of the missing CRT functions
+#ifndef __WXWINCE__
+inline int wxStat(const wxString& path, wxStructStat *buf)
+    { return wxCRT_Stat(path.fn_str(), buf); }
+inline int wxLstat(const wxString& path, wxStructStat *buf)
+    { return wxCRT_Lstat(path.fn_str(), buf); }
 inline int wxRmDir(const wxString& path)
     { return wxCRT_RmDir(path.fn_str()); }
 #ifdef __WINDOWS__
@@ -440,6 +443,7 @@ inline int wxMkDir(const wxString& path, mode_t WXUNUSED(mode) = 0)
 inline int wxMkDir(const wxString& path, mode_t mode)
     { return wxCRT_MkDir(path.fn_str(), mode); }
 #endif
+#endif // !__WXWINCE__
 
 #ifdef O_BINARY
     #define wxO_BINARY O_BINARY
index 42cc6475db72ab8d5bd485d288852c8e0aec6aaa..020e9798c2b7942fc09a6f4255a496e484f22d74 100644 (file)
@@ -49,15 +49,13 @@ public:
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxListBoxNameStr);
 
-    // override base class virtuals
-    virtual void DoDeleteOneItem(unsigned int n);
-
     // items may be checked
     virtual bool IsChecked(unsigned int uiIndex) const;
     virtual void Check(unsigned int uiIndex, bool bCheck = true);
 
     // public interface derived from wxListBox and lower classes
-    virtual void Clear();
+    virtual void DoClear();
+    virtual void DoDeleteOneItem(unsigned int n);
     virtual unsigned int GetCount() const;
     virtual int GetSelection() const;
     virtual int GetSelections(wxArrayInt& aSelections) const;
index eefc234666f62d57c94db3b513f1028f760929ba..987b93f953eb1b3d5f8812af03ecd6da8cc4341a 100644 (file)
 #ifndef _WX_MSW_WINCE_CHKCONF_H_
 #define _WX_MSW_WINCE_CHKCONF_H_
 
-// Standard SDK lacks a few things, forcefully disable them
-#ifdef WCE_PLATFORM_STANDARDSDK
-    // no shell functions support
-    #undef wxUSE_STDPATHS
-    #define wxUSE_STDPATHS 0
-#endif // WCE_PLATFORM_STANDARDSDK
+// ----------------------------------------------------------------------------
+// Disable features which don't work or don't make sense under CE
+// ----------------------------------------------------------------------------
+
+// please keep the list in alphabetic order except for closely related settings
+// (e.g. wxUSE_ENH_METAFILE is put immediately after wxUSE_METAFILE)
+
+#undef wxUSE_DEBUGREPORT
+#define wxUSE_DEBUGREPORT 0
 
 #if _WIN32_WCE < 400
     // not enough API and lack of ddraw.h
     #define wxUSE_DISPLAY 0
 #endif
 
+// wxFSVolume currently doesn't compile under CE and it's not clear if it makes
+// sense at all there (the drives and their names are fixed on CE systems)
+#undef wxUSE_FSVOLUME
+#define wxUSE_FSVOLUME 0
+
+// no .INI files API under CE
+#undef wxUSE_INICONF
+#define wxUSE_INICONF 0
+
 // DDE doesn't exist under WinCE and wxIPC is DDE-based under MSW
 #undef wxUSE_IPC
 #define wxUSE_IPC 0
 
+// and they're disabled for WinCE in build/bakefiles/{tiff|regex}.bkl so can't
+// be enabled here
+#undef wxUSE_LIBTIFF
+#define wxUSE_LIBTIFF 0
+
+// no MDI under CE
+#undef wxUSE_MDI
+#define wxUSE_MDI 0
+#undef wxUSE_MDI_ARCHITECTURE
+#define wxUSE_MDI_ARCHITECTURE 0
+
 // metafiles are not supported neither
+#undef wxUSE_METAFILE
+#define wxUSE_METAFILE 0
 #undef wxUSE_ENH_METAFILE
 #define wxUSE_ENH_METAFILE 0
 
-#undef wxUSE_METAFILE
-#define wxUSE_METAFILE 0
+// not sure if this is supported by CE but it doesn't compile currently anyhow
+#undef wxUSE_MS_HTML_HELP
+#define wxUSE_MS_HTML_HELP 0
 
 // eVC doesn't support SEH
 #undef wxUSE_ON_FATAL_EXCEPTION
 #define wxUSE_ON_FATAL_EXCEPTION 0
 
-#undef wxUSE_WXHTML_HELP
-#define wxUSE_WXHTML_HELP 0
+// no owner drawn controls (not sure if this is possible at all but in any case
+// the code doesn't currently compile)
+#undef wxUSE_OWNER_DRAWN
+#define wxUSE_OWNER_DRAWN 0
 
 // libtiff and regex apparently don't compile with eVC (to check with eVC4?)
-// and they're disabled for WinCE in build/bakefiles/{tiff|regex}.bkl so can't
-// be enabled here
-#undef wxUSE_LIBTIFF
-#define wxUSE_LIBTIFF 0
+// other MSW settings not supported by CE
+#undef wxUSE_PRINTING_ARCHITECTURE
+#define wxUSE_PRINTING_ARCHITECTURE 0
 
 #undef wxUSE_REGEX
 #define wxUSE_REGEX 0
 
-#undef wxUSE_DEBUGREPORT
-#define wxUSE_DEBUGREPORT 0
-
-// other MSW settings not supported by CE
 #undef wxUSE_RICHEDIT
 #define wxUSE_RICHEDIT 0
 #undef wxUSE_RICHEDIT2
 #define wxUSE_RICHEDIT2 0
 
-#undef wxUSE_UXTHEME
-#define wxUSE_UXTHEME 0
+// Standard SDK lacks a few things, forcefully disable them
+#ifdef WCE_PLATFORM_STANDARDSDK
+    // no shell functions support
+    #undef wxUSE_STDPATHS
+    #define wxUSE_STDPATHS 0
+#endif // WCE_PLATFORM_STANDARDSDK
+
+// not sure if this is supported by eVC but VC8 SDK lacks the tooltips control
+// related declarations
+#if defined(__VISUALC__) && __VISUALC__ >= 1400
+    #undef wxUSE_TOOLTIPS
+    #define wxUSE_TOOLTIPS 0
+#endif
 
 #undef wxUSE_UNICODE_MSLU
 #define wxUSE_UNICODE_MSLU 0
 
+#undef wxUSE_UXTHEME
+#define wxUSE_UXTHEME 0
+
+#undef wxUSE_WXHTML_HELP
+#define wxUSE_WXHTML_HELP 0
+
+
 // Disable features which don't make sense for MS Smartphones
 // (due to pointer device usage, limited controls or dialogs, file system)
 #if defined(__SMARTPHONE__)
index a32bab2f4e8e0afe4ac53e79434b59c99d12af5b..cb7f97f6974f28cf603be6275a66019292a4bbd9 100644 (file)
@@ -149,7 +149,8 @@ protected:
                                           wxObject *clientData,
                                           const wxString& shortHelp,
                                           const wxString& longHelp);
-    virtual wxToolBarToolBase *CreateTool(wxControl *control);
+    virtual wxToolBarToolBase *CreateTool(wxControl *control,
+                                          const wxString& label);
 
     // The menubar associated with this toolbar
     wxMenuBar*  m_menuBar;
index 8de9c989796b3badd7f41d7d89f0f69c960379a2..2c1a40d9435ab5918252c679d5682b851e7c01cd 100644 (file)
 #   define wxONLY_WATCOM_EARLIER_THAN(major,minor) ( __WATCOMC__ < wxWATCOM_VERSION(major,minor) )
 #endif
 
-/*
-   check the consistency of the settings in setup.h: note that this must be
-   done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h
- */
-#include "wx/chkconf.h"
-
-
-/*
-   some compilers don't support iostream.h any longer, while some of theme
-   are not updated with <iostream> yet, so override the users setting here
-   in such case.
- */
-#if defined(_MSC_VER) && (_MSC_VER >= 1310)
-#    undef wxUSE_IOSTREAMH
-#    define wxUSE_IOSTREAMH 0
-#elif defined(__DMC__) || defined(__WATCOMC__)
-#    undef wxUSE_IOSTREAMH
-#    define wxUSE_IOSTREAMH 1
-#elif defined(__MINGW32__)
-#    undef wxUSE_IOSTREAMH
-#    define wxUSE_IOSTREAMH 0
-#endif /* compilers with/without iostream.h */
-
-/*
-   old C++ headers (like <iostream.h>) declare classes in the global namespace
-   while the new, standard ones (like <iostream>) do it in std:: namespace,
-   unless it's an old gcc version.
-
-   using this macro allows constuctions like "wxSTD iostream" to work in
-   either case
- */
-#if !wxUSE_IOSTREAMH && (!defined(__GNUC__) || ( __GNUC__ > 2 ) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
-#    define wxSTD std::
-#else
-#    define wxSTD
-#endif
-
 /*
    OS: first of all, test for MS-DOS platform. We must do this before testing
        for Unix, because DJGPP compiler defines __unix__ under MS-DOS
 #    endif
 #endif
 
+/*
+   check the consistency of the settings in setup.h: note that this must be
+   done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h
+   and after defining the compiler macros which are used in it too
+ */
+#include "wx/chkconf.h"
+
+
+/*
+   some compilers don't support iostream.h any longer, while some of theme
+   are not updated with <iostream> yet, so override the users setting here
+   in such case.
+ */
+#if defined(_MSC_VER) && (_MSC_VER >= 1310)
+#    undef wxUSE_IOSTREAMH
+#    define wxUSE_IOSTREAMH 0
+#elif defined(__DMC__) || defined(__WATCOMC__)
+#    undef wxUSE_IOSTREAMH
+#    define wxUSE_IOSTREAMH 1
+#elif defined(__MINGW32__)
+#    undef wxUSE_IOSTREAMH
+#    define wxUSE_IOSTREAMH 0
+#endif /* compilers with/without iostream.h */
+
+/*
+   old C++ headers (like <iostream.h>) declare classes in the global namespace
+   while the new, standard ones (like <iostream>) do it in std:: namespace,
+   unless it's an old gcc version.
+
+   using this macro allows constuctions like "wxSTD iostream" to work in
+   either case
+ */
+#if !wxUSE_IOSTREAMH && (!defined(__GNUC__) || ( __GNUC__ > 2 ) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
+#    define wxSTD std::
+#else
+#    define wxSTD
+#endif
+
 /* Choose which method we will use for updating menus
  * - in OnIdle, or when we receive a wxEVT_MENU_OPEN event.
  * Presently, only Windows and GTK+ support wxEVT_MENU_OPEN.
index 04fffe5a44e963765242f705fbebfecfaffae94d..b1608af82608c2f2b7d7af8aa55f62082a51234a 100644 (file)
@@ -414,6 +414,7 @@ inline int wxStricmp_String(const wxString& s1, const T& s2)
     { return s1.CmpNoCase(s2); }
 WX_STRCMP_FUNC(wxStricmp, wxCRT_StricmpA, wxCRT_StricmpW, wxStricmp_String)
 
+#if defined(wxCRT_StrcollA) && defined(wxCRT_StrcollW)
 
 // GCC 3.3 and other compilers have a bug that causes it to fail compilation if
 // the template's implementation uses overloaded function declared later (see
@@ -446,6 +447,7 @@ inline int wxStrcoll_String(const wxString& s1, const T& s2)
 WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
 #endif
 
+#endif // defined(wxCRT_Strcoll[AW])
 
 template<typename T>
 inline int wxStrspn_String(const wxString& s1, const T& s2)
@@ -484,6 +486,8 @@ WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 #undef WX_STR_FUNC
 #undef WX_STR_FUNC_NO_INVERT
 
+#if defined(wxCRT_StrxfrmA) && defined(wxCRT_StrxfrmW)
+
 inline size_t wxStrxfrm(char *dest, const char *src, size_t n)
     { return wxCRT_StrxfrmA(dest, src, n); }
 inline size_t wxStrxfrm(wchar_t *dest, const wchar_t *src, size_t n)
@@ -500,6 +504,8 @@ inline size_t wxStrxfrm(char *dest, const wxCStrData& src, size_t n)
 inline size_t wxStrxfrm(wchar_t *dest, const wxCStrData& src, size_t n)
     { return wxCRT_StrxfrmW(dest, src.AsWCharBuf(), n); }
 
+#endif // defined(wxCRT_Strxfrm[AW])
+
 inline char *wxStrtok(char *str, const char *delim, char **saveptr)
     { return wxCRT_StrtokA(str, delim, saveptr); }
 inline wchar_t *wxStrtok(wchar_t *str, const wchar_t *delim, wchar_t **saveptr)
@@ -852,6 +858,9 @@ WX_STRTOX_FUNC(wxULongLong_t, wxStrtoull, wxCRT_StrtoullA, wxCRT_StrtoullW)
 #undef WX_STRTOX_FUNC
 
 
+// there is no command interpreter under CE, hence no system()
+#ifndef __WXWINCE__
+
 // mingw32 doesn't provide _tsystem() even though it provides other stdlib.h
 // functions in their wide versions
 #ifdef wxCRT_SystemW
@@ -860,6 +869,8 @@ inline int wxSystem(const wxString& str) { return wxCRT_SystemW(str.wc_str()); }
 inline int wxSystem(const wxString& str) { return wxCRT_SystemA(str.mb_str()); }
 #endif
 
+#endif // !__WXWINCE__/__WXWINCE__
+
 inline char* wxGetenv(const char *name) { return wxCRT_GetenvA(name); }
 inline wchar_t* wxGetenv(const wchar_t *name) { return wxCRT_GetenvW(name); }
 inline char* wxGetenv(const wxString& name) { return wxCRT_GetenvA(name.mb_str()); }
@@ -867,7 +878,6 @@ inline char* wxGetenv(const wxCStrData& name) { return wxCRT_GetenvA(name.AsChar
 inline char* wxGetenv(const wxCharBuffer& name) { return wxCRT_GetenvA(name.data()); }
 inline wchar_t* wxGetenv(const wxWCharBuffer& name) { return wxCRT_GetenvW(name.data()); }
 
-
 // ----------------------------------------------------------------------------
 //                            time.h functions
 // ----------------------------------------------------------------------------
index cf590db7c3ad1684ddb02a8e45cfdbeabad374e4..0afdc2ec5c15bd1ea7f9b69a5386370ce5d9efde 100644 (file)
@@ -34,8 +34,8 @@
 #include <wctype.h>
 #include <time.h>
 
-#ifdef __WINDOWS__
-#include <io.h>
+#if defined(__WINDOWS__) && !defined(__WXWINCE__)
+    #include <io.h>
 #endif
 
 #if defined(HAVE_STRTOK_R) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
@@ -132,7 +132,6 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
 #define wxCRT_StrcatA    strcat
 #define wxCRT_StrchrA    strchr
 #define wxCRT_StrcmpA    strcmp
-#define wxCRT_StrcollA   strcoll
 #define wxCRT_StrcpyA    strcpy
 #define wxCRT_StrcspnA   strcspn
 #define wxCRT_StrlenA    strlen
@@ -143,12 +142,10 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
 #define wxCRT_StrrchrA   strrchr
 #define wxCRT_StrspnA    strspn
 #define wxCRT_StrstrA    strstr
-#define wxCRT_StrxfrmA   strxfrm
 
 #define wxCRT_StrcatW    wcscat
 #define wxCRT_StrchrW    wcschr
 #define wxCRT_StrcmpW    wcscmp
-#define wxCRT_StrcollW   wcscoll
 #define wxCRT_StrcpyW    wcscpy
 #define wxCRT_StrcspnW   wcscspn
 #define wxCRT_StrncatW   wcsncat
@@ -158,7 +155,15 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
 #define wxCRT_StrrchrW   wcsrchr
 #define wxCRT_StrspnW    wcsspn
 #define wxCRT_StrstrW    wcsstr
-#define wxCRT_StrxfrmW   wcsxfrm
+
+/* these functions are not defined under CE, at least in VC8 CRT */
+#ifndef __WXWINCE__
+    #define wxCRT_StrcollA   strcoll
+    #define wxCRT_StrxfrmA   strxfrm
+
+    #define wxCRT_StrcollW   wcscoll
+    #define wxCRT_StrxfrmW   wcsxfrm
+#endif /* __WXWINCE__ */
 
 /* Almost all compiler have strdup(), but not quite all: CodeWarrior under
    Mac and VC++ for Windows CE don't provide it; additionally, gcc under
@@ -413,7 +418,6 @@ WXDLLIMPEXP_BASE wchar_t *wxCRT_StrtokW(wchar_t *psz, const wchar_t *delim, wcha
     #define wxCRT_Rename  rename
 
 #else /* Unicode filenames */
-
     /* special case: these functions are missing under Win9x with Unicows so we
        have to implement them ourselves */
     #if wxUSE_UNICODE_MSLU
@@ -426,17 +430,17 @@ WXDLLIMPEXP_BASE wchar_t *wxCRT_StrtokW(wchar_t *psz, const wchar_t *delim, wcha
             #define wxCRT_Remove    wxMSLU__wremove
             #define wxCRT_Rename    wxMSLU__wrename
     #else
-        #define wxCRT_Rename   _wrename
-        #define wxCRT_Fopen    _wfopen
-        #define wxCRT_Freopen  _wfreopen
+        /* WinCE CRT doesn't provide these functions so use our own */
         #ifdef __WXWINCE__
-            /* carefully: wxCRT_Remove() must return 0 on success while
-               DeleteFile() returns 0 on error, so don't just define one as
-               the other */
-            int wxCRT_Remove(const wchar_t *path);
+            WXDLLIMPEXP_BASE int wxCRT_Rename(const wchar_t *src,
+                                              const wchar_t *dst);
+            WXDLLIMPEXP_BASE int wxCRT_Remove(const wchar_t *path);
         #else
+            #define wxCRT_Rename   _wrename
             #define wxCRT_Remove _wremove
         #endif
+        #define wxCRT_Fopen    _wfopen
+        #define wxCRT_Freopen  _wfreopen
     #endif
 
 #endif /* wxMBFILES/!wxMBFILES */
@@ -483,11 +487,16 @@ WXDLLIMPEXP_BASE int wxCRT_FputcW(wchar_t wc, FILE *stream);
 */
 #define wxTmpnam(x)         wxTmpnam_is_insecure_use_wxTempFile_instead
 
+/* FIXME-CE: provide our own perror() using ::GetLastError() */
+#ifndef __WXWINCE__
+
 #define wxCRT_PerrorA   perror
 #ifdef wxHAVE_TCHAR_SUPPORT
     #define wxCRT_PerrorW _wperror
 #endif
 
+#endif /* !__WXWINCE__ */
+
 /* -------------------------------------------------------------------------
                                   stdlib.h
    ------------------------------------------------------------------------- */
@@ -495,8 +504,8 @@ WXDLLIMPEXP_BASE int wxCRT_FputcW(wchar_t wc, FILE *stream);
 /* there are no env vars at all under CE, so no _tgetenv neither */
 #ifdef __WXWINCE__
     /* can't define as inline function as this is a C file... */
-    #define wxCRT_GetenvA(name)     ((char*)NULL)
-    #define wxCRT_GetenvW(name)     ((wchar_t*)NULL)
+    #define wxCRT_GetenvA(name)     (name, NULL)
+    #define wxCRT_GetenvW(name)     (name, NULL)
 #else
     #define wxCRT_GetenvA           getenv
     #ifdef _tgetenv
index 4cf7d8c3c898fdddf37bd17c61139cd50a1f5b4d..339fe276c4e5df373e25c1ac2cf50985c58bb67c 100644 (file)
@@ -665,7 +665,7 @@ GSocketGUIFunctionsTable* wxConsoleAppTraitsBase::GetSocketGUIFunctionsTable()
 #if wxUSE_INTL
 void wxAppTraitsBase::SetLocale()
 {
-    setlocale(LC_ALL, "");
+    wxSetlocale(LC_ALL, "");
     wxUpdateLocaleIsUtf8();
 }
 #endif
index 0f54c2821f5d0b9715bba1e9f2db4b2dd56f57d0..f2364b7fc3f59994061dcd95eb97e12a94f8640d 100644 (file)
@@ -2736,7 +2736,7 @@ void wxCSConv::SetName(const char *charset)
 {
     if (charset)
     {
-        m_name = strdup(charset);
+        m_name = wxStrdup(charset);
         m_deferred = true;
     }
 }
index 6d5c08774d341b599fa56c2c73e18dc284459e41..341058372d977765cc3475e78390009dd830aa98 100644 (file)
@@ -142,6 +142,13 @@ bool WXDLLEXPORT wxOKlibc()
 
 char* wxSetlocale(int category, const char *locale)
 {
+#ifdef __WXWINCE__
+    // FIXME-CE: there is no setlocale() in CE CRT, use SetThreadLocale()?
+    wxUnusedVar(category);
+    wxUnusedVar(locale);
+
+    return NULL;
+#else // !__WXWINCE__
     char *rv = setlocale(category, locale);
     if ( locale != NULL /* setting locale, not querying */ &&
          rv /* call was successful */ )
@@ -149,6 +156,7 @@ char* wxSetlocale(int category, const char *locale)
         wxUpdateLocaleIsUtf8();
     }
     return rv;
+#endif // __WXWINCE__/!__WXWINCE__
 }
 
 // ============================================================================
@@ -1099,15 +1107,6 @@ void *calloc( size_t num, size_t size )
 
 #endif // __WXWINCE__ <= 211
 
-#ifdef __WXWINCE__
-int wxCRT_RemoveW(const wchar_t *path)
-{
-    return ::DeleteFile(path) == 0;
-}
-#endif
-
-
-
 // ============================================================================
 // wxLocaleIsUtf8
 // ============================================================================
@@ -1208,6 +1207,8 @@ int wxFputc(const wxUniChar& c, FILE *stream)
 #endif
 }
 
+#ifdef wxCRT_PerrorA
+
 void wxPerror(const wxString& s)
 {
 #ifdef wxCRT_PerrorW
@@ -1219,6 +1220,8 @@ void wxPerror(const wxString& s)
 #endif
 }
 
+#endif // wxCRT_PerrorA
+
 wchar_t *wxFgets(wchar_t *s, int size, FILE *stream)
 {
     wxCHECK_MSG( s, NULL, "empty buffer passed to wxFgets()" );
index 682a3b3b298dd651a4ecd6c7d9b37eb9c43bbd6b..537b447d18b39b03329cc172a0b0a7b784f08bce 100644 (file)
@@ -324,9 +324,9 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #ifdef __WXWINCE__
     wxString tmp = GetAppName();
     tmp += wxT("ClassName");
-    wxCanvasClassName = wxStrdup( tmp.c_str() );
+    wxCanvasClassName = wxStrdup( tmp.wc_str() );
     tmp += wxT("NR");
-    wxCanvasClassNameNR = wxStrdup( tmp.c_str() );
+    wxCanvasClassNameNR = wxStrdup( tmp.wc_str() );
     HWND hWnd = FindWindow( wxCanvasClassNameNR, NULL );
     if (hWnd)
     {
index b942d9d61f0cf31f15ea648037fdd786168ee62d..875fe9ff6aa287c040551cd2ff1043c1b741a080 100644 (file)
@@ -374,6 +374,8 @@ bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon,
     return true;
 #else // __WXMICROWIN__ || __WXWINCE__
     wxUnusedVar(icon);
+    wxUnusedVar(transp);
+
     return false;
 #endif // !__WXWINCE__/__WXWINCE__
 }
index 235fd668faf5739a43504f6fd523baa9a11081ea..04e430c428e2c2e4d45aa161c7bd77aa18228ef8 100644 (file)
@@ -474,19 +474,20 @@ void wxComboCtrl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) )
 
     const wxRect& rectButton = m_btnArea;
     wxRect rectTextField = m_tcArea;
-    const bool isEnabled = IsEnabled();
     wxColour bgCol = GetBackgroundColour();
 
+#if wxUSE_UXTHEME
+    const bool isEnabled = IsEnabled();
+
     HDC hDc = GetHdcOf(dc);
     HWND hWnd = GetHwndOf(this);
 
-#if wxUSE_UXTHEME
     wxUxThemeEngine* theme = NULL;
     wxUxThemeHandle hTheme(this, L"COMBOBOX");
 
     if ( hTheme )
         theme = wxUxThemeEngine::GetIfActive();
-#endif
+#endif // wxUSE_UXTHEME
 
     wxRect borderRect(0,0,sz.x,sz.y);
 
index 18a819d796ad1b72124e73578f92c2a7f4fae514..39830797dc2e31407fdcaac24f88f12481c590c6 100644 (file)
@@ -139,9 +139,8 @@ HMODULE wxGetModuleHandle(const char *name, void *addr)
     }
 
     // Windows CE only has Unicode API, so even we have an ANSI string here, we
-    // still need to use GetModuleHandleW() there and so do it everywhere to
-    // avoid #ifdefs -- this code is not performance-critical anyhow...
-#ifdef __WINCE__
+    // still need to use GetModuleHandleW() there
+#ifdef __WXWINCE__
     return ::GetModuleHandleW(wxConvLibc.cMB2WC(name).data());
 #else
     return ::GetModuleHandleA((char *)name);
index cf3623766b150495e9d988ed1399864dfc4d6793..6833fec31b1f71b3684488cd1bf084843cd4d28c 100644 (file)
@@ -160,7 +160,7 @@ void wxFontEnumeratorHelper::DoEnumerate()
 
 #ifdef __WXWINCE__
     ::EnumFontFamilies(hDC,
-                       m_facename.empty() ? NULL : m_facename.c_str(),
+                       m_facename.empty() ? NULL : m_facename.wx_str(),
                        (wxFONTENUMPROC)wxFontEnumeratorProc,
                        (LPARAM)this) ;
 #else // __WIN32__
index ad2f91eac1cb856e5eb7ec83afd837ea77faabfe..596d2a9f840039e205c3f0ae9559d5bdc1082cca 100644 (file)
@@ -759,7 +759,7 @@ void wxMenu::SetTitle(const wxString& label)
             info.fMask = MIIM_TYPE;
             info.fType = MFT_STRING;
             info.cch = m_title.length();
-            info.dwTypeData = (LPTSTR) m_title.c_str();
+            info.dwTypeData = wx_const_cast(wxChar *, m_title.wx_str());
             if ( !SetMenuItemInfo(hMenu, 0, TRUE, & info) )
             {
                 wxLogLastError(wxT("SetMenuItemInfo"));
@@ -948,7 +948,7 @@ WXHMENU wxMenuBar::Create()
             HMENU hPopupMenu = (HMENU) GetMenu(i)->GetHMenu() ;
             tbButton.dwData = (DWORD)hPopupMenu;
             wxString label = wxStripMenuCodes(GetLabelTop(i));
-            tbButton.iString = (int) label.c_str();
+            tbButton.iString = (int) label.wx_str();
 
             int position = i;
 
@@ -1077,7 +1077,7 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
     info.fMask = MIIM_TYPE;
     info.fType = MFT_STRING;
     info.cch = label.length();
-    info.dwTypeData = (LPTSTR) label.c_str();
+    info.dwTypeData = wx_const_cast(wxChar *, label.wx_str());
     if ( !SetMenuItemInfo(GetHmenu(), id, TRUE, & info) )
     {
         wxLogLastError(wxT("SetMenuItemInfo"));
@@ -1185,7 +1185,7 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
         HMENU hPopupMenu = (HMENU) menu->GetHMenu() ;
         tbButton.dwData = (DWORD)hPopupMenu;
         wxString label = wxStripMenuCodes(title);
-        tbButton.iString = (int) label.c_str();
+        tbButton.iString = (int) label.wx_str();
 
         tbButton.idCommand = NewControlId();
         if (!::SendMessage((HWND) GetToolBar()->GetHWND(), TB_INSERTBUTTON, pos, (LPARAM)&tbButton))
@@ -1246,7 +1246,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
         HMENU hPopupMenu = (HMENU) menu->GetHMenu() ;
         tbButton.dwData = (DWORD)hPopupMenu;
         wxString label = wxStripMenuCodes(title);
-        tbButton.iString = (int) label.c_str();
+        tbButton.iString = (int) label.wx_str();
 
         tbButton.idCommand = NewControlId();
         if (!::SendMessage((HWND) GetToolBar()->GetHWND(), TB_INSERTBUTTON, pos, (LPARAM)&tbButton))
index cd58107ac920e8af06c99847aea9b575545d190e..a43d02b14da772621f964ea08f6fdd714d384038 100644 (file)
@@ -206,18 +206,10 @@ wxPenRefData::~wxPenRefData()
 // wxPenRefData HPEN management
 // ----------------------------------------------------------------------------
 
-#ifdef wxHAVE_EXT_CREATE_PEN
-
 static int ConvertPenStyle(int style)
 {
     switch ( style )
     {
-        case wxDOT:
-            return PS_DOT;
-
-        case wxDOT_DASH:
-            return PS_DASHDOT;
-
         case wxSHORT_DASH:
         case wxLONG_DASH:
             return PS_DASH;
@@ -225,13 +217,20 @@ static int ConvertPenStyle(int style)
         case wxTRANSPARENT:
             return PS_NULL;
 
-        case wxUSER_DASH:
-            return PS_USERSTYLE;
-
         default:
             wxFAIL_MSG( _T("unknown pen style") );
             // fall through
 
+#ifdef wxHAVE_EXT_CREATE_PEN
+        case wxDOT:
+            return PS_DOT;
+
+        case wxDOT_DASH:
+            return PS_DASHDOT;
+
+        case wxUSER_DASH:
+            return PS_USERSTYLE;
+
         case wxSTIPPLE:
         case wxBDIAGONAL_HATCH:
         case wxCROSSDIAG_HATCH:
@@ -240,10 +239,14 @@ static int ConvertPenStyle(int style)
         case wxHORIZONTAL_HATCH:
         case wxVERTICAL_HATCH:
         case wxSOLID:
+#endif // wxHAVE_EXT_CREATE_PEN
+
             return PS_SOLID;
     }
 }
 
+#ifdef wxHAVE_EXT_CREATE_PEN
+
 static int ConvertJoinStyle(int join)
 {
     switch( join )
index 975a0936fde12967d6a7c862cd32214ced527705..310db919ddb1063f9bedf768ebbc1f57d3f29b3f 100644 (file)
@@ -75,7 +75,7 @@ LONG APIENTRY _EXPORT wxAbortProc(HDC hPr, int Code);
 wxWindowsPrinter::wxWindowsPrinter(wxPrintDialogData *data)
                 : wxPrinterBase(data)
 {
-    m_lpAbortProc = (WXFARPROC) MakeProcInstance((FARPROC) wxAbortProc, wxGetInstance());
+    m_lpAbortProc = (WXFARPROC)wxAbortProc;
 }
 
 wxWindowsPrinter::~wxWindowsPrinter()
index 4d7b3901270681ad410b32a9a686de61579a7988..7961dc3184bb6cc0d248e180e21ff6cd39748af8 100644 (file)
     #define HSAS_SORTEDDOWN     2
 #endif
 
-#if defined(__WXWINCE__) && !defined(DFCS_FLAT)
-    #define DFCS_FLAT 0
+#if defined(__WXWINCE__)
+    #ifndef DFCS_FLAT
+        #define DFCS_FLAT 0
+    #endif
+    #ifndef DFCS_MONO
+        #define DFCS_MONO 0
+    #endif
 #endif
 
 #ifndef DFCS_HOT
index f0252e1fc4c679ecff7ff7a027b072b6dba53614..2df67c28b877ba53c7820930b1f730876c4f481c 100644 (file)
@@ -120,6 +120,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
     else
         msStyle |= SS_LEFT;
 
+#ifdef SS_ENDELLIPSIS
     // this style is necessary to receive mouse events
     // Win NT and later have the SS_ENDELLIPSIS style which is useful to us:
     if (wxGetOsVersion() == wxOS_WINDOWS_NT)
@@ -130,6 +131,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
         if ( style & wxST_ELLIPSIZE_END )
             msStyle |= SS_ENDELLIPSIS;
     }
+#endif // SS_ENDELLIPSIS
 
     msStyle |= SS_NOTIFY;
 
@@ -194,6 +196,7 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
     // note: we first need to set the size and _then_ call UpdateLabel
     wxStaticTextBase::DoSetSize(x, y, w, h, sizeFlags);
 
+#ifdef SS_ENDELLIPSIS
     // do we need to ellipsize the contents?
     long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE);
     if ( !(styleReal & SS_ENDELLIPSIS) )
@@ -203,6 +206,7 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
         UpdateLabel();
     }
     //else: we don't or the OS will do it for us
+#endif // SS_ENDELLIPSIS
 
     // we need to refresh the window after changing its size as the standard
     // control doesn't always update itself properly
@@ -211,6 +215,7 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
 
 void wxStaticText::SetLabel(const wxString& label)
 {
+#ifdef SS_ENDELLIPSIS
     long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE);
     if ( HasFlag(wxST_ELLIPSIZE_END) &&
           wxGetOsVersion() == wxOS_WINDOWS_NT )
@@ -231,15 +236,18 @@ void wxStaticText::SetLabel(const wxString& label)
         styleReal &= ~SS_ENDELLIPSIS;
         ::SetWindowLong(GetHwnd(), GWL_STYLE, styleReal);
     }
+#endif // SS_ENDELLIPSIS
 
     // this call will save the label in m_labelOrig and set it into this window
     // (through wxWindow::SetLabel)
     m_labelOrig = label;
 
-    if ((styleReal & SS_ENDELLIPSIS) == 0)
-        DoSetLabel(GetEllipsizedLabelWithoutMarkup());
-    else
+#ifdef SS_ENDELLIPSIS
+    if ( styleReal & SS_ENDELLIPSIS )
         DoSetLabel(RemoveMarkup(label));
+    else
+#endif // SS_ENDELLIPSIS
+        DoSetLabel(GetEllipsizedLabelWithoutMarkup());
 
     // adjust the size of the window to fit to the label unless autoresizing is
     // disabled
index 2a9a61007e81571d1c508e798d6bf234d7222898..54547adf94dd05eeacdf9ca3e7c4fec151bca5a3 100644 (file)
@@ -303,8 +303,10 @@ bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size)
     // toolbar-specific post initialisation
     ::SendMessage(GetHwnd(), TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
 
+#ifdef TB_SETEXTENDEDSTYLE
     if ( wxApp::GetComCtl32Version() >= 471 )
         ::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);
+#endif
 
     return true;
 }
index d5f5274921b29debd426c1396af39ed86509239d..334f86fd51fbd5b4739cf17235f87094f0767c40 100644 (file)
@@ -185,20 +185,17 @@ void wxCheckListBox::Check(unsigned int uiIndex, bool bCheck)
 // interface derived from wxListBox and lower classes
 // --------------------------------------------------
 
-void wxCheckListBox::Clear()
+void wxCheckListBox::DoClear()
 {
     unsigned int n = GetCount();
 
     while ( n > 0 )
     {
         n--;
-        Delete(n);
+        DoDeleteOneItem(n);
     }
 
-    m_itemsClientData.Clear();
-
-    wxCHECK_RET( n == GetCount(),
-                 _T("broken wxCheckListBox::Clear()") );
+    wxASSERT_MSG( IsEmpty(), _T("logic error in DoClear()") );
 }
 
 unsigned int wxCheckListBox::GetCount() const
@@ -267,10 +264,10 @@ int wxCheckListBox::DoInsertItems(const wxArrayStringsAdapter & items,
                                   unsigned int pos,
                                   void **clientData, wxClientDataType type)
 {
-    ListView_SetItemCount( GetHwnd(), GetCount() + count );
-
     const unsigned int count = items.GetCount();
 
+    ListView_SetItemCount( GetHwnd(), GetCount() + count );
+
     int n = wxNOT_FOUND;
 
     for( unsigned int i = 0; i < count; i++ )
index 2b283f0e958cf44387bd63a3f9c59936cd88a5cf..29e1cb701914aa86970ae6968d6d9a8f9f6b4540 100644 (file)
@@ -70,3 +70,13 @@ char *getenv(const char * WXUNUSED(name))
     return NULL;
 }
 
+int wxCRT_Rename(const wchar_t *src, const wchar_t *dst)
+{
+    return ::MoveFile(src, dst) ? 0 : -1;
+}
+
+int wxCRT_Remove(const wchar_t *path)
+{
+    return ::DeleteFile(path) ? 0 : -1;
+}
+
index 0ff004bae357bb403193dacf4617b8dc8530c5a3..4a2220009b3b98c87ed253c986c95e4b4043142e 100644 (file)
@@ -404,7 +404,7 @@ bool wxToolMenuBar::Realize()
                     const wxString& label = tool->GetLabel();
                     if ( !label.empty() )
                     {
-                        button.iString = (int)label.c_str();
+                        button.iString = (int)label.wx_str();
                     }
                 }