diff --git a/Makefile.in b/Makefile.in
index 8913819b39..adbe666d46 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2744,6 +2744,8 @@ COND_TOOLKIT_MSW_GUI_HDR = \
wx/msw/frame.h \
wx/msw/gauge.h \
wx/msw/gdiimage.h \
+ wx/msw/headercol.h \
+ wx/msw/headerctrl.h \
wx/msw/icon.h \
wx/msw/imaglist.h \
wx/msw/iniconf.h \
@@ -3283,6 +3285,8 @@ COND_TOOLKIT_WINCE_GUI_HDR = \
wx/msw/frame.h \
wx/msw/gauge.h \
wx/msw/gdiimage.h \
+ wx/msw/headercol.h \
+ wx/msw/headerctrl.h \
wx/msw/icon.h \
wx/msw/imaglist.h \
wx/msw/iniconf.h \
@@ -3635,6 +3639,8 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/generic/dirctrlg.h \
wx/generic/dragimgg.h \
wx/generic/filectrlg.h \
+ wx/generic/headercol.h \
+ wx/generic/headerctrl.h \
wx/generic/logg.h \
wx/generic/msgdlgg.h \
wx/generic/numdlgg.h \
@@ -3652,6 +3658,8 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/generic/textdlgg.h \
wx/generic/treectlg.h \
wx/graphics.h \
+ wx/headercol.h \
+ wx/headerctrl.h \
wx/helphtml.h \
wx/icon.h \
wx/layout.h \
@@ -4215,6 +4223,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
monodll_geometry.o \
monodll_gifdecod.o \
monodll_graphcmn.o \
+ monodll_headercolcmn.o \
+ monodll_headerctrlcmn.o \
monodll_helpbase.o \
monodll_iconbndl.o \
monodll_imagall.o \
@@ -4272,6 +4282,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
monodll_dirctrlg.o \
monodll_dragimgg.o \
monodll_filectrlg.o \
+ monodll_headercolg.o \
+ monodll_headerctrlg.o \
monodll_listbkg.o \
monodll_logg.o \
monodll_numdlgg.o \
@@ -4402,6 +4414,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_geometry.o \
monodll_gifdecod.o \
monodll_graphcmn.o \
+ monodll_headercolcmn.o \
+ monodll_headerctrlcmn.o \
monodll_helpbase.o \
monodll_iconbndl.o \
monodll_imagall.o \
@@ -4459,6 +4473,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_dirctrlg.o \
monodll_dragimgg.o \
monodll_filectrlg.o \
+ monodll_headercolg.o \
+ monodll_headerctrlg.o \
monodll_listbkg.o \
monodll_logg.o \
monodll_numdlgg.o \
@@ -5068,6 +5084,8 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS = \
monodll_msw_filedlg.o \
monodll_msw_frame.o \
monodll_msw_gauge.o \
+ monodll_headercol.o \
+ monodll_headerctrl.o \
monodll_msw_iniconf.o \
monodll_msw_listbox.o \
monodll_msw_listctrl.o \
@@ -5303,6 +5321,8 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS = \
monodll_msw_filedlg.o \
monodll_msw_frame.o \
monodll_msw_gauge.o \
+ monodll_headercol.o \
+ monodll_headerctrl.o \
monodll_msw_iniconf.o \
monodll_msw_listbox.o \
monodll_msw_listctrl.o \
@@ -6027,6 +6047,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
monolib_geometry.o \
monolib_gifdecod.o \
monolib_graphcmn.o \
+ monolib_headercolcmn.o \
+ monolib_headerctrlcmn.o \
monolib_helpbase.o \
monolib_iconbndl.o \
monolib_imagall.o \
@@ -6084,6 +6106,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
monolib_dirctrlg.o \
monolib_dragimgg.o \
monolib_filectrlg.o \
+ monolib_headercolg.o \
+ monolib_headerctrlg.o \
monolib_listbkg.o \
monolib_logg.o \
monolib_numdlgg.o \
@@ -6214,6 +6238,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_geometry.o \
monolib_gifdecod.o \
monolib_graphcmn.o \
+ monolib_headercolcmn.o \
+ monolib_headerctrlcmn.o \
monolib_helpbase.o \
monolib_iconbndl.o \
monolib_imagall.o \
@@ -6271,6 +6297,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_dirctrlg.o \
monolib_dragimgg.o \
monolib_filectrlg.o \
+ monolib_headercolg.o \
+ monolib_headerctrlg.o \
monolib_listbkg.o \
monolib_logg.o \
monolib_numdlgg.o \
@@ -6880,6 +6908,8 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_1 = \
monolib_msw_filedlg.o \
monolib_msw_frame.o \
monolib_msw_gauge.o \
+ monolib_headercol.o \
+ monolib_headerctrl.o \
monolib_msw_iniconf.o \
monolib_msw_listbox.o \
monolib_msw_listctrl.o \
@@ -7115,6 +7145,8 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_1 = \
monolib_msw_filedlg.o \
monolib_msw_frame.o \
monolib_msw_gauge.o \
+ monolib_headercol.o \
+ monolib_headerctrl.o \
monolib_msw_iniconf.o \
monolib_msw_listbox.o \
monolib_msw_listctrl.o \
@@ -7989,6 +8021,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
coredll_geometry.o \
coredll_gifdecod.o \
coredll_graphcmn.o \
+ coredll_headercolcmn.o \
+ coredll_headerctrlcmn.o \
coredll_helpbase.o \
coredll_iconbndl.o \
coredll_imagall.o \
@@ -8046,6 +8080,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
coredll_dirctrlg.o \
coredll_dragimgg.o \
coredll_filectrlg.o \
+ coredll_headercolg.o \
+ coredll_headerctrlg.o \
coredll_listbkg.o \
coredll_logg.o \
coredll_numdlgg.o \
@@ -8176,6 +8212,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_geometry.o \
coredll_gifdecod.o \
coredll_graphcmn.o \
+ coredll_headercolcmn.o \
+ coredll_headerctrlcmn.o \
coredll_helpbase.o \
coredll_iconbndl.o \
coredll_imagall.o \
@@ -8233,6 +8271,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_dirctrlg.o \
coredll_dragimgg.o \
coredll_filectrlg.o \
+ coredll_headercolg.o \
+ coredll_headerctrlg.o \
coredll_listbkg.o \
coredll_logg.o \
coredll_numdlgg.o \
@@ -8842,6 +8882,8 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_2 = \
coredll_msw_filedlg.o \
coredll_msw_frame.o \
coredll_msw_gauge.o \
+ coredll_headercol.o \
+ coredll_headerctrl.o \
coredll_msw_iniconf.o \
coredll_msw_listbox.o \
coredll_msw_listctrl.o \
@@ -9077,6 +9119,8 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_2 = \
coredll_msw_filedlg.o \
coredll_msw_frame.o \
coredll_msw_gauge.o \
+ coredll_headercol.o \
+ coredll_headerctrl.o \
coredll_msw_iniconf.o \
coredll_msw_listbox.o \
coredll_msw_listctrl.o \
@@ -9493,6 +9537,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
corelib_geometry.o \
corelib_gifdecod.o \
corelib_graphcmn.o \
+ corelib_headercolcmn.o \
+ corelib_headerctrlcmn.o \
corelib_helpbase.o \
corelib_iconbndl.o \
corelib_imagall.o \
@@ -9550,6 +9596,8 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
corelib_dirctrlg.o \
corelib_dragimgg.o \
corelib_filectrlg.o \
+ corelib_headercolg.o \
+ corelib_headerctrlg.o \
corelib_listbkg.o \
corelib_logg.o \
corelib_numdlgg.o \
@@ -9680,6 +9728,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_geometry.o \
corelib_gifdecod.o \
corelib_graphcmn.o \
+ corelib_headercolcmn.o \
+ corelib_headerctrlcmn.o \
corelib_helpbase.o \
corelib_iconbndl.o \
corelib_imagall.o \
@@ -9737,6 +9787,8 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_dirctrlg.o \
corelib_dragimgg.o \
corelib_filectrlg.o \
+ corelib_headercolg.o \
+ corelib_headerctrlg.o \
corelib_listbkg.o \
corelib_logg.o \
corelib_numdlgg.o \
@@ -10346,6 +10398,8 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_3 = \
corelib_msw_filedlg.o \
corelib_msw_frame.o \
corelib_msw_gauge.o \
+ corelib_headercol.o \
+ corelib_headerctrl.o \
corelib_msw_iniconf.o \
corelib_msw_listbox.o \
corelib_msw_listctrl.o \
@@ -10581,6 +10635,8 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_3 = \
corelib_msw_filedlg.o \
corelib_msw_frame.o \
corelib_msw_gauge.o \
+ corelib_headercol.o \
+ corelib_headerctrl.o \
corelib_msw_iniconf.o \
corelib_msw_listbox.o \
corelib_msw_listctrl.o \
@@ -17722,6 +17778,18 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_msw_iniconf.o: $(srcdir)/src/msw/iniconf.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/iniconf.cpp
@@ -18232,6 +18300,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_graphcmn.o: $(srcdir)/src/common/graphcmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/graphcmn.cpp
+@COND_USE_GUI_1@monodll_headercolcmn.o: $(srcdir)/src/common/headercolcmn.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/headercolcmn.cpp
+
+@COND_USE_GUI_1@monodll_headerctrlcmn.o: $(srcdir)/src/common/headerctrlcmn.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/headerctrlcmn.cpp
+
@COND_USE_GUI_1@monodll_helpbase.o: $(srcdir)/src/common/helpbase.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/helpbase.cpp
@@ -18403,6 +18477,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
+@COND_USE_GUI_1@monodll_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
+
+@COND_USE_GUI_1@monodll_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
+
@COND_USE_GUI_1@monodll_listbkg.o: $(srcdir)/src/generic/listbkg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/listbkg.cpp
@@ -22402,6 +22482,18 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_msw_iniconf.o: $(srcdir)/src/msw/iniconf.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/iniconf.cpp
@@ -22912,6 +23004,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_graphcmn.o: $(srcdir)/src/common/graphcmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/graphcmn.cpp
+@COND_USE_GUI_1@monolib_headercolcmn.o: $(srcdir)/src/common/headercolcmn.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/headercolcmn.cpp
+
+@COND_USE_GUI_1@monolib_headerctrlcmn.o: $(srcdir)/src/common/headerctrlcmn.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/headerctrlcmn.cpp
+
@COND_USE_GUI_1@monolib_helpbase.o: $(srcdir)/src/common/helpbase.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/helpbase.cpp
@@ -23083,6 +23181,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
+@COND_USE_GUI_1@monolib_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
+
+@COND_USE_GUI_1@monolib_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
+
@COND_USE_GUI_1@monolib_listbkg.o: $(srcdir)/src/generic/listbkg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/listbkg.cpp
@@ -27271,6 +27375,18 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(COREDLL_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(COREDLL_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(COREDLL_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(COREDLL_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_msw_iniconf.o: $(srcdir)/src/msw/iniconf.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/iniconf.cpp
@@ -27781,6 +27897,12 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_graphcmn.o: $(srcdir)/src/common/graphcmn.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/graphcmn.cpp
+@COND_USE_GUI_1@coredll_headercolcmn.o: $(srcdir)/src/common/headercolcmn.cpp $(COREDLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/headercolcmn.cpp
+
+@COND_USE_GUI_1@coredll_headerctrlcmn.o: $(srcdir)/src/common/headerctrlcmn.cpp $(COREDLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/headerctrlcmn.cpp
+
@COND_USE_GUI_1@coredll_helpbase.o: $(srcdir)/src/common/helpbase.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/helpbase.cpp
@@ -27952,6 +28074,12 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
+@COND_USE_GUI_1@coredll_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(COREDLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
+
+@COND_USE_GUI_1@coredll_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(COREDLL_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
+
@COND_USE_GUI_1@coredll_listbkg.o: $(srcdir)/src/generic/listbkg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/listbkg.cpp
@@ -30778,6 +30906,18 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(CORELIB_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(CORELIB_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
+
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(CORELIB_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(CORELIB_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
+
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_msw_iniconf.o: $(srcdir)/src/msw/iniconf.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/iniconf.cpp
@@ -31288,6 +31428,12 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_graphcmn.o: $(srcdir)/src/common/graphcmn.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/graphcmn.cpp
+@COND_USE_GUI_1@corelib_headercolcmn.o: $(srcdir)/src/common/headercolcmn.cpp $(CORELIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/headercolcmn.cpp
+
+@COND_USE_GUI_1@corelib_headerctrlcmn.o: $(srcdir)/src/common/headerctrlcmn.cpp $(CORELIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/headerctrlcmn.cpp
+
@COND_USE_GUI_1@corelib_helpbase.o: $(srcdir)/src/common/helpbase.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/helpbase.cpp
@@ -31459,6 +31605,12 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
+@COND_USE_GUI_1@corelib_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(CORELIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
+
+@COND_USE_GUI_1@corelib_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(CORELIB_ODEP)
+@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
+
@COND_USE_GUI_1@corelib_listbkg.o: $(srcdir)/src/generic/listbkg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/listbkg.cpp
diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl
index 4a8dd29745..12ae0f58cd 100644
--- a/build/bakefiles/files.bkl
+++ b/build/bakefiles/files.bkl
@@ -654,6 +654,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/common/geometry.cpp
src/common/gifdecod.cpp
src/common/graphcmn.cpp
+ src/common/headercolcmn.cpp
+ src/common/headerctrlcmn.cpp
src/common/helpbase.cpp
src/common/iconbndl.cpp
src/common/imagall.cpp
@@ -711,6 +713,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/generic/dirctrlg.cpp
src/generic/dragimgg.cpp
src/generic/filectrlg.cpp
+ src/generic/headercolg.cpp
+ src/generic/headerctrlg.cpp
src/generic/listbkg.cpp
src/generic/logg.cpp
src/generic/numdlgg.cpp
@@ -774,6 +778,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/generic/dirctrlg.h
wx/generic/dragimgg.h
wx/generic/filectrlg.h
+ wx/generic/headercol.h
+ wx/generic/headerctrl.h
wx/generic/logg.h
wx/generic/msgdlgg.h
wx/generic/numdlgg.h
@@ -791,6 +797,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/generic/textdlgg.h
wx/generic/treectlg.h
wx/graphics.h
+ wx/headercol.h
+ wx/headerctrl.h
wx/helphtml.h
wx/icon.h
wx/layout.h
@@ -1639,6 +1647,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/msw/filedlg.cpp
src/msw/frame.cpp
src/msw/gauge.cpp
+ src/msw/headercol.cpp
+ src/msw/headerctrl.cpp
src/msw/iniconf.cpp
src/msw/listbox.cpp
src/msw/listctrl.cpp
@@ -1708,6 +1718,8 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/msw/frame.h
wx/msw/gauge.h
wx/msw/gdiimage.h
+ wx/msw/headercol.h
+ wx/msw/headerctrl.h
wx/msw/icon.h
wx/msw/imaglist.h
wx/msw/iniconf.h
diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc
index 30b6a74c78..acccaaccce 100644
--- a/build/msw/makefile.bcc
+++ b/build/msw/makefile.bcc
@@ -1599,6 +1599,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_filedlg.obj \
$(OBJS)\monodll_frame.obj \
$(OBJS)\monodll_gauge.obj \
+ $(OBJS)\monodll_headercol.obj \
+ $(OBJS)\monodll_headerctrl.obj \
$(OBJS)\monodll_iniconf.obj \
$(OBJS)\monodll_listbox.obj \
$(OBJS)\monodll_listctrl.obj \
@@ -1682,6 +1684,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.obj \
$(OBJS)\monodll_gifdecod.obj \
$(OBJS)\monodll_graphcmn.obj \
+ $(OBJS)\monodll_headercolcmn.obj \
+ $(OBJS)\monodll_headerctrlcmn.obj \
$(OBJS)\monodll_helpbase.obj \
$(OBJS)\monodll_iconbndl.obj \
$(OBJS)\monodll_imagall.obj \
@@ -1739,6 +1743,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
+ $(OBJS)\monodll_headercolg.obj \
+ $(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_numdlgg.obj \
@@ -1916,6 +1922,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.obj \
$(OBJS)\monodll_gifdecod.obj \
$(OBJS)\monodll_graphcmn.obj \
+ $(OBJS)\monodll_headercolcmn.obj \
+ $(OBJS)\monodll_headerctrlcmn.obj \
$(OBJS)\monodll_helpbase.obj \
$(OBJS)\monodll_iconbndl.obj \
$(OBJS)\monodll_imagall.obj \
@@ -1973,6 +1981,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
+ $(OBJS)\monodll_headercolg.obj \
+ $(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_numdlgg.obj \
@@ -2267,6 +2277,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_filedlg.obj \
$(OBJS)\monolib_frame.obj \
$(OBJS)\monolib_gauge.obj \
+ $(OBJS)\monolib_headercol.obj \
+ $(OBJS)\monolib_headerctrl.obj \
$(OBJS)\monolib_iniconf.obj \
$(OBJS)\monolib_listbox.obj \
$(OBJS)\monolib_listctrl.obj \
@@ -2350,6 +2362,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.obj \
$(OBJS)\monolib_gifdecod.obj \
$(OBJS)\monolib_graphcmn.obj \
+ $(OBJS)\monolib_headercolcmn.obj \
+ $(OBJS)\monolib_headerctrlcmn.obj \
$(OBJS)\monolib_helpbase.obj \
$(OBJS)\monolib_iconbndl.obj \
$(OBJS)\monolib_imagall.obj \
@@ -2407,6 +2421,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
+ $(OBJS)\monolib_headercolg.obj \
+ $(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_numdlgg.obj \
@@ -2584,6 +2600,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.obj \
$(OBJS)\monolib_gifdecod.obj \
$(OBJS)\monolib_graphcmn.obj \
+ $(OBJS)\monolib_headercolcmn.obj \
+ $(OBJS)\monolib_headerctrlcmn.obj \
$(OBJS)\monolib_helpbase.obj \
$(OBJS)\monolib_iconbndl.obj \
$(OBJS)\monolib_imagall.obj \
@@ -2641,6 +2659,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
+ $(OBJS)\monolib_headercolg.obj \
+ $(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_numdlgg.obj \
@@ -2840,6 +2860,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_filedlg.obj \
$(OBJS)\coredll_frame.obj \
$(OBJS)\coredll_gauge.obj \
+ $(OBJS)\coredll_headercol.obj \
+ $(OBJS)\coredll_headerctrl.obj \
$(OBJS)\coredll_iniconf.obj \
$(OBJS)\coredll_listbox.obj \
$(OBJS)\coredll_listctrl.obj \
@@ -2923,6 +2945,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.obj \
$(OBJS)\coredll_gifdecod.obj \
$(OBJS)\coredll_graphcmn.obj \
+ $(OBJS)\coredll_headercolcmn.obj \
+ $(OBJS)\coredll_headerctrlcmn.obj \
$(OBJS)\coredll_helpbase.obj \
$(OBJS)\coredll_iconbndl.obj \
$(OBJS)\coredll_imagall.obj \
@@ -2980,6 +3004,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
+ $(OBJS)\coredll_headercolg.obj \
+ $(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_numdlgg.obj \
@@ -3157,6 +3183,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.obj \
$(OBJS)\coredll_gifdecod.obj \
$(OBJS)\coredll_graphcmn.obj \
+ $(OBJS)\coredll_headercolcmn.obj \
+ $(OBJS)\coredll_headerctrlcmn.obj \
$(OBJS)\coredll_helpbase.obj \
$(OBJS)\coredll_iconbndl.obj \
$(OBJS)\coredll_imagall.obj \
@@ -3214,6 +3242,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
+ $(OBJS)\coredll_headercolg.obj \
+ $(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_numdlgg.obj \
@@ -3312,6 +3342,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_filedlg.obj \
$(OBJS)\corelib_frame.obj \
$(OBJS)\corelib_gauge.obj \
+ $(OBJS)\corelib_headercol.obj \
+ $(OBJS)\corelib_headerctrl.obj \
$(OBJS)\corelib_iniconf.obj \
$(OBJS)\corelib_listbox.obj \
$(OBJS)\corelib_listctrl.obj \
@@ -3395,6 +3427,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.obj \
$(OBJS)\corelib_gifdecod.obj \
$(OBJS)\corelib_graphcmn.obj \
+ $(OBJS)\corelib_headercolcmn.obj \
+ $(OBJS)\corelib_headerctrlcmn.obj \
$(OBJS)\corelib_helpbase.obj \
$(OBJS)\corelib_iconbndl.obj \
$(OBJS)\corelib_imagall.obj \
@@ -3452,6 +3486,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
+ $(OBJS)\corelib_headercolg.obj \
+ $(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_numdlgg.obj \
@@ -3629,6 +3665,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.obj \
$(OBJS)\corelib_gifdecod.obj \
$(OBJS)\corelib_graphcmn.obj \
+ $(OBJS)\corelib_headercolcmn.obj \
+ $(OBJS)\corelib_headerctrlcmn.obj \
$(OBJS)\corelib_helpbase.obj \
$(OBJS)\corelib_iconbndl.obj \
$(OBJS)\corelib_imagall.obj \
@@ -3686,6 +3724,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
+ $(OBJS)\corelib_headercolg.obj \
+ $(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_numdlgg.obj \
@@ -5711,6 +5751,12 @@ $(OBJS)\monodll_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\monodll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\monodll_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\monodll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\monodll_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -6980,6 +7026,16 @@ $(OBJS)\monodll_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -7265,6 +7321,16 @@ $(OBJS)\monodll_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -7902,6 +7968,12 @@ $(OBJS)\monolib_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\monolib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\monolib_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\monolib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\monolib_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -9171,6 +9243,16 @@ $(OBJS)\monolib_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -9456,6 +9538,16 @@ $(OBJS)\monolib_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -10480,6 +10572,12 @@ $(OBJS)\coredll_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\coredll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\coredll_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\coredll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\coredll_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -11386,6 +11484,16 @@ $(OBJS)\coredll_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -11671,6 +11779,16 @@ $(OBJS)\coredll_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -11824,6 +11942,12 @@ $(OBJS)\corelib_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\corelib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\corelib_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\corelib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\corelib_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -12730,6 +12854,16 @@ $(OBJS)\corelib_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -13015,6 +13149,16 @@ $(OBJS)\corelib_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\listbkg.cpp
diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc
index b2dfa0a387..4d43d226a0 100644
--- a/build/msw/makefile.gcc
+++ b/build/msw/makefile.gcc
@@ -1617,6 +1617,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_filedlg.o \
$(OBJS)\monodll_frame.o \
$(OBJS)\monodll_gauge.o \
+ $(OBJS)\monodll_headercol.o \
+ $(OBJS)\monodll_headerctrl.o \
$(OBJS)\monodll_iniconf.o \
$(OBJS)\monodll_listbox.o \
$(OBJS)\monodll_listctrl.o \
@@ -1700,6 +1702,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.o \
$(OBJS)\monodll_gifdecod.o \
$(OBJS)\monodll_graphcmn.o \
+ $(OBJS)\monodll_headercolcmn.o \
+ $(OBJS)\monodll_headerctrlcmn.o \
$(OBJS)\monodll_helpbase.o \
$(OBJS)\monodll_iconbndl.o \
$(OBJS)\monodll_imagall.o \
@@ -1757,6 +1761,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
$(OBJS)\monodll_filectrlg.o \
+ $(OBJS)\monodll_headercolg.o \
+ $(OBJS)\monodll_headerctrlg.o \
$(OBJS)\monodll_listbkg.o \
$(OBJS)\monodll_logg.o \
$(OBJS)\monodll_numdlgg.o \
@@ -1936,6 +1942,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.o \
$(OBJS)\monodll_gifdecod.o \
$(OBJS)\monodll_graphcmn.o \
+ $(OBJS)\monodll_headercolcmn.o \
+ $(OBJS)\monodll_headerctrlcmn.o \
$(OBJS)\monodll_helpbase.o \
$(OBJS)\monodll_iconbndl.o \
$(OBJS)\monodll_imagall.o \
@@ -1993,6 +2001,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
$(OBJS)\monodll_filectrlg.o \
+ $(OBJS)\monodll_headercolg.o \
+ $(OBJS)\monodll_headerctrlg.o \
$(OBJS)\monodll_listbkg.o \
$(OBJS)\monodll_logg.o \
$(OBJS)\monodll_numdlgg.o \
@@ -2291,6 +2301,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_filedlg.o \
$(OBJS)\monolib_frame.o \
$(OBJS)\monolib_gauge.o \
+ $(OBJS)\monolib_headercol.o \
+ $(OBJS)\monolib_headerctrl.o \
$(OBJS)\monolib_iniconf.o \
$(OBJS)\monolib_listbox.o \
$(OBJS)\monolib_listctrl.o \
@@ -2374,6 +2386,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.o \
$(OBJS)\monolib_gifdecod.o \
$(OBJS)\monolib_graphcmn.o \
+ $(OBJS)\monolib_headercolcmn.o \
+ $(OBJS)\monolib_headerctrlcmn.o \
$(OBJS)\monolib_helpbase.o \
$(OBJS)\monolib_iconbndl.o \
$(OBJS)\monolib_imagall.o \
@@ -2431,6 +2445,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
$(OBJS)\monolib_filectrlg.o \
+ $(OBJS)\monolib_headercolg.o \
+ $(OBJS)\monolib_headerctrlg.o \
$(OBJS)\monolib_listbkg.o \
$(OBJS)\monolib_logg.o \
$(OBJS)\monolib_numdlgg.o \
@@ -2610,6 +2626,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.o \
$(OBJS)\monolib_gifdecod.o \
$(OBJS)\monolib_graphcmn.o \
+ $(OBJS)\monolib_headercolcmn.o \
+ $(OBJS)\monolib_headerctrlcmn.o \
$(OBJS)\monolib_helpbase.o \
$(OBJS)\monolib_iconbndl.o \
$(OBJS)\monolib_imagall.o \
@@ -2667,6 +2685,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
$(OBJS)\monolib_filectrlg.o \
+ $(OBJS)\monolib_headercolg.o \
+ $(OBJS)\monolib_headerctrlg.o \
$(OBJS)\monolib_listbkg.o \
$(OBJS)\monolib_logg.o \
$(OBJS)\monolib_numdlgg.o \
@@ -2880,6 +2900,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_filedlg.o \
$(OBJS)\coredll_frame.o \
$(OBJS)\coredll_gauge.o \
+ $(OBJS)\coredll_headercol.o \
+ $(OBJS)\coredll_headerctrl.o \
$(OBJS)\coredll_iniconf.o \
$(OBJS)\coredll_listbox.o \
$(OBJS)\coredll_listctrl.o \
@@ -2963,6 +2985,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.o \
$(OBJS)\coredll_gifdecod.o \
$(OBJS)\coredll_graphcmn.o \
+ $(OBJS)\coredll_headercolcmn.o \
+ $(OBJS)\coredll_headerctrlcmn.o \
$(OBJS)\coredll_helpbase.o \
$(OBJS)\coredll_iconbndl.o \
$(OBJS)\coredll_imagall.o \
@@ -3020,6 +3044,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
$(OBJS)\coredll_filectrlg.o \
+ $(OBJS)\coredll_headercolg.o \
+ $(OBJS)\coredll_headerctrlg.o \
$(OBJS)\coredll_listbkg.o \
$(OBJS)\coredll_logg.o \
$(OBJS)\coredll_numdlgg.o \
@@ -3199,6 +3225,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.o \
$(OBJS)\coredll_gifdecod.o \
$(OBJS)\coredll_graphcmn.o \
+ $(OBJS)\coredll_headercolcmn.o \
+ $(OBJS)\coredll_headerctrlcmn.o \
$(OBJS)\coredll_helpbase.o \
$(OBJS)\coredll_iconbndl.o \
$(OBJS)\coredll_imagall.o \
@@ -3256,6 +3284,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
$(OBJS)\coredll_filectrlg.o \
+ $(OBJS)\coredll_headercolg.o \
+ $(OBJS)\coredll_headerctrlg.o \
$(OBJS)\coredll_listbkg.o \
$(OBJS)\coredll_logg.o \
$(OBJS)\coredll_numdlgg.o \
@@ -3360,6 +3390,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_filedlg.o \
$(OBJS)\corelib_frame.o \
$(OBJS)\corelib_gauge.o \
+ $(OBJS)\corelib_headercol.o \
+ $(OBJS)\corelib_headerctrl.o \
$(OBJS)\corelib_iniconf.o \
$(OBJS)\corelib_listbox.o \
$(OBJS)\corelib_listctrl.o \
@@ -3443,6 +3475,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.o \
$(OBJS)\corelib_gifdecod.o \
$(OBJS)\corelib_graphcmn.o \
+ $(OBJS)\corelib_headercolcmn.o \
+ $(OBJS)\corelib_headerctrlcmn.o \
$(OBJS)\corelib_helpbase.o \
$(OBJS)\corelib_iconbndl.o \
$(OBJS)\corelib_imagall.o \
@@ -3500,6 +3534,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
$(OBJS)\corelib_filectrlg.o \
+ $(OBJS)\corelib_headercolg.o \
+ $(OBJS)\corelib_headerctrlg.o \
$(OBJS)\corelib_listbkg.o \
$(OBJS)\corelib_logg.o \
$(OBJS)\corelib_numdlgg.o \
@@ -3679,6 +3715,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.o \
$(OBJS)\corelib_gifdecod.o \
$(OBJS)\corelib_graphcmn.o \
+ $(OBJS)\corelib_headercolcmn.o \
+ $(OBJS)\corelib_headerctrlcmn.o \
$(OBJS)\corelib_helpbase.o \
$(OBJS)\corelib_iconbndl.o \
$(OBJS)\corelib_imagall.o \
@@ -3736,6 +3774,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
$(OBJS)\corelib_filectrlg.o \
+ $(OBJS)\corelib_headercolg.o \
+ $(OBJS)\corelib_headerctrlg.o \
$(OBJS)\corelib_listbkg.o \
$(OBJS)\corelib_logg.o \
$(OBJS)\corelib_numdlgg.o \
@@ -5863,6 +5903,12 @@ $(OBJS)\monodll_filedlg.o: ../../src/msw/filedlg.cpp
$(OBJS)\monodll_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\monodll_headercol.o: ../../src/msw/headercol.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+
+$(OBJS)\monodll_headerctrl.o: ../../src/msw/headerctrl.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\monodll_iniconf.o: ../../src/msw/iniconf.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -7244,6 +7290,16 @@ $(OBJS)\monodll_graphcmn.o: ../../src/common/graphcmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_headercolcmn.o: ../../src/common/headercolcmn.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_headerctrlcmn.o: ../../src/common/headerctrlcmn.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_helpbase.o: ../../src/common/helpbase.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -7529,6 +7585,16 @@ $(OBJS)\monodll_filectrlg.o: ../../src/generic/filectrlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_headercolg.o: ../../src/generic/headercolg.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_headerctrlg.o: ../../src/generic/headerctrlg.cpp
+ $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_listbkg.o: ../../src/generic/listbkg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -8168,6 +8234,12 @@ $(OBJS)\monolib_filedlg.o: ../../src/msw/filedlg.cpp
$(OBJS)\monolib_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\monolib_headercol.o: ../../src/msw/headercol.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+
+$(OBJS)\monolib_headerctrl.o: ../../src/msw/headerctrl.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\monolib_iniconf.o: ../../src/msw/iniconf.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -9549,6 +9621,16 @@ $(OBJS)\monolib_graphcmn.o: ../../src/common/graphcmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_headercolcmn.o: ../../src/common/headercolcmn.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_headerctrlcmn.o: ../../src/common/headerctrlcmn.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_helpbase.o: ../../src/common/helpbase.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -9834,6 +9916,16 @@ $(OBJS)\monolib_filectrlg.o: ../../src/generic/filectrlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_headercolg.o: ../../src/generic/headercolg.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_headerctrlg.o: ../../src/generic/headerctrlg.cpp
+ $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_listbkg.o: ../../src/generic/listbkg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -10860,6 +10952,12 @@ $(OBJS)\coredll_filedlg.o: ../../src/msw/filedlg.cpp
$(OBJS)\coredll_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\coredll_headercol.o: ../../src/msw/headercol.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+
+$(OBJS)\coredll_headerctrl.o: ../../src/msw/headerctrl.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\coredll_iniconf.o: ../../src/msw/iniconf.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11878,6 +11976,16 @@ $(OBJS)\coredll_graphcmn.o: ../../src/common/graphcmn.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\coredll_headercolcmn.o: ../../src/common/headercolcmn.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\coredll_headerctrlcmn.o: ../../src/common/headerctrlcmn.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_helpbase.o: ../../src/common/helpbase.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -12163,6 +12271,16 @@ $(OBJS)\coredll_filectrlg.o: ../../src/generic/filectrlg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\coredll_headercolg.o: ../../src/generic/headercolg.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\coredll_headerctrlg.o: ../../src/generic/headerctrlg.cpp
+ $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_listbkg.o: ../../src/generic/listbkg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -12316,6 +12434,12 @@ $(OBJS)\corelib_filedlg.o: ../../src/msw/filedlg.cpp
$(OBJS)\corelib_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\corelib_headercol.o: ../../src/msw/headercol.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+
+$(OBJS)\corelib_headerctrl.o: ../../src/msw/headerctrl.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\corelib_iniconf.o: ../../src/msw/iniconf.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -13334,6 +13458,16 @@ $(OBJS)\corelib_graphcmn.o: ../../src/common/graphcmn.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\corelib_headercolcmn.o: ../../src/common/headercolcmn.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\corelib_headerctrlcmn.o: ../../src/common/headerctrlcmn.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_helpbase.o: ../../src/common/helpbase.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -13619,6 +13753,16 @@ $(OBJS)\corelib_filectrlg.o: ../../src/generic/filectrlg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
+ifeq ($(USE_GUI),1)
+$(OBJS)\corelib_headercolg.o: ../../src/generic/headercolg.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
+$(OBJS)\corelib_headerctrlg.o: ../../src/generic/headerctrlg.cpp
+ $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_listbkg.o: ../../src/generic/listbkg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc
index 7b694a9ac9..ebb6d00ec8 100644
--- a/build/msw/makefile.vc
+++ b/build/msw/makefile.vc
@@ -1779,6 +1779,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_filedlg.obj \
$(OBJS)\monodll_frame.obj \
$(OBJS)\monodll_gauge.obj \
+ $(OBJS)\monodll_headercol.obj \
+ $(OBJS)\monodll_headerctrl.obj \
$(OBJS)\monodll_iniconf.obj \
$(OBJS)\monodll_listbox.obj \
$(OBJS)\monodll_listctrl.obj \
@@ -1862,6 +1864,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.obj \
$(OBJS)\monodll_gifdecod.obj \
$(OBJS)\monodll_graphcmn.obj \
+ $(OBJS)\monodll_headercolcmn.obj \
+ $(OBJS)\monodll_headerctrlcmn.obj \
$(OBJS)\monodll_helpbase.obj \
$(OBJS)\monodll_iconbndl.obj \
$(OBJS)\monodll_imagall.obj \
@@ -1919,6 +1923,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
+ $(OBJS)\monodll_headercolg.obj \
+ $(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_numdlgg.obj \
@@ -2096,6 +2102,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_geometry.obj \
$(OBJS)\monodll_gifdecod.obj \
$(OBJS)\monodll_graphcmn.obj \
+ $(OBJS)\monodll_headercolcmn.obj \
+ $(OBJS)\monodll_headerctrlcmn.obj \
$(OBJS)\monodll_helpbase.obj \
$(OBJS)\monodll_iconbndl.obj \
$(OBJS)\monodll_imagall.obj \
@@ -2153,6 +2161,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
+ $(OBJS)\monodll_headercolg.obj \
+ $(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_numdlgg.obj \
@@ -2453,6 +2463,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_filedlg.obj \
$(OBJS)\monolib_frame.obj \
$(OBJS)\monolib_gauge.obj \
+ $(OBJS)\monolib_headercol.obj \
+ $(OBJS)\monolib_headerctrl.obj \
$(OBJS)\monolib_iniconf.obj \
$(OBJS)\monolib_listbox.obj \
$(OBJS)\monolib_listctrl.obj \
@@ -2536,6 +2548,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.obj \
$(OBJS)\monolib_gifdecod.obj \
$(OBJS)\monolib_graphcmn.obj \
+ $(OBJS)\monolib_headercolcmn.obj \
+ $(OBJS)\monolib_headerctrlcmn.obj \
$(OBJS)\monolib_helpbase.obj \
$(OBJS)\monolib_iconbndl.obj \
$(OBJS)\monolib_imagall.obj \
@@ -2593,6 +2607,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
+ $(OBJS)\monolib_headercolg.obj \
+ $(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_numdlgg.obj \
@@ -2770,6 +2786,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_geometry.obj \
$(OBJS)\monolib_gifdecod.obj \
$(OBJS)\monolib_graphcmn.obj \
+ $(OBJS)\monolib_headercolcmn.obj \
+ $(OBJS)\monolib_headerctrlcmn.obj \
$(OBJS)\monolib_helpbase.obj \
$(OBJS)\monolib_iconbndl.obj \
$(OBJS)\monolib_imagall.obj \
@@ -2827,6 +2845,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
+ $(OBJS)\monolib_headercolg.obj \
+ $(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_numdlgg.obj \
@@ -3056,6 +3076,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_filedlg.obj \
$(OBJS)\coredll_frame.obj \
$(OBJS)\coredll_gauge.obj \
+ $(OBJS)\coredll_headercol.obj \
+ $(OBJS)\coredll_headerctrl.obj \
$(OBJS)\coredll_iniconf.obj \
$(OBJS)\coredll_listbox.obj \
$(OBJS)\coredll_listctrl.obj \
@@ -3139,6 +3161,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.obj \
$(OBJS)\coredll_gifdecod.obj \
$(OBJS)\coredll_graphcmn.obj \
+ $(OBJS)\coredll_headercolcmn.obj \
+ $(OBJS)\coredll_headerctrlcmn.obj \
$(OBJS)\coredll_helpbase.obj \
$(OBJS)\coredll_iconbndl.obj \
$(OBJS)\coredll_imagall.obj \
@@ -3196,6 +3220,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
+ $(OBJS)\coredll_headercolg.obj \
+ $(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_numdlgg.obj \
@@ -3373,6 +3399,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_geometry.obj \
$(OBJS)\coredll_gifdecod.obj \
$(OBJS)\coredll_graphcmn.obj \
+ $(OBJS)\coredll_headercolcmn.obj \
+ $(OBJS)\coredll_headerctrlcmn.obj \
$(OBJS)\coredll_helpbase.obj \
$(OBJS)\coredll_iconbndl.obj \
$(OBJS)\coredll_imagall.obj \
@@ -3430,6 +3458,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
+ $(OBJS)\coredll_headercolg.obj \
+ $(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_numdlgg.obj \
@@ -3534,6 +3564,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_filedlg.obj \
$(OBJS)\corelib_frame.obj \
$(OBJS)\corelib_gauge.obj \
+ $(OBJS)\corelib_headercol.obj \
+ $(OBJS)\corelib_headerctrl.obj \
$(OBJS)\corelib_iniconf.obj \
$(OBJS)\corelib_listbox.obj \
$(OBJS)\corelib_listctrl.obj \
@@ -3617,6 +3649,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.obj \
$(OBJS)\corelib_gifdecod.obj \
$(OBJS)\corelib_graphcmn.obj \
+ $(OBJS)\corelib_headercolcmn.obj \
+ $(OBJS)\corelib_headerctrlcmn.obj \
$(OBJS)\corelib_helpbase.obj \
$(OBJS)\corelib_iconbndl.obj \
$(OBJS)\corelib_imagall.obj \
@@ -3674,6 +3708,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
+ $(OBJS)\corelib_headercolg.obj \
+ $(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_numdlgg.obj \
@@ -3851,6 +3887,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_geometry.obj \
$(OBJS)\corelib_gifdecod.obj \
$(OBJS)\corelib_graphcmn.obj \
+ $(OBJS)\corelib_headercolcmn.obj \
+ $(OBJS)\corelib_headerctrlcmn.obj \
$(OBJS)\corelib_helpbase.obj \
$(OBJS)\corelib_iconbndl.obj \
$(OBJS)\corelib_imagall.obj \
@@ -3908,6 +3946,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
+ $(OBJS)\corelib_headercolg.obj \
+ $(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_numdlgg.obj \
@@ -6057,6 +6097,12 @@ $(OBJS)\monodll_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\monodll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\monodll_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\monodll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\monodll_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -7326,6 +7372,16 @@ $(OBJS)\monodll_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -7611,6 +7667,16 @@ $(OBJS)\monodll_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -8248,6 +8314,12 @@ $(OBJS)\monolib_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\monolib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\monolib_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\monolib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\monolib_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -9517,6 +9589,16 @@ $(OBJS)\monolib_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -9802,6 +9884,16 @@ $(OBJS)\monolib_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -10826,6 +10918,12 @@ $(OBJS)\coredll_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\coredll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\coredll_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\coredll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\coredll_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -11732,6 +11830,16 @@ $(OBJS)\coredll_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -12017,6 +12125,16 @@ $(OBJS)\coredll_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\coredll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\listbkg.cpp
@@ -12170,6 +12288,12 @@ $(OBJS)\corelib_filedlg.obj: ..\..\src\msw\filedlg.cpp
$(OBJS)\corelib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\frame.cpp
+$(OBJS)\corelib_headercol.obj: ..\..\src\msw\headercol.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
+
+$(OBJS)\corelib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
+
$(OBJS)\corelib_iniconf.obj: ..\..\src\msw\iniconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\iniconf.cpp
@@ -13076,6 +13200,16 @@ $(OBJS)\corelib_graphcmn.obj: ..\..\src\common\graphcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\common\graphcmn.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headercolcmn.obj: ..\..\src\common\headercolcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\common\headercolcmn.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headerctrlcmn.obj: ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\common\headerctrlcmn.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_helpbase.obj: ..\..\src\common\helpbase.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\common\helpbase.cpp
@@ -13361,6 +13495,16 @@ $(OBJS)\corelib_filectrlg.obj: ..\..\src\generic\filectrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headercolg.obj: ..\..\src\generic\headercolg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
+$(OBJS)\corelib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
+!endif
+
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_listbkg.obj: ..\..\src\generic\listbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\listbkg.cpp
diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat
index f81d1107a3..a039bfa0b7 100644
--- a/build/msw/makefile.wat
+++ b/build/msw/makefile.wat
@@ -290,6 +290,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_filedlg.obj &
$(OBJS)\monodll_frame.obj &
$(OBJS)\monodll_gauge.obj &
+ $(OBJS)\monodll_headercol.obj &
+ $(OBJS)\monodll_headerctrl.obj &
$(OBJS)\monodll_iniconf.obj &
$(OBJS)\monodll_listbox.obj &
$(OBJS)\monodll_listctrl.obj &
@@ -373,6 +375,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_geometry.obj &
$(OBJS)\monodll_gifdecod.obj &
$(OBJS)\monodll_graphcmn.obj &
+ $(OBJS)\monodll_headercolcmn.obj &
+ $(OBJS)\monodll_headerctrlcmn.obj &
$(OBJS)\monodll_helpbase.obj &
$(OBJS)\monodll_iconbndl.obj &
$(OBJS)\monodll_imagall.obj &
@@ -430,6 +434,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
$(OBJS)\monodll_filectrlg.obj &
+ $(OBJS)\monodll_headercolg.obj &
+ $(OBJS)\monodll_headerctrlg.obj &
$(OBJS)\monodll_listbkg.obj &
$(OBJS)\monodll_logg.obj &
$(OBJS)\monodll_numdlgg.obj &
@@ -609,6 +615,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_geometry.obj &
$(OBJS)\monodll_gifdecod.obj &
$(OBJS)\monodll_graphcmn.obj &
+ $(OBJS)\monodll_headercolcmn.obj &
+ $(OBJS)\monodll_headerctrlcmn.obj &
$(OBJS)\monodll_helpbase.obj &
$(OBJS)\monodll_iconbndl.obj &
$(OBJS)\monodll_imagall.obj &
@@ -666,6 +674,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
$(OBJS)\monodll_filectrlg.obj &
+ $(OBJS)\monodll_headercolg.obj &
+ $(OBJS)\monodll_headerctrlg.obj &
$(OBJS)\monodll_listbkg.obj &
$(OBJS)\monodll_logg.obj &
$(OBJS)\monodll_numdlgg.obj &
@@ -969,6 +979,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_filedlg.obj &
$(OBJS)\monolib_frame.obj &
$(OBJS)\monolib_gauge.obj &
+ $(OBJS)\monolib_headercol.obj &
+ $(OBJS)\monolib_headerctrl.obj &
$(OBJS)\monolib_iniconf.obj &
$(OBJS)\monolib_listbox.obj &
$(OBJS)\monolib_listctrl.obj &
@@ -1052,6 +1064,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_geometry.obj &
$(OBJS)\monolib_gifdecod.obj &
$(OBJS)\monolib_graphcmn.obj &
+ $(OBJS)\monolib_headercolcmn.obj &
+ $(OBJS)\monolib_headerctrlcmn.obj &
$(OBJS)\monolib_helpbase.obj &
$(OBJS)\monolib_iconbndl.obj &
$(OBJS)\monolib_imagall.obj &
@@ -1109,6 +1123,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
$(OBJS)\monolib_filectrlg.obj &
+ $(OBJS)\monolib_headercolg.obj &
+ $(OBJS)\monolib_headerctrlg.obj &
$(OBJS)\monolib_listbkg.obj &
$(OBJS)\monolib_logg.obj &
$(OBJS)\monolib_numdlgg.obj &
@@ -1288,6 +1304,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_geometry.obj &
$(OBJS)\monolib_gifdecod.obj &
$(OBJS)\monolib_graphcmn.obj &
+ $(OBJS)\monolib_headercolcmn.obj &
+ $(OBJS)\monolib_headerctrlcmn.obj &
$(OBJS)\monolib_helpbase.obj &
$(OBJS)\monolib_iconbndl.obj &
$(OBJS)\monolib_imagall.obj &
@@ -1345,6 +1363,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
$(OBJS)\monolib_filectrlg.obj &
+ $(OBJS)\monolib_headercolg.obj &
+ $(OBJS)\monolib_headerctrlg.obj &
$(OBJS)\monolib_listbkg.obj &
$(OBJS)\monolib_logg.obj &
$(OBJS)\monolib_numdlgg.obj &
@@ -1569,6 +1589,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_filedlg.obj &
$(OBJS)\coredll_frame.obj &
$(OBJS)\coredll_gauge.obj &
+ $(OBJS)\coredll_headercol.obj &
+ $(OBJS)\coredll_headerctrl.obj &
$(OBJS)\coredll_iniconf.obj &
$(OBJS)\coredll_listbox.obj &
$(OBJS)\coredll_listctrl.obj &
@@ -1652,6 +1674,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_geometry.obj &
$(OBJS)\coredll_gifdecod.obj &
$(OBJS)\coredll_graphcmn.obj &
+ $(OBJS)\coredll_headercolcmn.obj &
+ $(OBJS)\coredll_headerctrlcmn.obj &
$(OBJS)\coredll_helpbase.obj &
$(OBJS)\coredll_iconbndl.obj &
$(OBJS)\coredll_imagall.obj &
@@ -1709,6 +1733,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
$(OBJS)\coredll_filectrlg.obj &
+ $(OBJS)\coredll_headercolg.obj &
+ $(OBJS)\coredll_headerctrlg.obj &
$(OBJS)\coredll_listbkg.obj &
$(OBJS)\coredll_logg.obj &
$(OBJS)\coredll_numdlgg.obj &
@@ -1888,6 +1914,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_geometry.obj &
$(OBJS)\coredll_gifdecod.obj &
$(OBJS)\coredll_graphcmn.obj &
+ $(OBJS)\coredll_headercolcmn.obj &
+ $(OBJS)\coredll_headerctrlcmn.obj &
$(OBJS)\coredll_helpbase.obj &
$(OBJS)\coredll_iconbndl.obj &
$(OBJS)\coredll_imagall.obj &
@@ -1945,6 +1973,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
$(OBJS)\coredll_filectrlg.obj &
+ $(OBJS)\coredll_headercolg.obj &
+ $(OBJS)\coredll_headerctrlg.obj &
$(OBJS)\coredll_listbkg.obj &
$(OBJS)\coredll_logg.obj &
$(OBJS)\coredll_numdlgg.obj &
@@ -2051,6 +2081,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_filedlg.obj &
$(OBJS)\corelib_frame.obj &
$(OBJS)\corelib_gauge.obj &
+ $(OBJS)\corelib_headercol.obj &
+ $(OBJS)\corelib_headerctrl.obj &
$(OBJS)\corelib_iniconf.obj &
$(OBJS)\corelib_listbox.obj &
$(OBJS)\corelib_listctrl.obj &
@@ -2134,6 +2166,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_geometry.obj &
$(OBJS)\corelib_gifdecod.obj &
$(OBJS)\corelib_graphcmn.obj &
+ $(OBJS)\corelib_headercolcmn.obj &
+ $(OBJS)\corelib_headerctrlcmn.obj &
$(OBJS)\corelib_helpbase.obj &
$(OBJS)\corelib_iconbndl.obj &
$(OBJS)\corelib_imagall.obj &
@@ -2191,6 +2225,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
$(OBJS)\corelib_filectrlg.obj &
+ $(OBJS)\corelib_headercolg.obj &
+ $(OBJS)\corelib_headerctrlg.obj &
$(OBJS)\corelib_listbkg.obj &
$(OBJS)\corelib_logg.obj &
$(OBJS)\corelib_numdlgg.obj &
@@ -2370,6 +2406,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_geometry.obj &
$(OBJS)\corelib_gifdecod.obj &
$(OBJS)\corelib_graphcmn.obj &
+ $(OBJS)\corelib_headercolcmn.obj &
+ $(OBJS)\corelib_headerctrlcmn.obj &
$(OBJS)\corelib_helpbase.obj &
$(OBJS)\corelib_iconbndl.obj &
$(OBJS)\corelib_imagall.obj &
@@ -2427,6 +2465,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
$(OBJS)\corelib_filectrlg.obj &
+ $(OBJS)\corelib_headercolg.obj &
+ $(OBJS)\corelib_headerctrlg.obj &
$(OBJS)\corelib_listbkg.obj &
$(OBJS)\corelib_logg.obj &
$(OBJS)\corelib_numdlgg.obj &
@@ -6108,6 +6148,12 @@ $(OBJS)\monodll_filedlg.obj : .AUTODEPEND ..\..\src\msw\filedlg.cpp
$(OBJS)\monodll_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+$(OBJS)\monodll_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+
+$(OBJS)\monodll_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+
$(OBJS)\monodll_iniconf.obj : .AUTODEPEND ..\..\src\msw\iniconf.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -7489,6 +7535,16 @@ $(OBJS)\monodll_graphcmn.obj : .AUTODEPEND ..\..\src\common\graphcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\monodll_headercolcmn.obj : .AUTODEPEND ..\..\src\common\headercolcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\monodll_headerctrlcmn.obj : .AUTODEPEND ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\monodll_helpbase.obj : .AUTODEPEND ..\..\src\common\helpbase.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -7774,6 +7830,16 @@ $(OBJS)\monodll_filectrlg.obj : .AUTODEPEND ..\..\src\generic\filectrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\monodll_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\monodll_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\monodll_listbkg.obj : .AUTODEPEND ..\..\src\generic\listbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -8413,6 +8479,12 @@ $(OBJS)\monolib_filedlg.obj : .AUTODEPEND ..\..\src\msw\filedlg.cpp
$(OBJS)\monolib_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+$(OBJS)\monolib_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+
+$(OBJS)\monolib_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+
$(OBJS)\monolib_iniconf.obj : .AUTODEPEND ..\..\src\msw\iniconf.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -9794,6 +9866,16 @@ $(OBJS)\monolib_graphcmn.obj : .AUTODEPEND ..\..\src\common\graphcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\monolib_headercolcmn.obj : .AUTODEPEND ..\..\src\common\headercolcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\monolib_headerctrlcmn.obj : .AUTODEPEND ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\monolib_helpbase.obj : .AUTODEPEND ..\..\src\common\helpbase.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -10079,6 +10161,16 @@ $(OBJS)\monolib_filectrlg.obj : .AUTODEPEND ..\..\src\generic\filectrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\monolib_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\monolib_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\monolib_listbkg.obj : .AUTODEPEND ..\..\src\generic\listbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -11105,6 +11197,12 @@ $(OBJS)\coredll_filedlg.obj : .AUTODEPEND ..\..\src\msw\filedlg.cpp
$(OBJS)\coredll_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+$(OBJS)\coredll_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+
+$(OBJS)\coredll_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+
$(OBJS)\coredll_iniconf.obj : .AUTODEPEND ..\..\src\msw\iniconf.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -12123,6 +12221,16 @@ $(OBJS)\coredll_graphcmn.obj : .AUTODEPEND ..\..\src\common\graphcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\coredll_headercolcmn.obj : .AUTODEPEND ..\..\src\common\headercolcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\coredll_headerctrlcmn.obj : .AUTODEPEND ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\coredll_helpbase.obj : .AUTODEPEND ..\..\src\common\helpbase.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -12408,6 +12516,16 @@ $(OBJS)\coredll_filectrlg.obj : .AUTODEPEND ..\..\src\generic\filectrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\coredll_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\coredll_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\coredll_listbkg.obj : .AUTODEPEND ..\..\src\generic\listbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -12561,6 +12679,12 @@ $(OBJS)\corelib_filedlg.obj : .AUTODEPEND ..\..\src\msw\filedlg.cpp
$(OBJS)\corelib_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+$(OBJS)\corelib_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+
+$(OBJS)\corelib_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+
$(OBJS)\corelib_iniconf.obj : .AUTODEPEND ..\..\src\msw\iniconf.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -13579,6 +13703,16 @@ $(OBJS)\corelib_graphcmn.obj : .AUTODEPEND ..\..\src\common\graphcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\corelib_headercolcmn.obj : .AUTODEPEND ..\..\src\common\headercolcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\corelib_headerctrlcmn.obj : .AUTODEPEND ..\..\src\common\headerctrlcmn.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\corelib_helpbase.obj : .AUTODEPEND ..\..\src\common\helpbase.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -13864,6 +13998,16 @@ $(OBJS)\corelib_filectrlg.obj : .AUTODEPEND ..\..\src\generic\filectrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
+!ifeq USE_GUI 1
+$(OBJS)\corelib_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
+$(OBJS)\corelib_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
+!endif
+
!ifeq USE_GUI 1
$(OBJS)\corelib_listbkg.obj : .AUTODEPEND ..\..\src\generic\listbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp
index 1cdf8b9d31..5e990c54e7 100644
--- a/build/msw/wx_core.dsp
+++ b/build/msw/wx_core.dsp
@@ -458,6 +458,14 @@ SOURCE=..\..\src\common\graphcmn.cpp
# End Source File
# Begin Source File
+SOURCE=..\..\src\common\headercolcmn.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\common\headerctrlcmn.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\common\helpbase.cpp
# End Source File
# Begin Source File
@@ -1478,6 +1486,76 @@ SOURCE=..\..\src\msw\graphics.cpp
# End Source File
# Begin Source File
+SOURCE=..\..\src\msw\headercol.cpp
+
+!IF "$(CFG)" == "core - Win32 DLL Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Release"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Debug"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 Release"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 Debug"
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\msw\headerctrl.cpp
+
+!IF "$(CFG)" == "core - Win32 DLL Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Release"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 DLL Debug"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "core - Win32 Release"
+
+
+!ELSEIF "$(CFG)" == "core - Win32 Debug"
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\msw\helpchm.cpp
# End Source File
# Begin Source File
@@ -2886,6 +2964,14 @@ SOURCE=..\..\src\generic\fontpickerg.cpp
# End Source File
# Begin Source File
+SOURCE=..\..\src\generic\headercolg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\src\generic\headerctrlg.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\generic\listbkg.cpp
# End Source File
# Begin Source File
@@ -4986,6 +5072,14 @@ SOURCE=..\..\include\wx\msw\glcanvas.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\msw\headercol.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\wx\msw\headerctrl.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\msw\helpbest.h
# End Source File
# Begin Source File
@@ -5318,6 +5412,14 @@ SOURCE=..\..\include\wx\generic\gridsel.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\generic\headercol.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\wx\generic\headerctrl.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\generic\helpext.h
# End Source File
# Begin Source File
@@ -6030,6 +6132,14 @@ SOURCE=..\..\include\wx\grid.h
# End Source File
# Begin Source File
+SOURCE=..\..\include\wx\headercol.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\wx\headerctrl.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\wx\help.h
# End Source File
# Begin Source File
diff --git a/build/msw/wx_net.dsp b/build/msw/wx_net.dsp
index 753a3e6bad..243f70b8d5 100644
--- a/build/msw/wx_net.dsp
+++ b/build/msw/wx_net.dsp
@@ -598,10 +598,6 @@ SOURCE=..\..\include\wx\protocol\ftp.h
# End Source File
# Begin Source File
-SOURCE=..\..\include\wx\gsocket.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\include\wx\protocol\http.h
# End Source File
# Begin Source File
diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj
index d0be2e1bb9..3f5f810179 100644
--- a/build/msw/wx_vc7_core.vcproj
+++ b/build/msw/wx_vc7_core.vcproj
@@ -723,6 +723,12 @@
+
+
+
+
@@ -1264,6 +1270,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1916,6 +1952,12 @@
+
+
+
+
@@ -2985,6 +3027,12 @@
+
+
+
+
@@ -3235,6 +3283,12 @@
+
+
+
+
@@ -3772,6 +3826,12 @@
+
+
+
+
diff --git a/build/msw/wx_vc7_net.vcproj b/build/msw/wx_vc7_net.vcproj
index 03ac3a72a4..d3f9892b80 100644
--- a/build/msw/wx_vc7_net.vcproj
+++ b/build/msw/wx_vc7_net.vcproj
@@ -818,9 +818,6 @@
-
-
diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj
index 28360a98a0..e03ee2e607 100644
--- a/build/msw/wx_vc8_core.vcproj
+++ b/build/msw/wx_vc8_core.vcproj
@@ -1002,6 +1002,14 @@
RelativePath="..\..\src\common\graphcmn.cpp"
>
+
+
+
+
@@ -1723,6 +1731,46 @@
RelativePath="..\..\src\msw\graphics.cpp"
>
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2592,6 +2640,14 @@
RelativePath="..\..\src\generic\fontpickerg.cpp"
>
+
+
+
+
@@ -4003,6 +4059,14 @@
RelativePath="..\..\include\wx\msw\glcanvas.h"
>
+
+
+
+
@@ -4336,6 +4400,14 @@
RelativePath="..\..\include\wx\generic\gridsel.h"
>
+
+
+
+
@@ -5051,6 +5123,14 @@
RelativePath="..\..\include\wx\grid.h"
>
+
+
+
+
diff --git a/build/msw/wx_vc8_net.vcproj b/build/msw/wx_vc8_net.vcproj
index 4492dc9dc4..6f10daaebf 100644
--- a/build/msw/wx_vc8_net.vcproj
+++ b/build/msw/wx_vc8_net.vcproj
@@ -1114,10 +1114,6 @@
RelativePath="..\..\include\wx\protocol\ftp.h"
>
-
-
diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj
index f6fb8da4e7..e4ac959963 100644
--- a/build/msw/wx_vc9_core.vcproj
+++ b/build/msw/wx_vc9_core.vcproj
@@ -998,6 +998,14 @@
RelativePath="..\..\src\common\graphcmn.cpp"
>
+
+
+
+
@@ -1719,6 +1727,46 @@
RelativePath="..\..\src\msw\graphics.cpp"
>
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2588,6 +2636,14 @@
RelativePath="..\..\src\generic\fontpickerg.cpp"
>
+
+
+
+
@@ -3999,6 +4055,14 @@
RelativePath="..\..\include\wx\msw\glcanvas.h"
>
+
+
+
+
@@ -4332,6 +4396,14 @@
RelativePath="..\..\include\wx\generic\gridsel.h"
>
+
+
+
+
@@ -5047,6 +5119,14 @@
RelativePath="..\..\include\wx\grid.h"
>
+
+
+
+
diff --git a/build/msw/wx_vc9_net.vcproj b/build/msw/wx_vc9_net.vcproj
index fdd7362362..f4ba10e6dc 100644
--- a/build/msw/wx_vc9_net.vcproj
+++ b/build/msw/wx_vc9_net.vcproj
@@ -1110,10 +1110,6 @@
RelativePath="..\..\include\wx\protocol\ftp.h"
>
-
-
diff --git a/include/wx/dataview.h b/include/wx/dataview.h
index efc9f45a71..b98220ac3e 100644
--- a/include/wx/dataview.h
+++ b/include/wx/dataview.h
@@ -18,13 +18,17 @@
#include "wx/control.h"
#include "wx/textctrl.h"
-#include "wx/bitmap.h"
+#include "wx/headercol.h"
#include "wx/variant.h"
#include "wx/dynarray.h"
#include "wx/icon.h"
#include "wx/imaglist.h"
#include "wx/weakref.h"
+#if !(defined(__WXGTK20__) || defined(__WXMAC__)) || defined(__WXUNIVERSAL__)
+ #define wxHAS_GENERIC_DATAVIEWCTRL
+#endif
+
class WXDLLIMPEXP_FWD_CORE wxDataFormat;
// ----------------------------------------------------------------------------
@@ -495,15 +499,25 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewIconText, WXDLLIMPEXP_ADV)
// wxDataViewColumnBase
// ---------------------------------------------------------
+// for compatibility only, do not use
enum wxDataViewColumnFlags
{
- wxDATAVIEW_COL_RESIZABLE = 1,
- wxDATAVIEW_COL_SORTABLE = 2,
- wxDATAVIEW_COL_REORDERABLE = 4,
- wxDATAVIEW_COL_HIDDEN = 8
+ wxDATAVIEW_COL_RESIZABLE = wxCOL_RESIZABLE,
+ wxDATAVIEW_COL_SORTABLE = wxCOL_SORTABLE,
+ wxDATAVIEW_COL_REORDERABLE = wxCOL_REORDERABLE,
+ wxDATAVIEW_COL_HIDDEN = wxCOL_HIDDEN
};
-class WXDLLIMPEXP_ADV wxDataViewColumnBase: public wxObject
+class WXDLLIMPEXP_ADV wxDataViewColumnBase : public
+// native implementations of wxDataViewCtrl have their own implementations of
+// wxDataViewColumnBase and so they need to only inherit from
+// wxHeaderColumnBase to provide the same interface as the generic port which
+// uses the platform native (if any) wxHeaderColumn
+#ifdef wxHAS_GENERIC_DATAVIEWCTRL
+ wxHeaderColumn
+#else
+ wxHeaderColumnBase
+#endif
{
public:
wxDataViewColumnBase( const wxString &title, wxDataViewRenderer *renderer,
@@ -517,49 +531,27 @@ public:
virtual ~wxDataViewColumnBase();
// setters:
-
- virtual void SetTitle( const wxString &title ) = 0;
- virtual void SetAlignment( wxAlignment align ) = 0;
- virtual void SetSortable( bool sortable ) = 0;
- virtual void SetReorderable(bool reorderable) = 0;
- virtual void SetResizeable( bool resizeable ) = 0;
- virtual void SetHidden( bool hidden ) = 0;
- virtual void SetSortOrder( bool ascending ) = 0;
- virtual void SetFlags( int flags );
virtual void SetOwner( wxDataViewCtrl *owner )
{ m_owner = owner; }
- virtual void SetBitmap( const wxBitmap &bitmap )
- { m_bitmap=bitmap; }
-
- virtual void SetMinWidth( int minWidth ) = 0;
- virtual void SetWidth( int width ) = 0;
-
// getters:
-
- virtual wxString GetTitle() const = 0;
- virtual wxAlignment GetAlignment() const = 0;
- virtual int GetWidth() const = 0;
- virtual int GetMinWidth() const = 0;
-
- virtual int GetFlags() const;
-
- virtual bool IsHidden() const = 0;
- virtual bool IsReorderable() const = 0;
- virtual bool IsResizeable() const = 0;
- virtual bool IsSortable() const = 0;
- virtual bool IsSortOrderAscending() const = 0;
-
- const wxBitmap &GetBitmap() const { return m_bitmap; }
- unsigned int GetModelColumn() const { return static_cast(m_model_column); }
-
+ unsigned int GetModelColumn() const { return static_cast(m_model_column); }
wxDataViewCtrl *GetOwner() const { return m_owner; }
wxDataViewRenderer* GetRenderer() const { return m_renderer; }
+#ifndef wxHAS_GENERIC_DATAVIEWCTRL
+ // implement some of base class pure virtuals (the rest is port-dependent
+ // and done differently in generic and native versions)
+ virtual void SetBitmap( const wxBitmap& bitmap ) { m_bitmap = bitmap; }
+ virtual wxBitmap GetBitmap() const { return m_bitmap; }
+#endif // !wxHAS_GENERIC_DATAVIEWCTRL
+
protected:
wxDataViewRenderer *m_renderer;
int m_model_column;
+#ifndef wxHAS_GENERIC_DATAVIEWCTRL
wxBitmap m_bitmap;
+#endif // !wxHAS_GENERIC_DATAVIEWCTRL
wxDataViewCtrl *m_owner;
protected:
@@ -593,11 +585,11 @@ public:
// short cuts
wxDataViewColumn *PrependTextColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependIconTextColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependToggleColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH,
@@ -609,7 +601,7 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependDateColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependBitmapColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
@@ -617,11 +609,11 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependTextColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependIconTextColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependToggleColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH,
@@ -633,7 +625,7 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependDateColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *PrependBitmapColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
@@ -642,11 +634,11 @@ public:
wxDataViewColumn *AppendTextColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendIconTextColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendToggleColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH,
@@ -658,7 +650,7 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendDateColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendBitmapColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
@@ -666,11 +658,11 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendTextColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendIconTextColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendToggleColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH,
@@ -682,7 +674,7 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendDateColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1,
- wxAlignment align = (wxAlignment)(wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL),
+ wxAlignment align = wxALIGN_NOT,
int flags = wxDATAVIEW_COL_RESIZABLE );
wxDataViewColumn *AppendBitmapColumn( const wxBitmap &label, unsigned int model_column,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1,
@@ -850,13 +842,20 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
#define EVT_DATAVIEW_COLUMN_REORDERED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_REORDERED, id, fn)
-#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
+#ifdef wxHAS_GENERIC_DATAVIEWCTRL
+ // this symbol doesn't follow the convention for wxUSE_XXX symbols which
+ // are normally always defined as either 0 or 1, so its use is deprecated
+ // and it only exists for backwards compatibility, don't use it any more
+ // and use wxHAS_GENERIC_DATAVIEWCTRL instead
+ #define wxUSE_GENERICDATAVIEWCTRL
+
+ #include "wx/generic/dataview.h"
+#elif defined(__WXGTK20__)
#include "wx/gtk/dataview.h"
-#elif defined(__WXMAC__) && !defined(__WXUNIVERSAL__)
+#elif defined(__WXMAC__)
#include "wx/osx/dataview.h"
#else
- #define wxUSE_GENERICDATAVIEWCTRL
- #include "wx/generic/dataview.h"
+ #error "unknown native wxDataViewCtrl implementation"
#endif
// -------------------------------------
diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h
index a10ee6606b..adabdd7e40 100644
--- a/include/wx/generic/dataview.h
+++ b/include/wx/generic/dataview.h
@@ -299,12 +299,8 @@ protected:
// wxDataViewColumn
// ---------------------------------------------------------
-class WXDLLIMPEXP_ADV wxDataViewColumn: public wxDataViewColumnBase
+class WXDLLIMPEXP_ADV wxDataViewColumn : public wxDataViewColumnBase
{
- friend class wxDataViewHeaderWindowBase;
- friend class wxDataViewHeaderWindow;
- friend class wxDataViewHeaderWindowMSW;
-
public:
wxDataViewColumn( const wxString &title, wxDataViewRenderer *renderer,
unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
@@ -314,59 +310,25 @@ public:
unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE );
- virtual ~wxDataViewColumn();
- // setters:
+ // override some methods to notify the owner about changes
+ virtual void SetFlags(int flags);
+ virtual void SetWidth(int width);
+ virtual void SetSortOrder(bool ascending);
- virtual void SetTitle( const wxString &title )
- { m_title=title; }
- virtual void SetAlignment( wxAlignment align )
- { m_align=align; }
- virtual void SetMinWidth( int minWidth )
- { m_minWidth=minWidth; }
- virtual void SetWidth( int width );
- virtual void SetSortable( bool sortable );
- virtual void SetResizeable( bool resizeable );
- virtual void SetHidden( bool hidden );
- virtual void SetSortOrder( bool ascending );
- virtual void SetReorderable( bool reorderable );
-
- // getters:
-
- virtual wxString GetTitle() const
- { return m_title; }
- virtual wxAlignment GetAlignment() const
- { return m_align; }
- virtual int GetWidth() const
- { return m_width; }
- virtual int GetMinWidth() const
- { return m_minWidth; }
- virtual bool IsSortable() const
- { return (m_flags & wxDATAVIEW_COL_SORTABLE) != 0; }
- virtual bool IsResizeable() const
- { return (m_flags & wxDATAVIEW_COL_RESIZABLE) != 0; }
- virtual bool IsHidden() const
- { return (m_flags & wxDATAVIEW_COL_HIDDEN) != 0; }
- virtual bool IsSortOrderAscending() const;
- virtual bool IsReorderable() const
- { return (m_flags & wxDATAVIEW_COL_REORDERABLE) != 0; }
+ // override this one to return our default width for columns whose width
+ // was not explicitly set
+ virtual int GetWidth() const;
private:
- int m_width;
- int m_minWidth;
- int m_flags;
- wxAlignment m_align;
- wxString m_title;
- bool m_ascending;
- bool m_autosize;
-
- void Init(int width);
-
// like SetWidth() but does not ask the header window of the
// wxDataViewCtrl to reflect the width-change.
void SetInternalWidth(int width);
-protected:
+ friend class wxDataViewHeaderWindowBase;
+ friend class wxDataViewHeaderWindow;
+ friend class wxDataViewHeaderWindowMSW;
+
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn)
};
diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h
index 32f1711c2e..d3dd3b1f3e 100644
--- a/include/wx/gtk/dataview.h
+++ b/include/wx/gtk/dataview.h
@@ -323,6 +323,8 @@ public:
virtual void SetReorderable( bool reorderable );
+ virtual void SetFlags(int flags) { SetIndividualFlags(flags); }
+
// getters:
virtual wxString GetTitle() const;
@@ -338,6 +340,8 @@ public:
virtual bool IsReorderable() const;
+ virtual int GetFlags() const { return GetFromIndividualFlags(); }
+
// implementation
GtkWidget* GetGtkHandle() { return m_column; }
GtkWidget* GetConstGtkHandle() const { return m_column; }
diff --git a/include/wx/headercol.h b/include/wx/headercol.h
new file mode 100644
index 0000000000..29a26e5ecc
--- /dev/null
+++ b/include/wx/headercol.h
@@ -0,0 +1,172 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/headercol.h
+// Purpose: declaration of wxHeaderColumn class
+// Author: Vadim Zeitlin
+// Created: 2008-12-02
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_HEADERCOL_H_
+#define _WX_HEADERCOL_H_
+
+#include "wx/bitmap.h"
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+enum
+{
+ // special value for column width meaning unspecified/default
+ wxCOL_WIDTH_DEFAULT = -1
+};
+
+// bit masks for the various column attributes
+enum
+{
+ // column can be resized (included in default flags)
+ wxCOL_RESIZABLE = 1,
+
+ // column can be clicked to toggle the sort order by its contents
+ wxCOL_SORTABLE = 2,
+
+ // column can be dragged to change its order (included in default)
+ wxCOL_REORDERABLE = 4,
+
+ // column is not shown at all
+ wxCOL_HIDDEN = 8,
+
+ // default flags for wxHeaderColumn ctor
+ wxCOL_DEFAULT_FLAGS = wxCOL_RESIZABLE | wxCOL_REORDERABLE
+};
+
+// ----------------------------------------------------------------------------
+// wxHeaderColumnBase: interface for a column in a header of controls such as
+// wxListCtrl, wxDataViewCtrl or wxGrid
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxHeaderColumnBase : public wxObject
+{
+public:
+ // ctors and dtor
+ // --------------
+
+ /*
+ Derived classes must provide ctors with the following signatures
+ (notice that they shouldn't be explicit to allow passing strings/bitmaps
+ directly to methods such wxHeaderCtrl::AppendColumn()):
+ wxHeaderColumn(const wxString& title,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_NOT,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ wxHeaderColumn(const wxBitmap &bitmap,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ */
+
+
+ // setters and getters for various attributes
+ // ------------------------------------------
+
+ // title is the string shown for this column
+ virtual void SetTitle(const wxString& title) = 0;
+ virtual wxString GetTitle() const = 0;
+
+ // bitmap shown (instead of text) in the column header
+ virtual void SetBitmap(const wxBitmap& bitmap) = 0;
+ virtual wxBitmap GetBitmap() const = 0; \
+
+ // width of the column in pixels, can be set to wxCOL_WIDTH_DEFAULT meaning
+ // unspecified/default
+ virtual void SetWidth(int width) = 0;
+ virtual int GetWidth() const = 0;
+
+ // minimal width can be set for resizeable columns to forbid resizing them
+ // below the specified size (set to 0 to remove)
+ virtual void SetMinWidth(int minWidth) = 0;
+ virtual int GetMinWidth() const = 0;
+
+ // alignment of the text: wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT
+ virtual void SetAlignment(wxAlignment align) = 0;
+ virtual wxAlignment GetAlignment() const = 0;
+
+ // arbitrary client data associated with the column (currently only
+ // implemented in MSW because it is used in MSW wxDataViewCtrl
+ // implementation)
+ virtual void SetClientData(wxUIntPtr WXUNUSED(data))
+ { wxFAIL_MSG("not implemented"); }
+ virtual wxUIntPtr GetClientData() const
+ { return 0; }
+
+
+ // flags manipulations:
+ // --------------------
+
+ // notice that while we make Set/GetFlags() pure virtual here and implement
+ // the individual flags access in terms of them, for some derived classes
+ // it is more natural to implement access to each flag individually, in
+ // which case they can use SetIndividualFlags() and GetFromIndividualFlags()
+ // below to implement Set/GetFlags()
+
+ // set or retrieve all column flags at once: combination of wxCOL_XXX
+ // values above
+ virtual void SetFlags(int flags) = 0;
+ virtual int GetFlags() const = 0;
+
+ // change, set, clear, toggle or test for any individual flag
+ void ChangeFlag(int flag, bool set);
+ void SetFlag(int flag);
+ void ClearFlag(int flag);
+ void ToggleFlag(int flag);
+
+ bool HasFlag(int flag) const { return (GetFlags() & flag) != 0; }
+
+
+ // wxCOL_RESIZABLE
+ virtual void SetResizeable(bool resizeable)
+ { ChangeFlag(wxCOL_RESIZABLE, resizeable); }
+ virtual bool IsResizeable() const
+ { return HasFlag(wxCOL_RESIZABLE); }
+
+ // wxCOL_SORTABLE
+ virtual void SetSortable(bool sortable)
+ { ChangeFlag(wxCOL_SORTABLE, sortable); }
+ virtual bool IsSortable() const
+ { return HasFlag(wxCOL_SORTABLE); }
+
+ // wxCOL_REORDERABLE
+ virtual void SetReorderable(bool reorderable)
+ { ChangeFlag(wxCOL_REORDERABLE, reorderable); }
+ virtual bool IsReorderable() const
+ { return HasFlag(wxCOL_REORDERABLE); }
+
+ // wxCOL_HIDDEN
+ virtual void SetHidden(bool hidden)
+ { ChangeFlag(wxCOL_HIDDEN, hidden); }
+ virtual bool IsHidden() const
+ { return HasFlag(wxCOL_HIDDEN); }
+
+ // for sortable columns indicate whether we should sort in ascending or
+ // descending order
+ virtual void SetSortOrder(bool ascending) = 0;
+ void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); }
+ virtual bool IsSortOrderAscending() const = 0;
+
+protected:
+ // helpers for the class overriding Set/IsXXX()
+ void SetIndividualFlags(int flags);
+ int GetFromIndividualFlags() const;
+};
+
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
+ #include "wx/msw/headercol.h"
+#else
+ #define wxHAS_GENERIC_HEADERCOL
+ #include "wx/generic/headercolg.h"
+#endif
+
+#endif // _WX_HEADERCOL_H_
+
diff --git a/include/wx/headerctrl.h b/include/wx/headerctrl.h
new file mode 100644
index 0000000000..c65b7d7d32
--- /dev/null
+++ b/include/wx/headerctrl.h
@@ -0,0 +1,142 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/headerctrl.h
+// Purpose: wxHeaderCtrlBase class: interface of wxHeaderCtrl
+// Author: Vadim Zeitlin
+// Created: 2008-12-01
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_HEADERCTRL_H_
+#define _WX_HEADERCTRL_H_
+
+#include "wx/control.h"
+
+#include "wx/headercol.h"
+
+// notice that the classes in this header are defined in the core library even
+// although currently they're only used by wxGrid which is in wxAdv because we
+// plan to use it in wxListCtrl which is in core too in the future
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+enum
+{
+ // allow column drag and drop
+ wxHD_DRAGDROP = 0x0001,
+
+ // style used by default when creating the control
+ wxHD_DEFAULT_STYLE = wxHD_DRAGDROP
+};
+
+extern WXDLLIMPEXP_DATA_CORE(const char) wxHeaderCtrlNameStr[];
+
+class WXDLLIMPEXP_FWD_CORE wxHeaderColumn;
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrlBase defines the interface of a header control
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxHeaderCtrlBase : public wxControl
+{
+public:
+ /*
+ Derived classes must provide default ctor as well as a ctor and
+ Create() function with the following signatures:
+
+ wxHeaderCtrl(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxHeaderCtrlNameStr);
+
+ bool Create(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxHeaderCtrlNameStr);
+ */
+
+ // managing the columns
+ // --------------------
+
+ // return the number of columns in the control
+ unsigned int GetColumnCount() const { return DoGetCount(); }
+
+ // return whether the control has any columns
+ bool IsEmpty() const { return GetColumnCount() == 0; }
+
+ // insert the column at the given position, using GetColumnCount() as
+ // position appends it at the end
+ void InsertColumn(const wxHeaderColumn& col, unsigned int idx)
+ {
+ wxCHECK_RET( idx <= GetColumnCount(), "invalid column index" );
+
+ DoInsert(col, idx);
+ }
+
+ // append the column to the end of the control
+ void AppendColumn(const wxHeaderColumn& col)
+ {
+ DoInsert(col, GetColumnCount());
+ }
+
+ // delete the column at the given index
+ void DeleteColumn(unsigned int idx)
+ {
+ wxCHECK_RET( idx < GetColumnCount(), "invalid column index" );
+
+ DoDelete(idx);
+ }
+
+ // delete all the existing columns
+ void DeleteAllColumns();
+
+
+ // modifying columns
+ // -----------------
+
+ // indicate that the column is used for sorting in ascending order if
+ // sortOrder is true, for sorting in descending order if it is false or not
+ // used for sorting at all if it is -1
+ void ShowSortIndicator(unsigned int idx, int sortOrder)
+ {
+ wxCHECK_RET( sortOrder == 0 || sortOrder == 1 || sortOrder == -1,
+ "invalid sort order value" );
+
+ DoShowSortIndicator(idx, sortOrder);
+ }
+
+ // remove the sort indicator from the given column
+ void RemoveSortIndicator(unsigned int idx)
+ {
+ DoShowSortIndicator(idx, -1);
+ }
+
+
+ // implementation only from now on
+ // -------------------------------
+
+ // the user doesn't need to TAB to this control
+ virtual bool AcceptsFocusFromKeyboard() const { return false; }
+
+private:
+ virtual unsigned int DoGetCount() const = 0;
+ virtual void DoInsert(const wxHeaderColumn& col, unsigned int idx) = 0;
+ virtual void DoDelete(unsigned int idx) = 0;
+ virtual void DoShowSortIndicator(unsigned int idx, int sortOrder) = 0;
+};
+
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
+ #include "wx/msw/headerctrl.h"
+#else // !native MSW
+ #define wxHAS_GENERIC_HEADERCTRL
+ #include "wx/generic/headerctrl.h"
+#endif // platform
+
+#endif // _WX_HEADERCTRL_H_
diff --git a/include/wx/msw/headercol.h b/include/wx/msw/headercol.h
new file mode 100644
index 0000000000..f30e1dd746
--- /dev/null
+++ b/include/wx/msw/headercol.h
@@ -0,0 +1,77 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/headercol.h
+// Purpose: wxHeaderColumn implementation for MSW
+// Author: Vadim Zeitlin
+// Created: 2008-12-02
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_HEADERCOL_H_
+#define _WX_MSW_HEADERCOL_H_
+
+struct wxHDITEM;
+
+// ----------------------------------------------------------------------------
+// wxHeaderColumn
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxHeaderColumn : public wxHeaderColumnBase
+{
+public:
+ // ctors and dtor
+ wxHeaderColumn(const wxString& title,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_NOT,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ wxHeaderColumn(const wxBitmap &bitmap,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxCOL_DEFAULT_FLAGS);
+
+ virtual ~wxHeaderColumn();
+
+ // implement base class pure virtuals
+ virtual void SetTitle(const wxString& title);
+ virtual wxString GetTitle() const;
+
+ virtual void SetBitmap(const wxBitmap& bitmap);
+ wxBitmap GetBitmap() const;
+
+ virtual void SetWidth(int width);
+ virtual int GetWidth() const;
+
+ virtual void SetMinWidth(int minWidth);
+ virtual int GetMinWidth() const;
+
+ virtual void SetAlignment(wxAlignment align);
+ virtual wxAlignment GetAlignment() const;
+
+ virtual void SetClientData(wxUIntPtr data);
+ virtual wxUIntPtr GetClientData() const;
+
+ virtual void SetFlags(int flags);
+ virtual int GetFlags() const;
+
+
+ virtual void SetSortOrder(bool ascending);
+ virtual bool IsSortOrderAscending() const;
+
+
+ // MSW-specific implementation helpers
+ wxHDITEM& GetHDI();
+ const wxHDITEM& GetHDI() const
+ {
+ return const_cast(this)->GetHDI();
+ }
+
+private:
+ // initialize m_impl
+ void Init();
+
+ struct wxMSWHeaderColumnImpl *m_impl;
+};
+
+#endif // _WX_MSW_HEADERCOL_H_
+
diff --git a/include/wx/msw/headerctrl.h b/include/wx/msw/headerctrl.h
new file mode 100644
index 0000000000..c1c09fa38d
--- /dev/null
+++ b/include/wx/msw/headerctrl.h
@@ -0,0 +1,72 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/headerctrl.h
+// Purpose: wxMSW native wxHeaderCtrl
+// Author: Vadim Zeitlin
+// Created: 2008-12-01
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_HEADERCTRL_H_
+#define _WX_MSW_HEADERCTRL_H_
+
+class WXDLLIMPEXP_FWD_CORE wxImageList;
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxHeaderCtrl : public wxHeaderCtrlBase
+{
+public:
+ wxHeaderCtrl()
+ {
+ Init();
+ }
+
+ wxHeaderCtrl(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHD_DEFAULT_STYLE,
+ const wxString& name = wxHeaderCtrlNameStr)
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHD_DEFAULT_STYLE,
+ const wxString& name = wxHeaderCtrlNameStr);
+
+ virtual ~wxHeaderCtrl();
+
+private:
+ // implement base class pure virtuals
+ virtual unsigned int DoGetCount() const;
+ virtual void DoInsert(const wxHeaderColumn& col, unsigned int idx);
+ virtual void DoDelete(unsigned int idx);
+ virtual void DoShowSortIndicator(unsigned int idx, int sortOrder);
+
+ // override wxWindow methods which must be implemented by a new control
+ virtual wxSize DoGetBestSize() const;
+
+ // override MSW-specific methods needed for new control
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // common part of all ctors
+ void Init();
+
+ // the image list: initially NULL, created on demand
+ wxImageList *m_imageList;
+
+ DECLARE_NO_COPY_CLASS(wxHeaderCtrl)
+};
+
+#endif // _WX_MSW_HEADERCTRL_H_
+
diff --git a/include/wx/msw/missing.h b/include/wx/msw/missing.h
index b13bc7736e..f0d8d85667 100644
--- a/include/wx/msw/missing.h
+++ b/include/wx/msw/missing.h
@@ -359,9 +359,13 @@ typedef struct _OSVERSIONINFOEX {
#define NMHEADER HD_NOTIFY
#endif
-#ifndef HDS_FULLDRAG
- #define HDS_FULLDRAG 128
+#ifndef HDS_DRAGDROP
+ #define HDS_DRAGDROP 0x0040
#endif
+#ifndef HDS_FULLDRAG
+ #define HDS_FULLDRAG 0x0080
+#endif
+
#ifndef HDN_BEGINDRAG
#define HDN_BEGINDRAG (HDN_FIRST - 11)
diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h
index ad8d31210d..60abe8cbf8 100644
--- a/include/wx/msw/treectrl.h
+++ b/include/wx/msw/treectrl.h
@@ -242,8 +242,10 @@ private:
// the common part of all ctors
void Init();
- // helper functions
+ // helper functions: DoGetItem() doesn't work for hidden virtual root item
+ // while DoGetPossiblyRootItem() does
bool DoGetItem(wxTreeViewItem *tvItem) const;
+ bool DoGetPossiblyRootItem(wxTreeViewItem *tvItem) const;
void DoSetItem(wxTreeViewItem *tvItem);
void DoExpand(const wxTreeItemId& item, int flag);
diff --git a/include/wx/msw/wrapcctl.h b/include/wx/msw/wrapcctl.h
index 8d4cd2c70e..f06b308e08 100644
--- a/include/wx/msw/wrapcctl.h
+++ b/include/wx/msw/wrapcctl.h
@@ -35,6 +35,17 @@ inline void wxSetCCUnicodeFormat(HWND WXUNUSED_IN_WINCE(hwnd))
// this is implemented in msw/settings.cpp
class wxFont;
extern wxFont wxGetCCDefaultFont();
-#endif
+
+// this is just a wrapper for HDITEM which we can't use in the public header
+// because we don't want to include commctrl.h (and hence windows.h) from there
+struct wxHDITEM : public HDITEM
+{
+ wxHDITEM()
+ {
+ ::ZeroMemory(this, sizeof(*this));
+ }
+};
+
+#endif // wxUSE_GUI
#endif // _WX_MSW_WRAPCCTL_H_
diff --git a/include/wx/osx/carbon/dataview.h b/include/wx/osx/carbon/dataview.h
index 9c5aa166eb..b84559d362 100644
--- a/include/wx/osx/carbon/dataview.h
+++ b/include/wx/osx/carbon/dataview.h
@@ -387,18 +387,6 @@ public:
{
return false; // not implemented
}
- virtual bool IsReorderable() const
- {
- return ((this->m_flags & wxDATAVIEW_COL_REORDERABLE) != 0);
- }
- virtual bool IsResizeable() const
- {
- return ((this->m_flags & wxDATAVIEW_COL_RESIZABLE) != 0);
- }
- virtual bool IsSortable() const
- {
- return ((this->m_flags & wxDATAVIEW_COL_SORTABLE) != 0);
- }
virtual bool IsSortOrderAscending() const
{
return this->m_ascending;
diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h
index 779e3539de..22c00f4efe 100644
--- a/interface/wx/dataview.h
+++ b/interface/wx/dataview.h
@@ -1540,7 +1540,7 @@ enum wxDataViewColumnFlags
@library{wxadv}
@category{dvc}
*/
-class wxDataViewColumn : public wxObject
+class wxDataViewColumn : public wxHeaderColumn
{
public:
//@{
@@ -1561,16 +1561,6 @@ public:
int flags = wxDATAVIEW_COL_RESIZABLE);
//@}
- /**
- Destructor.
- */
- virtual ~wxDataViewColumn();
-
- /**
- Returns the bitmap in the header of the column, if any.
- */
- const wxBitmap& GetBitmap() const;
-
/**
Returns the index of the column of the model, which this
wxDataViewColumn is displaying.
@@ -1588,68 +1578,6 @@ public:
@see wxDataViewRenderer.
*/
wxDataViewRenderer* GetRenderer() const;
-
- /**
- Returns @true if the column is reorderable.
- */
- virtual bool IsReorderable() const;
-
- /**
- Returns @true if the column is sortable.
-
- @see SetSortable()
- */
- virtual bool IsSortable() const;
-
- /**
- Returns the width of the column.
- */
- virtual int GetWidth() const;
-
- /**
- Returns @true, if the sort order is ascending.
-
- @see SetSortOrder()
- */
- virtual bool IsSortOrderAscending() const;
-
- /**
- Set the alignment of the column header.
- */
- virtual void SetAlignment(wxAlignment align);
-
- /**
- Set the bitmap of the column header.
- */
- virtual void SetBitmap(const wxBitmap& bitmap);
-
- /**
- Indicate wether the column can be reordered by the user using the mouse.
- This is typically implemented visually by dragging the header button around.
- */
- virtual void SetReorderable(bool reorderable);
-
- /**
- Indicate the sort order if the implementation of the wxDataViewCtrl supports
- it, most commonly by showing a little arrow.
- */
- virtual void SetSortOrder(bool ascending);
-
- /**
- Indicate that the column is sortable.
- This does not show any sorting indicate yet, but it does make the column
- header clickable. Call SetSortOrder() afterwards to actually make the sort
- indicator appear.
-
- If @a sortable is @false, the column header is no longer clickable and
- the sort indicator (little arrow) will disappear.
- */
- virtual void SetSortable(bool sortable);
-
- /**
- Set the title of the column header to @a title.
- */
- virtual void SetTitle(const wxString& title);
};
diff --git a/interface/wx/headercol.h b/interface/wx/headercol.h
new file mode 100644
index 0000000000..3aaee0d30d
--- /dev/null
+++ b/interface/wx/headercol.h
@@ -0,0 +1,336 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/headercol.h
+// Purpose: interface of wxHeaderColumn
+// Author: Vadim Zeitlin
+// Created: 2008-12-01
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+ Special value used for column width meaning unspecified or default.
+ */
+enum { wxCOL_WIDTH_DEFAULT = -1 };
+
+/**
+ Bit flags used as wxHeaderColumn flags.
+ */
+enum
+{
+ /// Column can be resized (included in default flags).
+ wxCOL_RESIZABLE = 1,
+
+ /// Column can be clicked to toggle the sort order by its contents.
+ wxCOL_SORTABLE = 2,
+
+ /// Column can be dragged to change its order (included in default).
+ wxCOL_REORDERABLE = 4,
+
+ /// Column is not shown at all.
+ wxCOL_HIDDEN = 8,
+
+ /// Default flags for wxHeaderColumn ctor.
+ wxCOL_DEFAULT_FLAGS = wxCOL_RESIZABLE | wxCOL_REORDERABLE
+};
+
+/**
+ @class wxHeaderColumn
+
+ Represents a column header in controls displaying tabular data such as
+ wxHeaderCtrl, wxDataViewCtrl or wxGrid.
+
+ @library{wxcore}
+ @category{ctrl}
+
+ @see wxHeaderCtrl
+ */
+class wxHeaderColumn
+{
+public:
+ //@{
+ /**
+ Constructor for a column header.
+
+ The first constructor creates a header showing the given text @a title
+ while the second one creates one showing the specified @a bitmap image.
+ */
+ wxHeaderColumn(const wxString& title,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_NOT,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ wxHeaderColumn(const wxBitmap &bitmap,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ //@}
+
+ /**
+ Set the text to display in the column header.
+ */
+ virtual void SetTitle(const wxString& title);
+
+ /**
+ Get the text shown in the column header.
+ */
+ virtual wxString GetTitle() const;
+
+ /**
+ Set the bitmap to be displayed in the column header.
+
+ Notice that the bitmaps displayed in different columns of the same
+ control must all be of the same size.
+ */
+ virtual void SetBitmap(const wxBitmap& bitmap);
+
+ /**
+ Returns the bitmap in the header of the column, if any.
+
+ If the column has no associated bitmap, wxNullBitmap is returned.
+ */
+ virtual wxBitmap GetBitmap() const; \
+
+ /**
+ Set the column width.
+
+ @param width
+ The column width in pixels or the special wxCOL_WIDTH_DEFAULT value
+ meaning to use default width.
+ */
+ virtual void SetWidth(int width);
+
+ /**
+ Returns the current width of the column.
+
+ @return
+ Width of the column in pixels, never wxCOL_WIDTH_DEFAULT.
+ */
+ virtual int GetWidth() const;
+
+ /**
+ Set the minimal column width.
+
+ This method can be used with resizeable columns (i.e. those for which
+ wxCOL_RESIZABLE flag is set in GetFlags() or, alternatively,
+ IsResizeable() returns @true) to prevent the user from making them
+ narrower than the given width.
+
+ @param minWidth
+ The minimal column width in pixels, may be 0 to remove any
+ previously set restrictions.
+ */
+ virtual void SetMinWidth(int minWidth);
+
+ /**
+ Return the minimal column width.
+
+ @return
+ The value previously set by SetMinWidth() or 0 by default.
+ */
+ virtual int GetMinWidth() const;
+
+ /**
+ Set the alignment of the column header.
+
+ @param align
+ The text alignment in horizontal direction only or wxALIGN_NOT to
+ use the default alignment, The possible values here are
+ wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT with
+ wxALIGN_CENTRE_HORIZONTAL being also supported as synonym for
+ wxALIGN_CENTRE for consistency (but notice that GetAlignment()
+ never returns it).
+ */
+ virtual void SetAlignment(wxAlignment align);
+
+ /**
+ Returns the current column alignment.
+
+ @return
+ One of wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT.
+ */
+ virtual wxAlignment GetAlignment() const;
+
+
+ // not documented because I'm not sure if it should be in the public API at
+ // all
+#if 0
+ // arbitrary client data associated with the column (currently only
+ // implemented in MSW because it is used in MSW wxDataViewCtrl
+ // implementation)
+ virtual void SetClientData(wxUIntPtr data);
+ virtual wxUIntPtr GetClientData() const;
+#endif
+
+
+ /**
+ Set the column flags.
+
+ This method allows to set all flags at once, see also generic
+ ChangeFlag(), SetFlag(), ClearFlag() and ToggleFlag() methods below as
+ well as specific SetResizeable(), SetSortable(), SetReorderable() and
+ SetHidden() ones.
+
+ @param flags
+ Combination of wxCOL_RESIZABLE, wxCOL_SORTABLE, wxCOL_REORDERABLE
+ and wxCOL_HIDDEN bit flags.
+ */
+ virtual void SetFlags(int flags);
+
+ /**
+ Set or clear the given flag.
+
+ @param flag
+ The flag to set or clear.
+ @param set
+ If @true, set the flag, i.e. equivalent to calling SetFlag(),
+ otherwise clear it, as ClearFlag().
+
+ @see SetFlags()
+ */
+ void ChangeFlag(int flag, bool set);
+
+ /**
+ Set the specified flag for the column.
+
+ @see SetFlags()
+ */
+ void SetFlag(int flag);
+
+ /**
+ Clear the specified flag for the column.
+
+ @see SetFlags()
+ */
+ void ClearFlag(int flag);
+
+ /**
+ Toggle the specified flag for the column.
+
+ If the flag is currently set, equivalent to ClearFlag(), otherwise --
+ to SetFlag().
+
+ @see SetFlags()
+ */
+ void ToggleFlag(int flag);
+
+ /**
+ Get the column flags.
+
+ This method retrieves all the flags at once, you can also use HasFlag()
+ to test for any individual flag or IsResizeable(), IsSortable(),
+ IsReorderable() and IsHidden() to test for particular flags.
+
+ @see SetFlags()
+ */
+ virtual int GetFlags() const;
+
+ /**
+ Return @true if the specified flag is currently set for this column.
+ */
+ bool HasFlag(int flag) const;
+
+
+ /**
+ Call this to enable or disable interactive resizing of the column by
+ the user.
+
+ By default, the columns are resizeable.
+
+ Equivalent to ChangeFlag(wxCOL_RESIZABLE, resizeable).
+ */
+ virtual void SetResizeable(bool resizeable);
+
+ /**
+ Return true if the column can be resized by the user.
+
+ Equivalent to HasFlag(wxCOL_RESIZABLE).
+ */
+ virtual bool IsResizeable() const;
+
+ /**
+ Allow clicking the column to sort the control contents by the field in
+ this column.
+
+ By default, the columns are not sortable so you need to explicitly call
+ this function to allow sorting by the field corresponding to this
+ column.
+
+ Equivalent to ChangeFlag(wxCOL_SORTABLE, sortable).
+ */
+ virtual void SetSortable(bool sortable);
+
+ /**
+ Returns @true if the column can be clicked by user to sort the control
+ contents by the field in this column.
+
+ This corresponds to wxCOL_SORTABLE flag which is off by default.
+
+ @see SetSortable()
+ */
+ virtual bool IsSortable() const;
+
+ /**
+ Allow changing the column order by dragging it.
+
+ Equivalent to ChangeFlag(wxCOL_REORDERABLE, reorderable).
+ */
+ virtual void SetReorderable(bool reorderable);
+
+ /**
+ Returns @true if the column can be dragged by user to change its order.
+
+ This corresponds to wxCOL_REORDERABLE flag which is on by default.
+
+ @see SetReorderable()
+ */
+ virtual bool IsReorderable() const;
+
+ /**
+ Hide or show the column.
+
+ By default all columns are shown but some of them can be completely
+ hidden from view by calling this function.
+
+ Equivalent to ChangeFlag(wxCOL_HIDDEN, hidden).
+ */
+ virtual void SetHidden(bool hidden);
+
+ /**
+ Returns @true if the column is currently hidden.
+
+ This corresponds to wxCOL_HIDDEN flag which is off by default.
+ */
+ virtual bool IsHidden() const;
+
+ /**
+ Sets the sort order for this column.
+
+ This only makes sense for sortable columns and is only taken into
+ account by the control in which this column is inserted, this function
+ just stores the sort order in the wxHeaderColumn object.
+
+ @param ascending
+ If @true, sort in ascending order, otherwise in descending order.
+ */
+ virtual void SetSortOrder(bool ascending);
+
+ /**
+ Inverses the sort order.
+
+ This function is typically called when the user clicks on a column used
+ for sorting to change sort order from ascending to descending or vice
+ versa.
+
+ @see SetSortOrder(), IsSortOrderAscending()
+ */
+ void ToggleSortOrder();
+
+ /**
+ Returns @true, if the sort order is ascending.
+
+ @see SetSortOrder()
+ */
+ virtual bool IsSortOrderAscending() const;
+};
+
+
diff --git a/interface/wx/headerctrl.h b/interface/wx/headerctrl.h
new file mode 100644
index 0000000000..110a2585a1
--- /dev/null
+++ b/interface/wx/headerctrl.h
@@ -0,0 +1,187 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/headerctrl.h
+// Purpose: interface of wxHeaderCtrl
+// Author: Vadim Zeitlin
+// Created: 2008-12-01
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+ @class wxHeaderCtrl
+
+ wxHeaderCtrl is the control containing the column headings which is usually
+ used for display of tabular data.
+
+ It is used as part of wxGrid and (will be used in the near future) in
+ in wxDataViewCtrl and report view of wxListCtrl but can be also used
+ independently.
+
+ In addition to labeling the columns, the control has the following
+ features:
+ - Column reordering support, either by explicitly configuring the
+ columns order and calling SetColumnsOrder() or by dragging the
+ columns interactively (if enabled).
+ - Display of the icons in the header: this is often used to display a
+ sort or reverse sort indicator when the column header is clicked.
+
+ Notice that this control itself doesn't do anything other than displaying
+ the column headers. In particular column reordering and sorting must still
+ be supported by the associated control displaying the real data under the
+ header.
+
+ This control is implemented using the native header control under MSW
+ systems and a generic implementation elsewhere.
+
+ @beginStyleTable
+ @style{wxHD_DRAGDROP}
+ If this style is specified (it is by default), the user can reorder
+ the control columns by dragging them.
+ @style{wxHD_DEFAULT_STYLE}
+ Symbolic name for the default control style, currently equal to @c
+ wxHD_DRAGDROP.
+ @endStyleTable
+
+ @beginEventTable{wxHeaderEvent}
+ @event{EVT_HEADER_CLICK(id, func)}
+ A column heading was clicked.
+ @endEventTable
+
+ @library{wxcore}
+ @category{ctrl}
+
+ @see wxGrid, wxListCtrl, wxDataViewCtrl
+
+
+ @section headerctrl_improvements Future Improvements
+
+ Some features are supported by the native MSW control and so could be
+ easily implemented in this version of wxHeaderCtrl but need to be
+ implemented in the generic version as well to be really useful. Please let
+ us know if you need or, better, plan to work on implementing, any of them:
+ - Displaying bitmaps instead of or together with the text
+ - Custom drawn headers
+ - Filters associated with a column.
+*/
+class wxHeaderCtrl
+{
+public:
+ /**
+ Default constructor not creating the underlying window.
+
+ You must use Create() after creating the object using this constructor.
+ */
+ wxHeaderCtrl();
+
+ /**
+ Constructor creating the window.
+
+ Please see Create() for the parameters documentation.
+ */
+ wxHeaderCtrl(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxHeaderCtrlNameStr);
+
+ /**
+ Create the header control window.
+
+ @param parent
+ The parent window. The header control should be typically
+ positioned along the top edge of this window.
+ @param winid
+ Id of the control or @c wxID_ANY if you don't care.
+ @param pos
+ The initial position of the control.
+ @param size
+ The initial size of the control (usually not very useful as this
+ control will typically be resized to have the same width as the
+ associated data display control).
+ @param style
+ The control style, @c wxHD_DEFAULT_STYLE by default. Notice that
+ the default style allows the user to reorder the columns by
+ dragging them and you need to explicitly turn this feature off by
+ using @code wxHD_DEFAULT_STYLE & ~wxHD_DRAGDROP @endcode if this is
+ undesirable.
+ @param name
+ The name of the control.
+ */
+ bool Create(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxHeaderCtrlNameStr);
+
+ /**
+ Return the number of columns in the control.
+
+ @see IsEmpty()
+ */
+ unsigned int GetColumnCount() const;
+
+ /**
+ Return whether the control has any columns.
+
+ @see GetColumnCount()
+ */
+ bool IsEmpty() const;
+
+ /**
+ Insert the column at the given position.
+
+ @param col
+ The column to insert. Notice that because of the existence of
+ implicit conversion from wxString to wxHeaderColumn a string
+ can be passed directly here.
+ @param idx
+ The position of the new column, from 0 to GetColumnCount(). Using
+ GetColumnCount() means to append the column to the end.
+
+ @see AppendColumn()
+ */
+ void InsertColumn(const wxHeaderColumn& col, unsigned int idx);
+
+ /**
+ Append the column to the end of the control.
+
+ @see InsertColumn()
+ */
+ void AppendColumn(const wxHeaderColumn& col);
+
+ /**
+ Delete the column at the given position.
+
+ @see InsertColumn(), AppendColumn()
+ */
+ void DeleteColumn(unsigned int idx);
+
+ /**
+ Update the column sort indicator.
+
+ The sort indicator, if shown, is typically an arrow pointing upwards or
+ downwards depending on whether the control contents is sorted in
+ ascending or descending order.
+
+ @param idx
+ The column to set the sort indicator for.
+ @param sortOrder
+ If @true or @false show the sort indicator corresponding to
+ ascending or descending sort order respectively, if @c -1 remove
+ the currently shown sort indicator.
+ */
+ virtual void ShowSortIndicator(unsigned int idx, int sortOrder);
+
+ /**
+ Remove the sort indicator from the given column.
+
+ This is the same as calling ShowSortIndicator() with @c -1 argument.
+
+ @param idx
+ The column to remove sort indicator for.
+ */
+ void RemoveSortIndicator(unsigned int idx);
+};
diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp
index c0850cbf16..567eb55d57 100644
--- a/src/common/datavcmn.cpp
+++ b/src/common/datavcmn.cpp
@@ -834,12 +834,15 @@ void wxDataViewEditorCtrlEvtHandler::OnKillFocus( wxFocusEvent &event )
IMPLEMENT_ABSTRACT_CLASS(wxDataViewColumnBase, wxObject)
-wxDataViewColumnBase::wxDataViewColumnBase(const wxString& WXUNUSED(title),
+wxDataViewColumnBase::wxDataViewColumnBase(const wxString& title,
wxDataViewRenderer *renderer,
unsigned int model_column,
- int WXUNUSED(width),
- wxAlignment WXUNUSED(align),
- int WXUNUSED(flags))
+ int width,
+ wxAlignment align,
+ int flags)
+#ifdef wxHAS_GENERIC_DATAVIEWCTRL
+ : wxHeaderColumn(title, width, align, flags)
+#endif
{
m_renderer = renderer;
m_model_column = model_column;
@@ -853,43 +856,24 @@ wxDataViewColumnBase::wxDataViewColumnBase(const wxString& WXUNUSED(title),
wxDataViewColumnBase::wxDataViewColumnBase(const wxBitmap& bitmap,
wxDataViewRenderer *renderer,
unsigned int model_column,
- int WXUNUSED(width),
- wxAlignment WXUNUSED(align),
- int WXUNUSED(flags) )
+ int width,
+ wxAlignment align,
+ int flags)
+#ifdef wxHAS_GENERIC_DATAVIEWCTRL
+ : wxHeaderColumn(bitmap, width, align, flags)
+#else
+ : m_bitmap(bitmap)
+#endif
{
m_renderer = renderer;
m_model_column = model_column;
- m_bitmap = bitmap;
m_owner = NULL;
m_renderer->SetOwner( (wxDataViewColumn*) this );
}
wxDataViewColumnBase::~wxDataViewColumnBase()
{
- if (m_renderer)
- delete m_renderer;
-}
-
-int wxDataViewColumnBase::GetFlags() const
-{
- int ret = 0;
-
- if (IsSortable())
- ret |= wxDATAVIEW_COL_SORTABLE;
- if (IsResizeable())
- ret |= wxDATAVIEW_COL_RESIZABLE;
- if (IsHidden())
- ret |= wxDATAVIEW_COL_HIDDEN;
-
- return ret;
-}
-
-void wxDataViewColumnBase::SetFlags(int flags)
-{
- SetSortable((flags & wxDATAVIEW_COL_SORTABLE) != 0);
- SetResizeable((flags & wxDATAVIEW_COL_RESIZABLE) != 0);
- SetHidden((flags & wxDATAVIEW_COL_HIDDEN) != 0);
- SetReorderable((flags & wxDATAVIEW_COL_REORDERABLE) != 0);
+ delete m_renderer;
}
// ---------------------------------------------------------
diff --git a/src/common/headercolcmn.cpp b/src/common/headercolcmn.cpp
new file mode 100644
index 0000000000..1a6a3cc0ba
--- /dev/null
+++ b/src/common/headercolcmn.cpp
@@ -0,0 +1,90 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/common/headercolcmn.cpp
+// Purpose: wxHeaderColumnBase implementation
+// Author: Vadim Zeitlin
+// Created: 2008-12-02
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headercol.h"
+
+// ============================================================================
+// wxHeaderColumnBase implementation
+// ============================================================================
+
+void wxHeaderColumnBase::SetIndividualFlags(int flags)
+{
+ SetResizeable((flags & wxCOL_RESIZABLE) != 0);
+ SetSortable((flags & wxCOL_SORTABLE) != 0);
+ SetReorderable((flags & wxCOL_REORDERABLE) != 0);
+ SetHidden((flags & wxCOL_HIDDEN) != 0);
+}
+
+int wxHeaderColumnBase::GetFromIndividualFlags() const
+{
+ int flags = 0;
+
+ if ( IsResizeable() )
+ flags |= wxCOL_RESIZABLE;
+ if ( IsSortable() )
+ flags |= wxCOL_SORTABLE;
+ if ( IsReorderable() )
+ flags |= wxCOL_REORDERABLE;
+ if ( IsHidden() )
+ flags |= wxCOL_HIDDEN;
+
+ return flags;
+}
+
+void wxHeaderColumnBase::ChangeFlag(int flag, bool set)
+{
+ if ( HasFlag(flag) != set )
+ ToggleFlag(flag);
+}
+
+void wxHeaderColumnBase::SetFlag(int flag)
+{
+ int flags = GetFlags();
+ if ( !(flags & flag) )
+ SetFlags(flags | flag);
+}
+
+void wxHeaderColumnBase::ClearFlag(int flag)
+{
+ int flags = GetFlags();
+ if ( flags & flag )
+ SetFlags(flags & ~flag);
+}
+
+void wxHeaderColumnBase::ToggleFlag(int flag)
+{
+ int flags = GetFlags();
+ if ( flags & flag )
+ flags &= ~flag;
+ else
+ flags |= flag;
+
+ SetFlags(flags);
+}
+
+
diff --git a/src/common/headerctrlcmn.cpp b/src/common/headerctrlcmn.cpp
new file mode 100644
index 0000000000..596bcf9abe
--- /dev/null
+++ b/src/common/headerctrlcmn.cpp
@@ -0,0 +1,44 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/common/headerctrlcmn.cpp
+// Purpose: implementation of wxHeaderCtrlBase
+// Author: Vadim Zeitlin
+// Created: 2008-12-02
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headerctrl.h"
+
+// ============================================================================
+// wxHeaderCtrlBase implementation
+// ============================================================================
+
+WXDLLIMPEXP_DATA_CORE(const char) wxHeaderCtrlNameStr[] = "wxHeaderCtrl";
+
+void wxHeaderCtrlBase::DeleteAllColumns()
+{
+ const unsigned count = GetColumnCount();
+ for ( unsigned n = 0; n < count; n++ )
+ DeleteColumn(0);
+}
+
+
diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp
index ed190733d2..062f101a1e 100644
--- a/src/generic/datavgen.cpp
+++ b/src/generic/datavgen.cpp
@@ -73,6 +73,8 @@ static const int EXPANDER_OFFSET = 1;
// on wxMSW the header window (only that part however) can be made native!
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
#define USE_NATIVE_HEADER_WINDOW
+
+ #include "wx/headerctrl.h"
#endif
//Below is the compare stuff
@@ -83,7 +85,12 @@ static bool g_asending = true;
// NB: for some reason, this class must be dllexport'ed or we get warnings from
// MSVC in DLL build
-class WXDLLIMPEXP_ADV wxDataViewHeaderWindowBase : public wxControl
+class WXDLLIMPEXP_ADV wxDataViewHeaderWindowBase : public
+#ifdef USE_NATIVE_HEADER_WINDOW
+ wxHeaderCtrl
+#else
+ wxControl
+#endif
{
public:
wxDataViewHeaderWindowBase()
@@ -127,21 +134,12 @@ protected:
class wxDataViewHeaderWindowMSW : public wxDataViewHeaderWindowBase
{
public:
-
- wxDataViewHeaderWindowMSW( wxDataViewCtrl *parent,
- wxWindowID id,
- const wxPoint &pos = wxDefaultPosition,
- const wxSize &size = wxDefaultSize,
- const wxString &name = wxT("wxdataviewctrlheaderwindow") )
+ wxDataViewHeaderWindowMSW(wxDataViewCtrl *parent)
{
- Create(parent, id, pos, size, name);
+ Create(parent);
}
- bool Create(wxDataViewCtrl *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- const wxString &name);
-
- ~wxDataViewHeaderWindowMSW();
+ bool Create(wxDataViewCtrl *parent);
// called when any column setting is changed and/or changed
// the column count
@@ -154,8 +152,6 @@ public:
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
- virtual bool AcceptsFocusFromKeyboard() const { return false; }
-
protected:
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
@@ -172,7 +168,6 @@ protected:
int m_buttonHeight;
bool m_vetoColumnDrag;
bool m_delayedUpdate;
- wxImageList *m_imageList;
private:
DECLARE_DYNAMIC_CLASS(wxDataViewHeaderWindowMSW)
@@ -189,7 +184,7 @@ class wxGenericDataViewHeaderWindow : public wxDataViewHeaderWindowBase
{
public:
wxGenericDataViewHeaderWindow( wxDataViewCtrl *parent,
- wxWindowID id,
+ wxWindowID id = wxID_ANY,
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
const wxString &name = wxT("wxdataviewctrlheaderwindow") )
@@ -1186,13 +1181,12 @@ wxDataViewColumn::wxDataViewColumn( const wxString &title, wxDataViewRenderer *c
int width, wxAlignment align, int flags ) :
wxDataViewColumnBase( title, cell, model_column, width, align, flags )
{
- SetAlignment(align);
+ wxDataViewColumnBase::SetWidth(width == wxCOL_WIDTH_DEFAULT
+ ? wxDVC_DEFAULT_WIDTH
+ : width);
SetTitle(title);
+ SetAlignment(align);
SetFlags(flags);
-
- m_autosize = width < 0; // TODO
-
- Init(width < 0 ? wxDVC_DEFAULT_WIDTH : width);
}
wxDataViewColumn::wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *cell,
@@ -1200,80 +1194,44 @@ wxDataViewColumn::wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *
int width, wxAlignment align, int flags ) :
wxDataViewColumnBase( bitmap, cell, model_column, width, align, flags )
{
+ wxDataViewColumnBase::SetWidth(width == wxCOL_WIDTH_DEFAULT
+ ? wxDVC_DEFAULT_WIDTH
+ : width);
+ SetBitmap(bitmap);
SetAlignment(align);
SetFlags(flags);
-
- Init(width < 0 ? wxDVC_DEFAULT_WIDTH : width);
}
-wxDataViewColumn::~wxDataViewColumn()
+void wxDataViewColumn::SetFlags(int flags)
{
-}
+ if ( flags != GetFlags() )
+ {
+ wxDataViewColumnBase::SetFlags(flags);
-void wxDataViewColumn::Init( int width )
-{
- m_width = width;
- m_minWidth = wxDVC_DEFAULT_MINWIDTH;
- m_ascending = true;
-}
-
-void wxDataViewColumn::SetResizeable( bool resizeable )
-{
- if (resizeable)
- m_flags |= wxDATAVIEW_COL_RESIZABLE;
- else
- m_flags &= ~wxDATAVIEW_COL_RESIZABLE;
-}
-
-void wxDataViewColumn::SetHidden( bool hidden )
-{
- if (hidden)
- m_flags |= wxDATAVIEW_COL_HIDDEN;
- else
- m_flags &= ~wxDATAVIEW_COL_HIDDEN;
-
- // tell our owner to e.g. update its scrollbars:
- if (GetOwner())
- GetOwner()->OnColumnChange();
-}
-
-void wxDataViewColumn::SetSortable( bool sortable )
-{
- if (sortable)
- m_flags |= wxDATAVIEW_COL_SORTABLE;
- else
- m_flags &= ~wxDATAVIEW_COL_SORTABLE;
-
- // Update header button
- if (GetOwner())
- GetOwner()->OnColumnChange();
-}
-
-void wxDataViewColumn::SetReorderable( bool reorderable )
-{
- if (reorderable)
- m_flags |= wxDATAVIEW_COL_REORDERABLE;
- else
- m_flags &= ~wxDATAVIEW_COL_REORDERABLE;
+ // tell our owner to e.g. update its scrollbars:
+ if ( GetOwner() )
+ GetOwner()->OnColumnChange();
+ }
}
void wxDataViewColumn::SetSortOrder( bool ascending )
{
- m_ascending = ascending;
+ if ( ascending == IsSortOrderAscending() )
+ return;
+
+ wxDataViewColumnBase::SetSortOrder(ascending);
// Update header button
if (GetOwner())
GetOwner()->OnColumnChange();
}
-bool wxDataViewColumn::IsSortOrderAscending() const
-{
- return m_ascending;
-}
-
void wxDataViewColumn::SetInternalWidth( int width )
{
- m_width = width;
+ if ( width == GetWidth() )
+ return;
+
+ wxDataViewColumnBase::SetWidth(width);
// the scrollbars of the wxDataViewCtrl needs to be recalculated!
if (m_owner && m_owner->m_clientArea)
@@ -1282,11 +1240,23 @@ void wxDataViewColumn::SetInternalWidth( int width )
void wxDataViewColumn::SetWidth( int width )
{
- if (m_owner->m_headerArea) m_owner->m_headerArea->UpdateDisplay();
+ if ( width == wxCOL_WIDTH_DEFAULT )
+ width = wxDVC_DEFAULT_WIDTH;
+
+ if ( width == GetWidth() )
+ return;
+
+ if (m_owner->m_headerArea)
+ m_owner->m_headerArea->UpdateDisplay();
SetInternalWidth(width);
}
+int wxDataViewColumn::GetWidth() const
+{
+ int width = wxDataViewColumnBase::GetWidth();
+ return width == wxCOL_WIDTH_DEFAULT ? wxDVC_DEFAULT_WIDTH : width;
+}
//-----------------------------------------------------------------------------
// wxDataViewHeaderWindowBase
@@ -1310,21 +1280,12 @@ void wxDataViewHeaderWindowBase::SendEvent(wxEventType type, unsigned int n)
#ifdef USE_NATIVE_HEADER_WINDOW
-#ifndef HDS_DRAGDROP
- #define HDS_DRAGDROP 0x0040
-#endif
-#ifndef HDS_FULLDRAG
- #define HDS_FULLDRAG 0x0080
-#endif
-
// implemented in msw/listctrl.cpp:
int WXDLLIMPEXP_CORE wxMSWGetColumnClicked(NMHDR *nmhdr, POINT *ptClick);
IMPLEMENT_ABSTRACT_CLASS(wxDataViewHeaderWindowMSW, wxWindow)
-bool wxDataViewHeaderWindowMSW::Create( wxDataViewCtrl *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- const wxString &name )
+bool wxDataViewHeaderWindowMSW::Create(wxDataViewCtrl *parent)
{
m_owner = parent;
@@ -1333,56 +1294,7 @@ bool wxDataViewHeaderWindowMSW::Create( wxDataViewCtrl *parent, wxWindowID id,
m_vetoColumnDrag = false;
m_buttonHeight = wxRendererNative::Get().GetHeaderButtonHeight( this );
- int x = pos.x == wxDefaultCoord ? 0 : pos.x,
- y = pos.y == wxDefaultCoord ? 0 : pos.y,
- w = size.x == wxDefaultCoord ? 1 : size.x,
- h = m_buttonHeight;
-
- wxSize new_size(w,h);
-
- if ( !CreateControl(parent, id, pos, new_size, 0, wxDefaultValidator, name) )
- return false;
-
- // create the native WC_HEADER window:
- WXHWND hwndParent = (HWND)parent->GetHandle();
- WXDWORD msStyle = WS_CHILD | HDS_DRAGDROP | HDS_BUTTONS | HDS_HORZ | HDS_HOTTRACK | HDS_FULLDRAG;
-
- if ( m_isShown )
- msStyle |= WS_VISIBLE;
-
- m_hWnd = CreateWindowEx(0,
- WC_HEADER,
- (LPCTSTR) NULL,
- msStyle,
- x, y, w, h,
- (HWND)hwndParent,
- (HMENU)-1,
- wxGetInstance(),
- (LPVOID) NULL);
- if (m_hWnd == NULL)
- {
- wxLogLastError(_T("CreateWindowEx"));
- return false;
- }
-
- m_imageList = new wxImageList( 16, 16 );
- (void)Header_SetImageList((HWND) m_hWnd, m_imageList->GetHIMAGELIST());
-
- // we need to subclass the m_hWnd to force wxWindow::HandleNotify
- // to call wxDataViewHeaderWindow::MSWOnNotify
- SubclassWin(m_hWnd);
-
- // the following is required to get the default win's font for
- // header windows and must be done befor sending the HDM_LAYOUT msg
- SetFont(GetFont());
-
- return true;
-}
-
-wxDataViewHeaderWindowMSW::~wxDataViewHeaderWindow()
-{
- delete m_imageList;
- UnsubclassWin();
+ return wxHeaderCtrl::Create(parent, wxID_ANY);
}
wxSize wxDataViewHeaderWindowMSW::DoGetBestSize() const
@@ -1402,79 +1314,36 @@ void wxDataViewHeaderWindowMSW::OnInternalIdle()
void wxDataViewHeaderWindowMSW::UpdateDisplay()
{
// remove old columns
- for (int j=0, max=Header_GetItemCount((HWND)m_hWnd); j < max; j++)
- Header_DeleteItem((HWND)m_hWnd, 0);
-
- m_imageList->RemoveAll();
+ DeleteAllColumns();
// add the updated array of columns to the header control
- unsigned int cols = GetOwner()->GetColumnCount();
- unsigned int added = 0;
+ const unsigned int cols = GetOwner()->GetColumnCount();
for (unsigned int i = 0; i < cols; i++)
{
- wxDataViewColumn *col = GetColumn( i );
+ wxDataViewColumn * const col = GetColumn( i );
if (col->IsHidden())
continue; // don't add it!
- wxString title( col->GetTitle() );
- HDITEM hdi;
- hdi.mask = HDI_TEXT | HDI_FORMAT | HDI_WIDTH;
- if (col->GetBitmap().IsOk())
- {
- m_imageList->Add( col->GetBitmap() );
- hdi.mask |= HDI_IMAGE;
- hdi.iImage = m_imageList->GetImageCount()-1;
- }
- hdi.pszText = (wxChar *) title.wx_str();
- hdi.cxy = col->GetWidth();
- hdi.cchTextMax = sizeof(hdi.pszText)/sizeof(hdi.pszText[0]);
- hdi.fmt = HDF_LEFT | HDF_STRING;
- if (col->GetBitmap().IsOk())
- hdi.fmt |= HDF_IMAGE;
+ // we store the column index to use later as client data (we need to do
+ // it since column indices in the control and the model may not be the
+ // same if any columns have been hidden)
+ col->SetClientData(i);
- //hdi.fmt &= ~(HDF_SORTDOWN|HDF_SORTUP);
+ AppendColumn(*col);
- if (col->IsSortable() && GetOwner()->GetSortingColumn() == col)
+ if ( col->IsSortable() && GetOwner()->GetSortingColumn() == col )
{
- //The Microsoft Comctrl32.dll 6.0 support SORTUP/SORTDOWN, but they are not default
- //see http://msdn2.microsoft.com/en-us/library/ms649534.aspx for more detail
- // VZ: works with 5.81
- hdi.fmt |= col->IsSortOrderAscending() ? HDF_SORTUP : HDF_SORTDOWN;
+ ShowSortIndicator(GetColumnCount() - 1, col->IsSortOrderAscending());
}
- // lParam is reserved for application's use:
- // we store there the column index to use it later in MSWOnNotify
- // (since columns may have been hidden)
- hdi.lParam = (LPARAM)i;
-
+#if 0
// the native wxMSW implementation of the header window
// draws the column separator COLUMN_WIDTH_OFFSET pixels
// on the right: to correct this effect we make the column
// exactly COLUMN_WIDTH_OFFSET wider (for the first column):
if (i == 0)
hdi.cxy += COLUMN_WIDTH_OFFSET;
-
- switch (col->GetAlignment())
- {
- case wxALIGN_LEFT:
- hdi.fmt |= HDF_LEFT;
- break;
- case wxALIGN_CENTER:
- case wxALIGN_CENTER_HORIZONTAL:
- hdi.fmt |= HDF_CENTER;
- break;
- case wxALIGN_RIGHT:
- hdi.fmt |= HDF_RIGHT;
- break;
-
- default:
- // such alignment is not allowed for the column header!
- break; // wxFAIL;
- }
-
- SendMessage((HWND)m_hWnd, HDM_INSERTITEM,
- (WPARAM)added, (LPARAM)&hdi);
- added++;
+#endif
}
}
@@ -4124,7 +3993,7 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
if (HasFlag(wxDV_NO_HEADER))
m_headerArea = NULL;
else
- m_headerArea = new wxDataViewHeaderWindow( this, wxID_ANY );
+ m_headerArea = new wxDataViewHeaderWindow(this);
SetTargetWindow( m_clientArea );
diff --git a/src/generic/headercolg.cpp b/src/generic/headercolg.cpp
new file mode 100644
index 0000000000..12e78c0bd0
--- /dev/null
+++ b/src/generic/headercolg.cpp
@@ -0,0 +1,37 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/generic/headercolg.cpp
+// Purpose: generic wxHeaderColumn implementation
+// Author: Vadim Zeitlin
+// Created: 2008-12-03
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headercol.h"
+
+#ifdef wxHAS_GENERIC_HEADERCOL
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#endif // wxHAS_GENERIC_HEADERCOL
diff --git a/src/generic/headerctrlg.cpp b/src/generic/headerctrlg.cpp
new file mode 100644
index 0000000000..307a8a6e8d
--- /dev/null
+++ b/src/generic/headerctrlg.cpp
@@ -0,0 +1,37 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/generic/headerctrlg.cpp
+// Purpose: generic wxHeaderCtrl implementation
+// Author: Vadim Zeitlin
+// Created: 2008-12-03
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headerctrl.h"
+
+#ifdef wxHAS_GENERIC_HEADERCTRL
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+#endif // wxHAS_GENERIC_HEADERCTRL
diff --git a/src/msw/headercol.cpp b/src/msw/headercol.cpp
new file mode 100644
index 0000000000..0c96cc35a4
--- /dev/null
+++ b/src/msw/headercol.cpp
@@ -0,0 +1,255 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/msw/headercol.cpp
+// Purpose: wxHeaderColumn implementation for wxMSW
+// Author: Vadim Zeitlin
+// Created: 2008-12-03
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headercol.h"
+
+#include "wx/msw/wrapcctl.h"
+
+// ----------------------------------------------------------------------------
+// wxMSWHeaderColumnImpl
+// ----------------------------------------------------------------------------
+
+struct wxMSWHeaderColumnImpl
+{
+ wxMSWHeaderColumnImpl()
+ {
+ flags = wxCOL_DEFAULT_FLAGS;
+ minWidth = 0;
+ ascending = true;
+ }
+
+ wxHDITEM hdi;
+ wxWxCharBuffer bufTitle;
+ wxBitmap bmp;
+ int flags; // combination of wxCOL_XXX constants
+ int minWidth; // 0 if not set
+ bool ascending; // sort order
+
+ DECLARE_NO_COPY_CLASS(wxMSWHeaderColumnImpl)
+};
+
+// ============================================================================
+// wxHeaderColumn implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxHeaderColumn construction/destruction
+// ----------------------------------------------------------------------------
+
+void wxHeaderColumn::Init()
+{
+ m_impl = new wxMSWHeaderColumnImpl;
+}
+
+wxHeaderColumn::wxHeaderColumn(const wxString& title,
+ int width,
+ wxAlignment align,
+ int flags)
+{
+ Init();
+
+ SetTitle(title);
+ SetWidth(width);
+ SetAlignment(align);
+ SetFlags(flags);
+}
+
+wxHeaderColumn::wxHeaderColumn(const wxBitmap& bitmap,
+ int width,
+ wxAlignment align,
+ int flags)
+{
+ Init();
+
+ SetBitmap(bitmap);
+ SetWidth(width);
+ SetAlignment(align);
+ SetFlags(flags);
+}
+
+wxHeaderColumn::~wxHeaderColumn()
+{
+ delete m_impl;
+}
+
+// ----------------------------------------------------------------------------
+// wxHeaderColumn accessors corresponding to HDITEM fields
+// ----------------------------------------------------------------------------
+
+wxHDITEM& wxHeaderColumn::GetHDI()
+{
+ return m_impl->hdi;
+}
+
+void wxHeaderColumn::SetTitle(const wxString& title)
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ hdi.mask |= HDI_TEXT;
+
+ // notice that we need to store the string we use the pointer to
+ wxWxCharBuffer& buf = m_impl->bufTitle;
+ buf = title.wc_str();
+ hdi.pszText = buf.data();
+ hdi.cchTextMax = wxStrlen(buf);
+}
+
+wxString wxHeaderColumn::GetTitle() const
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ wxASSERT_MSG( hdi.mask & HDI_TEXT, "title not set" );
+
+ return hdi.pszText;
+}
+
+void wxHeaderColumn::SetWidth(int width)
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ if ( width != wxCOL_WIDTH_DEFAULT )
+ {
+ hdi.mask |= HDI_WIDTH;
+ hdi.cxy = width;
+ }
+}
+
+int wxHeaderColumn::GetWidth() const
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ return hdi.mask & HDI_WIDTH ? hdi.cxy : wxCOL_WIDTH_DEFAULT;
+}
+
+void wxHeaderColumn::SetAlignment(wxAlignment align)
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ if ( align != wxALIGN_NOT )
+ {
+ hdi.mask |= HDI_FORMAT;
+ switch ( align )
+ {
+ case wxALIGN_LEFT:
+ hdi.fmt |= HDF_LEFT;
+ break;
+
+ case wxALIGN_CENTER:
+ case wxALIGN_CENTER_HORIZONTAL:
+ hdi.fmt |= HDF_CENTER;
+ break;
+
+ case wxALIGN_RIGHT:
+ hdi.fmt |= HDF_RIGHT;
+ break;
+
+ default:
+ wxFAIL_MSG( "invalid column header alignment" );
+ }
+ }
+}
+
+wxAlignment wxHeaderColumn::GetAlignment() const
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ if ( !(hdi.mask & HDI_FORMAT) )
+ return wxALIGN_NOT;
+
+ if ( hdi.fmt & HDF_CENTER )
+ return wxALIGN_CENTER;
+
+ if ( hdi.fmt & HDF_RIGHT )
+ return wxALIGN_RIGHT;
+
+ // HDF_LEFT == 0 so it doesn't make sense to test for it with bit and
+ return wxALIGN_LEFT;
+}
+
+void wxHeaderColumn::SetClientData(wxUIntPtr data)
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ hdi.mask |= HDI_LPARAM;
+ hdi.lParam = data;
+}
+
+wxUIntPtr wxHeaderColumn::GetClientData() const
+{
+ HDITEM& hdi = m_impl->hdi;
+
+ wxASSERT_MSG( hdi.mask & HDI_LPARAM, "client data not set" );
+
+ return hdi.lParam;
+}
+
+// ----------------------------------------------------------------------------
+// wxHeaderColumn trivial accessors for fields stored internally
+// ----------------------------------------------------------------------------
+
+void wxHeaderColumn::SetBitmap(const wxBitmap& bitmap)
+{
+ m_impl->bmp = bitmap;
+}
+
+wxBitmap wxHeaderColumn::GetBitmap() const
+{
+ return m_impl->bmp;
+}
+
+void wxHeaderColumn::SetMinWidth(int minWidth)
+{
+ m_impl->minWidth = minWidth;
+}
+
+int wxHeaderColumn::GetMinWidth() const
+{
+ return m_impl->minWidth;
+}
+
+void wxHeaderColumn::SetFlags(int flags)
+{
+ m_impl->flags = flags;
+}
+
+int wxHeaderColumn::GetFlags() const
+{
+ return m_impl->flags;
+}
+
+void wxHeaderColumn::SetSortOrder(bool ascending)
+{
+ m_impl->ascending = ascending;
+}
+
+bool wxHeaderColumn::IsSortOrderAscending() const
+{
+ return m_impl->ascending;
+}
+
+
diff --git a/src/msw/headerctrl.cpp b/src/msw/headerctrl.cpp
new file mode 100644
index 0000000000..426c374e1e
--- /dev/null
+++ b/src/msw/headerctrl.cpp
@@ -0,0 +1,185 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: src/msw/headerctrl.cpp
+// Purpose: implementation of wxHeaderCtrl for wxMSW
+// Author: Vadim Zeitlin
+// Created: 2008-12-01
+// RCS-ID: $Id$
+// Copyright: (c) 2008 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
+#endif // WX_PRECOMP
+
+#include "wx/headerctrl.h"
+#include "wx/imaglist.h"
+
+#include "wx/msw/wrapcctl.h"
+
+// ============================================================================
+// wxHeaderCtrl implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl construction/destruction
+// ----------------------------------------------------------------------------
+
+void wxHeaderCtrl::Init()
+{
+ m_imageList = NULL;
+}
+
+bool wxHeaderCtrl::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
+{
+ // notice that we don't need InitCommonControlsEx(ICC_LISTVIEW_CLASSES)
+ // here as we already call InitCommonControls() in wxApp initialization
+ // code which covers this
+
+ if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
+ return false;
+
+ if ( !MSWCreateControl(WC_HEADER, _T(""), pos, size) )
+ return false;
+
+ return true;
+}
+
+WXDWORD wxHeaderCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
+
+ if ( style & wxHD_DRAGDROP )
+ msStyle |= HDS_DRAGDROP;
+
+ // the control looks nicer with these styles and there doesn't seem to be
+ // any reason to not use them so we always do (as for HDS_HORZ it is 0
+ // anyhow but include it for clarity)
+ msStyle |= HDS_HORZ | HDS_BUTTONS | HDS_FLAT | HDS_FULLDRAG | HDS_HOTTRACK;
+
+ return msStyle;
+}
+
+wxHeaderCtrl::~wxHeaderCtrl()
+{
+ delete m_imageList;
+}
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl geometry calculation
+// ----------------------------------------------------------------------------
+
+wxSize wxHeaderCtrl::DoGetBestSize() const
+{
+ RECT rc = wxGetClientRect(GetHwndOf(GetParent()));
+ WINDOWPOS wpos;
+ HDLAYOUT layout = { &rc, &wpos };
+ if ( !Header_Layout(GetHwnd(), &layout) )
+ {
+ wxLogLastError(_T("Header_Layout"));
+ return wxControl::DoGetBestSize();
+ }
+
+ return wxSize(wpos.cx, wpos.cy);
+}
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl columns managements
+// ----------------------------------------------------------------------------
+
+unsigned int wxHeaderCtrl::DoGetCount() const
+{
+ return Header_GetItemCount(GetHwnd());
+}
+
+void wxHeaderCtrl::DoInsert(const wxHeaderColumn& col, unsigned int idx)
+{
+ // copy the HDITEM because we may modify it below
+ HDITEM hdi = col.GetHDI();
+
+ const wxBitmap bmp = col.GetBitmap();
+ if ( bmp.IsOk() )
+ {
+ const int bmpWidth = bmp.GetWidth(),
+ bmpHeight = bmp.GetHeight();
+
+ if ( !m_imageList )
+ {
+ m_imageList = new wxImageList(bmpWidth, bmpHeight);
+ Header_SetImageList(GetHwnd(), GetHimagelistOf(m_imageList));
+ }
+ else // already have an image list
+ {
+ // check that all bitmaps we use have the same size
+ int imageWidth,
+ imageHeight;
+ m_imageList->GetSize(0, imageWidth, imageHeight);
+
+ wxASSERT_MSG( imageWidth == bmpWidth && imageHeight == bmpHeight,
+ "all column bitmaps must have the same size" );
+ }
+
+ m_imageList->Add(bmp);
+ hdi.mask |= HDI_IMAGE;
+ hdi.iImage = m_imageList->GetImageCount() - 1;
+ }
+
+ if ( Header_InsertItem(GetHwnd(), idx, &hdi) == -1 )
+ {
+ wxLogLastError(_T("Header_InsertItem"));
+ }
+}
+
+void wxHeaderCtrl::DoDelete(unsigned int idx)
+{
+ if ( !Header_DeleteItem(GetHwnd(), idx) )
+ {
+ wxLogLastError(_T("Header_DeleteItem"));
+ }
+}
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl columns attributes
+// ----------------------------------------------------------------------------
+
+void wxHeaderCtrl::DoShowSortIndicator(unsigned int idx, int sortOrder)
+{
+ wxHDITEM hdi;
+ hdi.mask = HDI_FORMAT;
+
+ if ( !Header_GetItem(GetHwnd(), idx, &hdi) )
+ {
+ wxLogLastError(_T("Header_GetItem"));
+ return;
+ }
+
+ if ( sortOrder == -1 )
+ hdi.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);
+ else
+ hdi.fmt |= sortOrder ? HDF_SORTUP : HDF_SORTDOWN;
+
+ if ( !Header_SetItem(GetHwnd(), idx, &hdi) )
+ {
+ wxLogLastError(_T("Header_SetItem"));
+ }
+}
+
diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp
index 7aa4079cf6..9cf8532ae6 100644
--- a/src/msw/treectrl.cpp
+++ b/src/msw/treectrl.cpp
@@ -797,6 +797,11 @@ bool wxTreeCtrl::DoGetItem(wxTreeViewItem *tvItem) const
wxCHECK_MSG( tvItem->hItem != TVI_ROOT, false,
_T("can't retrieve virtual root item") );
+ return DoGetPossiblyRootItem(tvItem);
+}
+
+bool wxTreeCtrl::DoGetPossiblyRootItem(wxTreeViewItem *tvItem) const
+{
if ( !TreeView_GetItem(GetHwnd(), tvItem) )
{
wxLogLastError(wxT("TreeView_GetItem"));
@@ -992,14 +997,7 @@ wxTreeItemParam *wxTreeCtrl::GetItemParam(const wxTreeItemId& item) const
wxTreeViewItem tvItem(item, TVIF_PARAM);
- // hidden root may still have data.
- if ( IS_VIRTUAL_ROOT(item) )
- {
- return GET_VIRTUAL_ROOT()->GetParam();
- }
-
- // visible node.
- if ( !DoGetItem(&tvItem) )
+ if ( !DoGetPossiblyRootItem(&tvItem) )
{
return NULL;
}
@@ -1214,7 +1212,7 @@ bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const
wxCHECK_MSG( item.IsOk(), false, wxT("invalid tree item") );
wxTreeViewItem tvItem(item, TVIF_CHILDREN);
- DoGetItem(&tvItem);
+ DoGetPossiblyRootItem(&tvItem);
return tvItem.cChildren != 0;
}
diff --git a/tests/Makefile.in b/tests/Makefile.in
index cad57a6425..e64653114c 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -124,9 +124,10 @@ TEST_GUI_OBJECTS = \
test_gui_point.o \
test_gui_config.o \
test_gui_comboboxtest.o \
+ test_gui_headerctrltest.o \
+ test_gui_listctrltest.o \
test_gui_textctrltest.o \
test_gui_textentrytest.o \
- test_gui_listctrltest.o \
test_gui_rawbmp.o \
test_gui_htmlwindow.o \
test_gui_guifuncs.o \
@@ -538,15 +539,18 @@ test_gui_config.o: $(srcdir)/config/config.cpp $(TEST_GUI_ODEP)
test_gui_comboboxtest.o: $(srcdir)/controls/comboboxtest.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/comboboxtest.cpp
+test_gui_headerctrltest.o: $(srcdir)/controls/headerctrltest.cpp $(TEST_GUI_ODEP)
+ $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/headerctrltest.cpp
+
+test_gui_listctrltest.o: $(srcdir)/controls/listctrltest.cpp $(TEST_GUI_ODEP)
+ $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/listctrltest.cpp
+
test_gui_textctrltest.o: $(srcdir)/controls/textctrltest.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/textctrltest.cpp
test_gui_textentrytest.o: $(srcdir)/controls/textentrytest.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/textentrytest.cpp
-test_gui_listctrltest.o: $(srcdir)/controls/listctrltest.cpp $(TEST_GUI_ODEP)
- $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/listctrltest.cpp
-
test_gui_rawbmp.o: $(srcdir)/image/rawbmp.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/image/rawbmp.cpp
diff --git a/tests/controls/headerctrltest.cpp b/tests/controls/headerctrltest.cpp
new file mode 100644
index 0000000000..079e5e506b
--- /dev/null
+++ b/tests/controls/headerctrltest.cpp
@@ -0,0 +1,104 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: tests/controls/headerctrltest.cpp
+// Purpose: wxHeaderCtrl unit test
+// Author: Vadim Zeitlin
+// Created: 2008-11-26
+// RCS-ID: $Id$
+// Copyright: (c) 2008 Vadim Zeitlin
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "testprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/headerctrl.h"
+#endif // WX_PRECOMP
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class HeaderCtrlTestCase : public CppUnit::TestCase
+{
+public:
+ HeaderCtrlTestCase() { }
+
+ virtual void setUp();
+ virtual void tearDown();
+
+private:
+ CPPUNIT_TEST_SUITE( HeaderCtrlTestCase );
+ CPPUNIT_TEST( AddDelete );
+ CPPUNIT_TEST( BestSize );
+ CPPUNIT_TEST_SUITE_END();
+
+ void AddDelete();
+ void BestSize();
+
+ wxHeaderCtrl *m_header;
+
+ DECLARE_NO_COPY_CLASS(HeaderCtrlTestCase)
+};
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( HeaderCtrlTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HeaderCtrlTestCase, "HeaderCtrlTestCase" );
+
+// ----------------------------------------------------------------------------
+// test initialization
+// ----------------------------------------------------------------------------
+
+void HeaderCtrlTestCase::setUp()
+{
+ m_header = new wxHeaderCtrl(wxTheApp->GetTopWindow());
+}
+
+void HeaderCtrlTestCase::tearDown()
+{
+ delete m_header;
+ m_header = NULL;
+}
+
+// ----------------------------------------------------------------------------
+// the tests themselves
+// ----------------------------------------------------------------------------
+
+void HeaderCtrlTestCase::AddDelete()
+{
+ CPPUNIT_ASSERT_EQUAL( 0, m_header->GetColumnCount() );
+
+ m_header->AppendColumn(wxHeaderCtrlColumn("Column 1"));
+ CPPUNIT_ASSERT_EQUAL( 1, m_header->GetColumnCount() );
+
+ m_header->AppendColumn(wxHeaderCtrlColumn("Column 2"));
+ CPPUNIT_ASSERT_EQUAL( 2, m_header->GetColumnCount() );
+
+ m_header->InsertColumn(wxHeaderCtrlColumn("Column 0"), 0);
+ CPPUNIT_ASSERT_EQUAL( 3, m_header->GetColumnCount() );
+
+ m_header->DeleteColumn(2);
+ CPPUNIT_ASSERT_EQUAL( 2, m_header->GetColumnCount() );
+}
+
+void HeaderCtrlTestCase::BestSize()
+{
+ const wxSize sizeEmpty = m_header->GetBestSize();
+ CPPUNIT_ASSERT( sizeEmpty.x > 0 );
+ CPPUNIT_ASSERT( sizeEmpty.y > 0 );
+
+ m_header->AppendColumn(wxHeaderCtrlColumn("Foo"));
+ m_header->AppendColumn(wxHeaderCtrlColumn("Bar"));
+ const wxSize size = m_header->GetBestSize();
+ CPPUNIT_ASSERT_EQUAL( sizeEmpty.y, size.y );
+}
+
diff --git a/tests/makefile.bcc b/tests/makefile.bcc
index 4a0c138602..560bad2c92 100644
--- a/tests/makefile.bcc
+++ b/tests/makefile.bcc
@@ -111,9 +111,10 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_point.obj \
$(OBJS)\test_gui_config.obj \
$(OBJS)\test_gui_comboboxtest.obj \
+ $(OBJS)\test_gui_headerctrltest.obj \
+ $(OBJS)\test_gui_listctrltest.obj \
$(OBJS)\test_gui_textctrltest.obj \
$(OBJS)\test_gui_textentrytest.obj \
- $(OBJS)\test_gui_listctrltest.obj \
$(OBJS)\test_gui_rawbmp.obj \
$(OBJS)\test_gui_htmlwindow.obj \
$(OBJS)\test_gui_guifuncs.obj \
@@ -578,15 +579,18 @@ $(OBJS)\test_gui_config.obj: .\config\config.cpp
$(OBJS)\test_gui_comboboxtest.obj: .\controls\comboboxtest.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\comboboxtest.cpp
+$(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp
+ $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp
+
+$(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp
+ $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp
+
$(OBJS)\test_gui_textctrltest.obj: .\controls\textctrltest.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\textctrltest.cpp
$(OBJS)\test_gui_textentrytest.obj: .\controls\textentrytest.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\textentrytest.cpp
-$(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp
- $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp
-
$(OBJS)\test_gui_rawbmp.obj: .\image\rawbmp.cpp
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\image\rawbmp.cpp
diff --git a/tests/makefile.gcc b/tests/makefile.gcc
index f3f74e43bd..464b716535 100644
--- a/tests/makefile.gcc
+++ b/tests/makefile.gcc
@@ -104,9 +104,10 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_point.o \
$(OBJS)\test_gui_config.o \
$(OBJS)\test_gui_comboboxtest.o \
+ $(OBJS)\test_gui_headerctrltest.o \
+ $(OBJS)\test_gui_listctrltest.o \
$(OBJS)\test_gui_textctrltest.o \
$(OBJS)\test_gui_textentrytest.o \
- $(OBJS)\test_gui_listctrltest.o \
$(OBJS)\test_gui_rawbmp.o \
$(OBJS)\test_gui_htmlwindow.o \
$(OBJS)\test_gui_guifuncs.o \
@@ -556,15 +557,18 @@ $(OBJS)\test_gui_config.o: ./config/config.cpp
$(OBJS)\test_gui_comboboxtest.o: ./controls/comboboxtest.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\test_gui_headerctrltest.o: ./controls/headerctrltest.cpp
+ $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
+
+$(OBJS)\test_gui_listctrltest.o: ./controls/listctrltest.cpp
+ $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\test_gui_textctrltest.o: ./controls/textctrltest.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\test_gui_textentrytest.o: ./controls/textentrytest.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
-$(OBJS)\test_gui_listctrltest.o: ./controls/listctrltest.cpp
- $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
-
$(OBJS)\test_gui_rawbmp.o: ./image/rawbmp.cpp
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
diff --git a/tests/makefile.vc b/tests/makefile.vc
index 8d1138b915..d5d6fe8792 100644
--- a/tests/makefile.vc
+++ b/tests/makefile.vc
@@ -107,9 +107,10 @@ TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_point.obj \
$(OBJS)\test_gui_config.obj \
$(OBJS)\test_gui_comboboxtest.obj \
+ $(OBJS)\test_gui_headerctrltest.obj \
+ $(OBJS)\test_gui_listctrltest.obj \
$(OBJS)\test_gui_textctrltest.obj \
$(OBJS)\test_gui_textentrytest.obj \
- $(OBJS)\test_gui_listctrltest.obj \
$(OBJS)\test_gui_rawbmp.obj \
$(OBJS)\test_gui_htmlwindow.obj \
$(OBJS)\test_gui_guifuncs.obj \
@@ -663,15 +664,18 @@ $(OBJS)\test_gui_config.obj: .\config\config.cpp
$(OBJS)\test_gui_comboboxtest.obj: .\controls\comboboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\comboboxtest.cpp
+$(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp
+
+$(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp
+
$(OBJS)\test_gui_textctrltest.obj: .\controls\textctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\textctrltest.cpp
$(OBJS)\test_gui_textentrytest.obj: .\controls\textentrytest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\textentrytest.cpp
-$(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp
-
$(OBJS)\test_gui_rawbmp.obj: .\image\rawbmp.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\image\rawbmp.cpp
diff --git a/tests/makefile.wat b/tests/makefile.wat
index f0d4f57e2c..03f3afd450 100644
--- a/tests/makefile.wat
+++ b/tests/makefile.wat
@@ -321,9 +321,10 @@ TEST_GUI_OBJECTS = &
$(OBJS)\test_gui_point.obj &
$(OBJS)\test_gui_config.obj &
$(OBJS)\test_gui_comboboxtest.obj &
+ $(OBJS)\test_gui_headerctrltest.obj &
+ $(OBJS)\test_gui_listctrltest.obj &
$(OBJS)\test_gui_textctrltest.obj &
$(OBJS)\test_gui_textentrytest.obj &
- $(OBJS)\test_gui_listctrltest.obj &
$(OBJS)\test_gui_rawbmp.obj &
$(OBJS)\test_gui_htmlwindow.obj &
$(OBJS)\test_gui_guifuncs.obj &
@@ -610,15 +611,18 @@ $(OBJS)\test_gui_config.obj : .AUTODEPEND .\config\config.cpp
$(OBJS)\test_gui_comboboxtest.obj : .AUTODEPEND .\controls\comboboxtest.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
+$(OBJS)\test_gui_headerctrltest.obj : .AUTODEPEND .\controls\headerctrltest.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
+
+$(OBJS)\test_gui_listctrltest.obj : .AUTODEPEND .\controls\listctrltest.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
+
$(OBJS)\test_gui_textctrltest.obj : .AUTODEPEND .\controls\textctrltest.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
$(OBJS)\test_gui_textentrytest.obj : .AUTODEPEND .\controls\textentrytest.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
-$(OBJS)\test_gui_listctrltest.obj : .AUTODEPEND .\controls\listctrltest.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
-
$(OBJS)\test_gui_rawbmp.obj : .AUTODEPEND .\image\rawbmp.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
diff --git a/tests/test.bkl b/tests/test.bkl
index 7a78b18971..6c915e270c 100644
--- a/tests/test.bkl
+++ b/tests/test.bkl
@@ -108,9 +108,10 @@
geometry/point.cpp
config/config.cpp
controls/comboboxtest.cpp
+ controls/headerctrltest.cpp
+ controls/listctrltest.cpp
controls/textctrltest.cpp
controls/textentrytest.cpp
- controls/listctrltest.cpp
image/rawbmp.cpp
html/htmlwindow.cpp
misc/guifuncs.cpp
diff --git a/tests/test_test_gui.dsp b/tests/test_test_gui.dsp
index 6ad4be8ae1..7c23d4d73b 100644
--- a/tests/test_test_gui.dsp
+++ b/tests/test_test_gui.dsp
@@ -257,6 +257,10 @@ SOURCE=.\misc\guifuncs.cpp
# End Source File
# Begin Source File
+SOURCE=.\controls\headerctrltest.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\html\htmlwindow.cpp
# End Source File
# Begin Source File
diff --git a/tests/test_vc7_test_gui.vcproj b/tests/test_vc7_test_gui.vcproj
index dde55705a1..570c8b7fd0 100644
--- a/tests/test_vc7_test_gui.vcproj
+++ b/tests/test_vc7_test_gui.vcproj
@@ -612,6 +612,9 @@
+
+
diff --git a/tests/test_vc8_test_gui.vcproj b/tests/test_vc8_test_gui.vcproj
index 02a3bf72e5..dcdc7e744c 100644
--- a/tests/test_vc8_test_gui.vcproj
+++ b/tests/test_vc8_test_gui.vcproj
@@ -895,6 +895,10 @@
RelativePath=".\misc\guifuncs.cpp"
>
+
+
diff --git a/tests/test_vc9_test_gui.vcproj b/tests/test_vc9_test_gui.vcproj
index ccf1610481..56575080fd 100644
--- a/tests/test_vc9_test_gui.vcproj
+++ b/tests/test_vc9_test_gui.vcproj
@@ -867,6 +867,10 @@
RelativePath=".\misc\guifuncs.cpp"
>
+
+
diff --git a/wxGTK.spec b/wxGTK.spec
index 15bda24395..4736b7dcb6 100644
--- a/wxGTK.spec
+++ b/wxGTK.spec
@@ -354,10 +354,7 @@ wx/unix/stackwalk.h
wx/unix/tls.h
wx/unix/execute.h
wx/unix/mimetype.h
-wx/unix/private.h
-wx/private/gsocketiohandler.h
wx/fs_inet.h
-wx/gsocket.h
wx/protocol/file.h
wx/protocol/ftp.h
wx/protocol/http.h
@@ -367,7 +364,6 @@ wx/sckipc.h
wx/sckstrm.h
wx/socket.h
wx/url.h
-wx/unix/gsockunx.h
wx/xml/xml.h
wx/xtixml.h
EOF
diff --git a/wxMotif.spec b/wxMotif.spec
index 817e118617..b08d11074e 100644
--- a/wxMotif.spec
+++ b/wxMotif.spec
@@ -259,10 +259,7 @@ wx/unix/stackwalk.h
wx/unix/tls.h
wx/unix/execute.h
wx/unix/mimetype.h
-wx/unix/private.h
-wx/private/gsocketiohandler.h
wx/fs_inet.h
-wx/gsocket.h
wx/protocol/file.h
wx/protocol/ftp.h
wx/protocol/http.h
@@ -272,7 +269,6 @@ wx/sckipc.h
wx/sckstrm.h
wx/socket.h
wx/url.h
-wx/unix/gsockunx.h
wx/xml/xml.h
wx/xtixml.h
EOF
diff --git a/wxX11.spec b/wxX11.spec
index bcec15dff0..ab1b782d29 100644
--- a/wxX11.spec
+++ b/wxX11.spec
@@ -283,10 +283,7 @@ wx/unix/stackwalk.h
wx/unix/tls.h
wx/unix/execute.h
wx/unix/mimetype.h
-wx/unix/private.h
-wx/private/gsocketiohandler.h
wx/fs_inet.h
-wx/gsocket.h
wx/protocol/file.h
wx/protocol/ftp.h
wx/protocol/http.h
@@ -296,7 +293,6 @@ wx/sckipc.h
wx/sckstrm.h
wx/socket.h
wx/url.h
-wx/unix/gsockunx.h
wx/xml/xml.h
wx/xtixml.h
EOF