diff --git a/Makefile.in b/Makefile.in
index 9be5ab0850..12211904f9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1775,6 +1775,7 @@ XRCDLL_OBJECTS = \
xrcdll_xh_scrol.o \
xrcdll_xh_scwin.o \
xrcdll_xh_htmllbox.o \
+ xrcdll_xh_simplebook.o \
xrcdll_xh_sizer.o \
xrcdll_xh_slidr.o \
xrcdll_xh_spin.o \
@@ -1847,6 +1848,7 @@ XRCLIB_OBJECTS = \
xrclib_xh_scrol.o \
xrclib_xh_scwin.o \
xrclib_xh_htmllbox.o \
+ xrclib_xh_simplebook.o \
xrclib_xh_sizer.o \
xrclib_xh_slidr.o \
xrclib_xh_spin.o \
@@ -4374,6 +4376,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/xrc/xh_scrol.h \
wx/xrc/xh_scwin.h \
wx/xrc/xh_htmllbox.h \
+ wx/xrc/xh_simplebook.h \
wx/xrc/xh_sizer.h \
wx/xrc/xh_slidr.h \
wx/xrc/xh_spin.h \
@@ -4699,6 +4702,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS = \
monodll_xh_scrol.o \
monodll_xh_scwin.o \
monodll_xh_htmllbox.o \
+ monodll_xh_simplebook.o \
monodll_xh_sizer.o \
monodll_xh_slidr.o \
monodll_xh_spin.o \
@@ -6951,6 +6955,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS_1 = \
monolib_xh_scrol.o \
monolib_xh_scwin.o \
monolib_xh_htmllbox.o \
+ monolib_xh_simplebook.o \
monolib_xh_sizer.o \
monolib_xh_slidr.o \
monolib_xh_spin.o \
@@ -18704,6 +18709,9 @@ monodll_xh_scwin.o: $(srcdir)/src/xrc/xh_scwin.cpp $(MONODLL_ODEP)
monodll_xh_htmllbox.o: $(srcdir)/src/xrc/xh_htmllbox.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/xrc/xh_htmllbox.cpp
+monodll_xh_simplebook.o: $(srcdir)/src/xrc/xh_simplebook.cpp $(MONODLL_ODEP)
+ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/xrc/xh_simplebook.cpp
+
monodll_xh_sizer.o: $(srcdir)/src/xrc/xh_sizer.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/xrc/xh_sizer.cpp
@@ -24578,6 +24586,9 @@ monolib_xh_scwin.o: $(srcdir)/src/xrc/xh_scwin.cpp $(MONOLIB_ODEP)
monolib_xh_htmllbox.o: $(srcdir)/src/xrc/xh_htmllbox.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_htmllbox.cpp
+monolib_xh_simplebook.o: $(srcdir)/src/xrc/xh_simplebook.cpp $(MONOLIB_ODEP)
+ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_simplebook.cpp
+
monolib_xh_sizer.o: $(srcdir)/src/xrc/xh_sizer.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_sizer.cpp
@@ -39980,6 +39991,9 @@ xrcdll_xh_scwin.o: $(srcdir)/src/xrc/xh_scwin.cpp $(XRCDLL_ODEP)
xrcdll_xh_htmllbox.o: $(srcdir)/src/xrc/xh_htmllbox.cpp $(XRCDLL_ODEP)
$(CXXC) -c -o $@ $(XRCDLL_CXXFLAGS) $(srcdir)/src/xrc/xh_htmllbox.cpp
+xrcdll_xh_simplebook.o: $(srcdir)/src/xrc/xh_simplebook.cpp $(XRCDLL_ODEP)
+ $(CXXC) -c -o $@ $(XRCDLL_CXXFLAGS) $(srcdir)/src/xrc/xh_simplebook.cpp
+
xrcdll_xh_sizer.o: $(srcdir)/src/xrc/xh_sizer.cpp $(XRCDLL_ODEP)
$(CXXC) -c -o $@ $(XRCDLL_CXXFLAGS) $(srcdir)/src/xrc/xh_sizer.cpp
@@ -40175,6 +40189,9 @@ xrclib_xh_scwin.o: $(srcdir)/src/xrc/xh_scwin.cpp $(XRCLIB_ODEP)
xrclib_xh_htmllbox.o: $(srcdir)/src/xrc/xh_htmllbox.cpp $(XRCLIB_ODEP)
$(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_htmllbox.cpp
+xrclib_xh_simplebook.o: $(srcdir)/src/xrc/xh_simplebook.cpp $(XRCLIB_ODEP)
+ $(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_simplebook.cpp
+
xrclib_xh_sizer.o: $(srcdir)/src/xrc/xh_sizer.cpp $(XRCLIB_ODEP)
$(CXXC) -c -o $@ $(XRCLIB_CXXFLAGS) $(srcdir)/src/xrc/xh_sizer.cpp
diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl
index 5accfff7ae..6c32a7bd22 100644
--- a/build/bakefiles/files.bkl
+++ b/build/bakefiles/files.bkl
@@ -3497,6 +3497,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/xrc/xh_scrol.cpp
src/xrc/xh_scwin.cpp
src/xrc/xh_htmllbox.cpp
+ src/xrc/xh_simplebook.cpp
src/xrc/xh_sizer.cpp
src/xrc/xh_slidr.cpp
src/xrc/xh_spin.cpp
@@ -3565,6 +3566,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/xrc/xh_scrol.h
wx/xrc/xh_scwin.h
wx/xrc/xh_htmllbox.h
+ wx/xrc/xh_simplebook.h
wx/xrc/xh_sizer.h
wx/xrc/xh_slidr.h
wx/xrc/xh_spin.h
diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc
index 86d290478f..cc98103792 100644
--- a/build/msw/makefile.bcc
+++ b/build/msw/makefile.bcc
@@ -1238,6 +1238,7 @@ XRCDLL_OBJECTS = \
$(OBJS)\xrcdll_xh_scrol.obj \
$(OBJS)\xrcdll_xh_scwin.obj \
$(OBJS)\xrcdll_xh_htmllbox.obj \
+ $(OBJS)\xrcdll_xh_simplebook.obj \
$(OBJS)\xrcdll_xh_sizer.obj \
$(OBJS)\xrcdll_xh_slidr.obj \
$(OBJS)\xrcdll_xh_spin.obj \
@@ -1314,6 +1315,7 @@ XRCLIB_OBJECTS = \
$(OBJS)\xrclib_xh_scrol.obj \
$(OBJS)\xrclib_xh_scwin.obj \
$(OBJS)\xrclib_xh_htmllbox.obj \
+ $(OBJS)\xrclib_xh_simplebook.obj \
$(OBJS)\xrclib_xh_sizer.obj \
$(OBJS)\xrclib_xh_slidr.obj \
$(OBJS)\xrclib_xh_spin.obj \
@@ -1706,6 +1708,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_xh_scrol.obj \
$(OBJS)\monodll_xh_scwin.obj \
$(OBJS)\monodll_xh_htmllbox.obj \
+ $(OBJS)\monodll_xh_simplebook.obj \
$(OBJS)\monodll_xh_sizer.obj \
$(OBJS)\monodll_xh_slidr.obj \
$(OBJS)\monodll_xh_spin.obj \
@@ -2512,6 +2515,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_xh_scrol.obj \
$(OBJS)\monolib_xh_scwin.obj \
$(OBJS)\monolib_xh_htmllbox.obj \
+ $(OBJS)\monolib_xh_simplebook.obj \
$(OBJS)\monolib_xh_sizer.obj \
$(OBJS)\monolib_xh_slidr.obj \
$(OBJS)\monolib_xh_spin.obj \
@@ -7191,6 +7195,9 @@ $(OBJS)\monodll_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monodll_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\monodll_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\monodll_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -9659,6 +9666,9 @@ $(OBJS)\monolib_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monolib_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\monolib_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\monolib_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -15561,6 +15571,9 @@ $(OBJS)\xrcdll_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrcdll_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -q -c -P -o$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\xrcdll_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -q -c -P -o$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\xrcdll_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) -q -c -P -o$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -15759,6 +15772,9 @@ $(OBJS)\xrclib_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrclib_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -q -c -P -o$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\xrclib_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -q -c -P -o$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\xrclib_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) -q -c -P -o$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc
index 411968d864..1867d6aa4d 100644
--- a/build/msw/makefile.gcc
+++ b/build/msw/makefile.gcc
@@ -1239,6 +1239,7 @@ XRCDLL_OBJECTS = \
$(OBJS)\xrcdll_xh_scrol.o \
$(OBJS)\xrcdll_xh_scwin.o \
$(OBJS)\xrcdll_xh_htmllbox.o \
+ $(OBJS)\xrcdll_xh_simplebook.o \
$(OBJS)\xrcdll_xh_sizer.o \
$(OBJS)\xrcdll_xh_slidr.o \
$(OBJS)\xrcdll_xh_spin.o \
@@ -1314,6 +1315,7 @@ XRCLIB_OBJECTS = \
$(OBJS)\xrclib_xh_scrol.o \
$(OBJS)\xrclib_xh_scwin.o \
$(OBJS)\xrclib_xh_htmllbox.o \
+ $(OBJS)\xrclib_xh_simplebook.o \
$(OBJS)\xrclib_xh_sizer.o \
$(OBJS)\xrclib_xh_slidr.o \
$(OBJS)\xrclib_xh_spin.o \
@@ -1720,6 +1722,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_xh_scrol.o \
$(OBJS)\monodll_xh_scwin.o \
$(OBJS)\monodll_xh_htmllbox.o \
+ $(OBJS)\monodll_xh_simplebook.o \
$(OBJS)\monodll_xh_sizer.o \
$(OBJS)\monodll_xh_slidr.o \
$(OBJS)\monodll_xh_spin.o \
@@ -2532,6 +2535,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_xh_scrol.o \
$(OBJS)\monolib_xh_scwin.o \
$(OBJS)\monolib_xh_htmllbox.o \
+ $(OBJS)\monolib_xh_simplebook.o \
$(OBJS)\monolib_xh_sizer.o \
$(OBJS)\monolib_xh_slidr.o \
$(OBJS)\monolib_xh_spin.o \
@@ -7362,6 +7366,9 @@ $(OBJS)\monodll_xh_scwin.o: ../../src/xrc/xh_scwin.cpp
$(OBJS)\monodll_xh_htmllbox.o: ../../src/xrc/xh_htmllbox.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\monodll_xh_simplebook.o: ../../src/xrc/xh_simplebook.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\monodll_xh_sizer.o: ../../src/xrc/xh_sizer.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9830,6 +9837,9 @@ $(OBJS)\monolib_xh_scwin.o: ../../src/xrc/xh_scwin.cpp
$(OBJS)\monolib_xh_htmllbox.o: ../../src/xrc/xh_htmllbox.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\monolib_xh_simplebook.o: ../../src/xrc/xh_simplebook.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\monolib_xh_sizer.o: ../../src/xrc/xh_sizer.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -15732,6 +15742,9 @@ $(OBJS)\xrcdll_xh_scwin.o: ../../src/xrc/xh_scwin.cpp
$(OBJS)\xrcdll_xh_htmllbox.o: ../../src/xrc/xh_htmllbox.cpp
$(CXX) -c -o $@ $(XRCDLL_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\xrcdll_xh_simplebook.o: ../../src/xrc/xh_simplebook.cpp
+ $(CXX) -c -o $@ $(XRCDLL_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\xrcdll_xh_sizer.o: ../../src/xrc/xh_sizer.cpp
$(CXX) -c -o $@ $(XRCDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -15930,6 +15943,9 @@ $(OBJS)\xrclib_xh_scwin.o: ../../src/xrc/xh_scwin.cpp
$(OBJS)\xrclib_xh_htmllbox.o: ../../src/xrc/xh_htmllbox.cpp
$(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\xrclib_xh_simplebook.o: ../../src/xrc/xh_simplebook.cpp
+ $(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\xrclib_xh_sizer.o: ../../src/xrc/xh_sizer.cpp
$(CXX) -c -o $@ $(XRCLIB_CXXFLAGS) $(CPPDEPS) $<
diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc
index dd7ac9c377..4d1d78a2f9 100644
--- a/build/msw/makefile.vc
+++ b/build/msw/makefile.vc
@@ -1367,6 +1367,7 @@ XRCDLL_OBJECTS = \
$(OBJS)\xrcdll_xh_scrol.obj \
$(OBJS)\xrcdll_xh_scwin.obj \
$(OBJS)\xrcdll_xh_htmllbox.obj \
+ $(OBJS)\xrcdll_xh_simplebook.obj \
$(OBJS)\xrcdll_xh_sizer.obj \
$(OBJS)\xrcdll_xh_slidr.obj \
$(OBJS)\xrcdll_xh_spin.obj \
@@ -1449,6 +1450,7 @@ XRCLIB_OBJECTS = \
$(OBJS)\xrclib_xh_scrol.obj \
$(OBJS)\xrclib_xh_scwin.obj \
$(OBJS)\xrclib_xh_htmllbox.obj \
+ $(OBJS)\xrclib_xh_simplebook.obj \
$(OBJS)\xrclib_xh_sizer.obj \
$(OBJS)\xrclib_xh_slidr.obj \
$(OBJS)\xrclib_xh_spin.obj \
@@ -2000,6 +2002,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_xh_scrol.obj \
$(OBJS)\monodll_xh_scwin.obj \
$(OBJS)\monodll_xh_htmllbox.obj \
+ $(OBJS)\monodll_xh_simplebook.obj \
$(OBJS)\monodll_xh_sizer.obj \
$(OBJS)\monodll_xh_slidr.obj \
$(OBJS)\monodll_xh_spin.obj \
@@ -2812,6 +2815,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_xh_scrol.obj \
$(OBJS)\monolib_xh_scwin.obj \
$(OBJS)\monolib_xh_htmllbox.obj \
+ $(OBJS)\monolib_xh_simplebook.obj \
$(OBJS)\monolib_xh_sizer.obj \
$(OBJS)\monolib_xh_slidr.obj \
$(OBJS)\monolib_xh_spin.obj \
@@ -7877,6 +7881,9 @@ $(OBJS)\monodll_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monodll_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\monodll_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\monodll_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -10345,6 +10352,9 @@ $(OBJS)\monolib_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monolib_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\monolib_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\monolib_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -16247,6 +16257,9 @@ $(OBJS)\xrcdll_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrcdll_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\xrcdll_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\xrcdll_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCDLL_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
@@ -16445,6 +16458,9 @@ $(OBJS)\xrclib_xh_scwin.obj: ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrclib_xh_htmllbox.obj: ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_htmllbox.cpp
+$(OBJS)\xrclib_xh_simplebook.obj: ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_simplebook.cpp
+
$(OBJS)\xrclib_xh_sizer.obj: ..\..\src\xrc\xh_sizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(XRCLIB_CXXFLAGS) ..\..\src\xrc\xh_sizer.cpp
diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat
index ca0c791c89..ecc1c9eb12 100644
--- a/build/msw/makefile.wat
+++ b/build/msw/makefile.wat
@@ -195,6 +195,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_xh_scrol.obj &
$(OBJS)\monodll_xh_scwin.obj &
$(OBJS)\monodll_xh_htmllbox.obj &
+ $(OBJS)\monodll_xh_simplebook.obj &
$(OBJS)\monodll_xh_sizer.obj &
$(OBJS)\monodll_xh_slidr.obj &
$(OBJS)\monodll_xh_spin.obj &
@@ -1012,6 +1013,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_xh_scrol.obj &
$(OBJS)\monolib_xh_scwin.obj &
$(OBJS)\monolib_xh_htmllbox.obj &
+ $(OBJS)\monolib_xh_simplebook.obj &
$(OBJS)\monolib_xh_sizer.obj &
$(OBJS)\monolib_xh_slidr.obj &
$(OBJS)\monolib_xh_spin.obj &
@@ -4852,6 +4854,7 @@ XRCDLL_OBJECTS = &
$(OBJS)\xrcdll_xh_scrol.obj &
$(OBJS)\xrcdll_xh_scwin.obj &
$(OBJS)\xrcdll_xh_htmllbox.obj &
+ $(OBJS)\xrcdll_xh_simplebook.obj &
$(OBJS)\xrcdll_xh_sizer.obj &
$(OBJS)\xrcdll_xh_slidr.obj &
$(OBJS)\xrcdll_xh_spin.obj &
@@ -4928,6 +4931,7 @@ XRCLIB_OBJECTS = &
$(OBJS)\xrclib_xh_scrol.obj &
$(OBJS)\xrclib_xh_scwin.obj &
$(OBJS)\xrclib_xh_htmllbox.obj &
+ $(OBJS)\xrclib_xh_simplebook.obj &
$(OBJS)\xrclib_xh_sizer.obj &
$(OBJS)\xrclib_xh_slidr.obj &
$(OBJS)\xrclib_xh_spin.obj &
@@ -7634,6 +7638,9 @@ $(OBJS)\monodll_xh_scwin.obj : .AUTODEPEND ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monodll_xh_htmllbox.obj : .AUTODEPEND ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+$(OBJS)\monodll_xh_simplebook.obj : .AUTODEPEND ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+
$(OBJS)\monodll_xh_sizer.obj : .AUTODEPEND ..\..\src\xrc\xh_sizer.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -10102,6 +10109,9 @@ $(OBJS)\monolib_xh_scwin.obj : .AUTODEPEND ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\monolib_xh_htmllbox.obj : .AUTODEPEND ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+$(OBJS)\monolib_xh_simplebook.obj : .AUTODEPEND ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+
$(OBJS)\monolib_xh_sizer.obj : .AUTODEPEND ..\..\src\xrc\xh_sizer.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -16004,6 +16014,9 @@ $(OBJS)\xrcdll_xh_scwin.obj : .AUTODEPEND ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrcdll_xh_htmllbox.obj : .AUTODEPEND ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(XRCDLL_CXXFLAGS) $<
+$(OBJS)\xrcdll_xh_simplebook.obj : .AUTODEPEND ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(XRCDLL_CXXFLAGS) $<
+
$(OBJS)\xrcdll_xh_sizer.obj : .AUTODEPEND ..\..\src\xrc\xh_sizer.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(XRCDLL_CXXFLAGS) $<
@@ -16202,6 +16215,9 @@ $(OBJS)\xrclib_xh_scwin.obj : .AUTODEPEND ..\..\src\xrc\xh_scwin.cpp
$(OBJS)\xrclib_xh_htmllbox.obj : .AUTODEPEND ..\..\src\xrc\xh_htmllbox.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(XRCLIB_CXXFLAGS) $<
+$(OBJS)\xrclib_xh_simplebook.obj : .AUTODEPEND ..\..\src\xrc\xh_simplebook.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(XRCLIB_CXXFLAGS) $<
+
$(OBJS)\xrclib_xh_sizer.obj : .AUTODEPEND ..\..\src\xrc\xh_sizer.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(XRCLIB_CXXFLAGS) $<
diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp
index 6f3567f35a..d333fab944 100644
--- a/build/msw/wx_core.dsp
+++ b/build/msw/wx_core.dsp
@@ -3524,6 +3524,10 @@ SOURCE=..\..\include\wx\xrc\xh_scwin.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\xrc\xh_simplebook.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\xrc\xh_sizer.h
# End Source File
# Begin Source File
diff --git a/build/msw/wx_vc10_xrc.vcxproj b/build/msw/wx_vc10_xrc.vcxproj
index f84d3bdb55..2a8f8c9aa9 100644
--- a/build/msw/wx_vc10_xrc.vcxproj
+++ b/build/msw/wx_vc10_xrc.vcxproj
@@ -514,6 +514,7 @@
+
@@ -650,6 +651,7 @@
+
diff --git a/build/msw/wx_vc10_xrc.vcxproj.filters b/build/msw/wx_vc10_xrc.vcxproj.filters
index 6742e819bf..3bca27ae83 100644
--- a/build/msw/wx_vc10_xrc.vcxproj.filters
+++ b/build/msw/wx_vc10_xrc.vcxproj.filters
@@ -154,6 +154,9 @@
Source Files
+
+ Source Files
+
Source Files
@@ -359,6 +362,9 @@
Common Headers
+
+ Common Headers
+
Common Headers
diff --git a/build/msw/wx_vc11_xrc.vcxproj b/build/msw/wx_vc11_xrc.vcxproj
index 9c37a7a978..681db7009a 100644
--- a/build/msw/wx_vc11_xrc.vcxproj
+++ b/build/msw/wx_vc11_xrc.vcxproj
@@ -529,6 +529,7 @@
+
@@ -625,6 +626,7 @@
+
diff --git a/build/msw/wx_vc11_xrc.vcxproj.filters b/build/msw/wx_vc11_xrc.vcxproj.filters
index 775cd3831d..1ecba95279 100644
--- a/build/msw/wx_vc11_xrc.vcxproj.filters
+++ b/build/msw/wx_vc11_xrc.vcxproj.filters
@@ -154,6 +154,9 @@
Source Files
+
+ Source Files
+
Source Files
@@ -359,6 +362,9 @@
Common Headers
+
+ Common Headers
+
Common Headers
diff --git a/build/msw/wx_vc12_xrc.vcxproj b/build/msw/wx_vc12_xrc.vcxproj
index 4508a5cd58..b8f3df9572 100644
--- a/build/msw/wx_vc12_xrc.vcxproj
+++ b/build/msw/wx_vc12_xrc.vcxproj
@@ -529,6 +529,7 @@
+
@@ -625,6 +626,7 @@
+
diff --git a/build/msw/wx_vc12_xrc.vcxproj.filters b/build/msw/wx_vc12_xrc.vcxproj.filters
index 775cd3831d..1ecba95279 100644
--- a/build/msw/wx_vc12_xrc.vcxproj.filters
+++ b/build/msw/wx_vc12_xrc.vcxproj.filters
@@ -154,6 +154,9 @@
Source Files
+
+ Source Files
+
Source Files
@@ -359,6 +362,9 @@
Common Headers
+
+ Common Headers
+
Common Headers
diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj
index 8bd4f46f96..2acb947b53 100644
--- a/build/msw/wx_vc7_core.vcproj
+++ b/build/msw/wx_vc7_core.vcproj
@@ -2828,6 +2828,9 @@
+
+
diff --git a/build/msw/wx_vc7_xrc.vcproj b/build/msw/wx_vc7_xrc.vcproj
index eca30bde61..d1acb38017 100644
--- a/build/msw/wx_vc7_xrc.vcproj
+++ b/build/msw/wx_vc7_xrc.vcproj
@@ -545,6 +545,9 @@
+
+
@@ -739,6 +742,9 @@
+
+
diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj
index 2f64ff8660..14adbc4958 100644
--- a/build/msw/wx_vc8_core.vcproj
+++ b/build/msw/wx_vc8_core.vcproj
@@ -4272,6 +4272,10 @@
RelativePath="..\..\include\wx\xrc\xh_scwin.h"
>
+
+
diff --git a/build/msw/wx_vc8_xrc.vcproj b/build/msw/wx_vc8_xrc.vcproj
index 9b5ecf968d..6a9f7ea13e 100644
--- a/build/msw/wx_vc8_xrc.vcproj
+++ b/build/msw/wx_vc8_xrc.vcproj
@@ -1229,6 +1229,10 @@
RelativePath="..\..\include\wx\xrc\xh_scwin.h"
>
+
+
@@ -1487,6 +1491,10 @@
RelativePath="..\..\src\xrc\xh_scwin.cpp"
>
+
+
diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj
index 36d960f79d..dcbbc17a38 100644
--- a/build/msw/wx_vc9_core.vcproj
+++ b/build/msw/wx_vc9_core.vcproj
@@ -4268,6 +4268,10 @@
RelativePath="..\..\include\wx\xrc\xh_scwin.h"
>
+
+
diff --git a/build/msw/wx_vc9_xrc.vcproj b/build/msw/wx_vc9_xrc.vcproj
index 94fef5b15b..ca99ebf0a7 100644
--- a/build/msw/wx_vc9_xrc.vcproj
+++ b/build/msw/wx_vc9_xrc.vcproj
@@ -1225,6 +1225,10 @@
RelativePath="..\..\include\wx\xrc\xh_scwin.h"
>
+
+
@@ -1483,6 +1487,10 @@
RelativePath="..\..\src\xrc\xh_scwin.cpp"
>
+
+
diff --git a/build/msw/wx_xrc.dsp b/build/msw/wx_xrc.dsp
index d0d408c120..ccaaea9c12 100644
--- a/build/msw/wx_xrc.dsp
+++ b/build/msw/wx_xrc.dsp
@@ -484,6 +484,10 @@ SOURCE=..\..\include\wx\xrc\xh_scwin.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\xrc\xh_simplebook.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\xrc\xh_sizer.h
# End Source File
# Begin Source File
@@ -740,6 +744,10 @@ SOURCE=..\..\src\xrc\xh_scwin.cpp
# End Source File
# Begin Source File
+SOURCE=..\..\src\xrc\xh_simplebook.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\xrc\xh_sizer.cpp
# End Source File
# Begin Source File
diff --git a/docs/changes.txt b/docs/changes.txt
index 3afd5dd051..d1723932f8 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -589,6 +589,7 @@ All (GUI):
- Implement bounding box computation in wxGCDC (Toni Ruža).
- Fix saving GIF animations with 2.5s+ delays between frames (elvissteinjr).
- Add "variant" property to windows in XRC.
+- Add XRC handler for wxSimplebook.
wxGTK:
diff --git a/docs/doxygen/overviews/xrc_format.h b/docs/doxygen/overviews/xrc_format.h
index 62c8e1e0bc..f24ab95ac9 100644
--- a/docs/doxygen/overviews/xrc_format.h
+++ b/docs/doxygen/overviews/xrc_format.h
@@ -1702,6 +1702,32 @@ HTML markup. Note that the markup has to be escaped:
@endcode
+@subsubsection xrc_wxsimplebook wxSimplebook
+
+wxSimplebook is similar to @ref xrc_wxnotebook "wxNotebook" but simpler: as it
+doesn't show any page headers, it doesn't use neither image list nor individual
+page bitmaps and while it still accepts page labels, they are optional as they
+are not shown to the user neither.
+
+So @c simplebookpage child elements, that must occur inside this object, only
+have the following properties:
+
+@c choicebookpage objects have the following properties:
+
+@beginTable
+@hdr3col{property, type, description}
+@row3col{label, @ref overview_xrcformat_type_text,
+ Page's label (default: empty).}
+@row3col{selected, @ref overview_xrcformat_type_bool,
+ Is the page selected initially (only one page can be selected; default: 0)?}
+@endTable
+
+As with all the other book page elements, each @c simplebookpage must have
+exactly one non-toplevel window as its child.
+
+@since 3.0.2
+
+
@subsubsection xrc_wxslider wxSlider
@beginTable
diff --git a/include/wx/simplebook.h b/include/wx/simplebook.h
index 5ca253ac10..78cc87215a 100644
--- a/include/wx/simplebook.h
+++ b/include/wx/simplebook.h
@@ -41,6 +41,16 @@ public:
Init();
}
+ bool Create(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxEmptyString)
+ {
+ return wxBookCtrlBase::Create(parent, winid, pos, size, style | wxBK_TOP, name);
+ }
+
// Methods specific to this class.
diff --git a/include/wx/xrc/xh_all.h b/include/wx/xrc/xh_all.h
index 0afe3dbb32..b532f3f2c2 100644
--- a/include/wx/xrc/xh_all.h
+++ b/include/wx/xrc/xh_all.h
@@ -56,6 +56,7 @@
#include "wx/xrc/xh_radbx.h"
#include "wx/xrc/xh_scrol.h"
#include "wx/xrc/xh_scwin.h"
+#include "wx/xrc/xh_simplebook.h"
#include "wx/xrc/xh_sizer.h"
#include "wx/xrc/xh_slidr.h"
#include "wx/xrc/xh_spin.h"
diff --git a/include/wx/xrc/xh_simplebook.h b/include/wx/xrc/xh_simplebook.h
new file mode 100644
index 0000000000..cf4ddd085b
--- /dev/null
+++ b/include/wx/xrc/xh_simplebook.h
@@ -0,0 +1,36 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/xrc/xh_simplebook.h
+// Purpose: XML resource handler for wxSimplebook
+// Author: Vadim Zeitlin
+// Created: 2014-08-05
+// Copyright: (c) 2014 Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_XH_SIMPLEBOOK_H_
+#define _WX_XH_SIMPLEBOOK_H_
+
+#include "wx/xrc/xmlres.h"
+
+#if wxUSE_XRC && wxUSE_BOOKCTRL
+
+class wxSimplebook;
+
+class WXDLLIMPEXP_XRC wxSimplebookXmlHandler : public wxXmlResourceHandler
+{
+public:
+ wxSimplebookXmlHandler();
+
+ virtual wxObject *DoCreateResource();
+ virtual bool CanHandle(wxXmlNode *node);
+
+private:
+ bool m_isInside;
+ wxSimplebook *m_simplebook;
+
+ wxDECLARE_DYNAMIC_CLASS(wxSimplebookXmlHandler);
+};
+
+#endif // wxUSE_XRC && wxUSE_BOOKCTRL
+
+#endif // _WX_XH_SIMPLEBOOK_H_
diff --git a/interface/wx/simplebook.h b/interface/wx/simplebook.h
index b0ae879436..838a9034a6 100644
--- a/interface/wx/simplebook.h
+++ b/interface/wx/simplebook.h
@@ -43,8 +43,7 @@ public:
/**
Default constructor.
- Use Create() (inherited from the base class) later to really create the
- control.
+ Use Create() later to really create the control.
*/
wxSimplebook();
@@ -58,6 +57,18 @@ public:
long style = 0,
const wxString& name = wxEmptyString);
+ /**
+ Really create the window of an object created using default
+ constructor.
+
+ @since 3.0.2
+ */
+ bool Create(wxWindow* parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxEmptyString);
/**
Set the effects to use for showing and hiding the pages.
diff --git a/misc/schema/xrc_schema.rnc b/misc/schema/xrc_schema.rnc
index abad687b2d..06b1a111f2 100644
--- a/misc/schema/xrc_schema.rnc
+++ b/misc/schema/xrc_schema.rnc
@@ -202,6 +202,7 @@ builtinWindowClasses =
| wxScrollBar
| wxScrolledWindow
| wxSimpleHtmlListBox
+ | wxSimplebook
| wxSlider
| wxSpinButton
| wxSpinCtrl
@@ -290,6 +291,7 @@ builtinClassesNames =
| "wxScrollBar"
| "wxScrolledWindow"
| "wxSimpleHtmlListBox"
+ | "wxSimplebook"
| "wxSlider"
| "wxSpinButton"
| "wxSpinCtrl"
@@ -329,6 +331,7 @@ builtinNestedClassesNames =
| "notebookpage"
| "choicebookpage"
| "listbookpage"
+ | "simplebookpage"
| "treebookpage"
| "propertysheetpage"
| "ownerdrawnitem"
@@ -1241,6 +1244,24 @@ wxSimpleHtmlListBox =
}
+wxSimplebook =
+ element object {
+ attribute class { "wxSimplebook" } &
+ stdObjectNodeAttributes &
+ stdWindowProperties &
+ (wxSimplebook_simplebookpage | objectRef)*
+ }
+
+wxSimplebook_simplebookpage =
+ element object {
+ attribute class { "simplebookpage" } &
+ platform &
+ element label {_, t_text }* &
+ [xrc:p="o"] element selected {_, t_bool }* &
+ windowNode
+ }
+
+
wxSlider =
element object {
attribute class { "wxSlider" } &
diff --git a/src/xrc/xh_simplebook.cpp b/src/xrc/xh_simplebook.cpp
new file mode 100644
index 0000000000..30c88ceb59
--- /dev/null
+++ b/src/xrc/xh_simplebook.cpp
@@ -0,0 +1,101 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/xrc/xh_simplebook.cpp
+// Purpose: XRC resource handler for wxSimplebook
+// Author: Vaclav Slavik
+// Created: 2014-08-05
+// Copyright: (c) 2014 Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_XRC && wxUSE_BOOKCTRL
+
+#include "wx/xrc/xh_simplebook.h"
+
+#ifndef WX_PRECOMP
+#endif
+
+#include "wx/simplebook.h"
+
+wxIMPLEMENT_DYNAMIC_CLASS(wxSimplebookXmlHandler, wxXmlResourceHandler);
+
+wxSimplebookXmlHandler::wxSimplebookXmlHandler()
+ : wxXmlResourceHandler(),
+ m_isInside(false),
+ m_simplebook(NULL)
+{
+ AddWindowStyles();
+}
+
+wxObject *wxSimplebookXmlHandler::DoCreateResource()
+{
+ if (m_class == wxS("simplebookpage"))
+ {
+ wxXmlNode *n = GetParamNode(wxS("object"));
+
+ if ( !n )
+ n = GetParamNode(wxS("object_ref"));
+
+ if (n)
+ {
+ bool old_ins = m_isInside;
+ m_isInside = false;
+ wxObject *item = CreateResFromNode(n, m_simplebook, NULL);
+ m_isInside = old_ins;
+ wxWindow *wnd = wxDynamicCast(item, wxWindow);
+
+ if (wnd)
+ {
+ m_simplebook->AddPage(wnd, GetText(wxS("label")),
+ GetBool(wxS("selected")));
+ }
+ else
+ {
+ ReportError(n, "simplebookpage child must be a window");
+ }
+ return wnd;
+ }
+ else
+ {
+ ReportError("simplebookpage must have a window child");
+ return NULL;
+ }
+ }
+
+ else
+ {
+ XRC_MAKE_INSTANCE(sb, wxSimplebook)
+
+ sb->Create(m_parentAsWindow,
+ GetID(),
+ GetPosition(), GetSize(),
+ GetStyle(wxS("style")),
+ GetName());
+
+ SetupWindow(sb);
+
+ wxSimplebook *old_par = m_simplebook;
+ m_simplebook = sb;
+ bool old_ins = m_isInside;
+ m_isInside = true;
+ CreateChildren(m_simplebook, true/*only this handler*/);
+ m_isInside = old_ins;
+ m_simplebook = old_par;
+
+ return sb;
+ }
+}
+
+bool wxSimplebookXmlHandler::CanHandle(wxXmlNode *node)
+{
+ return ((!m_isInside && IsOfClass(node, wxS("wxSimplebook"))) ||
+ (m_isInside && IsOfClass(node, wxS("simplebookpage"))));
+}
+
+#endif // wxUSE_XRC && wxUSE_BOOKCTRL
diff --git a/src/xrc/xmlrsall.cpp b/src/xrc/xmlrsall.cpp
index 2e301347b7..0f3bb077be 100644
--- a/src/xrc/xmlrsall.cpp
+++ b/src/xrc/xmlrsall.cpp
@@ -151,6 +151,9 @@ void wxXmlResource::InitAllHandlers()
#if wxUSE_SEARCHCTRL
AddHandler(new wxSearchCtrlXmlHandler);
#endif
+#if wxUSE_BOOKCTRL
+ AddHandler(new wxSimplebookXmlHandler);
+#endif
#if wxUSE_SLIDER
AddHandler(new wxSliderXmlHandler);
#endif