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

@@ -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"
>