diff --git a/Makefile.in b/Makefile.in
index 624cbb8ef6..6c5ce7a403 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2990,6 +2990,7 @@ COND_TOOLKIT_MSW_GUI_HDR = \
wx/msw/control.h \
wx/msw/ctrlsub.h \
wx/msw/cursor.h \
+ wx/msw/custombgwin.h \
wx/msw/dc.h \
wx/msw/dcclient.h \
wx/msw/dcmemory.h \
@@ -3519,6 +3520,7 @@ COND_TOOLKIT_WINCE_GUI_HDR = \
wx/msw/control.h \
wx/msw/ctrlsub.h \
wx/msw/cursor.h \
+ wx/msw/custombgwin.h \
wx/msw/dc.h \
wx/msw/dcclient.h \
wx/msw/dcmemory.h \
@@ -3855,6 +3857,7 @@ COND_USE_GUI_1_WXUNIV_1_GUI_CORE_HEADERS = \
wx/univ/colschem.h \
wx/univ/combobox.h \
wx/univ/control.h \
+ wx/univ/custombgwin.h \
wx/univ/dialog.h \
wx/univ/frame.h \
wx/univ/gauge.h \
@@ -3907,6 +3910,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/control.h \
wx/ctrlsub.h \
wx/cursor.h \
+ wx/custombgwin.h \
wx/dc.h \
wx/dcclient.h \
wx/dcgraph.h \
@@ -3928,6 +3932,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/generic/choicdgg.h \
wx/generic/colrdlgg.h \
wx/generic/combo.h \
+ wx/generic/custombgwin.h \
wx/generic/dcpsg.h \
wx/generic/dirctrlg.h \
wx/generic/dragimgg.h \
@@ -4700,7 +4705,6 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
monodll_markuptext.o \
monodll_msgdlgg.o \
monodll_numdlgg.o \
- monodll_panelg.o \
monodll_progdlgg.o \
monodll_printps.o \
monodll_renderg.o \
@@ -4917,7 +4921,6 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_markuptext.o \
monodll_msgdlgg.o \
monodll_numdlgg.o \
- monodll_panelg.o \
monodll_progdlgg.o \
monodll_printps.o \
monodll_renderg.o \
@@ -6654,7 +6657,6 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
monolib_markuptext.o \
monolib_msgdlgg.o \
monolib_numdlgg.o \
- monolib_panelg.o \
monolib_progdlgg.o \
monolib_printps.o \
monolib_renderg.o \
@@ -6871,7 +6873,6 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_markuptext.o \
monolib_msgdlgg.o \
monolib_numdlgg.o \
- monolib_panelg.o \
monolib_progdlgg.o \
monolib_printps.o \
monolib_renderg.o \
@@ -8787,7 +8788,6 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
coredll_markuptext.o \
coredll_msgdlgg.o \
coredll_numdlgg.o \
- coredll_panelg.o \
coredll_progdlgg.o \
coredll_printps.o \
coredll_renderg.o \
@@ -9004,7 +9004,6 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_markuptext.o \
coredll_msgdlgg.o \
coredll_numdlgg.o \
- coredll_panelg.o \
coredll_progdlgg.o \
coredll_printps.o \
coredll_renderg.o \
@@ -10381,7 +10380,6 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
corelib_markuptext.o \
corelib_msgdlgg.o \
corelib_numdlgg.o \
- corelib_panelg.o \
corelib_progdlgg.o \
corelib_printps.o \
corelib_renderg.o \
@@ -10598,7 +10596,6 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_markuptext.o \
corelib_msgdlgg.o \
corelib_numdlgg.o \
- corelib_panelg.o \
corelib_progdlgg.o \
corelib_printps.o \
corelib_renderg.o \
@@ -20559,9 +20556,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_numdlgg.o: $(srcdir)/src/generic/numdlgg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/numdlgg.cpp
-@COND_USE_GUI_1@monodll_panelg.o: $(srcdir)/src/generic/panelg.cpp $(MONODLL_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/panelg.cpp
-
@COND_USE_GUI_1@monodll_progdlgg.o: $(srcdir)/src/generic/progdlgg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/progdlgg.cpp
@@ -25932,9 +25926,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_numdlgg.o: $(srcdir)/src/generic/numdlgg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/numdlgg.cpp
-@COND_USE_GUI_1@monolib_panelg.o: $(srcdir)/src/generic/panelg.cpp $(MONOLIB_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/panelg.cpp
-
@COND_USE_GUI_1@monolib_progdlgg.o: $(srcdir)/src/generic/progdlgg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/progdlgg.cpp
@@ -31464,9 +31455,6 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_numdlgg.o: $(srcdir)/src/generic/numdlgg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/numdlgg.cpp
-@COND_USE_GUI_1@coredll_panelg.o: $(srcdir)/src/generic/panelg.cpp $(COREDLL_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/panelg.cpp
-
@COND_USE_GUI_1@coredll_progdlgg.o: $(srcdir)/src/generic/progdlgg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/progdlgg.cpp
@@ -35478,9 +35466,6 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_numdlgg.o: $(srcdir)/src/generic/numdlgg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/numdlgg.cpp
-@COND_USE_GUI_1@corelib_panelg.o: $(srcdir)/src/generic/panelg.cpp $(CORELIB_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/panelg.cpp
-
@COND_USE_GUI_1@corelib_progdlgg.o: $(srcdir)/src/generic/progdlgg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/progdlgg.cpp
diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl
index 4069889063..96b214b1bb 100644
--- a/build/bakefiles/files.bkl
+++ b/build/bakefiles/files.bkl
@@ -789,7 +789,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/generic/markuptext.cpp
src/generic/msgdlgg.cpp
src/generic/numdlgg.cpp
- src/generic/panelg.cpp
src/generic/progdlgg.cpp
src/generic/printps.cpp
src/generic/renderg.cpp
@@ -829,6 +828,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/control.h
wx/ctrlsub.h
wx/cursor.h
+ wx/custombgwin.h
wx/dc.h
wx/dcclient.h
wx/dcgraph.h
@@ -850,6 +850,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/generic/choicdgg.h
wx/generic/colrdlgg.h
wx/generic/combo.h
+ wx/generic/custombgwin.h
wx/generic/dcpsg.h
wx/generic/dirctrlg.h
wx/generic/dragimgg.h
@@ -1808,6 +1809,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/msw/control.h
wx/msw/ctrlsub.h
wx/msw/cursor.h
+ wx/msw/custombgwin.h
wx/msw/dc.h
wx/msw/dcclient.h
wx/msw/dcmemory.h
@@ -2911,6 +2913,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/univ/colschem.h
wx/univ/combobox.h
wx/univ/control.h
+ wx/univ/custombgwin.h
wx/univ/dialog.h
wx/univ/frame.h
wx/univ/gauge.h
diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc
index 4e6047c9b4..d5711717d8 100644
--- a/build/msw/makefile.bcc
+++ b/build/msw/makefile.bcc
@@ -1969,7 +1969,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.obj \
$(OBJS)\monodll_msgdlgg.obj \
$(OBJS)\monodll_numdlgg.obj \
- $(OBJS)\monodll_panelg.obj \
$(OBJS)\monodll_progdlgg.obj \
$(OBJS)\monodll_printps.obj \
$(OBJS)\monodll_renderg.obj \
@@ -2236,7 +2235,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.obj \
$(OBJS)\monodll_msgdlgg.obj \
$(OBJS)\monodll_numdlgg.obj \
- $(OBJS)\monodll_panelg.obj \
$(OBJS)\monodll_progdlgg.obj \
$(OBJS)\monodll_printps.obj \
$(OBJS)\monodll_renderg.obj \
@@ -2748,7 +2746,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.obj \
$(OBJS)\monolib_msgdlgg.obj \
$(OBJS)\monolib_numdlgg.obj \
- $(OBJS)\monolib_panelg.obj \
$(OBJS)\monolib_progdlgg.obj \
$(OBJS)\monolib_printps.obj \
$(OBJS)\monolib_renderg.obj \
@@ -3015,7 +3012,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.obj \
$(OBJS)\monolib_msgdlgg.obj \
$(OBJS)\monolib_numdlgg.obj \
- $(OBJS)\monolib_panelg.obj \
$(OBJS)\monolib_progdlgg.obj \
$(OBJS)\monolib_printps.obj \
$(OBJS)\monolib_renderg.obj \
@@ -3410,7 +3406,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.obj \
$(OBJS)\coredll_msgdlgg.obj \
$(OBJS)\coredll_numdlgg.obj \
- $(OBJS)\coredll_panelg.obj \
$(OBJS)\coredll_progdlgg.obj \
$(OBJS)\coredll_printps.obj \
$(OBJS)\coredll_renderg.obj \
@@ -3677,7 +3672,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.obj \
$(OBJS)\coredll_msgdlgg.obj \
$(OBJS)\coredll_numdlgg.obj \
- $(OBJS)\coredll_panelg.obj \
$(OBJS)\coredll_progdlgg.obj \
$(OBJS)\coredll_printps.obj \
$(OBJS)\coredll_renderg.obj \
@@ -3954,7 +3948,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.obj \
$(OBJS)\corelib_msgdlgg.obj \
$(OBJS)\corelib_numdlgg.obj \
- $(OBJS)\corelib_panelg.obj \
$(OBJS)\corelib_progdlgg.obj \
$(OBJS)\corelib_printps.obj \
$(OBJS)\corelib_renderg.obj \
@@ -4221,7 +4214,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.obj \
$(OBJS)\corelib_msgdlgg.obj \
$(OBJS)\corelib_numdlgg.obj \
- $(OBJS)\corelib_panelg.obj \
$(OBJS)\corelib_progdlgg.obj \
$(OBJS)\corelib_printps.obj \
$(OBJS)\corelib_renderg.obj \
@@ -8133,11 +8125,6 @@ $(OBJS)\monodll_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monodll_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -10525,11 +10512,6 @@ $(OBJS)\monolib_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monolib_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -12887,11 +12869,6 @@ $(OBJS)\coredll_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\coredll_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -14300,11 +14277,6 @@ $(OBJS)\corelib_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\corelib_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc
index 5973775952..7ecbd48b78 100644
--- a/build/msw/makefile.gcc
+++ b/build/msw/makefile.gcc
@@ -1981,7 +1981,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.o \
$(OBJS)\monodll_msgdlgg.o \
$(OBJS)\monodll_numdlgg.o \
- $(OBJS)\monodll_panelg.o \
$(OBJS)\monodll_progdlgg.o \
$(OBJS)\monodll_printps.o \
$(OBJS)\monodll_renderg.o \
@@ -2250,7 +2249,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.o \
$(OBJS)\monodll_msgdlgg.o \
$(OBJS)\monodll_numdlgg.o \
- $(OBJS)\monodll_panelg.o \
$(OBJS)\monodll_progdlgg.o \
$(OBJS)\monodll_printps.o \
$(OBJS)\monodll_renderg.o \
@@ -2766,7 +2764,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.o \
$(OBJS)\monolib_msgdlgg.o \
$(OBJS)\monolib_numdlgg.o \
- $(OBJS)\monolib_panelg.o \
$(OBJS)\monolib_progdlgg.o \
$(OBJS)\monolib_printps.o \
$(OBJS)\monolib_renderg.o \
@@ -3035,7 +3032,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.o \
$(OBJS)\monolib_msgdlgg.o \
$(OBJS)\monolib_numdlgg.o \
- $(OBJS)\monolib_panelg.o \
$(OBJS)\monolib_progdlgg.o \
$(OBJS)\monolib_printps.o \
$(OBJS)\monolib_renderg.o \
@@ -3444,7 +3440,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.o \
$(OBJS)\coredll_msgdlgg.o \
$(OBJS)\coredll_numdlgg.o \
- $(OBJS)\coredll_panelg.o \
$(OBJS)\coredll_progdlgg.o \
$(OBJS)\coredll_printps.o \
$(OBJS)\coredll_renderg.o \
@@ -3713,7 +3708,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.o \
$(OBJS)\coredll_msgdlgg.o \
$(OBJS)\coredll_numdlgg.o \
- $(OBJS)\coredll_panelg.o \
$(OBJS)\coredll_progdlgg.o \
$(OBJS)\coredll_printps.o \
$(OBJS)\coredll_renderg.o \
@@ -3996,7 +3990,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.o \
$(OBJS)\corelib_msgdlgg.o \
$(OBJS)\corelib_numdlgg.o \
- $(OBJS)\corelib_panelg.o \
$(OBJS)\corelib_progdlgg.o \
$(OBJS)\corelib_printps.o \
$(OBJS)\corelib_renderg.o \
@@ -4265,7 +4258,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.o \
$(OBJS)\corelib_msgdlgg.o \
$(OBJS)\corelib_numdlgg.o \
- $(OBJS)\corelib_panelg.o \
$(OBJS)\corelib_progdlgg.o \
$(OBJS)\corelib_printps.o \
$(OBJS)\corelib_renderg.o \
@@ -8301,11 +8293,6 @@ $(OBJS)\monodll_numdlgg.o: ../../src/generic/numdlgg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\monodll_panelg.o: ../../src/generic/panelg.cpp
- $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_progdlgg.o: ../../src/generic/progdlgg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -10693,11 +10680,6 @@ $(OBJS)\monolib_numdlgg.o: ../../src/generic/numdlgg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\monolib_panelg.o: ../../src/generic/panelg.cpp
- $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_progdlgg.o: ../../src/generic/progdlgg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -13055,11 +13037,6 @@ $(OBJS)\coredll_numdlgg.o: ../../src/generic/numdlgg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\coredll_panelg.o: ../../src/generic/panelg.cpp
- $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_progdlgg.o: ../../src/generic/progdlgg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -14468,11 +14445,6 @@ $(OBJS)\corelib_numdlgg.o: ../../src/generic/numdlgg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\corelib_panelg.o: ../../src/generic/panelg.cpp
- $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_progdlgg.o: ../../src/generic/progdlgg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc
index 2747640a40..51871e75ab 100644
--- a/build/msw/makefile.vc
+++ b/build/msw/makefile.vc
@@ -2183,7 +2183,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.obj \
$(OBJS)\monodll_msgdlgg.obj \
$(OBJS)\monodll_numdlgg.obj \
- $(OBJS)\monodll_panelg.obj \
$(OBJS)\monodll_progdlgg.obj \
$(OBJS)\monodll_printps.obj \
$(OBJS)\monodll_renderg.obj \
@@ -2450,7 +2449,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_markuptext.obj \
$(OBJS)\monodll_msgdlgg.obj \
$(OBJS)\monodll_numdlgg.obj \
- $(OBJS)\monodll_panelg.obj \
$(OBJS)\monodll_progdlgg.obj \
$(OBJS)\monodll_printps.obj \
$(OBJS)\monodll_renderg.obj \
@@ -2968,7 +2966,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.obj \
$(OBJS)\monolib_msgdlgg.obj \
$(OBJS)\monolib_numdlgg.obj \
- $(OBJS)\monolib_panelg.obj \
$(OBJS)\monolib_progdlgg.obj \
$(OBJS)\monolib_printps.obj \
$(OBJS)\monolib_renderg.obj \
@@ -3235,7 +3232,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_markuptext.obj \
$(OBJS)\monolib_msgdlgg.obj \
$(OBJS)\monolib_numdlgg.obj \
- $(OBJS)\monolib_panelg.obj \
$(OBJS)\monolib_progdlgg.obj \
$(OBJS)\monolib_printps.obj \
$(OBJS)\monolib_renderg.obj \
@@ -3696,7 +3692,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.obj \
$(OBJS)\coredll_msgdlgg.obj \
$(OBJS)\coredll_numdlgg.obj \
- $(OBJS)\coredll_panelg.obj \
$(OBJS)\coredll_progdlgg.obj \
$(OBJS)\coredll_printps.obj \
$(OBJS)\coredll_renderg.obj \
@@ -3963,7 +3958,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_markuptext.obj \
$(OBJS)\coredll_msgdlgg.obj \
$(OBJS)\coredll_numdlgg.obj \
- $(OBJS)\coredll_panelg.obj \
$(OBJS)\coredll_progdlgg.obj \
$(OBJS)\coredll_printps.obj \
$(OBJS)\coredll_renderg.obj \
@@ -4246,7 +4240,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.obj \
$(OBJS)\corelib_msgdlgg.obj \
$(OBJS)\corelib_numdlgg.obj \
- $(OBJS)\corelib_panelg.obj \
$(OBJS)\corelib_progdlgg.obj \
$(OBJS)\corelib_printps.obj \
$(OBJS)\corelib_renderg.obj \
@@ -4513,7 +4506,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_markuptext.obj \
$(OBJS)\corelib_msgdlgg.obj \
$(OBJS)\corelib_numdlgg.obj \
- $(OBJS)\corelib_panelg.obj \
$(OBJS)\corelib_progdlgg.obj \
$(OBJS)\corelib_printps.obj \
$(OBJS)\corelib_renderg.obj \
@@ -8739,11 +8731,6 @@ $(OBJS)\monodll_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monodll_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -11131,11 +11118,6 @@ $(OBJS)\monolib_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monolib_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -13493,11 +13475,6 @@ $(OBJS)\coredll_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\coredll_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
@@ -14906,11 +14883,6 @@ $(OBJS)\corelib_numdlgg.obj: ..\..\src\generic\numdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\numdlgg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\corelib_panelg.obj: ..\..\src\generic\panelg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\panelg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_progdlgg.obj: ..\..\src\generic\progdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\progdlgg.cpp
diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat
index 728f2d636e..f85b42f068 100644
--- a/build/msw/makefile.wat
+++ b/build/msw/makefile.wat
@@ -498,7 +498,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_markuptext.obj &
$(OBJS)\monodll_msgdlgg.obj &
$(OBJS)\monodll_numdlgg.obj &
- $(OBJS)\monodll_panelg.obj &
$(OBJS)\monodll_progdlgg.obj &
$(OBJS)\monodll_printps.obj &
$(OBJS)\monodll_renderg.obj &
@@ -767,7 +766,6 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_markuptext.obj &
$(OBJS)\monodll_msgdlgg.obj &
$(OBJS)\monodll_numdlgg.obj &
- $(OBJS)\monodll_panelg.obj &
$(OBJS)\monodll_progdlgg.obj &
$(OBJS)\monodll_printps.obj &
$(OBJS)\monodll_renderg.obj &
@@ -1288,7 +1286,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_markuptext.obj &
$(OBJS)\monolib_msgdlgg.obj &
$(OBJS)\monolib_numdlgg.obj &
- $(OBJS)\monolib_panelg.obj &
$(OBJS)\monolib_progdlgg.obj &
$(OBJS)\monolib_printps.obj &
$(OBJS)\monolib_renderg.obj &
@@ -1557,7 +1554,6 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_markuptext.obj &
$(OBJS)\monolib_msgdlgg.obj &
$(OBJS)\monolib_numdlgg.obj &
- $(OBJS)\monolib_panelg.obj &
$(OBJS)\monolib_progdlgg.obj &
$(OBJS)\monolib_printps.obj &
$(OBJS)\monolib_renderg.obj &
@@ -1977,7 +1973,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_markuptext.obj &
$(OBJS)\coredll_msgdlgg.obj &
$(OBJS)\coredll_numdlgg.obj &
- $(OBJS)\coredll_panelg.obj &
$(OBJS)\coredll_progdlgg.obj &
$(OBJS)\coredll_printps.obj &
$(OBJS)\coredll_renderg.obj &
@@ -2246,7 +2241,6 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_markuptext.obj &
$(OBJS)\coredll_msgdlgg.obj &
$(OBJS)\coredll_numdlgg.obj &
- $(OBJS)\coredll_panelg.obj &
$(OBJS)\coredll_progdlgg.obj &
$(OBJS)\coredll_printps.obj &
$(OBJS)\coredll_renderg.obj &
@@ -2531,7 +2525,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_markuptext.obj &
$(OBJS)\corelib_msgdlgg.obj &
$(OBJS)\corelib_numdlgg.obj &
- $(OBJS)\corelib_panelg.obj &
$(OBJS)\corelib_progdlgg.obj &
$(OBJS)\corelib_printps.obj &
$(OBJS)\corelib_renderg.obj &
@@ -2800,7 +2793,6 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_markuptext.obj &
$(OBJS)\corelib_msgdlgg.obj &
$(OBJS)\corelib_numdlgg.obj &
- $(OBJS)\corelib_panelg.obj &
$(OBJS)\corelib_progdlgg.obj &
$(OBJS)\corelib_printps.obj &
$(OBJS)\corelib_renderg.obj &
@@ -8572,11 +8564,6 @@ $(OBJS)\monodll_numdlgg.obj : .AUTODEPEND ..\..\src\generic\numdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\monodll_panelg.obj : .AUTODEPEND ..\..\src\generic\panelg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\monodll_progdlgg.obj : .AUTODEPEND ..\..\src\generic\progdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -10964,11 +10951,6 @@ $(OBJS)\monolib_numdlgg.obj : .AUTODEPEND ..\..\src\generic\numdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\monolib_panelg.obj : .AUTODEPEND ..\..\src\generic\panelg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\monolib_progdlgg.obj : .AUTODEPEND ..\..\src\generic\progdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -13326,11 +13308,6 @@ $(OBJS)\coredll_numdlgg.obj : .AUTODEPEND ..\..\src\generic\numdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\coredll_panelg.obj : .AUTODEPEND ..\..\src\generic\panelg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\coredll_progdlgg.obj : .AUTODEPEND ..\..\src\generic\progdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -14739,11 +14716,6 @@ $(OBJS)\corelib_numdlgg.obj : .AUTODEPEND ..\..\src\generic\numdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\corelib_panelg.obj : .AUTODEPEND ..\..\src\generic\panelg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\corelib_progdlgg.obj : .AUTODEPEND ..\..\src\generic\progdlgg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp
index 55f85c60f1..e9ee7ffc94 100644
--- a/build/msw/wx_core.dsp
+++ b/build/msw/wx_core.dsp
@@ -3244,10 +3244,6 @@ SOURCE=..\..\src\generic\numdlgg.cpp
# End Source File
# Begin Source File
-SOURCE=..\..\src\generic\panelg.cpp
-# End Source File
-# Begin Source File
-
SOURCE=..\..\src\generic\printps.cpp
# End Source File
# Begin Source File
@@ -5013,6 +5009,10 @@ SOURCE=..\..\include\wx\msw\cursor.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\msw\custombgwin.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\msw\ole\dataform.h
# End Source File
# Begin Source File
@@ -5504,6 +5504,10 @@ SOURCE=..\..\include\wx\generic\ctrlsub.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\generic\custombgwin.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\generic\dataview.h
# End Source File
# Begin Source File
@@ -5748,6 +5752,10 @@ SOURCE=..\..\include\wx\univ\control.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\univ\custombgwin.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\univ\dialog.h
# End Source File
# Begin Source File
@@ -6152,6 +6160,10 @@ SOURCE=..\..\include\wx\cursor.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\custombgwin.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\dataobj.h
# End Source File
# Begin Source File
diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj
index 0119ad154e..1f08edf19c 100644
--- a/build/msw/wx_vc7_core.vcproj
+++ b/build/msw/wx_vc7_core.vcproj
@@ -2849,9 +2849,6 @@
-
-
@@ -4322,6 +4319,9 @@
RelativePath="..\..\include\wx\msw\cursor.h">
+
+
+
+
+
+
+
+
-
-
@@ -5792,6 +5788,10 @@
>
+
+
@@ -6289,6 +6289,10 @@
>
+
+
@@ -6534,6 +6538,10 @@
>
+
+
@@ -6940,6 +6948,10 @@
>
+
+
diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj
index 431dd60e8f..4a088b8b7b 100644
--- a/build/msw/wx_vc9_core.vcproj
+++ b/build/msw/wx_vc9_core.vcproj
@@ -3828,10 +3828,6 @@
RelativePath="..\..\src\generic\numdlgg.cpp"
>
-
-
@@ -5788,6 +5784,10 @@
>
+
+
@@ -6285,6 +6285,10 @@
>
+
+
@@ -6530,6 +6534,10 @@
>
+
+
@@ -6936,6 +6944,10 @@
>
+
+
diff --git a/docs/changes.txt b/docs/changes.txt
index ac558b2a49..070a777433 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -444,6 +444,11 @@ Major new features in this release
2.9.3:
------
+INCOMPATIBLE CHANGES SINCE 2.9.2
+
+- wxPanel::SetBackgroundBitmap() was removed, derive your class from
+ wxCustomBackgroundWindow and use its method with the same name instead.
+
All:
- Fix parsing of negated long options in wxCmdLineParser (roed_bis).
diff --git a/docs/doxygen/mainpages/cat_classes.h b/docs/doxygen/mainpages/cat_classes.h
index c1a0dfacc7..ad5b0dedf4 100644
--- a/docs/doxygen/mainpages/cat_classes.h
+++ b/docs/doxygen/mainpages/cat_classes.h
@@ -255,7 +255,7 @@ The following are a variety of classes that are derived from wxWindow.
arrangement
@li wxWizardPage: A base class for the page in wizard dialog.
@li wxWizardPageSimple: A page in wizard dialog.
-
+@li wxCustomBackgroundWindow: A window allowing to set a custom bitmap.
@section page_class_cat_aui Window Docking (wxAUI)
diff --git a/include/wx/custombgwin.h b/include/wx/custombgwin.h
new file mode 100644
index 0000000000..b5684d1df3
--- /dev/null
+++ b/include/wx/custombgwin.h
@@ -0,0 +1,50 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/custombgwin.h
+// Purpose: Class adding support for custom window backgrounds.
+// Author: Vadim Zeitlin
+// Created: 2011-10-10
+// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
+// Copyright: (c) 2011 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_CUSTOMBGWIN_H_
+#define _WX_CUSTOMBGWIN_H_
+
+// ----------------------------------------------------------------------------
+// wxCustomBackgroundWindow: Adds support for custom backgrounds to any
+// wxWindow-derived class.
+// ----------------------------------------------------------------------------
+
+class wxCustomBackgroundWindowBase
+{
+public:
+ // Trivial default ctor.
+ wxCustomBackgroundWindowBase() { }
+
+ // Use the given bitmap to tile the background of this window. This bitmap
+ // will show through any transparent children.
+ //
+ // Notice that you must not prevent the base class EVT_ERASE_BACKGROUND
+ // handler from running (i.e. not to handle this event yourself) for this
+ // to work.
+ void SetBackgroundBitmap(const wxBitmap& bmp)
+ {
+ DoSetBackgroundBitmap(bmp);
+ }
+
+protected:
+ virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) = 0;
+
+ wxDECLARE_NO_COPY_CLASS(wxCustomBackgroundWindowBase);
+};
+
+#if defined(__WXUNIVERSAL__)
+ #include "wx/univ/custombgwin.h"
+#elif defined(__WXMSW__)
+ #include "wx/msw/custombgwin.h"
+#else
+ #include "wx/generic/custombgwin.h"
+#endif
+
+#endif // _WX_CUSTOMBGWIN_H_
diff --git a/include/wx/generic/custombgwin.h b/include/wx/generic/custombgwin.h
new file mode 100644
index 0000000000..bff6e65a6d
--- /dev/null
+++ b/include/wx/generic/custombgwin.h
@@ -0,0 +1,96 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/generic/custombgwin.h
+// Purpose: Generic implementation of wxCustomBackgroundWindow.
+// Author: Vadim Zeitlin
+// Created: 2011-10-10
+// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
+// Copyright: (c) 2011 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_GENERIC_CUSTOMBGWIN_H_
+#define _WX_GENERIC_CUSTOMBGWIN_H_
+
+#include "wx/bitmap.h"
+
+// A helper to avoid template bloat: this class contains all type-independent
+// code of wxCustomBackgroundWindow<> below.
+class wxCustomBackgroundWindowGenericBase : public wxCustomBackgroundWindowBase
+{
+public:
+ wxCustomBackgroundWindowGenericBase() { }
+
+protected:
+ void DoEraseBackground(wxEraseEvent& event, wxWindow* win)
+ {
+ wxDC& dc = *event.GetDC();
+
+ const wxSize clientSize = win->GetClientSize();
+ const wxSize bitmapSize = m_bitmapBg.GetSize();
+
+ for ( int x = 0; x < clientSize.x; x += bitmapSize.x )
+ {
+ for ( int y = 0; y < clientSize.y; y += bitmapSize.y )
+ {
+ dc.DrawBitmap(m_bitmapBg, x, y);
+ }
+ }
+ }
+
+
+ // The bitmap used for painting the background if valid.
+ wxBitmap m_bitmapBg;
+
+
+ wxDECLARE_NO_COPY_CLASS(wxCustomBackgroundWindowGenericBase);
+};
+
+// ----------------------------------------------------------------------------
+// wxCustomBackgroundWindow
+// ----------------------------------------------------------------------------
+
+template
+class wxCustomBackgroundWindow : public W,
+ public wxCustomBackgroundWindowGenericBase
+{
+public:
+ typedef W BaseWindowClass;
+
+ wxCustomBackgroundWindow() { }
+
+protected:
+ virtual void DoSetBackgroundBitmap(const wxBitmap& bmp)
+ {
+ m_bitmapBg = bmp;
+
+ if ( m_bitmapBg.IsOk() )
+ {
+ BaseWindowClass::Connect
+ (
+ wxEVT_ERASE_BACKGROUND,
+ wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground)
+ );
+ }
+ else
+ {
+ BaseWindowClass::Disconnect
+ (
+ wxEVT_ERASE_BACKGROUND,
+ wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground)
+ );
+ }
+ }
+
+private:
+ // Event handler for erasing the background which is only used when we have
+ // a valid background bitmap.
+ void OnEraseBackground(wxEraseEvent& event)
+ {
+ DoEraseBackground(event, this);
+ }
+
+
+ wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W);
+};
+
+#endif // _WX_GENERIC_CUSTOMBGWIN_H_
diff --git a/include/wx/generic/panelg.h b/include/wx/generic/panelg.h
index 9b87ee1a39..a23d64786e 100644
--- a/include/wx/generic/panelg.h
+++ b/include/wx/generic/panelg.h
@@ -42,18 +42,7 @@ public:
)
#endif // WXWIN_COMPATIBILITY_2_8
-protected:
- virtual void DoSetBackgroundBitmap(const wxBitmap& bmp);
-
private:
- // Event handler for erasing the background which is only used when we have
- // a valid background bitmap.
- void OnEraseBackground(wxEraseEvent& event);
-
-
- // The bitmap used for painting the background if valid.
- wxBitmap m_bitmapBg;
-
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel);
};
diff --git a/include/wx/msw/custombgwin.h b/include/wx/msw/custombgwin.h
new file mode 100644
index 0000000000..13c9da69dd
--- /dev/null
+++ b/include/wx/msw/custombgwin.h
@@ -0,0 +1,58 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/custombgwin.h
+// Purpose: wxMSW implementation of wxCustomBackgroundWindow
+// Author: Vadim Zeitlin
+// Created: 2011-10-10
+// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
+// Copyright: (c) 2011 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_CUSTOMBGWIN_H_
+#define _WX_MSW_CUSTOMBGWIN_H_
+
+#include "wx/bitmap.h"
+#include "wx/brush.h"
+
+// ----------------------------------------------------------------------------
+// wxCustomBackgroundWindow
+// ----------------------------------------------------------------------------
+
+template
+class wxCustomBackgroundWindow : public W,
+ public wxCustomBackgroundWindowBase
+{
+public:
+ typedef W BaseWindowClass;
+
+ wxCustomBackgroundWindow() { m_backgroundBrush = NULL; }
+
+ virtual ~wxCustomBackgroundWindow() { delete m_backgroundBrush; }
+
+protected:
+ virtual void DoSetBackgroundBitmap(const wxBitmap& bmp)
+ {
+ delete m_backgroundBrush;
+ m_backgroundBrush = bmp.IsOk() ? new wxBrush(bmp) : NULL;
+
+ // Our transparent children should use our background if we have it,
+ // otherwise try to restore m_inheritBgCol to some reasonable value: true
+ // if we also have non-default background colour or false otherwise.
+ BaseWindowClass::m_inheritBgCol = bmp.IsOk()
+ || BaseWindowClass::UseBgCol();
+ }
+
+ virtual WXHBRUSH MSWGetCustomBgBrush()
+ {
+ if ( m_backgroundBrush )
+ return (WXHBRUSH)m_backgroundBrush->GetResourceHandle();
+
+ return BaseWindowClass::MSWGetCustomBgBrush();
+ }
+
+ wxBrush *m_backgroundBrush;
+
+ wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W);
+};
+
+#endif // _WX_MSW_CUSTOMBGWIN_H_
diff --git a/include/wx/msw/panel.h b/include/wx/msw/panel.h
index 4761192d66..690f54438e 100644
--- a/include/wx/msw/panel.h
+++ b/include/wx/msw/panel.h
@@ -20,7 +20,7 @@ class WXDLLIMPEXP_FWD_CORE wxBrush;
class WXDLLIMPEXP_CORE wxPanel : public wxPanelBase
{
public:
- wxPanel() { Init(); }
+ wxPanel() { }
wxPanel(wxWindow *parent,
wxWindowID winid = wxID_ANY,
@@ -29,13 +29,9 @@ public:
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
const wxString& name = wxPanelNameStr)
{
- Init();
-
Create(parent, winid, pos, size, style, name);
}
- virtual ~wxPanel();
-
// This is overridden for MSW to return true for all panels that are child
// of a window with themed background (such as wxNotebook) which should
// show through the child panels.
@@ -54,18 +50,7 @@ public:
)
#endif // WXWIN_COMPATIBILITY_2_8
-protected:
- void Init()
- {
- m_backgroundBrush = NULL;
- }
-
- virtual void DoSetBackgroundBitmap(const wxBitmap& bmp);
- virtual WXHBRUSH MSWGetCustomBgBrush();
-
private:
- wxBrush *m_backgroundBrush;
-
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel);
};
diff --git a/include/wx/panel.h b/include/wx/panel.h
index bb93a5771b..8f22d180fe 100644
--- a/include/wx/panel.h
+++ b/include/wx/panel.h
@@ -52,26 +52,11 @@ public:
const wxString& name = wxPanelNameStr);
- // Use the given bitmap to tile the background of this panel. This bitmap
- // will show through any transparent children.
- //
- // Notice that you must not prevent the base class EVT_ERASE_BACKGROUND
- // handler from running (i.e. not to handle this event yourself) for this
- // to work.
- void SetBackgroundBitmap(const wxBitmap& bmp)
- {
- DoSetBackgroundBitmap(bmp);
- }
-
-
// implementation from now on
// --------------------------
virtual void InitDialog();
-protected:
- virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) = 0;
-
private:
wxDECLARE_NO_COPY_CLASS(wxPanelBase);
};
diff --git a/include/wx/univ/custombgwin.h b/include/wx/univ/custombgwin.h
new file mode 100644
index 0000000000..f3e2ca39d3
--- /dev/null
+++ b/include/wx/univ/custombgwin.h
@@ -0,0 +1,37 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/univ/custombgwin.h
+// Purpose: wxUniv implementation of wxCustomBackgroundWindow.
+// Author: Vadim Zeitlin
+// Created: 2011-10-10
+// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
+// Copyright: (c) 2011 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_UNIV_CUSTOMBGWIN_H_
+#define _WX_UNIV_CUSTOMBGWIN_H_
+
+// ----------------------------------------------------------------------------
+// wxCustomBackgroundWindow
+// ----------------------------------------------------------------------------
+
+template
+class wxCustomBackgroundWindow : public W,
+ public wxCustomBackgroundWindowBase
+{
+public:
+ typedef W BaseWindowClass;
+
+ wxCustomBackgroundWindow() { }
+
+protected:
+ virtual void DoSetBackgroundBitmap(const wxBitmap& bmp)
+ {
+ // We have support for background bitmap even at the base class level.
+ BaseWindowClass::SetBackground(bmp, wxALIGN_NOT, wxTILE);
+ }
+
+ wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W);
+};
+
+#endif // _WX_UNIV_CUSTOMBGWIN_H_
diff --git a/include/wx/univ/panel.h b/include/wx/univ/panel.h
index f6bd7c2137..19f0d52dc0 100644
--- a/include/wx/univ/panel.h
+++ b/include/wx/univ/panel.h
@@ -44,13 +44,6 @@ public:
)
#endif // WXWIN_COMPATIBILITY_2_8
-protected:
- virtual void DoSetBackgroundBitmap(const wxBitmap& bmp)
- {
- // We have support for background bitmap even at the base class level.
- SetBackground(bmp, wxALIGN_NOT, wxTILE);
- }
-
private:
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel);
};
diff --git a/interface/wx/custombgwin.h b/interface/wx/custombgwin.h
new file mode 100644
index 0000000000..faab09bd65
--- /dev/null
+++ b/interface/wx/custombgwin.h
@@ -0,0 +1,67 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/custombgwin.h
+// Purpose: Documentation of wxCustomBackgroundWindow.
+// Author: Vadim Zeitlin
+// Created: 2011-10-10
+// RCS-ID: $Id$
+// Copyright: (c) 2011 Vadim Zeitlin
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+ A helper class making it possible to use custom background for any window.
+
+ wxWindow itself only provides SetBackgroundColour() method taking a (solid)
+ wxColour. This class extends it by allowing to use custom bitmap
+ backgrounds with any window, provided that you inherit from it. Notice that
+ the usual rule of not interfering with event handling or painting of native
+ controls still applies, so you shouldn't try to use custom backgrounds with
+ classes such as wxButton (even if this might work on some platforms, it's
+ not guaranteed to work in general). But you can use this class in
+ conjunction with wxWindow, wxPanel, wxFrame and other similar classes, e.g.
+ the erase sample shows how to use it with wxScrolledWindow:
+
+ @code
+ #include "wx/custombgwin.h"
+
+ class MyCanvas : public wxCustomBackgroundWindow
+ {
+ public:
+ MyCanvas(wxWindow* parent)
+ {
+ // Notice that we must explicitly call base class Create()
+ // instead of using its ctor as wxCustomBackgroundWindow
+ // doesn't define any non-default ctors.
+ Create(parent, wxID_ANY);
+
+ ...
+
+ SetBackgroundBitmap(bitmap);
+ }
+ };
+ @endcode
+
+ @category{miscwnd}
+
+ @since 2.9.3
+ */
+template
+class wxCustomBackgroundWindow : public W
+{
+public:
+ /// Trivial default constructor.
+ wxCustomBackgroundWindow();
+
+ /**
+ Set the background bitmap for this window.
+
+ If @a bmp is a valid bitmap, this bitmap will be tiled over the panel
+ background and show through any of its transparent children. Passing an
+ invalid bitmap reverts to the default background appearance.
+
+ Notice that you must not prevent the base class EVT_ERASE_BACKGROUND
+ handler from running (i.e. not to handle this event yourself) for this
+ to work.
+ */
+ void SetBackgroundBitmap(const wxBitmap& bmp);
+};
diff --git a/interface/wx/panel.h b/interface/wx/panel.h
index cc65780d66..b1e83bd223 100644
--- a/interface/wx/panel.h
+++ b/interface/wx/panel.h
@@ -124,21 +124,6 @@ public:
*/
void OnSysColourChanged(wxSysColourChangedEvent& event);
- /**
- Set the background bitmap for this panel.
-
- If @a bmp is a valid bitmap, this bitmap will be tiled over the panel
- background and show through any of its transparent children. Passing an
- invalid bitmap reverts to the default background appearance.
-
- Notice that you must not prevent the base class EVT_ERASE_BACKGROUND
- handler from running (i.e. not to handle this event yourself) for this
- to work.
-
- @since 2.9.2
- */
- void SetBackgroundBitmap(const wxBitmap& bmp);
-
/**
Overrides wxWindow::SetFocus().
diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp
index 138b3fa2bc..bb452f239a 100644
--- a/samples/erase/erase.cpp
+++ b/samples/erase/erase.cpp
@@ -30,6 +30,7 @@
#include "wx/wx.h"
#endif
+#include "wx/custombgwin.h"
#include "wx/dcbuffer.h"
// ----------------------------------------------------------------------------
@@ -52,7 +53,7 @@ public:
};
-class MyCanvas : public wxScrolledWindow
+class MyCanvas : public wxCustomBackgroundWindow
{
public:
MyCanvas(wxFrame *parent);
@@ -310,8 +311,9 @@ BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
END_EVENT_TABLE()
MyCanvas::MyCanvas(wxFrame *parent)
- : wxScrolledWindow(parent, wxID_ANY)
{
+ Create(parent, wxID_ANY);
+
m_useBuffer = false;
m_useBgBmp = false;
m_eraseBgInPaint = false;
diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp
deleted file mode 100644
index d539393dbe..0000000000
--- a/src/generic/panelg.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Name: src/generic/panelg.cpp
-// Purpose: Generic wxPanel implementation.
-// Author: Vadim Zeitlin
-// Created: 2011-03-20
-// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
-// Copyright: (c) 2011 Vadim Zeitlin
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
-// for compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
- #include "wx/dc.h"
- #include "wx/panel.h"
-#endif // WX_PRECOMP
-
-#ifdef wxHAS_GENERIC_PANEL
-
-// ============================================================================
-// implementation
-// ============================================================================
-
-void wxPanel::DoSetBackgroundBitmap(const wxBitmap& bmp)
-{
- m_bitmapBg = bmp;
-
- if ( m_bitmapBg.IsOk() )
- {
- Connect(wxEVT_ERASE_BACKGROUND,
- wxEraseEventHandler(wxPanel::OnEraseBackground));
- }
- else
- {
- Disconnect(wxEVT_ERASE_BACKGROUND,
- wxEraseEventHandler(wxPanel::OnEraseBackground));
- }
-}
-
-void wxPanel::OnEraseBackground(wxEraseEvent& event)
-{
- wxDC& dc = *event.GetDC();
-
- const wxSize clientSize = GetClientSize();
- const wxSize bitmapSize = m_bitmapBg.GetSize();
-
- for ( int x = 0; x < clientSize.x; x += bitmapSize.x )
- {
- for ( int y = 0; y < clientSize.y; y += bitmapSize.y )
- {
- dc.DrawBitmap(m_bitmapBg, x, y);
- }
- }
-}
-
-#endif // wxHAS_GENERIC_PANEL
diff --git a/src/msw/panel.cpp b/src/msw/panel.cpp
index c502caf9f5..9d30beb7a0 100644
--- a/src/msw/panel.cpp
+++ b/src/msw/panel.cpp
@@ -24,8 +24,6 @@
#endif
#ifndef WX_PRECOMP
- #include "wx/bitmap.h"
- #include "wx/brush.h"
#include "wx/panel.h"
#endif // WX_PRECOMP
@@ -33,11 +31,6 @@
// implementation
// ============================================================================
-wxPanel::~wxPanel()
-{
- delete m_backgroundBrush;
-}
-
bool wxPanel::HasTransparentBackground()
{
for ( wxWindow *win = GetParent(); win; win = win->GetParent() )
@@ -52,21 +45,3 @@ bool wxPanel::HasTransparentBackground()
return false;
}
-void wxPanel::DoSetBackgroundBitmap(const wxBitmap& bmp)
-{
- delete m_backgroundBrush;
- m_backgroundBrush = bmp.IsOk() ? new wxBrush(bmp) : NULL;
-
- // Our transparent children should use our background if we have it,
- // otherwise try to restore m_inheritBgCol to some reasonable value: true
- // if we also have non-default background colour or false otherwise.
- m_inheritBgCol = bmp.IsOk() || UseBgCol();
-}
-
-WXHBRUSH wxPanel::MSWGetCustomBgBrush()
-{
- if ( m_backgroundBrush )
- return (WXHBRUSH)m_backgroundBrush->GetResourceHandle();
-
- return wxPanelBase::MSWGetCustomBgBrush();
-}