71
General (but related to Code::Blocks) / Re: New wxWidgets releases
« Last post by Miguel Gimenez on March 04, 2026, 06:09:38 pm »I have tested the patch with wx3.0.2 on Linux and wx3.2.10 on MSW, works OK. Do you plan to commit it?
Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!
Let me try this first:
WX_DEFINE_ARRAY_INT(unsigned char, wxArrayBool)
diff --git a/src/plugins/contrib/wxSmith/wxwidgets/properties/wxsarraystringcheckproperty.h b/src/plugins/contrib/wxSmith/wxwidgets/properties/wxsarraystringcheckproperty.h
index ab0b632..d9846f1 100644
--- a/src/plugins/contrib/wxSmith/wxwidgets/properties/wxsarraystringcheckproperty.h
+++ b/src/plugins/contrib/wxSmith/wxwidgets/properties/wxsarraystringcheckproperty.h
@@ -25,7 +25,7 @@
#include "../../properties/wxsproperties.h"
-WX_DEFINE_ARRAY_INT(bool,wxArrayBool);
+WX_DEFINE_ARRAY_INT(unsigned char,wxArrayBool);
/** \brief Property for editing arrays of strings with checked option
*
Thanks for testing. The problem is explained hereQuoteWX_DEFINE_ARRAY_INT(bool) cannot be used because of the differences in std::vector<bool> specialization compared with the generic std::vector<> class. Please either use std::vector<bool> directly or use wxArrayInt instead.
So the solution may be using WX_DEFINE_ARRAY_INT(int, wxArrayBool) or using wxArrayInt directly, possibly using a typedef.
WX_DEFINE_ARRAY_INT(bool) cannot be used because of the differences in std::vector<bool> specialization compared with the generic std::vector<> class. Please either use std::vector<bool> directly or use wxArrayInt instead.
-------------- Build: wxSmithLib in wxSmith Windows (compiler: GNU GCC Compiler)---------------
[ 0.6%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxssettings.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxssettings.o
[ 1.3%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxsanimationctrl.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxsanimationctrl.o
[ 1.9%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxsbitmapbutton.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxsbitmapbutton.o
[ 2.5%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxsbitmapcombobox.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxsbitmapcombobox.o
[ 3.2%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxsboxsizer.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxsboxsizer.o
[ 3.8%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxsbutton.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxsbutton.o
[ 4.4%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxscalendarctrl.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxscalendarctrl.o
[ 5.1%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxscheckbox.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxscheckbox.o
[ 5.7%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxschecklistbox.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxschecklistbox.o
[ 6.3%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -DHAVE_W32API_H -D__WXMSW__ -D_WIN64 -DWXUSINGDLL -DcbDEBUG -DNOPCH -DBUILDING_PLUGIN -DwxUSE_UNICODE -std=gnu++11 -g -std=gnu++11 -IF:\code\wxWidgets-3.3.2\lib\gcc_dll\mswud -IF:\code\wxWidgets-3.3.2\include -I..\..\..\include -I..\..\..\include\tinyxml -I..\..\..\sdk\wxscintilla\include -I..\..\..\include\scripting\include -c F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxschoice.cpp -o ..\..\..\.objs33_64\plugins\contrib\wxSmithLib\wxwidgets\defitems\wxschoice.o
In file included from F:\code\wxWidgets-3.3.2\include/wx/arrstr.h:15,
from F:\code\wxWidgets-3.3.2\include/wx/ctrlsub.h:17,
from F:\code\wxWidgets-3.3.2\include/wx/listbox.h:21,
from F:\code\wxWidgets-3.3.2\include/wx/checklst.h:17,
from F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxschecklistbox.cpp:24:
F:\code\wxWidgets-3.3.2\include/wx/dynarray.h: In instantiation of 'T& wxBaseArray<T, Sorter>::operator[](size_t) [with T = bool; Sorter = wxSortedArray_SortFunction<bool>; size_t = long long unsigned int]':
F:\code\codeblocks-src\codeblocks_sfmirror\src\plugins\contrib\wxSmith\wxwidgets\defitems\wxschecklistbox.cpp:72:51: required from here
72 | const bool Checked = ArrayChecks[i];
| ^
F:\code\wxWidgets-3.3.2\include/wx/dynarray.h:128:36: error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of type 'bool'
128 | return base_vec::operator[](uiIndex);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from D:/code/msys2/mingw64/include/c++/14.2.0/vector:67,
from F:\code\wxWidgets-3.3.2\include/wx/strvararg.h:34,
from F:\code\wxWidgets-3.3.2\include/wx/string.h:34,
from F:\code\wxWidgets-3.3.2\include/wx/arrstr.h:14:
D:/code/msys2/mingw64/include/c++/14.2.0/bits/stl_bvector.h:99:5: note: after user-defined conversion: 'std::_Bit_reference::operator bool() const'
99 | operator bool() const _GLIBCXX_NOEXCEPT
| ^~~~~~~~
Process terminated with status 1 (0 minute(s), 38 second(s))
Process terminated with status 0 (0 minute(s), 40 second(s))
1 error(s), 2 warning(s) (0 minute(s), 40 second(s))
if ( ArrayChecks[i] )
{
Codef( _T("%ACheck("));
}
Codef( _T("%AAppend(%t)"), ArrayChoices[i].wx_str());
if ( ArrayChecks[i] )
{
Codef(_T(")"));
}
const bool Checked = ArrayChecks[i];
if ( Checked )
{
Codef( _T("%ACheck("));
}
Codef( _T("%AAppend(%t)"), ArrayChoices[i].wx_str());
if ( Checked )
{
Codef(_T(")"));
}
#ifndef WXSARRAYSTRINGCHECKPROPERTY_H
#define WXSARRAYSTRINGCHECKPROPERTY_H
#include "../../properties/wxsproperties.h"
WX_DEFINE_ARRAY(bool,wxArrayBool);Ollydbg, you can try changing (in wxsarraystringcheckproperty.cpp) line 28 to thisCodeWX_DEFINE_ARRAY(bool, wxArrayBool);
wxSmith plays with offsets and code magic to access the array, this may be a headache.
#include "wxsarraystringcheckproperty.h"
#include "wxsarraystringcheckeditordlg.h"
#include <globals.h>
// Helper macros for fetching variables
#define VALUE wxsVARIABLE(Object,Offset,wxArrayString)
#define CHECK wxsVARIABLE(Object,CheckOffset,wxArrayBool)
WX_DEFINE_ARRAY(bool, wxArrayBool);
Has anyone gotten Code::Blocks to build with wx3.3.2?
I gave up building wxWidgets git master about a month ago because of a build error already reported on this website by someone else.
Had to do with scripting and the red, blue, and green methods.