Factor out common code from most wxBookCtrl-related XRC handlers

Add new wxBookCtrlXmlHandlerBase and inherit the XRC handlers of all the
wxBookCtrlBase-derived classes except for wxTreebookXmlHandler, which
will require special handling, from it to avoid duplicating the same
code in all of them.

This commit is best viewed with --color-moved git option.
This commit is contained in:
Vadim Zeitlin 2022-02-24 01:07:21 +00:00
parent 1d3149292c
commit 1549aafdc9
24 changed files with 801 additions and 857 deletions

View file

@ -1878,7 +1878,8 @@ XRCDLL_OBJECTS = \
xrcdll_xh_unkwn.o \
xrcdll_xh_wizrd.o \
xrcdll_xmlres.o \
xrcdll_xmlrsall.o
xrcdll_xmlrsall.o \
xrcdll_xh_bookctrlbase.o
XRCDLL_ODEP = $(_____pch_wxprec_xrcdll_wx_wxprec_h_gch___depname)
XRCLIB_CXXFLAGS = $(__xrclib_PCH_INC) $(__INC_TIFF_BUILD_p) $(__INC_TIFF_p) \
$(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) $(__INC_REGEX_p) \
@ -1953,7 +1954,8 @@ XRCLIB_OBJECTS = \
xrclib_xh_unkwn.o \
xrclib_xh_wizrd.o \
xrclib_xmlres.o \
xrclib_xmlrsall.o
xrclib_xmlrsall.o \
xrclib_xh_bookctrlbase.o
XRCLIB_ODEP = $(_____pch_wxprec_xrclib_wx_wxprec_h_gch___depname)
AUIDLL_CXXFLAGS = $(__auidll_PCH_INC) $(__INC_TIFF_BUILD_p) $(__INC_TIFF_p) \
$(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) $(__INC_REGEX_p) \
@ -4147,6 +4149,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/xrc/xh_unkwn.h \
wx/xrc/xh_wizrd.h \
wx/xrc/xmlres.h \
wx/xrc/xh_bookctrlbase.h \
wx/aui/framemanager.h \
wx/aui/dockart.h \
wx/aui/floatpane.h \
@ -4465,6 +4468,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS = \
monodll_xh_wizrd.o \
monodll_xmlres.o \
monodll_xmlrsall.o \
monodll_xh_bookctrlbase.o \
monodll_framemanager.o \
monodll_dockart.o \
monodll_floatpane.o \
@ -6475,6 +6479,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS_1 = \
monolib_xh_wizrd.o \
monolib_xmlres.o \
monolib_xmlrsall.o \
monolib_xh_bookctrlbase.o \
monolib_framemanager.o \
monolib_dockart.o \
monolib_floatpane.o \
@ -17643,6 +17648,9 @@ monodll_xmlres.o: $(srcdir)/src/xrc/xmlres.cpp $(MONODLL_ODEP)
monodll_xmlrsall.o: $(srcdir)/src/xrc/xmlrsall.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/xrc/xmlrsall.cpp
monodll_xh_bookctrlbase.o: $(srcdir)/src/xrc/xh_bookctrlbase.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/xrc/xh_bookctrlbase.cpp
monodll_framemanager.o: $(srcdir)/src/aui/framemanager.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/aui/framemanager.cpp
@ -22962,6 +22970,9 @@ monolib_xmlres.o: $(srcdir)/src/xrc/xmlres.cpp $(MONOLIB_ODEP)
monolib_xmlrsall.o: $(srcdir)/src/xrc/xmlrsall.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/xrc/xmlrsall.cpp
monolib_xh_bookctrlbase.o: $(srcdir)/src/xrc/xh_bookctrlbase.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_bookctrlbase.cpp
monolib_framemanager.o: $(srcdir)/src/aui/framemanager.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/aui/framemanager.cpp
@ -36693,6 +36704,9 @@ xrcdll_xmlres.o: $(srcdir)/src/xrc/xmlres.cpp $(XRCDLL_ODEP)
xrcdll_xmlrsall.o: $(srcdir)/src/xrc/xmlrsall.cpp $(XRCDLL_ODEP)
$(CXXC) -c -o $@ $(XRCDLL_CXXFLAGS) $(srcdir)/src/xrc/xmlrsall.cpp
xrcdll_xh_bookctrlbase.o: $(srcdir)/src/xrc/xh_bookctrlbase.cpp $(XRCDLL_ODEP)
$(CXXC) -c -o $@ $(XRCDLL_CXXFLAGS) $(srcdir)/src/xrc/xh_bookctrlbase.cpp
xrclib_xh_activityindicator.o: $(srcdir)/src/xrc/xh_activityindicator.cpp $(XRCLIB_ODEP)
$(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_activityindicator.cpp
@ -36897,6 +36911,9 @@ xrclib_xmlres.o: $(srcdir)/src/xrc/xmlres.cpp $(XRCLIB_ODEP)
xrclib_xmlrsall.o: $(srcdir)/src/xrc/xmlrsall.cpp $(XRCLIB_ODEP)
$(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xmlrsall.cpp
xrclib_xh_bookctrlbase.o: $(srcdir)/src/xrc/xh_bookctrlbase.cpp $(XRCLIB_ODEP)
$(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_bookctrlbase.cpp
auidll_version_rc.o: $(srcdir)/src/msw/version.rc $(AUIDLL_ODEP)
$(WINDRES) -i$< -o$@ $(__INC_TIFF_BUILD_p_54) $(__INC_TIFF_p_54) $(__INC_JPEG_p_54) $(__INC_PNG_p_53) $(__INC_ZLIB_p_67) $(__INC_REGEX_p_65) $(__INC_EXPAT_p_65) --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_66) $(__DEBUG_DEFINE_p_66) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) --define WXBUILDING --define WXDLLNAME=$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG) $(__RCDEFDIR_p) --include-dir $(top_srcdir)/include --define WXUSINGDLL --define WXMAKINGDLL_AUI

View file

@ -3111,6 +3111,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/xrc/xh_wizrd.cpp
src/xrc/xmlres.cpp
src/xrc/xmlrsall.cpp
src/xrc/xh_bookctrlbase.cpp
</set>
<set var="XRC_HDR" hints="files">
wx/xrc/xh_activityindicator.h
@ -3181,6 +3182,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/xrc/xh_unkwn.h
wx/xrc/xh_wizrd.h
wx/xrc/xmlres.h
wx/xrc/xh_bookctrlbase.h
</set>

View file

@ -2951,6 +2951,7 @@ set(XRC_SRC
src/xrc/xmlres.cpp
src/xrc/xmlrsall.cpp
src/xrc/xh_dataview.cpp
src/xrc/xh_bookctrlbase.cpp
)
set(XRC_HDR
@ -3022,6 +3023,7 @@ set(XRC_HDR
wx/xrc/xh_wizrd.h
wx/xrc/xmlres.h
wx/xrc/xh_dataview.h
wx/xrc/xh_bookctrlbase.h
)
set(XML_SRC

View file

@ -2832,6 +2832,7 @@ XRC_SRC =
src/xrc/xh_bmp.cpp
src/xrc/xh_bmpcbox.cpp
src/xrc/xh_bmpbt.cpp
src/xrc/xh_bookctrlbase.cpp
src/xrc/xh_bttn.cpp
src/xrc/xh_cald.cpp
src/xrc/xh_chckb.cpp
@ -2902,6 +2903,7 @@ XRC_HDR =
wx/xrc/xh_bmpbt.h
wx/xrc/xh_bmp.h
wx/xrc/xh_bmpcbox.h
wx/xrc/xh_bookctrlbase.h
wx/xrc/xh_bttn.h
wx/xrc/xh_cald.h
wx/xrc/xh_chckb.h

View file

@ -1329,7 +1329,8 @@ XRCDLL_OBJECTS = \
$(OBJS)\xrcdll_xh_unkwn.o \
$(OBJS)\xrcdll_xh_wizrd.o \
$(OBJS)\xrcdll_xmlres.o \
$(OBJS)\xrcdll_xmlrsall.o
$(OBJS)\xrcdll_xmlrsall.o \
$(OBJS)\xrcdll_xh_bookctrlbase.o
XRCLIB_CXXFLAGS = -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \
-I..\..\src\zlib -I..\..\3rdparty\pcre\src\wx -I..\..\src\expat\expat\lib \
$(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ \
@ -1407,7 +1408,8 @@ XRCLIB_OBJECTS = \
$(OBJS)\xrclib_xh_unkwn.o \
$(OBJS)\xrclib_xh_wizrd.o \
$(OBJS)\xrclib_xmlres.o \
$(OBJS)\xrclib_xmlrsall.o
$(OBJS)\xrclib_xmlrsall.o \
$(OBJS)\xrclib_xh_bookctrlbase.o
AUIDLL_CXXFLAGS = -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \
-I..\..\src\zlib -I..\..\3rdparty\pcre\src\wx -I..\..\src\expat\expat\lib \
$(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ \
@ -1817,6 +1819,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_xh_wizrd.o \
$(OBJS)\monodll_xmlres.o \
$(OBJS)\monodll_xmlrsall.o \
$(OBJS)\monodll_xh_bookctrlbase.o \
$(OBJS)\monodll_framemanager.o \
$(OBJS)\monodll_dockart.o \
$(OBJS)\monodll_floatpane.o \
@ -2666,6 +2669,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_xh_wizrd.o \
$(OBJS)\monolib_xmlres.o \
$(OBJS)\monolib_xmlrsall.o \
$(OBJS)\monolib_xh_bookctrlbase.o \
$(OBJS)\monolib_framemanager.o \
$(OBJS)\monolib_dockart.o \
$(OBJS)\monolib_floatpane.o \
@ -7962,6 +7966,9 @@ $(OBJS)\monodll_xmlres.o: ../../src/xrc/xmlres.cpp
$(OBJS)\monodll_xmlrsall.o: ../../src/xrc/xmlrsall.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_xh_bookctrlbase.o: ../../src/xrc/xh_bookctrlbase.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_framemanager.o: ../../src/aui/framemanager.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@ -10554,6 +10561,9 @@ $(OBJS)\monolib_xmlres.o: ../../src/xrc/xmlres.cpp
$(OBJS)\monolib_xmlrsall.o: ../../src/xrc/xmlrsall.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_xh_bookctrlbase.o: ../../src/xrc/xh_bookctrlbase.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_framemanager.o: ../../src/aui/framemanager.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@ -16911,6 +16921,9 @@ $(OBJS)\xrcdll_xmlres.o: ../../src/xrc/xmlres.cpp
$(OBJS)\xrcdll_xmlrsall.o: ../../src/xrc/xmlrsall.cpp
$(CXX) -c -o $@ $(XRCDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\xrcdll_xh_bookctrlbase.o: ../../src/xrc/xh_bookctrlbase.cpp
$(CXX) -c -o $@ $(XRCDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\xrclib_dummy.o: ../../src/common/dummy.cpp
$(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
@ -17118,6 +17131,9 @@ $(OBJS)\xrclib_xmlres.o: ../../src/xrc/xmlres.cpp
$(OBJS)\xrclib_xmlrsall.o: ../../src/xrc/xmlrsall.cpp
$(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\xrclib_xh_bookctrlbase.o: ../../src/xrc/xh_bookctrlbase.cpp
$(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\auidll_dummy.o: ../../src/common/dummy.cpp
$(CXX) -c -o $@ $(AUIDLL_CXXFLAGS) $(CPPDEPS) $<

View file

@ -1474,7 +1474,8 @@ XRCDLL_OBJECTS = \
$(OBJS)\xrcdll_xh_unkwn.obj \
$(OBJS)\xrcdll_xh_wizrd.obj \
$(OBJS)\xrcdll_xmlres.obj \
$(OBJS)\xrcdll_xmlrsall.obj
$(OBJS)\xrcdll_xmlrsall.obj \
$(OBJS)\xrcdll_xh_bookctrlbase.obj
XRCDLL_RESOURCES = \
$(OBJS)\xrcdll_version.res
XRCLIB_CXXFLAGS = /M$(__RUNTIME_LIBS_441)$(__DEBUGRUNTIME) /DWIN32 \
@ -1559,7 +1560,8 @@ XRCLIB_OBJECTS = \
$(OBJS)\xrclib_xh_unkwn.obj \
$(OBJS)\xrclib_xh_wizrd.obj \
$(OBJS)\xrclib_xmlres.obj \
$(OBJS)\xrclib_xmlrsall.obj
$(OBJS)\xrclib_xmlrsall.obj \
$(OBJS)\xrclib_xh_bookctrlbase.obj
AUIDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_457)$(__DEBUGRUNTIME) /DWIN32 \
/I..\..\src\tiff\libtiff /I..\..\src\jpeg /I..\..\src\png /I..\..\src\zlib \
/I..\..\3rdparty\pcre\src\wx /I..\..\src\expat\expat\lib $(__DEBUGINFO) \
@ -2148,6 +2150,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_xh_wizrd.obj \
$(OBJS)\monodll_xmlres.obj \
$(OBJS)\monodll_xmlrsall.obj \
$(OBJS)\monodll_xh_bookctrlbase.obj \
$(OBJS)\monodll_framemanager.obj \
$(OBJS)\monodll_dockart.obj \
$(OBJS)\monodll_floatpane.obj \
@ -2997,6 +3000,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_xh_wizrd.obj \
$(OBJS)\monolib_xmlres.obj \
$(OBJS)\monolib_xmlrsall.obj \
$(OBJS)\monolib_xh_bookctrlbase.obj \
$(OBJS)\monolib_framemanager.obj \
$(OBJS)\monolib_dockart.obj \
$(OBJS)\monolib_floatpane.obj \
@ -8420,6 +8424,9 @@ $(OBJS)\monodll_xmlres.obj: ..\..\src\xrc\xmlres.cpp
$(OBJS)\monodll_xmlrsall.obj: ..\..\src\xrc\xmlrsall.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xmlrsall.cpp
$(OBJS)\monodll_xh_bookctrlbase.obj: ..\..\src\xrc\xh_bookctrlbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_bookctrlbase.cpp
$(OBJS)\monodll_framemanager.obj: ..\..\src\aui\framemanager.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\aui\framemanager.cpp
@ -11012,6 +11019,9 @@ $(OBJS)\monolib_xmlres.obj: ..\..\src\xrc\xmlres.cpp
$(OBJS)\monolib_xmlrsall.obj: ..\..\src\xrc\xmlrsall.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xmlrsall.cpp
$(OBJS)\monolib_xh_bookctrlbase.obj: ..\..\src\xrc\xh_bookctrlbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_bookctrlbase.cpp
$(OBJS)\monolib_framemanager.obj: ..\..\src\aui\framemanager.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\aui\framemanager.cpp
@ -17369,6 +17379,9 @@ $(OBJS)\xrcdll_xmlres.obj: ..\..\src\xrc\xmlres.cpp
$(OBJS)\xrcdll_xmlrsall.obj: ..\..\src\xrc\xmlrsall.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xmlrsall.cpp
$(OBJS)\xrcdll_xh_bookctrlbase.obj: ..\..\src\xrc\xh_bookctrlbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_bookctrlbase.cpp
$(OBJS)\xrclib_dummy.obj: ..\..\src\common\dummy.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) /Ycwx/wxprec.h ..\..\src\common\dummy.cpp
@ -17576,6 +17589,9 @@ $(OBJS)\xrclib_xmlres.obj: ..\..\src\xrc\xmlres.cpp
$(OBJS)\xrclib_xmlrsall.obj: ..\..\src\xrc\xmlrsall.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xmlrsall.cpp
$(OBJS)\xrclib_xh_bookctrlbase.obj: ..\..\src\xrc\xh_bookctrlbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_bookctrlbase.cpp
$(OBJS)\auidll_dummy.obj: ..\..\src\common\dummy.cpp
$(CXX) /c /nologo /TP /Fo$@ $(AUIDLL_CXXFLAGS) /Ycwx/wxprec.h ..\..\src\common\dummy.cpp

View file

@ -4572,6 +4572,10 @@
RelativePath="..\..\include\wx\xrc\xh_bmpcbox.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bookctrlbase.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bttn.h"
>

View file

@ -1081,6 +1081,10 @@
RelativePath="..\..\include\wx\xrc\xh_bmpcbox.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bookctrlbase.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bttn.h"
>
@ -1355,6 +1359,10 @@
RelativePath="..\..\src\xrc\xh_bmpcbox.cpp"
>
</File>
<File
RelativePath="..\..\src\xrc\xh_bookctrlbase.cpp"
>
</File>
<File
RelativePath="..\..\src\xrc\xh_bttn.cpp"
>

View file

@ -4568,6 +4568,10 @@
RelativePath="..\..\include\wx\xrc\xh_bmpcbox.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bookctrlbase.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bttn.h"
>

View file

@ -1077,6 +1077,10 @@
RelativePath="..\..\include\wx\xrc\xh_bmpcbox.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bookctrlbase.h"
>
</File>
<File
RelativePath="..\..\include\wx\xrc\xh_bttn.h"
>
@ -1351,6 +1355,10 @@
RelativePath="..\..\src\xrc\xh_bmpcbox.cpp"
>
</File>
<File
RelativePath="..\..\src\xrc\xh_bookctrlbase.cpp"
>
</File>
<File
RelativePath="..\..\src\xrc\xh_bttn.cpp"
>

View file

@ -461,6 +461,7 @@
<ClCompile Include="..\..\src\xrc\xh_bmp.cpp" />
<ClCompile Include="..\..\src\xrc\xh_bmpbt.cpp" />
<ClCompile Include="..\..\src\xrc\xh_bmpcbox.cpp" />
<ClCompile Include="..\..\src\xrc\xh_bookctrlbase.cpp" />
<ClCompile Include="..\..\src\xrc\xh_bttn.cpp" />
<ClCompile Include="..\..\src\xrc\xh_cald.cpp" />
<ClCompile Include="..\..\src\xrc\xh_chckb.cpp" />
@ -560,6 +561,7 @@
<ClInclude Include="..\..\include\wx\xrc\xh_bmp.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_bmpbt.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_bmpcbox.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_bookctrlbase.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_bttn.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_cald.h" />
<ClInclude Include="..\..\include\wx\xrc\xh_chckb.h" />

View file

@ -1,452 +1,458 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Common Sources">
<UniqueIdentifier>{A6A5C30D-BDB6-5050-906D-10A96065136C}</UniqueIdentifier>
</Filter>
<Filter Include="MSW Sources">
<UniqueIdentifier>{D030D8C2-53EE-5B96-8F89-D78157B06140}</UniqueIdentifier>
</Filter>
<Filter Include="Setup Headers">
<UniqueIdentifier>{63537534-1833-5C1F-8DBD-359A84F294C8}</UniqueIdentifier>
</Filter>
<Filter Include="MSW Headers">
<UniqueIdentifier>{5AFFF20E-29F9-512B-B80A-7DC45976CDAC}</UniqueIdentifier>
</Filter>
<Filter Include="Common Headers">
<UniqueIdentifier>{8C07E926-65B0-5F00-B0D6-7F40DA69BB25}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\common\dummy.cpp">
<Filter>Common Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_activityindicator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_animatctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bannerwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmpbt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmpcbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bttn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_cald.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_chckb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_chckl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_choic.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_choicbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_clrpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_cmdlinkbn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_collpane.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_combo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_comboctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dataview.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_datectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dirpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_editlbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_filectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_filepicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_fontpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_frame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_gauge.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_gdctl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_grid.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_html.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_htmllbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_hyperlink.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_infobar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_mdi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_menu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_notbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_odcombo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_panel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_propdlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_radbt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_radbx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_scrol.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_scwin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_simplebook.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_sizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_slidr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_spin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_split.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_srchctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_statbar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stbmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stlin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_sttxt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_text.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_tglbtn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_timectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_toolb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_toolbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_tree.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_treebk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_unkwn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_wizrd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xmlres.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xmlrsall.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\msw\version.rc">
<Filter>MSW Sources</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\wx\xrc\xh_activityindicator.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_all.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_animatctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bannerwindow.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmp.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmpbt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmpcbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bttn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_cald.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_chckb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_chckl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_choic.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_choicbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_clrpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_cmdlinkbn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_collpane.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_combo.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_comboctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dataview.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_datectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dirpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dlg.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_editlbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_filectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_filepicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_fontpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_frame.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_gauge.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_gdctl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_grid.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_html.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_htmllbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_hyperlink.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_infobar.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listc.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_mdi.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_menu.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_notbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_odcombo.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_panel.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_propdlg.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_radbt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_radbx.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_scrol.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_scwin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_simplebook.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_sizer.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_slidr.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_spin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_split.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_srchctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_statbar.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stbmp.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stlin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_sttxt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_text.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_tglbtn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_timectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_toolb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_toolbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_tree.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_treebk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_unkwn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_wizrd.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xmlres.h">
<Filter>Common Headers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\include\wx\msw\setup.h">
<Filter>Setup Headers</Filter>
</CustomBuild>
<CustomBuild Include="..\..\include\wx\msw\genrcdefs.h">
<Filter>MSW Headers</Filter>
</CustomBuild>
</ItemGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Common Sources">
<UniqueIdentifier>{A6A5C30D-BDB6-5050-906D-10A96065136C}</UniqueIdentifier>
</Filter>
<Filter Include="MSW Sources">
<UniqueIdentifier>{D030D8C2-53EE-5B96-8F89-D78157B06140}</UniqueIdentifier>
</Filter>
<Filter Include="Setup Headers">
<UniqueIdentifier>{63537534-1833-5C1F-8DBD-359A84F294C8}</UniqueIdentifier>
</Filter>
<Filter Include="MSW Headers">
<UniqueIdentifier>{5AFFF20E-29F9-512B-B80A-7DC45976CDAC}</UniqueIdentifier>
</Filter>
<Filter Include="Common Headers">
<UniqueIdentifier>{8C07E926-65B0-5F00-B0D6-7F40DA69BB25}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\common\dummy.cpp">
<Filter>Common Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_activityindicator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_animatctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bannerwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmpbt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bmpcbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bttn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_cald.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_chckb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_chckl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_choic.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_choicbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_clrpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_cmdlinkbn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_collpane.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_combo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_comboctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dataview.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_datectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dirpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_dlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_editlbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_filectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_filepicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_fontpicker.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_frame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_gauge.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_gdctl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_grid.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_html.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_htmllbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_hyperlink.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_infobar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_listc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_mdi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_menu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_notbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_odcombo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_panel.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_propdlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_radbt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_radbx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_scrol.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_scwin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_simplebook.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_sizer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_slidr.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_spin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_split.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_srchctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_statbar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stbmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_stlin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_sttxt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_text.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_tglbtn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_timectrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_toolb.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_toolbk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_tree.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_treebk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_unkwn.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_wizrd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xmlres.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xmlrsall.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\xrc\xh_bookctrlbase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\msw\version.rc">
<Filter>MSW Sources</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\wx\xrc\xh_activityindicator.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_all.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_animatctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bannerwindow.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmp.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmpbt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bmpcbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bttn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_cald.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_chckb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_chckl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_choic.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_choicbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_clrpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_cmdlinkbn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_collpane.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_combo.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_comboctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dataview.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_datectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dirpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_dlg.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_editlbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_filectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_filepicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_fontpicker.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_frame.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_gauge.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_gdctl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_grid.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_html.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_htmllbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_hyperlink.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_infobar.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_listc.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_mdi.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_menu.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_notbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_odcombo.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_panel.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_propdlg.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_radbt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_radbx.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_scrol.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_scwin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_simplebook.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_sizer.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_slidr.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_spin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_split.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_srchctrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_statbar.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stbmp.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stbox.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_stlin.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_sttxt.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_text.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_tglbtn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_timectrl.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_toolb.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_toolbk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_tree.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_treebk.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_unkwn.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_wizrd.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xmlres.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\xrc\xh_bookctrlbase.h">
<Filter>Common Headers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\include\wx\msw\setup.h">
<Filter>Setup Headers</Filter>
</CustomBuild>
<CustomBuild Include="..\..\include\wx\msw\genrcdefs.h">
<Filter>MSW Headers</Filter>
</CustomBuild>
</ItemGroup>
</Project>

View file

@ -0,0 +1,62 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/xrc/xh_bookctrlbase.h
// Purpose: Base class for wxBookCtrl-derived classes XRC handlers
// Author: Vadim Zeitlin
// Created: 2022-02-23
// Copyright: (c) 2022 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_XRC_XH_BOOKCTRLBASE_H_
#define _WX_XRC_XH_BOOKCTRLBASE_H_
#include "wx/xrc/xmlres.h"
#if wxUSE_XRC && wxUSE_BOOKCTRL
class WXDLLIMPEXP_FWD_CORE wxBookCtrlBase;
// ----------------------------------------------------------------------------
// wxBookCtrlXmlHandlerBase: base class of handlers for wxBookCtrl subclasses
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_XRC wxBookCtrlXmlHandlerBase : public wxXmlResourceHandler
{
protected:
wxBookCtrlXmlHandlerBase();
virtual ~wxBookCtrlXmlHandlerBase();
// Create all pages under the current node and add them to the book control.
//
// This should be called instead of calling CreateChildren() directly by
// the derived class to deal with the contents of the book control node.
void DoCreatePages(wxBookCtrlBase* book);
// Create a new page using the contents of the current node.
//
// This should be called to handle the book control page node.
wxObject* DoCreatePage(wxBookCtrlBase* book);
// Return true if we're parsing the book control node itself.
bool IsInside() const { return m_isInside; }
private:
// This struct contains the actual page, created by DoCreatePage(), and all
// its attributes read from wxXmlNode.
struct PageWithAttrs;
// And this vector contains all the pages created so far.
wxVector<PageWithAttrs> m_bookPages;
// All bitmaps defined for the pages, may be empty.
wxVector<wxBitmapBundle> m_bookImages;
// True if we're used for parsing the contents of the book control node.
bool m_isInside;
wxDECLARE_NO_COPY_CLASS(wxBookCtrlXmlHandlerBase);
};
#endif // wxUSE_XRC && wxUSE_BOOKCTRL
#endif // _WX_XRC_XH_BOOKCTRLBASE_H_

View file

@ -9,13 +9,13 @@
#ifndef _WX_XH_CHOICEBK_H_
#define _WX_XH_CHOICEBK_H_
#include "wx/xrc/xmlres.h"
#include "wx/xrc/xh_bookctrlbase.h"
#if wxUSE_XRC && wxUSE_CHOICEBOOK
class WXDLLIMPEXP_FWD_CORE wxChoicebook;
class WXDLLIMPEXP_XRC wxChoicebookXmlHandler : public wxXmlResourceHandler
class WXDLLIMPEXP_XRC wxChoicebookXmlHandler : public wxBookCtrlXmlHandlerBase
{
wxDECLARE_DYNAMIC_CLASS(wxChoicebookXmlHandler);
@ -25,10 +25,7 @@ public:
virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE;
private:
bool m_isInside;
wxChoicebook *m_choicebook;
wxVector<wxBitmapBundle> m_bookImages;
wxVector<size_t> m_bookImagesIdx;
};
#endif // wxUSE_XRC && wxUSE_CHOICEBOOK

View file

@ -9,13 +9,13 @@
#ifndef _WX_XH_LISTBK_H_
#define _WX_XH_LISTBK_H_
#include "wx/xrc/xmlres.h"
#include "wx/xrc/xh_bookctrlbase.h"
#if wxUSE_XRC && wxUSE_LISTBOOK
class WXDLLIMPEXP_FWD_CORE wxListbook;
class WXDLLIMPEXP_XRC wxListbookXmlHandler : public wxXmlResourceHandler
class WXDLLIMPEXP_XRC wxListbookXmlHandler : public wxBookCtrlXmlHandlerBase
{
wxDECLARE_DYNAMIC_CLASS(wxListbookXmlHandler);
@ -25,10 +25,7 @@ public:
virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE;
private:
bool m_isInside;
wxListbook *m_listbook;
wxVector<wxBitmapBundle> m_bookImages;
wxVector<size_t> m_bookImagesIdx;
};
#endif // wxUSE_XRC && wxUSE_LISTBOOK

View file

@ -9,13 +9,13 @@
#ifndef _WX_XH_NOTBK_H_
#define _WX_XH_NOTBK_H_
#include "wx/xrc/xmlres.h"
#include "wx/xrc/xh_bookctrlbase.h"
#if wxUSE_XRC && wxUSE_NOTEBOOK
class WXDLLIMPEXP_FWD_CORE wxNotebook;
class WXDLLIMPEXP_XRC wxNotebookXmlHandler : public wxXmlResourceHandler
class WXDLLIMPEXP_XRC wxNotebookXmlHandler : public wxBookCtrlXmlHandlerBase
{
wxDECLARE_DYNAMIC_CLASS(wxNotebookXmlHandler);
@ -25,10 +25,7 @@ public:
virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE;
private:
bool m_isInside;
wxNotebook *m_notebook;
wxVector<wxBitmapBundle> m_bookImages;
wxVector<size_t> m_bookImagesIdx;
};
#endif // wxUSE_XRC && wxUSE_NOTEBOOK

View file

@ -10,13 +10,13 @@
#ifndef _WX_XH_PROPDLG_H_
#define _WX_XH_PROPDLG_H_
#include "wx/xrc/xmlres.h"
#include "wx/xrc/xh_bookctrlbase.h"
#if wxUSE_XRC && wxUSE_BOOKCTRL
class WXDLLIMPEXP_FWD_CORE wxPropertySheetDialog;
class WXDLLIMPEXP_XRC wxPropertySheetDialogXmlHandler : public wxXmlResourceHandler
class WXDLLIMPEXP_XRC wxPropertySheetDialogXmlHandler : public wxBookCtrlXmlHandlerBase
{
wxDECLARE_DYNAMIC_CLASS(wxPropertySheetDialogXmlHandler);
@ -26,10 +26,7 @@ public:
virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE;
private:
bool m_isInside;
wxPropertySheetDialog *m_dialog;
wxVector<wxBitmapBundle> m_bookImages;
wxVector<size_t> m_bookImagesIdx;
};
#endif // wxUSE_XRC && wxUSE_BOOKCTRL

View file

@ -10,13 +10,13 @@
#ifndef _WX_XH_TOOLBK_H_
#define _WX_XH_TOOLBK_H_
#include "wx/xrc/xmlres.h"
#include "wx/xrc/xh_bookctrlbase.h"
#if wxUSE_XRC && wxUSE_TOOLBOOK
class WXDLLIMPEXP_FWD_CORE wxToolbook;
class WXDLLIMPEXP_XRC wxToolbookXmlHandler : public wxXmlResourceHandler
class WXDLLIMPEXP_XRC wxToolbookXmlHandler : public wxBookCtrlXmlHandlerBase
{
public:
wxToolbookXmlHandler();
@ -25,19 +25,7 @@ public:
virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE;
private:
struct newPage
{
wxWindow* wnd;
wxString label;
bool selected;
int imgId; // index in image list
int bmpId; // index in wxVector<wxBitmapBundle>
};
bool m_isInside;
wxToolbook *m_toolbook;
wxVector<newPage> m_bookPages;
wxVector<wxBitmapBundle> m_bookImages;
wxDECLARE_DYNAMIC_CLASS(wxToolbookXmlHandler);
};

160
src/xrc/xh_bookctrlbase.cpp Normal file
View file

@ -0,0 +1,160 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/xrc/xh_bookctrlbase.cpp
// Purpose: wxBookCtrlXmlHandlerBase implementation
// Author: Vadim Zeitlin
// Created: 2022-02-24
// Copyright: (c) 2022 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_XRC && wxUSE_BOOKCTRL
#include "wx/xrc/xh_bookctrlbase.h"
#include "wx/bookctrl.h"
// ----------------------------------------------------------------------------
// private types
// ----------------------------------------------------------------------------
struct wxBookCtrlXmlHandlerBase::PageWithAttrs
{
PageWithAttrs()
{
wnd = NULL;
selected = false;
imgId =
bmpId = wxWithImages::NO_IMAGE;
}
wxWindow* wnd;
wxString label;
bool selected;
int imgId; // index in the image list
int bmpId; // index in m_bookImages vector
};
// ============================================================================
// wxBookCtrlXmlHandlerBase implementation
// ============================================================================
wxBookCtrlXmlHandlerBase::wxBookCtrlXmlHandlerBase()
: m_isInside(false)
{
}
wxBookCtrlXmlHandlerBase::~wxBookCtrlXmlHandlerBase()
{
// Dtor is trivial but has to be defined here because it implicitly uses
// PageWithAttrs which is not fully declared in the header.
}
void wxBookCtrlXmlHandlerBase::DoCreatePages(wxBookCtrlBase* book)
{
bool old_ins = m_isInside;
m_isInside = true;
wxVector<PageWithAttrs> pagesSave;
m_bookPages.swap(pagesSave);
wxVector<wxBitmapBundle> imagesSave;
m_bookImages.swap(imagesSave);
wxImageList *imagelist = GetImageList();
if ( imagelist )
book->AssignImageList(imagelist);
CreateChildren(book, true /* only use this handler */);
if ( !m_bookImages.empty() )
book->SetImages(m_bookImages);
for ( size_t i = 0; i < m_bookPages.size(); ++i )
{
const PageWithAttrs& currentPage = m_bookPages.at(i);
int imgId = currentPage.bmpId;
if ( imgId == -1 )
{
imgId = currentPage.imgId;
}
book->AddPage(currentPage.wnd,
currentPage.label,
currentPage.selected,
imgId);
}
m_bookImages.swap(imagesSave);
m_bookPages.swap(pagesSave);
m_isInside = old_ins;
}
wxObject*
wxBookCtrlXmlHandlerBase::DoCreatePage(wxBookCtrlBase* book)
{
wxXmlNode *n = GetParamNode(wxT("object"));
if ( !n )
n = GetParamNode(wxT("object_ref"));
if (n)
{
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, book, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
PageWithAttrs currentPage;
if ( HasParam(wxT("bitmap")) )
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
currentPage.bmpId = m_bookImages.size() - 1;
}
else if ( HasParam(wxT("image")) )
{
if ( book->GetImageList() )
{
currentPage.imgId = (int)GetLong(wxT("image"));
}
else // image without image list?
{
ReportError(n, "image can only be used in conjunction "
"with imagelist");
}
}
currentPage.wnd = wnd;
currentPage.label = GetText(wxT("label"));
currentPage.selected = GetBool(wxT("selected"));
m_bookPages.push_back(currentPage);
}
else
{
ReportError(n, wxString::Format("%s child must be a window", m_class));
}
return wnd;
}
else
{
ReportError(wxString::Format("%s must have a window child", m_class));
return NULL;
}
}
#endif // wxUSE_XRC && wxUSE_BOOKCTRL

View file

@ -26,9 +26,7 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxChoicebookXmlHandler, wxXmlResourceHandler);
wxChoicebookXmlHandler::wxChoicebookXmlHandler()
:wxXmlResourceHandler(),
m_isInside(false),
m_choicebook(NULL)
: m_choicebook(NULL)
{
XRC_ADD_STYLE(wxBK_DEFAULT);
XRC_ADD_STYLE(wxBK_LEFT);
@ -49,53 +47,7 @@ wxObject *wxChoicebookXmlHandler::DoCreateResource()
{
if (m_class == wxT("choicebookpage"))
{
wxXmlNode *n = GetParamNode(wxT("object"));
if ( !n )
n = GetParamNode(wxT("object_ref"));
if (n)
{
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, m_choicebook, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
m_choicebook->AddPage(wnd, GetText(wxT("label")),
GetBool(wxT("selected")));
if ( HasParam(wxT("bitmap")) )
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
m_bookImagesIdx.push_back( m_choicebook->GetPageCount()-1 );
}
else if ( HasParam(wxT("image")) )
{
if ( m_choicebook->GetImageList() )
{
m_choicebook->SetPageImage(m_choicebook->GetPageCount()-1,
GetLong(wxT("image")) );
}
else // image without image list?
{
ReportError(n, "image can only be used in conjunction "
"with imagelist");
}
}
}
else
{
ReportError(n, "choicebookpage child must be a window");
}
return wnd;
}
else
{
ReportError("choicebookpage must have a window child");
return NULL;
}
return DoCreatePage(m_choicebook);
}
else
@ -108,33 +60,12 @@ wxObject *wxChoicebookXmlHandler::DoCreateResource()
GetStyle(wxT("style")),
GetName());
wxImageList *imagelist = GetImageList();
if ( imagelist )
nb->AssignImageList(imagelist);
wxChoicebook *old_par = m_choicebook;
m_choicebook = nb;
bool old_ins = m_isInside;
m_isInside = true;
wxVector<wxBitmapBundle> old_images = m_bookImages;
m_bookImages.clear();
wxVector<size_t> old_imageIdx = m_bookImagesIdx;
m_bookImagesIdx.clear();
CreateChildren(m_choicebook, true/*only this handler*/);
if ( !m_bookImages.empty() )
{
m_choicebook->SetImages(m_bookImages);
for ( size_t i = 0; i < m_bookImagesIdx.size(); ++i )
{
m_choicebook->SetPageImage( m_bookImagesIdx[i], i );
}
}
DoCreatePages(m_choicebook);
m_isInside = old_ins;
m_choicebook = old_par;
m_bookImages = old_images;
m_bookImagesIdx = old_imageIdx;
return nb;
}
@ -142,8 +73,8 @@ wxObject *wxChoicebookXmlHandler::DoCreateResource()
bool wxChoicebookXmlHandler::CanHandle(wxXmlNode *node)
{
return ((!m_isInside && IsOfClass(node, wxT("wxChoicebook"))) ||
(m_isInside && IsOfClass(node, wxT("choicebookpage"))));
return ((!IsInside() && IsOfClass(node, wxT("wxChoicebook"))) ||
(IsInside() && IsOfClass(node, wxT("choicebookpage"))));
}
#endif // wxUSE_XRC && wxUSE_CHOICEBOOK

View file

@ -26,9 +26,7 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxListbookXmlHandler, wxXmlResourceHandler);
wxListbookXmlHandler::wxListbookXmlHandler()
:wxXmlResourceHandler(),
m_isInside(false),
m_listbook(NULL)
: m_listbook(NULL)
{
XRC_ADD_STYLE(wxBK_DEFAULT);
XRC_ADD_STYLE(wxBK_LEFT);
@ -49,53 +47,7 @@ wxObject *wxListbookXmlHandler::DoCreateResource()
{
if (m_class == wxT("listbookpage"))
{
wxXmlNode *n = GetParamNode(wxT("object"));
if ( !n )
n = GetParamNode(wxT("object_ref"));
if (n)
{
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, m_listbook, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
m_listbook->AddPage(wnd, GetText(wxT("label")),
GetBool(wxT("selected")));
if ( HasParam(wxT("bitmap")) )
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
m_bookImagesIdx.push_back( m_listbook->GetPageCount()-1 );
}
else if ( HasParam(wxT("image")) )
{
if ( m_listbook->GetImageList() )
{
m_listbook->SetPageImage(m_listbook->GetPageCount()-1,
GetLong(wxT("image")) );
}
else // image without image list?
{
ReportError(n, "image can only be used in conjunction "
"with imagelist");
}
}
}
else
{
ReportError(n, "listbookpage child must be a window");
}
return wnd;
}
else
{
ReportError("listbookpage must have a window child");
return NULL;
}
return DoCreatePage(m_listbook);
}
else
@ -108,33 +60,12 @@ wxObject *wxListbookXmlHandler::DoCreateResource()
GetStyle(wxT("style")),
GetName());
wxImageList *imagelist = GetImageList();
if ( imagelist )
nb->AssignImageList(imagelist);
wxListbook *old_par = m_listbook;
m_listbook = nb;
bool old_ins = m_isInside;
m_isInside = true;
wxVector<wxBitmapBundle> old_images = m_bookImages;
m_bookImages.clear();
wxVector<size_t> old_imageIdx = m_bookImagesIdx;
m_bookImagesIdx.clear();
CreateChildren(m_listbook, true/*only this handler*/);
if ( !m_bookImages.empty() )
{
m_listbook->SetImages(m_bookImages);
for ( size_t i = 0; i < m_bookImagesIdx.size(); ++i )
{
m_listbook->SetPageImage( m_bookImagesIdx[i], i );
}
}
DoCreatePages(m_listbook);
m_isInside = old_ins;
m_listbook = old_par;
m_bookImages = old_images;
m_bookImagesIdx = old_imageIdx;
return nb;
}
@ -142,8 +73,8 @@ wxObject *wxListbookXmlHandler::DoCreateResource()
bool wxListbookXmlHandler::CanHandle(wxXmlNode *node)
{
return ((!m_isInside && IsOfClass(node, wxT("wxListbook"))) ||
(m_isInside && IsOfClass(node, wxT("listbookpage"))));
return ((!IsInside() && IsOfClass(node, wxT("wxListbook"))) ||
(IsInside() && IsOfClass(node, wxT("listbookpage"))));
}
#endif // wxUSE_XRC && wxUSE_LISTBOOK

View file

@ -26,9 +26,7 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxNotebookXmlHandler, wxXmlResourceHandler);
wxNotebookXmlHandler::wxNotebookXmlHandler()
:wxXmlResourceHandler(),
m_isInside(false),
m_notebook(NULL)
: m_notebook(NULL)
{
XRC_ADD_STYLE(wxBK_DEFAULT);
XRC_ADD_STYLE(wxBK_LEFT);
@ -54,53 +52,7 @@ wxObject *wxNotebookXmlHandler::DoCreateResource()
{
if (m_class == wxT("notebookpage"))
{
wxXmlNode *n = GetParamNode(wxT("object"));
if ( !n )
n = GetParamNode(wxT("object_ref"));
if (n)
{
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, m_notebook, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
m_notebook->AddPage(wnd, GetText(wxT("label")),
GetBool(wxT("selected")));
if ( HasParam(wxT("bitmap")) )
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
m_bookImagesIdx.push_back( m_notebook->GetPageCount()-1 );
}
else if ( HasParam(wxT("image")) )
{
if ( m_notebook->GetImageList() )
{
m_notebook->SetPageImage(m_notebook->GetPageCount()-1,
GetLong(wxT("image")) );
}
else // image without image list?
{
ReportError(n, "image can only be used in conjunction "
"with imagelist");
}
}
}
else
{
ReportError(n, "notebookpage child must be a window");
}
return wnd;
}
else
{
ReportError("notebookpage must have a window child");
return NULL;
}
return DoCreatePage(m_notebook);
}
else
@ -113,35 +65,14 @@ wxObject *wxNotebookXmlHandler::DoCreateResource()
GetStyle(wxT("style")),
GetName());
wxImageList *imagelist = GetImageList();
if ( imagelist )
nb->AssignImageList(imagelist);
SetupWindow(nb);
wxNotebook *old_par = m_notebook;
m_notebook = nb;
bool old_ins = m_isInside;
m_isInside = true;
wxVector<wxBitmapBundle> old_images = m_bookImages;
m_bookImages.clear();
wxVector<size_t> old_imageIdx = m_bookImagesIdx;
m_bookImagesIdx.clear();
CreateChildren(m_notebook, true/*only this handler*/);
if ( !m_bookImages.empty() )
{
m_notebook->SetImages(m_bookImages);
for ( size_t i = 0; i < m_bookImagesIdx.size(); ++i )
{
m_notebook->SetPageImage( m_bookImagesIdx[i], i );
}
}
DoCreatePages(m_notebook);
m_isInside = old_ins;
m_notebook = old_par;
m_bookImages = old_images;
m_bookImagesIdx = old_imageIdx;
return nb;
}
@ -149,8 +80,8 @@ wxObject *wxNotebookXmlHandler::DoCreateResource()
bool wxNotebookXmlHandler::CanHandle(wxXmlNode *node)
{
return ((!m_isInside && IsOfClass(node, wxT("wxNotebook"))) ||
(m_isInside && IsOfClass(node, wxT("notebookpage"))));
return ((!IsInside() && IsOfClass(node, wxT("wxNotebook"))) ||
(IsInside() && IsOfClass(node, wxT("notebookpage"))));
}
#endif // wxUSE_XRC && wxUSE_NOTEBOOK

View file

@ -28,9 +28,7 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxPropertySheetDialogXmlHandler, wxXmlResourceHandler);
wxPropertySheetDialogXmlHandler::wxPropertySheetDialogXmlHandler()
:wxXmlResourceHandler(),
m_isInside(false),
m_dialog(NULL)
: m_dialog(NULL)
{
XRC_ADD_STYLE(wxSTAY_ON_TOP);
XRC_ADD_STYLE(wxCAPTION);
@ -55,39 +53,7 @@ wxObject *wxPropertySheetDialogXmlHandler::DoCreateResource()
{
if (m_class == wxT("propertysheetpage"))
{
wxXmlNode *n = GetParamNode(wxT("object"));
if (!n) n = GetParamNode(wxT("object_ref"));
if (n)
{
wxBookCtrlBase *bookctrl = m_dialog->GetBookCtrl();
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, bookctrl, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
bookctrl->AddPage(wnd, GetText(wxT("label")), GetBool(wxT("selected")));
if (HasParam(wxT("bitmap")))
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
m_bookImagesIdx.push_back( bookctrl->GetPageCount()-1 );
}
}
else
{
ReportError(n, "propertysheetpage child must be a window");
}
return wnd;
}
else
{
ReportError("propertysheetpage must have a window child");
return NULL;
}
return DoCreatePage(m_dialog->GetBookCtrl());
}
else
@ -109,28 +75,10 @@ wxObject *wxPropertySheetDialogXmlHandler::DoCreateResource()
wxPropertySheetDialog *old_par = m_dialog;
m_dialog = dlg;
bool old_ins = m_isInside;
m_isInside = true;
wxVector<wxBitmapBundle> old_images = m_bookImages;
m_bookImages.clear();
wxVector<size_t> old_imageIdx = m_bookImagesIdx;
m_bookImagesIdx.clear();
CreateChildren(m_dialog, true/*only this handler*/);
wxBookCtrlBase *bookctrl = m_dialog->GetBookCtrl();
if ( !m_bookImages.empty() )
{
bookctrl->SetImages(m_bookImages);
for ( size_t i = 0; i < m_bookImagesIdx.size(); ++i )
{
bookctrl->SetPageImage( m_bookImagesIdx[i], i );
}
}
DoCreatePages(m_dialog->GetBookCtrl());
m_isInside = old_ins;
m_dialog = old_par;
m_bookImages = old_images;
m_bookImagesIdx = old_imageIdx;
if (GetBool(wxT("centered"), false)) dlg->Centre();
wxString buttons = GetText(wxT("buttons"));
@ -152,8 +100,8 @@ wxObject *wxPropertySheetDialogXmlHandler::DoCreateResource()
bool wxPropertySheetDialogXmlHandler::CanHandle(wxXmlNode *node)
{
return ((!m_isInside && IsOfClass(node, wxT("wxPropertySheetDialog"))) ||
(m_isInside && IsOfClass(node, wxT("propertysheetpage"))));
return ((!IsInside() && IsOfClass(node, wxT("wxPropertySheetDialog"))) ||
(IsInside() && IsOfClass(node, wxT("propertysheetpage"))));
}
#endif // wxUSE_XRC && wxUSE_BOOKCTRL

View file

@ -28,9 +28,7 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxToolbookXmlHandler, wxXmlResourceHandler);
wxToolbookXmlHandler::wxToolbookXmlHandler()
:wxXmlResourceHandler(),
m_isInside(false),
m_toolbook(NULL)
: m_toolbook(NULL)
{
XRC_ADD_STYLE(wxBK_DEFAULT);
XRC_ADD_STYLE(wxBK_TOP);
@ -48,59 +46,7 @@ wxObject *wxToolbookXmlHandler::DoCreateResource()
{
if (m_class == wxT("toolbookpage"))
{
wxXmlNode *n = GetParamNode(wxT("object"));
if ( !n )
n = GetParamNode(wxT("object_ref"));
if (n)
{
bool old_ins = m_isInside;
m_isInside = false;
wxObject *item = CreateResFromNode(n, m_toolbook, NULL);
m_isInside = old_ins;
wxWindow *wnd = wxDynamicCast(item, wxWindow);
if (wnd)
{
newPage currentPage;
currentPage.imgId = -1;
currentPage.bmpId = -1;
if ( HasParam(wxT("bitmap")) )
{
m_bookImages.push_back( GetBitmapBundle(wxT("bitmap"), wxART_OTHER) );
currentPage.bmpId = m_bookImages.size() - 1;
}
else if ( HasParam(wxT("image")) )
{
if ( m_toolbook->GetImageList() )
{
currentPage.imgId = (int)GetLong(wxT("image"));
}
else // image without image list?
{
ReportError(n, "image can only be used in conjunction "
"with imagelist");
}
}
currentPage.wnd = wnd;
currentPage.label = GetText(wxT("label"));
currentPage.selected = GetBool(wxT("selected"));
m_bookPages.push_back(currentPage);
}
else
{
ReportError(n, "toolbookpage child must be a window");
}
return wnd;
}
else
{
ReportError("toolbookpage must have a window child");
return NULL;
}
return DoCreatePage(m_toolbook);
}
else
@ -113,40 +59,12 @@ wxObject *wxToolbookXmlHandler::DoCreateResource()
GetStyle(wxT("style")),
GetName() );
wxImageList *imagelist = GetImageList();
if ( imagelist )
nb->AssignImageList(imagelist);
wxToolbook *old_par = m_toolbook;
m_toolbook = nb;
bool old_ins = m_isInside;
m_isInside = true;
wxVector<newPage> old_pages = m_bookPages;
m_bookPages.clear();
wxVector<wxBitmapBundle> old_images = m_bookImages;
m_bookImages.clear();
CreateChildren(m_toolbook, true/*only this handler*/);
if ( !m_bookImages.empty() )
{
m_toolbook->SetImages(m_bookImages);
}
for ( size_t i = 0; i < m_bookPages.size(); ++i )
{
const newPage& currentPage = m_bookPages.at(i);
int imgId = currentPage.bmpId;
if ( imgId == -1 )
{
imgId = currentPage.imgId;
}
m_toolbook->AddPage(currentPage.wnd, currentPage.label,
currentPage.selected, imgId );
}
DoCreatePages(m_toolbook);
m_isInside = old_ins;
m_toolbook = old_par;
m_bookPages = old_pages;
m_bookImages = old_images;
return nb;
}
@ -154,8 +72,8 @@ wxObject *wxToolbookXmlHandler::DoCreateResource()
bool wxToolbookXmlHandler::CanHandle(wxXmlNode *node)
{
return ((!m_isInside && IsOfClass(node, wxT("wxToolbook"))) ||
(m_isInside && IsOfClass(node, wxT("toolbookpage"))));
return ((!IsInside() && IsOfClass(node, wxT("wxToolbook"))) ||
(IsInside() && IsOfClass(node, wxT("toolbookpage"))));
}
#endif // wxUSE_XRC && wxUSE_TOOLBOOK