I have seen other posts indicating that this may be related to wxSTL, but I did not build wx29 with STL enabled, and the setup_inc.h file indicates wxSTL = 0 (not enabled) also (by default).
What does "lib/gcc_dll/mswu/wx/setup.h" contain?
For the following options: I have stopped updating list for now.
WXWIN_COMPATIBILITY_2_8
wxUSE_STL
wxUSE_STD_CONTAINERS
Values from the wxWidgets 2.9.5 that I have just started building. Takes about 2 hours for me to build it. Re-started wxWidgets build at 10:30 PM ET because I was not building DLL version of wxWidgets.
#define WXWIN_COMPATIBILITY_2_8 1
#define wxUSE_STL 0
#define wxUSE_STD_CONTAINERS 0
Possibly important differences in build.cfg; note, I do NOT think these are the problem.
USE_QA=1
CXXFLAGS=-fno-keep-inline-dllexport
LDFLAGS=
Edit: I could NOT duplicate the problem.
I suggest making sure you built wxWidgets with the same compiler you are using to build Code::Blocks.
Edit: All testing done on Windows 7 SP1 32bit using MinGW gcc shipped with CB 12.11.
Tim S.
Another patch related to this issue of using wxWidgets 2.9.5 and having wxUSE_STD_CONTAINERS = 1
Index: src/sdk/scripting/bindings/sc_wxtypes.cpp
===================================================================
--- src/sdk/scripting/bindings/sc_wxtypes.cpp (revision 9239)
+++ src/sdk/scripting/bindings/sc_wxtypes.cpp (working copy)
@@ -247,16 +247,37 @@
///////////////////
// wxArrayString //
///////////////////
+#if wxCHECK_VERSION(2, 9, 5)
+ #if wxUSE_STD_CONTAINERS
+ typedef void(wxArrayString::*WXAS_CLEAR)();
+ typedef size_t(wxArrayString::*WXAS_GETCOUNT)() const;
+ typedef wxString&(wxArrayString::*WXAS_ITEM)(size_t) const;
+ #else
+ typedef wxString&(wxArrayString::*WXAS_ITEM)(size_t);
+ #endif
+#endif
SqPlus::SQClassDef<wxArrayString>("wxArrayString").
emptyCtor().
func(&wxArrayString::Add, "Add").
+#if wxCHECK_VERSION(2, 9, 5) && wxUSE_STD_CONTAINERS
+ func<WXAS_CLEAR>(&wxArrayString::Clear, "Clear").
+#else
func(&wxArrayString::Clear, "Clear").
+#endif
// func(&wxArrayString::Index, "Index").
staticFuncVarArgs(&wxArrayString_Index, "Index", "*").
+#if wxCHECK_VERSION(2, 9, 5) && wxUSE_STD_CONTAINERS
+ func<WXAS_GETCOUNT>(&wxArrayString::GetCount, "GetCount")
+#else
func(&wxArrayString::GetCount, "GetCount")
+#endif
+#if wxCHECK_VERSION(2, 9, 5)
+ .func<WXAS_ITEM>(&wxArrayString::Item, "Item")
+#else
#if !wxCHECK_VERSION(2, 9, 0) // Strange that this does not work with wx 2.9.x?!
.func(&wxArrayString::Item, "Item")
#endif
+#endif
;
//////////////
From docs/doxygen/overviews/container.h
- wxSortedArrayString and wxArrayString are separate classes now and the
former doesn't derive from the latter. If you need to convert a sorted array
to a normal one, you must copy all the elements. Alternatively, you may
avoid the use of wxSortedArrayString by using a normal array and calling its
Sort() method when needed.
See simpler patch below
Tim S.
Edit: Patch compiles; but, I have not done much testing because I have never used this plugin.
Index: src/plugins/abbreviations/abbreviationsconfigpanel.cpp
===================================================================
--- src/plugins/abbreviations/abbreviationsconfigpanel.cpp (revision 9239)
+++ src/plugins/abbreviations/abbreviationsconfigpanel.cpp (working copy)
@@ -208,12 +208,14 @@
{
m_LanguageCmb->Clear();
- wxSortedArrayString langs;
+ wxArrayString langs;
AutoCompLanguageMap::iterator it;
for (it = m_Plugin->m_AutoCompLanguageMap.begin(); it != m_Plugin->m_AutoCompLanguageMap.end(); ++it)
{
langs.Add(it->first);
}
+ langs.Sort();
+
m_LanguageCmb->Append(langs);
}
@@ -265,7 +267,7 @@
else
colSet = new EditorColourSet();
- wxSortedArrayString newLangs;
+ wxArrayString newLangs;
wxArrayString langs = colSet->GetAllHighlightLanguages();
for (unsigned int i = 0; i < langs.GetCount(); ++i)
{
@@ -273,6 +275,7 @@
!langs[i].IsSameAs(_T("Fortran77")))
newLangs.Add(langs[i]);
}
+ newLangs.Sort();
int sel = wxGetSingleChoiceIndex(_("Select language:"), _("Languages"), newLangs, this);
if (sel == -1)