diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp index be4eeff0..20509e74 100644 --- a/skins/material3/QskMaterial3Skin.cpp +++ b/skins/material3/QskMaterial3Skin.cpp @@ -1090,6 +1090,11 @@ QskGraphic QskMaterial3Skin::symbol( int symbolType ) const { return {}; } + case QskStandardSymbol::SegmentedBarCheckMark: + { + const auto* provider = graphicProvider( {} ); + return *( provider->requestGraphic( "segmented-button-check" ) ); + } default: return Inherited::symbol( symbolType ); } diff --git a/skins/material3/icons.qrc b/skins/material3/icons.qrc index 1c012b6a..a2466aea 100644 --- a/skins/material3/icons.qrc +++ b/skins/material3/icons.qrc @@ -1,5 +1,6 @@ icons/qvg/check_small.qvg + icons/qvg/segmented-button-check.qvg diff --git a/skins/material3/icons/qvg/segmented-button-check.qvg b/skins/material3/icons/qvg/segmented-button-check.qvg new file mode 100644 index 00000000..343402a8 Binary files /dev/null and b/skins/material3/icons/qvg/segmented-button-check.qvg differ diff --git a/skins/material3/icons/segmented-button-check.svg b/skins/material3/icons/segmented-button-check.svg new file mode 100644 index 00000000..5d4b949b --- /dev/null +++ b/skins/material3/icons/segmented-button-check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/controls/QskSegmentedBarSkinlet.cpp b/src/controls/QskSegmentedBarSkinlet.cpp index 6fc30c4e..b5934c22 100644 --- a/src/controls/QskSegmentedBarSkinlet.cpp +++ b/src/controls/QskSegmentedBarSkinlet.cpp @@ -9,6 +9,7 @@ #include "QskGraphic.h" #include "QskColorFilter.h" #include "QskFunctions.h" +#include "QskSkin.h" #include "QskStandardSymbol.h" #include "QskSubcontrolLayoutEngine.h" @@ -37,7 +38,7 @@ namespace // implementing this control we should put this code into a // subclass. const auto graphic = ( bar->selectedIndex() == index ) - ? QskStandardSymbol::graphic( QskStandardSymbol::CheckMark ) + ? bar->effectiveSkin()->symbol( QskStandardSymbol::SegmentedBarCheckMark ) : bar->graphicAt( index ); return graphic; @@ -215,7 +216,7 @@ QSizeF QskSegmentedBarSkinlet::segmentSizeHint( const QskSegmentedBar* bar, Qt:: { LayoutEngine layoutEngine( bar, i ); - const auto graphic = QskStandardSymbol::graphic( QskStandardSymbol::CheckMark ); + const auto graphic = bar->effectiveSkin()->symbol( QskStandardSymbol::SegmentedBarCheckMark ); // We want to know how big the element can grow when it is selected, // i.e. when it has the checkmark symbol: diff --git a/src/graphic/QskStandardSymbol.cpp b/src/graphic/QskStandardSymbol.cpp index abddcae6..3c9fd6ea 100644 --- a/src/graphic/QskStandardSymbol.cpp +++ b/src/graphic/QskStandardSymbol.cpp @@ -260,6 +260,11 @@ QskGraphic QskStandardSymbol::graphic( Type symbolType ) qskCrossMarkGraphic( &painter ); break; } + case QskStandardSymbol::SegmentedBarCheckMark: + { + qskCheckMarkGraphic( &painter ); + break; + } case QskStandardSymbol::NoSymbol: case QskStandardSymbol::SymbolTypeCount: { diff --git a/src/graphic/QskStandardSymbol.h b/src/graphic/QskStandardSymbol.h index 4a5db48b..2b517319 100644 --- a/src/graphic/QskStandardSymbol.h +++ b/src/graphic/QskStandardSymbol.h @@ -30,6 +30,8 @@ namespace QskStandardSymbol CheckMark, CrossMark, + SegmentedBarCheckMark, + SymbolTypeCount };