Add wxRibbonMSWFlatArtProvider, a (Fluent UI like) flat theme

Also add some previously missing checks to other art providers and
improve their documentation.

Closes #26253.
This commit is contained in:
Blake-Madden
2026-03-13 15:47:20 +01:00
committed by Vadim Zeitlin
parent 82f3989c82
commit d9018cdb44
17 changed files with 1416 additions and 6 deletions
+16
View File
@@ -2289,6 +2289,7 @@ RIBBONDLL_OBJECTS = \
ribbondll_art_internal.o \
ribbondll_art_msw.o \
ribbondll_art_aui.o \
ribbondll_art_msw_flat.o \
ribbondll_bar.o \
ribbondll_buttonbar.o \
ribbondll_control.o \
@@ -2308,6 +2309,7 @@ RIBBONLIB_OBJECTS = \
ribbonlib_art_internal.o \
ribbonlib_art_msw.o \
ribbonlib_art_aui.o \
ribbonlib_art_msw_flat.o \
ribbonlib_bar.o \
ribbonlib_buttonbar.o \
ribbonlib_control.o \
@@ -4338,6 +4340,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS = \
monodll_art_internal.o \
monodll_art_msw.o \
monodll_art_aui.o \
monodll_art_msw_flat.o \
monodll_bar.o \
monodll_ribbon_buttonbar.o \
monodll_ribbon_control.o \
@@ -6123,6 +6126,7 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS_1 = \
monolib_art_internal.o \
monolib_art_msw.o \
monolib_art_aui.o \
monolib_art_msw_flat.o \
monolib_bar.o \
monolib_ribbon_buttonbar.o \
monolib_ribbon_control.o \
@@ -16941,6 +16945,9 @@ monodll_art_msw.o: $(srcdir)/src/ribbon/art_msw.cpp $(MONODLL_ODEP)
monodll_art_aui.o: $(srcdir)/src/ribbon/art_aui.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/ribbon/art_aui.cpp
monodll_art_msw_flat.o: $(srcdir)/src/ribbon/art_msw_flat.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/ribbon/art_msw_flat.cpp
monodll_bar.o: $(srcdir)/src/ribbon/bar.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/ribbon/bar.cpp
@@ -21729,6 +21736,9 @@ monolib_art_msw.o: $(srcdir)/src/ribbon/art_msw.cpp $(MONOLIB_ODEP)
monolib_art_aui.o: $(srcdir)/src/ribbon/art_aui.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/ribbon/art_aui.cpp
monolib_art_msw_flat.o: $(srcdir)/src/ribbon/art_msw_flat.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/ribbon/art_msw_flat.cpp
monolib_bar.o: $(srcdir)/src/ribbon/bar.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/ribbon/bar.cpp
@@ -34302,6 +34312,9 @@ ribbondll_art_msw.o: $(srcdir)/src/ribbon/art_msw.cpp $(RIBBONDLL_ODEP)
ribbondll_art_aui.o: $(srcdir)/src/ribbon/art_aui.cpp $(RIBBONDLL_ODEP)
$(CXXC) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(srcdir)/src/ribbon/art_aui.cpp
ribbondll_art_msw_flat.o: $(srcdir)/src/ribbon/art_msw_flat.cpp $(RIBBONDLL_ODEP)
$(CXXC) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(srcdir)/src/ribbon/art_msw_flat.cpp
ribbondll_bar.o: $(srcdir)/src/ribbon/bar.cpp $(RIBBONDLL_ODEP)
$(CXXC) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(srcdir)/src/ribbon/bar.cpp
@@ -34335,6 +34348,9 @@ ribbonlib_art_msw.o: $(srcdir)/src/ribbon/art_msw.cpp $(RIBBONLIB_ODEP)
ribbonlib_art_aui.o: $(srcdir)/src/ribbon/art_aui.cpp $(RIBBONLIB_ODEP)
$(CXXC) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(srcdir)/src/ribbon/art_aui.cpp
ribbonlib_art_msw_flat.o: $(srcdir)/src/ribbon/art_msw_flat.cpp $(RIBBONLIB_ODEP)
$(CXXC) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(srcdir)/src/ribbon/art_msw_flat.cpp
ribbonlib_bar.o: $(srcdir)/src/ribbon/bar.cpp $(RIBBONLIB_ODEP)
$(CXXC) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(srcdir)/src/ribbon/bar.cpp
+1
View File
@@ -3067,6 +3067,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/ribbon/art_internal.cpp
src/ribbon/art_msw.cpp
src/ribbon/art_aui.cpp
src/ribbon/art_msw_flat.cpp
src/ribbon/bar.cpp
src/ribbon/buttonbar.cpp
src/ribbon/control.cpp
+1
View File
@@ -2798,6 +2798,7 @@ set(RIBBON_SRC
src/ribbon/art_internal.cpp
src/ribbon/art_msw.cpp
src/ribbon/art_aui.cpp
src/ribbon/art_msw_flat.cpp
src/ribbon/bar.cpp
src/ribbon/buttonbar.cpp
src/ribbon/control.cpp
+1
View File
@@ -2758,6 +2758,7 @@ RIBBON_SRC =
src/ribbon/art_internal.cpp
src/ribbon/art_msw.cpp
src/ribbon/art_aui.cpp
src/ribbon/art_msw_flat.cpp
src/ribbon/bar.cpp
src/ribbon/buttonbar.cpp
src/ribbon/control.cpp
+16
View File
@@ -1662,6 +1662,7 @@ RIBBONDLL_OBJECTS = \
$(OBJS)\ribbondll_art_internal.o \
$(OBJS)\ribbondll_art_msw.o \
$(OBJS)\ribbondll_art_aui.o \
$(OBJS)\ribbondll_art_msw_flat.o \
$(OBJS)\ribbondll_bar.o \
$(OBJS)\ribbondll_buttonbar.o \
$(OBJS)\ribbondll_control.o \
@@ -1683,6 +1684,7 @@ RIBBONLIB_OBJECTS = \
$(OBJS)\ribbonlib_art_internal.o \
$(OBJS)\ribbonlib_art_msw.o \
$(OBJS)\ribbonlib_art_aui.o \
$(OBJS)\ribbonlib_art_msw_flat.o \
$(OBJS)\ribbonlib_bar.o \
$(OBJS)\ribbonlib_buttonbar.o \
$(OBJS)\ribbonlib_control.o \
@@ -2048,6 +2050,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_art_internal.o \
$(OBJS)\monodll_art_msw.o \
$(OBJS)\monodll_art_aui.o \
$(OBJS)\monodll_art_msw_flat.o \
$(OBJS)\monodll_bar.o \
$(OBJS)\monodll_ribbon_buttonbar.o \
$(OBJS)\monodll_ribbon_control.o \
@@ -2915,6 +2918,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_art_internal.o \
$(OBJS)\monolib_art_msw.o \
$(OBJS)\monolib_art_aui.o \
$(OBJS)\monolib_art_msw_flat.o \
$(OBJS)\monolib_bar.o \
$(OBJS)\monolib_ribbon_buttonbar.o \
$(OBJS)\monolib_ribbon_control.o \
@@ -8854,6 +8858,9 @@ $(OBJS)\monodll_art_msw.o: ../../src/ribbon/art_msw.cpp
$(OBJS)\monodll_art_aui.o: ../../src/ribbon/art_aui.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_art_msw_flat.o: ../../src/ribbon/art_msw_flat.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_bar.o: ../../src/ribbon/bar.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11474,6 +11481,9 @@ $(OBJS)\monolib_art_msw.o: ../../src/ribbon/art_msw.cpp
$(OBJS)\monolib_art_aui.o: ../../src/ribbon/art_aui.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_art_msw_flat.o: ../../src/ribbon/art_msw_flat.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_bar.o: ../../src/ribbon/bar.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -18134,6 +18144,9 @@ $(OBJS)\ribbondll_art_msw.o: ../../src/ribbon/art_msw.cpp
$(OBJS)\ribbondll_art_aui.o: ../../src/ribbon/art_aui.cpp
$(CXX) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\ribbondll_art_msw_flat.o: ../../src/ribbon/art_msw_flat.cpp
$(CXX) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\ribbondll_bar.o: ../../src/ribbon/bar.cpp
$(CXX) -c -o $@ $(RIBBONDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -18170,6 +18183,9 @@ $(OBJS)\ribbonlib_art_msw.o: ../../src/ribbon/art_msw.cpp
$(OBJS)\ribbonlib_art_aui.o: ../../src/ribbon/art_aui.cpp
$(CXX) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\ribbonlib_art_msw_flat.o: ../../src/ribbon/art_msw_flat.cpp
$(CXX) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\ribbonlib_bar.o: ../../src/ribbon/bar.cpp
$(CXX) -c -o $@ $(RIBBONLIB_CXXFLAGS) $(CPPDEPS) $<
+16
View File
@@ -1853,6 +1853,7 @@ RIBBONDLL_OBJECTS = \
$(OBJS)\ribbondll_art_internal.obj \
$(OBJS)\ribbondll_art_msw.obj \
$(OBJS)\ribbondll_art_aui.obj \
$(OBJS)\ribbondll_art_msw_flat.obj \
$(OBJS)\ribbondll_bar.obj \
$(OBJS)\ribbondll_buttonbar.obj \
$(OBJS)\ribbondll_control.obj \
@@ -1881,6 +1882,7 @@ RIBBONLIB_OBJECTS = \
$(OBJS)\ribbonlib_art_internal.obj \
$(OBJS)\ribbonlib_art_msw.obj \
$(OBJS)\ribbonlib_art_aui.obj \
$(OBJS)\ribbonlib_art_msw_flat.obj \
$(OBJS)\ribbonlib_bar.obj \
$(OBJS)\ribbonlib_buttonbar.obj \
$(OBJS)\ribbonlib_control.obj \
@@ -2435,6 +2437,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_art_internal.obj \
$(OBJS)\monodll_art_msw.obj \
$(OBJS)\monodll_art_aui.obj \
$(OBJS)\monodll_art_msw_flat.obj \
$(OBJS)\monodll_bar.obj \
$(OBJS)\monodll_ribbon_buttonbar.obj \
$(OBJS)\monodll_ribbon_control.obj \
@@ -3302,6 +3305,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_art_internal.obj \
$(OBJS)\monolib_art_msw.obj \
$(OBJS)\monolib_art_aui.obj \
$(OBJS)\monolib_art_msw_flat.obj \
$(OBJS)\monolib_bar.obj \
$(OBJS)\monolib_ribbon_buttonbar.obj \
$(OBJS)\monolib_ribbon_control.obj \
@@ -9356,6 +9360,9 @@ $(OBJS)\monodll_art_msw.obj: ..\..\src\ribbon\art_msw.cpp
$(OBJS)\monodll_art_aui.obj: ..\..\src\ribbon\art_aui.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\ribbon\art_aui.cpp
$(OBJS)\monodll_art_msw_flat.obj: ..\..\src\ribbon\art_msw_flat.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\ribbon\art_msw_flat.cpp
$(OBJS)\monodll_bar.obj: ..\..\src\ribbon\bar.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\ribbon\bar.cpp
@@ -11976,6 +11983,9 @@ $(OBJS)\monolib_art_msw.obj: ..\..\src\ribbon\art_msw.cpp
$(OBJS)\monolib_art_aui.obj: ..\..\src\ribbon\art_aui.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\ribbon\art_aui.cpp
$(OBJS)\monolib_art_msw_flat.obj: ..\..\src\ribbon\art_msw_flat.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\ribbon\art_msw_flat.cpp
$(OBJS)\monolib_bar.obj: ..\..\src\ribbon\bar.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\ribbon\bar.cpp
@@ -18636,6 +18646,9 @@ $(OBJS)\ribbondll_art_msw.obj: ..\..\src\ribbon\art_msw.cpp
$(OBJS)\ribbondll_art_aui.obj: ..\..\src\ribbon\art_aui.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONDLL_CXXFLAGS) ..\..\src\ribbon\art_aui.cpp
$(OBJS)\ribbondll_art_msw_flat.obj: ..\..\src\ribbon\art_msw_flat.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONDLL_CXXFLAGS) ..\..\src\ribbon\art_msw_flat.cpp
$(OBJS)\ribbondll_bar.obj: ..\..\src\ribbon\bar.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONDLL_CXXFLAGS) ..\..\src\ribbon\bar.cpp
@@ -18672,6 +18685,9 @@ $(OBJS)\ribbonlib_art_msw.obj: ..\..\src\ribbon\art_msw.cpp
$(OBJS)\ribbonlib_art_aui.obj: ..\..\src\ribbon\art_aui.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONLIB_CXXFLAGS) ..\..\src\ribbon\art_aui.cpp
$(OBJS)\ribbonlib_art_msw_flat.obj: ..\..\src\ribbon\art_msw_flat.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONLIB_CXXFLAGS) ..\..\src\ribbon\art_msw_flat.cpp
$(OBJS)\ribbonlib_bar.obj: ..\..\src\ribbon\bar.cpp
$(CXX) /c /nologo /TP /Fo$@ $(RIBBONLIB_CXXFLAGS) ..\..\src\ribbon\bar.cpp
+1
View File
@@ -859,6 +859,7 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64EC'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\src\ribbon\art_aui.cpp" />
<ClCompile Include="..\..\src\ribbon\art_msw_flat.cpp" />
<ClCompile Include="..\..\src\ribbon\art_internal.cpp" />
<ClCompile Include="..\..\src\ribbon\art_msw.cpp" />
<ClCompile Include="..\..\src\ribbon\bar.cpp" />
+3
View File
@@ -28,6 +28,9 @@
<ClCompile Include="..\..\src\ribbon\art_aui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ribbon\art_msw_flat.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ribbon\art_internal.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -282,6 +282,7 @@
AAABEE399008310A8BC9BE43 /* imagtga.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA7029BB5751398AA02D8C24 /* imagtga.cpp */; };
3C0EB1DDA5243E31B2D92CE2 /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = 02D9332D5C5632E981936E29 /* jquant2.c */; };
A0BA01A85C303C78A3130711 /* art_aui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */; };
F1A2B3C4D5E63C78A3130711 /* art_msw_flat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */; };
EBDEBA86AA7930EB86A02E67 /* ssim.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CECF4A5F2D839E397B3143F /* ssim.c */; };
246B4FF96BA135258FE45F50 /* encconv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C269E9CA99DF3AE5B1BD6AFA /* encconv.cpp */; };
699D88EE2DAA3594B6606890 /* ViewStyle.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C133B838193A35ABBB803151 /* ViewStyle.cxx */; };
@@ -1402,6 +1403,7 @@
95826E8528CC32D8934C36ED /* xh_frame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5A9B63746753EDFB2EC48D3 /* xh_frame.cpp */; };
EDD92822EBD93E86AE5A2ED2 /* slidercmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E8072CA67D19346ABF4D465F /* slidercmn.cpp */; };
A0BA01A85C303C78A3130712 /* art_aui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */; };
F1A2B3C4D5E63C78A3130712 /* art_msw_flat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */; };
CF3082BA1ED232F4B904BD15 /* stdpbase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 75BF90BEF2F83BF28EC0458D /* stdpbase.cpp */; };
D9EE059D3C3C3C13AE4419F2 /* stattextcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 54BD19211DBD388AA0DEC7A1 /* stattextcmn.cpp */; };
FE5B7C7A84B83C17A38E8405 /* LexSML.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 912B2982C9413F2FB40CA2D9 /* LexSML.cxx */; };
@@ -3100,6 +3102,7 @@
DC928C38CA8331F18FF00BCD /* tif_lzma.c in Sources */ = {isa = PBXBuildFile; fileRef = 3088384F07C63A5DB3581656 /* tif_lzma.c */; };
8AA341CCFB8E3F6AB3523597 /* splash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F8836E29C5A370E80CE070E /* splash.cpp */; };
A0BA01A85C303C78A3130713 /* art_aui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */; };
F1A2B3C4D5E63C78A3130713 /* art_msw_flat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */; };
CB078622E90F33BE9D131135 /* buttonbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5612DBC4125B379DA2B28824 /* buttonbar.cpp */; };
1BCC944F5E0936F5830F03EA /* windowid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9B9B85572D0312BBF2878DB /* windowid.cpp */; };
0FDDE8E193743F3A8CBDC67D /* richtextprint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C4C45D3C63AA37CEBCE83321 /* richtextprint.cpp */; };
@@ -5604,6 +5607,7 @@
A298576700C33F018616E7BD /* auibook.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = auibook.cpp; path = ../../src/aui/auibook.cpp; sourceTree = SOURCE_ROOT; };
5F555177554E398286DBC6FB /* xh_stlin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xh_stlin.cpp; path = ../../src/xrc/xh_stlin.cpp; sourceTree = SOURCE_ROOT; };
DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = art_aui.cpp; path = ../../src/ribbon/art_aui.cpp; sourceTree = SOURCE_ROOT; };
F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = art_msw_flat.cpp; path = ../../src/ribbon/art_msw_flat.cpp; sourceTree = SOURCE_ROOT; };
42040492AAA43A60BA8DE111 /* filter_enc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = filter_enc.c; path = ../../3rdparty/libwebp/src/enc/filter_enc.c; sourceTree = SOURCE_ROOT; };
23FC98E2305230E2990471E3 /* wxcrt.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = wxcrt.cpp; path = ../../src/common/wxcrt.cpp; sourceTree = SOURCE_ROOT; };
BACAA6CE4A0934459F26B27C /* graphicc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = graphicc.cpp; path = ../../src/generic/graphicc.cpp; sourceTree = SOURCE_ROOT; };
@@ -6140,6 +6144,7 @@
4C4649974D8B3A109D1BF145 /* art_internal.cpp */,
B540E18F9C91381CA175BABB /* art_msw.cpp */,
DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */,
F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */,
9FDDE855D9F83E4891362EB4 /* bar.cpp */,
5612DBC4125B379DA2B28824 /* buttonbar.cpp */,
12363D1F50FE301DAEE7F04B /* control.cpp */,
@@ -9451,6 +9456,7 @@
DE43350F6C9D3148A64F0AFB /* art_internal.cpp in Sources */,
7DC4A542372437ECA0790F89 /* art_msw.cpp in Sources */,
A0BA01A85C303C78A3130713 /* art_aui.cpp in Sources */,
F1A2B3C4D5E63C78A3130713 /* art_msw_flat.cpp in Sources */,
056CA84179433AA48D55DA67 /* bar.cpp in Sources */,
CB078622E90F33BE9D131134 /* buttonbar.cpp in Sources */,
EB52C6A91594381393294502 /* control.cpp in Sources */,
@@ -10108,6 +10114,7 @@
DE43350F6C9D3148A64F0AF9 /* art_internal.cpp in Sources */,
7DC4A542372437ECA0790F87 /* art_msw.cpp in Sources */,
A0BA01A85C303C78A3130711 /* art_aui.cpp in Sources */,
F1A2B3C4D5E63C78A3130711 /* art_msw_flat.cpp in Sources */,
056CA84179433AA48D55DA65 /* bar.cpp in Sources */,
CB078622E90F33BE9D131135 /* buttonbar.cpp in Sources */,
EB52C6A91594381393294500 /* control.cpp in Sources */,
@@ -11584,6 +11591,7 @@
DE43350F6C9D3148A64F0AFA /* art_internal.cpp in Sources */,
7DC4A542372437ECA0790F88 /* art_msw.cpp in Sources */,
A0BA01A85C303C78A3130712 /* art_aui.cpp in Sources */,
F1A2B3C4D5E63C78A3130712 /* art_msw_flat.cpp in Sources */,
056CA84179433AA48D55DA66 /* bar.cpp in Sources */,
CB078622E90F33BE9D131133 /* buttonbar.cpp in Sources */,
EB52C6A915943813932944FE /* control.cpp in Sources */,
@@ -729,6 +729,7 @@
7F77E347E1243D77A666FB43 /* clipbrd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12453E271F2A3AC9969E62A4 /* clipbrd.cpp */; };
159E4248CB1333AD841D9F03 /* LexYAML.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 9CC7C6FFD67233788EEDFC5E /* LexYAML.cxx */; };
A0BA01A85C303C78A3130711 /* art_aui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */; };
F1A2B3C4D5E63C78A3130714 /* art_msw_flat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */; };
0BB3BF0909A134BA93CF5620 /* xh_richtext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 88C2B895570936A3B4FAF3CF /* xh_richtext.cpp */; };
FBA19C939E1E33EDB05043FE /* cairo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DBE56B153AA3AC8A4BBE77C /* cairo.cpp */; };
8E674574343A3C009B1BCD00 /* tif_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 88FF67EB6E7D302A9CDEF660 /* tif_codec.c */; };
@@ -1448,6 +1449,7 @@
3720038D64CF3C0B8F642A90 /* tokenzr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tokenzr.cpp; path = ../../src/common/tokenzr.cpp; sourceTree = SOURCE_ROOT; };
5EB5FAE81851390D80798E73 /* rescaler_mips32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rescaler_mips32.c; path = ../../3rdparty/libwebp/src/dsp/rescaler_mips32.c; sourceTree = SOURCE_ROOT; };
DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = art_aui.cpp; path = ../../src/ribbon/art_aui.cpp; sourceTree = SOURCE_ROOT; };
F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = art_msw_flat.cpp; path = ../../src/ribbon/art_msw_flat.cpp; sourceTree = SOURCE_ROOT; };
4BA14FFC0F4B3AE0B4D6B185 /* jquant1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = ../../src/jpeg/jquant1.c; sourceTree = SOURCE_ROOT; };
8EB76F786D7F3FF286948D22 /* jcomapi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = ../../src/jpeg/jcomapi.c; sourceTree = SOURCE_ROOT; };
082CA018FB883999839C1DCE /* m_tables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = m_tables.cpp; path = ../../src/html/m_tables.cpp; sourceTree = SOURCE_ROOT; };
@@ -2636,6 +2638,7 @@
4C4649974D8B3A109D1BF145 /* art_internal.cpp */,
B540E18F9C91381CA175BABB /* art_msw.cpp */,
DD5E8709C3BC3727BBC7B97A /* art_aui.cpp */,
F1A2B3C4D5E63727BBC7B97A /* art_msw_flat.cpp */,
9FDDE855D9F83E4891362EB4 /* bar.cpp */,
5612DBC4125B379DA2B28824 /* buttonbar.cpp */,
12363D1F50FE301DAEE7F04B /* control.cpp */,
@@ -4072,6 +4075,7 @@
DE43350F6C9D3148A64F0AF9 /* art_internal.cpp in Sources */,
7DC4A542372437ECA0790F87 /* art_msw.cpp in Sources */,
A0BA01A85C303C78A3130711 /* art_aui.cpp in Sources */,
F1A2B3C4D5E63C78A3130714 /* art_msw_flat.cpp in Sources */,
056CA84179433AA48D55DA65 /* bar.cpp in Sources */,
CB078622E90F33BE9D131131 /* buttonbar.cpp in Sources */,
EB52C6A915943813932944FF /* control.cpp in Sources */,
+102
View File
@@ -790,6 +790,108 @@ protected:
int m_help_button_offset;
};
class WXDLLIMPEXP_RIBBON wxRibbonMSWFlatArtProvider : public wxRibbonMSWArtProvider
{
public:
wxRibbonMSWFlatArtProvider();
virtual ~wxRibbonMSWFlatArtProvider();
wxNODISCARD wxRibbonArtProvider* Clone() const override;
void DrawTab(wxDC& dc,
wxWindow* wnd,
const wxRibbonPageTabInfo& tab) override;
void DrawTabSeparator(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect,
double visibility) override;
void DrawPageBackground(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect) override;
void DrawScrollButton(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect,
long style) override;
void DrawPanelBackground(
wxDC& dc,
wxRibbonPanel* wnd,
const wxRect& rect) override;
void DrawGalleryBackground(
wxDC& dc,
wxRibbonGallery* wnd,
const wxRect& rect) override;
void DrawGalleryItemBackground(
wxDC& dc,
wxRibbonGallery* wnd,
const wxRect& rect,
wxRibbonGalleryItem* item) override;
void DrawMinimisedPanel(
wxDC& dc,
wxRibbonPanel* wnd,
const wxRect& rect,
wxBitmap& bitmap) override;
void DrawButtonBarBackground(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect) override;
void DrawButtonBarButton(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect,
wxRibbonButtonKind kind,
long state,
const wxString& label,
const wxBitmap& bitmap_large,
const wxBitmap& bitmap_small) override;
void DrawToolBarBackground(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect) override;
void DrawTool(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect,
const wxBitmap& bitmap,
wxRibbonButtonKind kind,
long state) override;
void DrawToggleButton(
wxDC& dc,
wxRibbonBar* wnd,
const wxRect& rect,
wxRibbonDisplayMode mode) override;
void DrawHelpButton(wxDC& dc,
wxRibbonBar* wnd,
const wxRect& rect) override;
protected:
void DrawPartialPageBackground(wxDC& dc, wxWindow* wnd, const wxRect& r,
wxRibbonPage* page, wxPoint offset, bool hovered = false);
void DrawPartialPageBackground(wxDC& dc, wxWindow* wnd,
const wxRect& rect, bool allow_hovered = true);
void DrawGalleryButton(wxDC& dc, wxRect rect,
wxRibbonGalleryButtonState state, wxBitmap* bitmaps) override;
void DrawPanelBorder(wxDC& dc, const wxRect& rect, wxPen& primary_colour,
wxPen& secondary_colour);
void ReallyDrawTabSeparator(wxWindow* wnd, const wxRect& rect,
double visibility);
};
class WXDLLIMPEXP_RIBBON wxRibbonAUIArtProvider : public wxRibbonMSWArtProvider
{
public:
+47
View File
@@ -1071,6 +1071,19 @@ public:
/**
@class wxRibbonMSWArtProvider
An art provider which draws a ribbon using gradients to mimic the
appearance of Microsoft Office 2007 and the Windows Vista / Aero
visual style. Tabs, panels, button bars, and toolbars all use
gradient fills to create a glossy, three-dimensional look.
@library{wxribbon}
@category{ribbon}
@see wxRibbonMSWFlatArtProvider, wxRibbonAUIArtProvider
*/
class wxRibbonMSWArtProvider : public wxRibbonArtProvider
{
public:
@@ -1078,6 +1091,40 @@ public:
};
/**
@class wxRibbonMSWFlatArtProvider
A flat variant of wxRibbonMSWArtProvider that uses solid colour fills
instead of gradients, providing a modern appearance consistent with
the Windows Metro / Fluent design language.
@since 3.3.3
@library{wxribbon}
@category{ribbon}
@see wxRibbonMSWArtProvider, wxRibbonAUIArtProvider
*/
class wxRibbonMSWFlatArtProvider : public wxRibbonMSWArtProvider
{
public:
wxRibbonMSWFlatArtProvider();
};
/**
@class wxRibbonAUIArtProvider
An art provider styled after the wxAUI docking framework. Like
wxRibbonMSWArtProvider it uses gradient fills, but differs in its
layout of panel labels (placed at the top rather than the bottom)
and general styling.
@library{wxribbon}
@category{ribbon}
@see wxRibbonMSWArtProvider, wxRibbonMSWFlatArtProvider
*/
class wxRibbonAUIArtProvider : public wxRibbonMSWArtProvider
{
public:
+10
View File
@@ -63,6 +63,7 @@ public:
ID_DEFAULT_PROVIDER,
ID_AUI_PROVIDER,
ID_MSW_PROVIDER,
ID_MSW_FLAT_PROVIDER,
ID_MAIN_TOOLBAR,
ID_POSITION_TOP,
ID_POSITION_TOP_ICONS,
@@ -119,6 +120,7 @@ public:
void OnDefaultProvider(wxRibbonButtonBarEvent& evt);
void OnAUIProvider(wxRibbonButtonBarEvent& evt);
void OnMSWProvider(wxRibbonButtonBarEvent& evt);
void OnMSWFlatProvider(wxRibbonButtonBarEvent& evt);
void OnJustify(wxRibbonToolBarEvent& evt);
void OnJustifyUpdateUI(wxUpdateUIEvent& evt);
void OnNew(wxRibbonToolBarEvent& evt);
@@ -210,6 +212,7 @@ EVT_UPDATE_UI(ID_UI_CHANGE_TEXT_UPDATED, MyFrame::OnChangeTextUpdateUI)
EVT_RIBBONBUTTONBAR_CLICKED(ID_DEFAULT_PROVIDER, MyFrame::OnDefaultProvider)
EVT_RIBBONBUTTONBAR_CLICKED(ID_AUI_PROVIDER, MyFrame::OnAUIProvider)
EVT_RIBBONBUTTONBAR_CLICKED(ID_MSW_PROVIDER, MyFrame::OnMSWProvider)
EVT_RIBBONBUTTONBAR_CLICKED(ID_MSW_FLAT_PROVIDER, MyFrame::OnMSWFlatProvider)
EVT_RIBBONBUTTONBAR_CLICKED(ID_SELECTION_EXPAND_H, MyFrame::OnSelectionExpandHButton)
EVT_RIBBONBUTTONBAR_CLICKED(ID_SELECTION_EXPAND_V, MyFrame::OnSelectionExpandVButton)
EVT_RIBBONBUTTONBAR_CLICKED(ID_SELECTION_CONTRACT, MyFrame::OnSelectionContractButton)
@@ -406,6 +409,7 @@ MyFrame::MyFrame()
wxArtProvider::GetBitmap(wxART_QUESTION, wxART_OTHER, wxSize(32, 32)));
provider_bar->AddButton(ID_AUI_PROVIDER, "AUI Provider", aui_style_xpm);
provider_bar->AddButton(ID_MSW_PROVIDER, "MSW Provider", msw_style_xpm);
provider_bar->AddButton(ID_MSW_FLAT_PROVIDER, "MSW Flat Provider", msw_style_xpm);
wxRibbonPanel *primary_panel = new wxRibbonPanel(scheme, wxID_ANY,
"Primary Colour", colours_xpm);
m_primary_gallery = PopulateColoursPanel(primary_panel,
@@ -1075,6 +1079,12 @@ void MyFrame::OnMSWProvider(wxRibbonButtonBarEvent& WXUNUSED(evt))
SetArtProvider(new wxRibbonMSWArtProvider);
}
void MyFrame::OnMSWFlatProvider(wxRibbonButtonBarEvent& WXUNUSED(evt))
{
m_ribbon->DismissExpandedPanel();
SetArtProvider(new wxRibbonMSWFlatArtProvider);
}
void MyFrame::SetArtProvider(wxRibbonArtProvider *prov)
{
m_ribbon->Freeze();
+4 -2
View File
@@ -501,8 +501,10 @@ void wxRibbonAUIArtProvider::DrawTab(wxDC& dc,
dc.DrawBitmap(icon, x - offset, tab.rect.y + (tab.rect.height -
icon.GetLogicalHeight()) / 2, true);
}
dc.SetClippingRegion(x, tab.rect.y, width, tab.rect.height);
dc.DrawText(label, x, y);
{
wxDCClipper clip(dc, x, tab.rect.y, width, tab.rect.height);
dc.DrawText(label, x, y);
}
}
}
+5 -2
View File
@@ -1449,6 +1449,9 @@ void wxRibbonMSWArtProvider::DrawTab(
}
}
if ( tab.page == nullptr )
return;
if(m_flags & wxRIBBON_BAR_SHOW_PAGE_ICONS)
{
wxBitmap icon = tab.page->GetIcon();
@@ -1502,7 +1505,7 @@ void wxRibbonMSWArtProvider::DrawTab(
if(width <= text_width)
{
dc.SetClippingRegion(x, tab.rect.y, width, tab.rect.height);
wxDCClipper clip(dc, x, tab.rect.y, width, tab.rect.height);
dc.DrawText(label, x, y);
}
else
@@ -1948,7 +1951,7 @@ void wxRibbonMSWArtProvider::DrawPanelBackground(
{
// Room for some characters and ...
// Display as many characters as possible and append ...
for(size_t len = label.Len() - 1; len >= 3; --len)
for( int len = wxSsize(label) - 1; len >= 3; --len )
{
new_label = label.Mid(0, len) + "...";
label_size = dc.GetTextExtent(new_label);
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -43,11 +43,11 @@ CC_DEFINE =
.c.obj :
cc $(CFLAGS)$(CC_DEFINE) $(MMS$TARGET_NAME).c
OBJECTS=art_aui.obj,art_internal.obj,art_msw.obj,bar.obj,buttonbar.obj,\
OBJECTS=art_aui.obj,art_internal.obj,art_msw.obj,art_msw_flat.obj,bar.obj,buttonbar.obj,\
control_ribbon.obj,gallery.obj,page.obj,panel.obj,\
toolbar_ribbon.obj
SOURCES=art_aui.cpp art_internal.cpp art_msw.cpp bar.cpp buttonbar.cpp\
SOURCES=art_aui.cpp art_internal.cpp art_msw.cpp art_msw_flat.cpp bar.cpp buttonbar.cpp\
control.cpp gallery.cpp page.cpp panel.cpp toolbar.cpp
all : $(SOURCES)
@@ -73,6 +73,7 @@ $(OBJECTS) : [--.include.wx]setup.h
art_aui.obj : art_aui.cpp
art_internal.obj : art_internal.cpp
art_msw.obj : art_msw.cpp
art_msw_flat.obj : art_msw_flat.cpp
bar.obj : bar.cpp
buttonbar.obj : buttonbar.cpp
control_ribbon.obj : control.cpp