many compilation fixes for WinCE using VC8 (it now build, although still doesn't work)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -12,12 +12,15 @@
|
||||
#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
|
||||
@@ -25,48 +28,86 @@
|
||||
#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
|
||||
|
||||
// metafiles are not supported neither
|
||||
#undef wxUSE_ENH_METAFILE
|
||||
#define wxUSE_ENH_METAFILE 0
|
||||
|
||||
#undef wxUSE_METAFILE
|
||||
#define wxUSE_METAFILE 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
|
||||
|
||||
// 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
|
||||
|
||||
// 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
|
||||
|
||||
// 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
|
||||
|
||||
// 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?)
|
||||
// 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__)
|
||||
|
@@ -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;
|
||||
|
@@ -272,43 +272,6 @@
|
||||
# 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
|
||||
@@ -582,6 +545,44 @@
|
||||
# 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.
|
||||
|
@@ -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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -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
|
||||
|
@@ -665,7 +665,7 @@ GSocketGUIFunctionsTable* wxConsoleAppTraitsBase::GetSocketGUIFunctionsTable()
|
||||
#if wxUSE_INTL
|
||||
void wxAppTraitsBase::SetLocale()
|
||||
{
|
||||
setlocale(LC_ALL, "");
|
||||
wxSetlocale(LC_ALL, "");
|
||||
wxUpdateLocaleIsUtf8();
|
||||
}
|
||||
#endif
|
||||
|
@@ -2736,7 +2736,7 @@ void wxCSConv::SetName(const char *charset)
|
||||
{
|
||||
if (charset)
|
||||
{
|
||||
m_name = strdup(charset);
|
||||
m_name = wxStrdup(charset);
|
||||
m_deferred = true;
|
||||
}
|
||||
}
|
||||
|
@@ -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()" );
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -374,6 +374,8 @@ bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon,
|
||||
return true;
|
||||
#else // __WXMICROWIN__ || __WXWINCE__
|
||||
wxUnusedVar(icon);
|
||||
wxUnusedVar(transp);
|
||||
|
||||
return false;
|
||||
#endif // !__WXWINCE__/__WXWINCE__
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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__
|
||||
|
@@ -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))
|
||||
|
@@ -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 )
|
||||
|
@@ -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()
|
||||
|
@@ -76,8 +76,13 @@
|
||||
#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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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++ )
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user