Use custom draw in wxMSW wxHeaderCtrl to support colours

Add a helper wxMSWImpl::CustomDraw class which will be reused in the other
places too and, for now, use it just to implement support for custom colours
in wxHeaderCtrl.

Notice that the control took care of the custom font on its anyhow and that
background colour is ignored when themes are enabled, so the net effect of
this change is that now changing the header foreground colour works, while
it was ignored before.
This commit is contained in:
Vadim Zeitlin
2016-04-17 16:04:45 +02:00
parent 64196306bc
commit c15f75b81d
15 changed files with 328 additions and 1 deletions

View File

@@ -1983,6 +1983,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/msw/tglbtn.cpp
src/msw/treectrl.cpp
src/msw/systhemectrl.cpp
src/msw/customdraw.cpp
</set>
<set var="MSW_HDR" hints="files">
wx/generic/clrpickerg.h

View File

@@ -1798,6 +1798,7 @@ MSW_SRC =
src/msw/combo.cpp
src/msw/combobox.cpp
src/msw/control.cpp
src/msw/customdraw.cpp
src/msw/dialog.cpp
src/msw/dirdlg.cpp
src/msw/dragimag.cpp

View File

@@ -1897,6 +1897,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_msw_tglbtn.obj \
$(OBJS)\monodll_treectrl.obj \
$(OBJS)\monodll_systhemectrl.obj \
$(OBJS)\monodll_customdraw.obj \
$(OBJS)\monodll_msw_checklst.obj \
$(OBJS)\monodll_msw_fdrepdlg.obj \
$(OBJS)\monodll_fontdlg.obj \
@@ -2728,6 +2729,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_msw_tglbtn.obj \
$(OBJS)\monolib_treectrl.obj \
$(OBJS)\monolib_systhemectrl.obj \
$(OBJS)\monolib_customdraw.obj \
$(OBJS)\monolib_msw_checklst.obj \
$(OBJS)\monolib_msw_fdrepdlg.obj \
$(OBJS)\monolib_fontdlg.obj \
@@ -3431,6 +3433,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_msw_tglbtn.obj \
$(OBJS)\coredll_treectrl.obj \
$(OBJS)\coredll_systhemectrl.obj \
$(OBJS)\coredll_customdraw.obj \
$(OBJS)\coredll_msw_checklst.obj \
$(OBJS)\coredll_msw_fdrepdlg.obj \
$(OBJS)\coredll_fontdlg.obj \
@@ -4002,6 +4005,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_msw_tglbtn.obj \
$(OBJS)\corelib_treectrl.obj \
$(OBJS)\corelib_systhemectrl.obj \
$(OBJS)\corelib_customdraw.obj \
$(OBJS)\corelib_msw_checklst.obj \
$(OBJS)\corelib_msw_fdrepdlg.obj \
$(OBJS)\corelib_fontdlg.obj \
@@ -6927,6 +6931,9 @@ $(OBJS)\monodll_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\monodll_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\monodll_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\monodll_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -9462,6 +9469,9 @@ $(OBJS)\monolib_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\monolib_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\monolib_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\monolib_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -12405,6 +12415,9 @@ $(OBJS)\coredll_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\coredll_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\coredll_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\coredll_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -13882,6 +13895,9 @@ $(OBJS)\corelib_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\corelib_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\corelib_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\corelib_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\checklst.cpp

View File

@@ -1916,6 +1916,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_msw_tglbtn.o \
$(OBJS)\monodll_treectrl.o \
$(OBJS)\monodll_systhemectrl.o \
$(OBJS)\monodll_customdraw.o \
$(OBJS)\monodll_msw_checklst.o \
$(OBJS)\monodll_msw_fdrepdlg.o \
$(OBJS)\monodll_fontdlg.o \
@@ -2753,6 +2754,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_msw_tglbtn.o \
$(OBJS)\monolib_treectrl.o \
$(OBJS)\monolib_systhemectrl.o \
$(OBJS)\monolib_customdraw.o \
$(OBJS)\monolib_msw_checklst.o \
$(OBJS)\monolib_msw_fdrepdlg.o \
$(OBJS)\monolib_fontdlg.o \
@@ -3472,6 +3474,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_msw_tglbtn.o \
$(OBJS)\coredll_treectrl.o \
$(OBJS)\coredll_systhemectrl.o \
$(OBJS)\coredll_customdraw.o \
$(OBJS)\coredll_msw_checklst.o \
$(OBJS)\coredll_msw_fdrepdlg.o \
$(OBJS)\coredll_fontdlg.o \
@@ -4051,6 +4054,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_msw_tglbtn.o \
$(OBJS)\corelib_treectrl.o \
$(OBJS)\corelib_systhemectrl.o \
$(OBJS)\corelib_customdraw.o \
$(OBJS)\corelib_msw_checklst.o \
$(OBJS)\corelib_msw_fdrepdlg.o \
$(OBJS)\corelib_fontdlg.o \
@@ -7102,6 +7106,9 @@ $(OBJS)\monodll_treectrl.o: ../../src/msw/treectrl.cpp
$(OBJS)\monodll_systhemectrl.o: ../../src/msw/systhemectrl.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_customdraw.o: ../../src/msw/customdraw.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_msw_checklst.o: ../../src/msw/checklst.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9639,6 +9646,9 @@ $(OBJS)\monolib_treectrl.o: ../../src/msw/treectrl.cpp
$(OBJS)\monolib_systhemectrl.o: ../../src/msw/systhemectrl.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_customdraw.o: ../../src/msw/customdraw.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_msw_checklst.o: ../../src/msw/checklst.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -12584,6 +12594,9 @@ $(OBJS)\coredll_treectrl.o: ../../src/msw/treectrl.cpp
$(OBJS)\coredll_systhemectrl.o: ../../src/msw/systhemectrl.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\coredll_customdraw.o: ../../src/msw/customdraw.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\coredll_msw_checklst.o: ../../src/msw/checklst.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -14061,6 +14074,9 @@ $(OBJS)\corelib_treectrl.o: ../../src/msw/treectrl.cpp
$(OBJS)\corelib_systhemectrl.o: ../../src/msw/systhemectrl.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\corelib_customdraw.o: ../../src/msw/customdraw.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\corelib_msw_checklst.o: ../../src/msw/checklst.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -2197,6 +2197,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_msw_tglbtn.obj \
$(OBJS)\monodll_treectrl.obj \
$(OBJS)\monodll_systhemectrl.obj \
$(OBJS)\monodll_customdraw.obj \
$(OBJS)\monodll_msw_checklst.obj \
$(OBJS)\monodll_msw_fdrepdlg.obj \
$(OBJS)\monodll_fontdlg.obj \
@@ -3034,6 +3035,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_msw_tglbtn.obj \
$(OBJS)\monolib_treectrl.obj \
$(OBJS)\monolib_systhemectrl.obj \
$(OBJS)\monolib_customdraw.obj \
$(OBJS)\monolib_msw_checklst.obj \
$(OBJS)\monolib_msw_fdrepdlg.obj \
$(OBJS)\monolib_fontdlg.obj \
@@ -3803,6 +3805,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_msw_tglbtn.obj \
$(OBJS)\coredll_treectrl.obj \
$(OBJS)\coredll_systhemectrl.obj \
$(OBJS)\coredll_customdraw.obj \
$(OBJS)\coredll_msw_checklst.obj \
$(OBJS)\coredll_msw_fdrepdlg.obj \
$(OBJS)\coredll_fontdlg.obj \
@@ -4380,6 +4383,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_msw_tglbtn.obj \
$(OBJS)\corelib_treectrl.obj \
$(OBJS)\corelib_systhemectrl.obj \
$(OBJS)\corelib_customdraw.obj \
$(OBJS)\corelib_msw_checklst.obj \
$(OBJS)\corelib_msw_fdrepdlg.obj \
$(OBJS)\corelib_fontdlg.obj \
@@ -7619,6 +7623,9 @@ $(OBJS)\monodll_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\monodll_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\monodll_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\monodll_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -10154,6 +10161,9 @@ $(OBJS)\monolib_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\monolib_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\monolib_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\monolib_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -13097,6 +13107,9 @@ $(OBJS)\coredll_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\coredll_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\coredll_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\coredll_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\checklst.cpp
@@ -14574,6 +14587,9 @@ $(OBJS)\corelib_treectrl.obj: ..\..\src\msw\treectrl.cpp
$(OBJS)\corelib_systhemectrl.obj: ..\..\src\msw\systhemectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\systhemectrl.cpp
$(OBJS)\corelib_customdraw.obj: ..\..\src\msw\customdraw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\customdraw.cpp
$(OBJS)\corelib_msw_checklst.obj: ..\..\src\msw\checklst.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\checklst.cpp

View File

@@ -1007,6 +1007,7 @@
<ClCompile Include="..\..\src\xrc\xmlreshandler.cpp" />
<ClCompile Include="..\..\src\generic\collheaderctrlg.cpp" />
<ClCompile Include="..\..\src\msw\rt\utilsrt.cpp" />
<ClCompile Include="..\..\src\msw\customdraw.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\msw\version.rc">

View File

@@ -612,6 +612,9 @@
<ClCompile Include="..\..\src\msw\cursor.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\msw\customdraw.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\msw\data.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>

View File

@@ -769,6 +769,9 @@
<File
RelativePath="..\..\src\msw\cursor.cpp">
</File>
<File
RelativePath="..\..\src\msw\customdraw.cpp">
</File>
<File
RelativePath="..\..\src\msw\data.cpp">
</File>

View File

@@ -1430,6 +1430,10 @@
RelativePath="..\..\src\msw\cursor.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\customdraw.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\data.cpp"
>

View File

@@ -1426,6 +1426,10 @@
RelativePath="..\..\src\msw\cursor.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\customdraw.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\data.cpp"
>