diff --git a/distrib/msw/patch.rsp b/distrib/msw/patch.rsp
index 80185ac474..bc2643ce0b 100644
--- a/distrib/msw/patch.rsp
+++ b/distrib/msw/patch.rsp
@@ -1,16 +1,4 @@
-include/wx/wxchar.h
-include/wx/msw/setup.h
-samples/dnd/*.wxr
-src/unix/fontutil.cpp
-src/common/fontmap.cpp
-src/msw/statbox.cpp
-include/wx/msw/statbox.h
-utils/ogl/samples/ogledit/palette.cpp
-utils/ogl/samples/studio/shapes.cpp
-utils/ogl/samples/studio/shapes.h
-utils/ogl/samples/studio/studio.h
-utils/dialoged/src/dialoged.cpp
-utils/dialoged/src/dlghndlr.cpp
-utils/dialoged/src/reseditr.cpp
-utils/dialoged/src/dialoged.h
+include/wx/datetime.inl
+src/msw/treectrl.cpp
+samples/treectrl/TreectrlVC.dsp
diff --git a/distrib/msw/zipdist.bat b/distrib/msw/zipdist.bat
index ca4889596d..846fd6f117 100755
--- a/distrib/msw/zipdist.bat
+++ b/distrib/msw/zipdist.bat
@@ -89,7 +89,7 @@ zip32 -@ %dest\tiff.zip < %src\distrib\msw\tiff.rsp
rem Dialog Editor source and binary
erase %dest\dialoged_source.zip
zip32 -@ %dest\dialoged_source.zip < %src\distrib\msw\dialoged.rsp
-zip32 -j %dest\dialoged.zip %dest\dialoged_source.zip %src\bin\dialoged.exe %src\bin\dialoged.hlp %src\bin\dialoged.cnt
+zip32 -j %dest\dialoged.zip %dest\dialoged_source.zip %src\bin\dialoged.exe %src\docs\winhelp\dialoged.hlp %src\docs\winhelp\dialoged.cnt
erase %dest\dialoged_source.zip
rem Misc. utils not in the main distribution
@@ -143,6 +143,7 @@ erase /Y contrib\docs\winhelp\mmedia.*
erase /Y contrib\docs\winhelp\stc.*
erase /Y contrib\docs\pdf\*.*
deltree /Y contrib\docs\latex\ogl
+erase /Y src\mingegcs.bat
rem Now copy some binary files to 'bin'
if not isdir bin mkdir bin
diff --git a/docs/html/news.htm b/docs/html/news.htm
index 83822071ff..6b9af3c139 100644
--- a/docs/html/news.htm
+++ b/docs/html/news.htm
@@ -18,7 +18,7 @@ News
-
+
- wxWindows 2.1.14 is now available for Windows, Motif and GTK.
diff --git a/docs/latex/wx/tunicode.tex b/docs/latex/wx/tunicode.tex
index 2f4f472597..3dd9814926 100644
--- a/docs/latex/wx/tunicode.tex
+++ b/docs/latex/wx/tunicode.tex
@@ -96,7 +96,7 @@ section.
\subsection{Unicode support in wxWindows}
-In wxWindows, the code fragment froim above should be written instead:
+In wxWindows, the code fragment from above should be written instead:
\begin{verbatim}
wxChar ch = wxT('*');
diff --git a/docs/readme.txt b/docs/readme.txt
index c3f7ac1b6c..8d649fd4ca 100644
--- a/docs/readme.txt
+++ b/docs/readme.txt
@@ -15,8 +15,8 @@ tree controls on Unix, they are emulated.
A detailed 1100-page reference manual is supplied in HTML, PDF and
Windows Help form: see the docs hierarchy.
-For a quick start, point your Web browser at docs/html/index.htm for a list of
-important documents and samples.
+For a quick start, point your Web browser at docs/html/index.htm for a
+list of important documents and samples.
Changes in this release
-----------------------
@@ -109,11 +109,12 @@ wxWindows for Windows distribution
As well as the core source, the Windows setup contains:
- Windows Help versions of the documentation (docs/winhelp);
-- wxGLCanvas (OpenGL integration, in utils/glcanvas);
-- OGL 3 (Object Graphics Library, in utils/ogl);
-- wxTreeLayout (for tree drawing, in utils/wxtree);
+- OGL 3 (Object Graphics Library, in contrib/src/ogl);
- a Dialog Editor binary;
-- the JPEG library.
+- a Tex2RTF binary;
+- Life! sample binary;
+- the JPEG library source;
+- the TIFF library source.
setup.exe Setup file (Windows 95/98, NT)
setup.* Other setup files
diff --git a/include/wx/arrimpl.cpp b/include/wx/arrimpl.cpp
index 585893ccc7..6496ca6b75 100644
--- a/include/wx/arrimpl.cpp
+++ b/include/wx/arrimpl.cpp
@@ -21,7 +21,13 @@
*****************************************************************************/
// needed to resolve the conflict between global T and macro parameter T
+
+// VC++ can't cope with string concatenation in Unicode mode
+#if defined(wxUSE_UNICODE) && wxUSE_UNICODE
+#define _WX_ERROR_REMOVE2(x) wxT("bad index in ::RemoveAt()")
+#else
#define _WX_ERROR_REMOVE2(x) wxT("bad index in " #x "::RemoveAt()")
+#endif
// macro implements remaining (not inline) methods of template list
// (it's private to this file)
diff --git a/src/common/cmdline.cpp b/src/common/cmdline.cpp
index 40700df5af..d98bb96d48 100644
--- a/src/common/cmdline.cpp
+++ b/src/common/cmdline.cpp
@@ -348,14 +348,12 @@ void wxCmdLineParser::AddParam(const wxString& desc,
wxCmdLineParam& param = m_data->m_paramDesc.Last();
wxASSERT_MSG( !(param.flags & wxCMD_LINE_PARAM_MULTIPLE),
- _T("all parameters after the one with "
- "wxCMD_LINE_PARAM_MULTIPLE style will be ignored") );
+ _T("all parameters after the one with wxCMD_LINE_PARAM_MULTIPLE style will be ignored") );
if ( !(flags & wxCMD_LINE_PARAM_OPTIONAL) )
{
wxASSERT_MSG( !(param.flags & wxCMD_LINE_PARAM_OPTIONAL),
- _T("a required parameter can't follow an "
- "optional one") );
+ _T("a required parameter can't follow an optional one") );
}
}
#endif // Debug
@@ -589,8 +587,7 @@ int wxCmdLineParser::Parse()
if ( *p++ != _T('=') )
{
- wxLogError(_("Option '%s' requires a value, '=' "
- "expected."), name.c_str());
+ wxLogError(_("Option '%s' requires a value, '=' expected."), name.c_str());
ok = FALSE;
}
@@ -649,9 +646,7 @@ int wxCmdLineParser::Parse()
}
else
{
- wxLogError(_("'%s' is not a correct "
- "numeric value for option "
- "'%s'."),
+ wxLogError(_("'%s' is not a correct numeric value for option '%s'."),
value.c_str(), name.c_str());
ok = FALSE;
@@ -665,8 +660,7 @@ int wxCmdLineParser::Parse()
const wxChar *res = dt.ParseDate(value);
if ( !res || *res )
{
- wxLogError(_("Option '%s': '%s' cannot "
- "be converted to a date."),
+ wxLogError(_("Option '%s': '%s' cannot be converted to a date."),
name.c_str(), value.c_str());
ok = FALSE;
@@ -699,9 +693,7 @@ int wxCmdLineParser::Parse()
else
{
wxASSERT_MSG( currentParam == countParam - 1,
- _T("all parameters after the one with "
- "wxCMD_LINE_PARAM_MULTIPLE style "
- "are ignored") );
+ _T("all parameters after the one with wxCMD_LINE_PARAM_MULTIPLE style are ignored") );
// remember that we did have this last repeatable parameter
hadRepeatableParam = TRUE;
diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp
index 2e612f6ad5..5919aa46a2 100644
--- a/src/common/cmndata.cpp
+++ b/src/common/cmndata.cpp
@@ -1435,8 +1435,7 @@ void wxPageSetupDialogData::SetPaperSize(wxPaperSize id)
void wxPageSetupDialogData::CalculateIdFromPaperSize()
{
wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL),
- wxT("wxThePrintPaperDatabase should not be NULL. "
- "Do not create global print dialog data objects.") );
+ wxT("wxThePrintPaperDatabase should not be NULL. Do not create global print dialog data objects.") );
wxSize sz = GetPaperSize();
@@ -1451,8 +1450,7 @@ void wxPageSetupDialogData::CalculateIdFromPaperSize()
void wxPageSetupDialogData::CalculatePaperSizeFromId()
{
wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL),
- wxT("wxThePrintPaperDatabase should not be NULL. "
- "Do not create global print dialog data objects.") );
+ wxT("wxThePrintPaperDatabase should not be NULL. Do not create global print dialog data objects.") );
wxSize sz = wxThePrintPaperDatabase->GetSize(m_printData.GetPaperId());
diff --git a/src/common/config.cpp b/src/common/config.cpp
index 6ad9263693..018b9e01df 100644
--- a/src/common/config.cpp
+++ b/src/common/config.cpp
@@ -339,8 +339,7 @@ wxString wxExpandEnvVars(const wxString& str)
// check the closing bracket
if ( bracket != Bracket_None ) {
if ( m == str.Len() || str[m] != (char)bracket ) {
- wxLogWarning(_("Environment variables expansion failed: "
- "missing '%c' at position %d in '%s'."),
+ wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %d in '%s'."),
(char)bracket, m + 1, str.c_str());
}
else {
diff --git a/src/common/db.cpp b/src/common/db.cpp
index 4b23ad4a04..64c41312da 100644
--- a/src/common/db.cpp
+++ b/src/common/db.cpp
@@ -155,7 +155,7 @@ int wxColFor::Format(int Nation,int dbDataType,SWORD sqlDataType,short columnSiz
i_Nation = Nation; // 0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
i_dbDataType = dbDataType;
i_sqlDataType = sqlDataType;
- s_Field.Printf("%s%d",s_Menge[1].c_str(),i_Menge[1]); // OK for VARCHAR, INTEGER and FLOAT
+ s_Field.Printf(wxT("%s%d"),s_Menge[1].c_str(),i_Menge[1]); // OK for VARCHAR, INTEGER and FLOAT
if (i_dbDataType == 0) // Filter unsupported dbDataTypes
{
if ((i_sqlDataType == SQL_VARCHAR) || (i_sqlDataType == SQL_LONGVARCHAR))
@@ -185,8 +185,8 @@ int wxColFor::Format(int Nation,int dbDataType,SWORD sqlDataType,short columnSiz
if (decimalDigits == 0)
decimalDigits = 2;
Temp0 = "%";
- Temp0.Printf("%s%d.%d",Temp0.c_str(),columnSize,decimalDigits);
- s_Field.Printf("%sf",Temp0.c_str()); //
+ Temp0.Printf(wxT("%s%d.%d"),Temp0.c_str(),columnSize,decimalDigits);
+ s_Field.Printf(wxT("%sf"),Temp0.c_str()); //
break;
case DB_DATA_TYPE_DATE:
if (i_Nation == 0) // timestamp YYYY-MM-DD HH:MM:SS.SSS (tested for SYBASE)
@@ -211,7 +211,7 @@ int wxColFor::Format(int Nation,int dbDataType,SWORD sqlDataType,short columnSiz
}
break;
default:
- s_Field.Printf("-E-> unknown Format(%d)-sql(%d)",dbDataType,sqlDataType); //
+ s_Field.Printf(wxT("-E-> unknown Format(%d)-sql(%d)"),dbDataType,sqlDataType); //
break;
};
return TRUE;
@@ -227,32 +227,32 @@ wxDB::wxDB(HENV &aHenv, bool FwdOnlyCursors)
sqlLogState = sqlLogOFF; // By default, logging is turned off
nTables = 0;
- wxStrcpy(sqlState,"");
- wxStrcpy(errorMsg,"");
+ wxStrcpy(sqlState,wxT(""));
+ wxStrcpy(errorMsg,wxT(""));
nativeError = cbErrorMsg = 0;
for (i = 0; i < DB_MAX_ERROR_HISTORY; i++)
- wxStrcpy(errorList[i], "");
+ wxStrcpy(errorList[i], wxT(""));
// Init typeInf structures
- wxStrcpy(typeInfVarchar.TypeName,"");
+ wxStrcpy(typeInfVarchar.TypeName,wxT(""));
typeInfVarchar.FsqlType = 0;
typeInfVarchar.Precision = 0;
typeInfVarchar.CaseSensitive = 0;
typeInfVarchar.MaximumScale = 0;
- wxStrcpy(typeInfInteger.TypeName,"");
+ wxStrcpy(typeInfInteger.TypeName,wxT(""));
typeInfInteger.FsqlType = 0;
typeInfInteger.Precision = 0;
typeInfInteger.CaseSensitive = 0;
typeInfInteger.MaximumScale = 0;
- wxStrcpy(typeInfFloat.TypeName,"");
+ wxStrcpy(typeInfFloat.TypeName,wxT(""));
typeInfFloat.FsqlType = 0;
typeInfFloat.Precision = 0;
typeInfFloat.CaseSensitive = 0;
typeInfFloat.MaximumScale = 0;
- wxStrcpy(typeInfDate.TypeName,"");
+ wxStrcpy(typeInfDate.TypeName,wxT(""));
typeInfDate.FsqlType = 0;
typeInfDate.Precision = 0;
typeInfDate.CaseSensitive = 0;
@@ -896,8 +896,8 @@ void wxDB::Close(void)
tiu = (wxTablesInUse *)pNode->Data();
if (tiu->pDb == this)
{
- s.sprintf("(%-20s) tableID:[%6lu] pDb:[%p]", tiu->tableName,tiu->tableID,tiu->pDb);
- s2.sprintf("Orphaned found using pDb:[%p]",this);
+ s.sprintf(wxT("(%-20s) tableID:[%6lu] pDb:[%p]"), tiu->tableName,tiu->tableID,tiu->pDb);
+ s2.sprintf(wxT("Orphaned found using pDb:[%p]"),this);
wxLogDebug (s.c_str(),s2.c_str());
}
pNode = pNode->Next();
diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp
index 116565bbcf..61538ec230 100644
--- a/src/common/fontmap.cpp
+++ b/src/common/fontmap.cpp
@@ -208,8 +208,7 @@ wxFontMapper::~wxFontMapper()
void wxFontMapper::SetConfigPath(const wxString& prefix)
{
wxCHECK_RET( !prefix.IsEmpty() && prefix[0] == wxCONFIG_PATH_SEPARATOR,
- wxT("an absolute path should be given to "
- "wxFontMapper::SetConfigPath()") );
+ wxT("an absolute path should be given to wxFontMapper::SetConfigPath()") );
m_configRootPath = prefix;
}
diff --git a/src/makevc.env b/src/makevc.env
index 632816e59b..e611d32218 100644
--- a/src/makevc.env
+++ b/src/makevc.env
@@ -125,6 +125,9 @@ WXLIBNAME=$(NEW_WXLIBNAME)
!if "$(FINAL)" == "1"
D=Release
!else
+guilibsdll=msvcrtd.lib oldnames.lib kernel32.lib \
+ ws2_32.lib mswsock.lib advapi32.lib user32.lib \
+ gdi32.lib comdlg32.lib winspool.lib
D=Debug
LIBEXT=d
WXLIBNAME=$(WXLIBNAME)$(LIBEXT)
diff --git a/src/msw/makefile.vc b/src/msw/makefile.vc
index 6eadac6176..f3a5e7e367 100644
--- a/src/msw/makefile.vc
+++ b/src/msw/makefile.vc
@@ -27,6 +27,8 @@ LIBTARGET=$(WXLIB)
DUMMYOBJ=$D\dummy.obj
!endif
+USE_GLCANVAS=1
+
# Please set these according to the settings in setup.h, so we can include
# the appropriate libraries in wx.lib
diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp
index 7f8403c58f..2d692a9a85 100644
--- a/src/msw/treectrl.cpp
+++ b/src/msw/treectrl.cpp
@@ -545,7 +545,16 @@ bool wxTreeCtrl::Create(wxWindow *parent,
if ( !MSWCreateControl(WC_TREEVIEW, wstyle) )
return FALSE;
+#if 0
SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+#else
+ // This works around a bug in the Windows tree control whereby for some versions
+ // of comctrl32, setting any colour actually draws the background in black.
+ // This will initialise the background to the system colour.
+ ::SendMessage(GetHwnd(), TVM_SETBKCOLOR, 0,-1);
+ wxWindow::SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+#endif
+
SetForegroundColour(wxWindow::GetParent()->GetForegroundColour());
// VZ: this is some experimental code which may be used to get the
diff --git a/utils/projgen/makeproj.cpp b/utils/projgen/makeproj.cpp
index 70aa07289b..f068b5adbd 100644
--- a/utils/projgen/makeproj.cpp
+++ b/utils/projgen/makeproj.cpp
@@ -293,7 +293,7 @@ void MyApp::GenerateSamples(const wxString& dir)
GenerateSample("TextVC", "text", dir + wxString("/samples/text"), wxStringList("text.cpp", 0));
GenerateSample("ThreadVC", "thread", dir + wxString("/samples/thread"), wxStringList("thread.cpp", 0));
GenerateSample("ToolbarVC", "toolbar", dir + wxString("/samples/toolbar"), wxStringList("toolbar.cpp", 0));
- GenerateSample("TreectrlVC", "treectrl", dir + wxString("/samples/treectrl"), wxStringList("treectrl.cpp", "treetest.h", 0));
+ GenerateSample("TreectrlVC", "treectrl", dir + wxString("/samples/treectrl"), wxStringList("treectrl.cpp", "treectrl.h", 0));
GenerateSample("TypetestVC", "typetest", dir + wxString("/samples/typetest"), wxStringList("typetest.cpp", "typetest.h", 0));
GenerateSample("ValidateVC", "validate", dir + wxString("/samples/validate"), wxStringList("validate.cpp", "validate.h", 0));
GenerateSample("ClientVC", "client", dir + wxString("/samples/sockets"), wxStringList("client.cpp", 0));