From 5cf3f093643c2e56c28798938c3b79d130743151 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 3 Jul 2023 17:31:31 +0200 Subject: [PATCH] code harmonized with fluent2 branch --- skins/fluent2/QskFluent2Theme.cpp | 292 ++++++++++++++++-------------- 1 file changed, 152 insertions(+), 140 deletions(-) diff --git a/skins/fluent2/QskFluent2Theme.cpp b/skins/fluent2/QskFluent2Theme.cpp index dcd48867..97f4ad3f 100644 --- a/skins/fluent2/QskFluent2Theme.cpp +++ b/skins/fluent2/QskFluent2Theme.cpp @@ -31,99 +31,106 @@ QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme ) QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme, const std::array< QRgb, NumAccentColors >& accentColors ) { - if( colorScheme == QskSkin::LightScheme ) + using namespace QskRgb; + + if( colorScheme != QskSkin::DarkScheme ) { - // Fill color: + { + auto& colors = palette.fillColor; - palette.fillColor.text.primary = rgbGray( 0, 0.8956 ); - palette.fillColor.text.secondary = rgbGray( 0, 0.6063 ); - palette.fillColor.text.tertiary = rgbGray( 0, 0.4458 ); - palette.fillColor.text.disabled = rgbGray( 0, 0.3614 ); + colors.text.primary = rgbGray( 0, 0.8956 ); + colors.text.secondary = rgbGray( 0, 0.6063 ); + colors.text.tertiary = rgbGray( 0, 0.4458 ); + colors.text.disabled = rgbGray( 0, 0.3614 ); - palette.fillColor.accentText.primary = accentColors[ AccentDark2 ]; - palette.fillColor.accentText.secondary = accentColors[ AccentDark3 ]; - palette.fillColor.accentText.tertiary = accentColors[ AccentDark1 ]; - palette.fillColor.accentText.disabled = rgbGray( 0, 0.3614 ); + colors.accentText.primary = accentColors[ AccentDark2 ]; + colors.accentText.secondary = accentColors[ AccentDark3 ]; + colors.accentText.tertiary = accentColors[ AccentDark1 ]; + colors.accentText.disabled = rgbGray( 0, 0.3614 ); - palette.fillColor.textOnAccent.primary = rgbGray( 255 ); - palette.fillColor.textOnAccent.secondary = rgbGray( 255, 0.70 ); - palette.fillColor.textOnAccent.disabled = rgbGray( 255 ); - palette.fillColor.textOnAccent.selectedText = rgbGray( 255 ); + colors.textOnAccent.primary = rgbGray( 255 ); + colors.textOnAccent.secondary = rgbGray( 255, 0.70 ); + colors.textOnAccent.disabled = rgbGray( 255 ); + colors.textOnAccent.selectedText = rgbGray( 255 ); - palette.fillColor.control.defaultColor = rgbGray( 255, 0.70 ); - palette.fillColor.control.secondary = rgbGray( 249, 0.50 ); - palette.fillColor.control.tertiary = rgbGray( 249, 0.30 ); - palette.fillColor.control.inputActive = rgbGray( 255 ); - palette.fillColor.control.disabled = rgbGray( 249, 0.30 ); + colors.control.defaultColor = rgbGray( 255, 0.70 ); + colors.control.secondary = rgbGray( 249, 0.50 ); + colors.control.tertiary = rgbGray( 249, 0.30 ); + colors.control.inputActive = rgbGray( 255 ); + colors.control.disabled = rgbGray( 249, 0.30 ); - palette.fillColor.controlStrong.defaultColor = rgbGray( 0, 0.4458 ); - palette.fillColor.controlStrong.disabled = rgbGray( 0, 0.3173 ); + colors.controlStrong.defaultColor = rgbGray( 0, 0.4458 ); + colors.controlStrong.disabled = rgbGray( 0, 0.3173 ); - palette.fillColor.subtle.secondary = rgbGray( 0, 0.0373 ); - palette.fillColor.subtle.tertiary = rgbGray( 0, 0.0241 ); - palette.fillColor.subtle.disabled = Qt::transparent; + colors.subtle.secondary = rgbGray( 0, 0.0373 ); + colors.subtle.tertiary = rgbGray( 0, 0.0241 ); + colors.subtle.disabled = Qt::transparent; - palette.fillColor.controlSolid.defaultColor = rgbGray( 255 ); + colors.controlSolid.defaultColor = rgbGray( 255 ); - palette.fillColor.controlAlt.secondary = rgbGray( 0, 0.0241 ); - palette.fillColor.controlAlt.tertiary = rgbGray( 0, 0.0578 ); - palette.fillColor.controlAlt.quaternary = rgbGray( 0, 0.0924 ); - palette.fillColor.controlAlt.disabled = Qt::transparent; + colors.controlAlt.secondary = rgbGray( 0, 0.0241 ); + colors.controlAlt.tertiary = rgbGray( 0, 0.0578 ); + colors.controlAlt.quaternary = rgbGray( 0, 0.0924 ); + colors.controlAlt.disabled = Qt::transparent; - palette.fillColor.accent.defaultColor = accentColors[ AccentDark1 ]; - palette.fillColor.accent.secondary = QskRgb::toTransparentF( accentColors[ AccentDark1 ], 0.90 ); - palette.fillColor.accent.tertiary = QskRgb::toTransparentF( accentColors[ AccentDark1 ], 0.80 ); - palette.fillColor.accent.disabled = rgbGray( 0, 0.2169 ); - palette.fillColor.accent.selectedTextBackground = accentColors[ AccentBase ]; + colors.accent.defaultColor = accentColors[ AccentDark1 ]; + colors.accent.secondary = toTransparentF( accentColors[ AccentDark1 ], 0.90 ); + colors.accent.tertiary = toTransparentF( accentColors[ AccentDark1 ], 0.80 ); + colors.accent.disabled = rgbGray( 0, 0.2169 ); + colors.accent.selectedTextBackground = accentColors[ AccentBase ]; + } - // Elevation: + { + auto& colors = palette.elevation; - palette.elevation.control.border = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.1622 ) }; - palette.elevation.circle.border = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.1622 ) }; - palette.elevation.textControl.border = { rgbGray( 0, 0.0578 ), palette.fillColor.text.secondary }; - palette.elevation.textControl.borderFocused = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.0578 ) }; - palette.elevation.accentControl.border = { rgbGray( 255, 0.08 ), rgbGray( 0, 0.40 ) }; + colors.control.border = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.1622 ) }; + colors.circle.border = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.1622 ) }; + colors.textControl.border = { rgbGray( 0, 0.0578 ), palette.fillColor.text.secondary }; + colors.textControl.borderFocused = { rgbGray( 0, 0.0578 ), rgbGray( 0, 0.0578 ) }; + colors.accentControl.border = { rgbGray( 255, 0.08 ), rgbGray( 0, 0.40 ) }; + } - // Stroke color: + { + auto& colors = palette.strokeColor; - palette.strokeColor.control.defaultColor = rgbGray( 0, 0.0578 ); - palette.strokeColor.control.secondary = rgbGray( 0, 0.1622 ); - palette.strokeColor.control.onAccentDefault = rgbGray( 255.08 ); - palette.strokeColor.control.onAccentSecondary = rgbGray( 0, 0.40 ); - palette.strokeColor.control.onAccentTertiary = rgbGray( 0, 0.2169 ); - palette.strokeColor.control.onAccentDisabled = rgbGray( 0, 0.0578 ); + colors.control.defaultColor = rgbGray( 0, 0.0578 ); + colors.control.secondary = rgbGray( 0, 0.1622 ); + colors.control.onAccentDefault = rgbGray( 255.08 ); + colors.control.onAccentSecondary = rgbGray( 0, 0.40 ); + colors.control.onAccentTertiary = rgbGray( 0, 0.2169 ); + colors.control.onAccentDisabled = rgbGray( 0, 0.0578 ); - palette.strokeColor.controlStrong.defaultColor = rgbGray( 0, 0.4458 ); - palette.strokeColor.controlStrong.disabled = rgbGray( 0, 0.2169 ); + colors.controlStrong.defaultColor = rgbGray( 0, 0.4458 ); + colors.controlStrong.disabled = rgbGray( 0, 0.2169 ); - palette.strokeColor.card.defaultColor = rgbGray( 0, 0.0578 ); - palette.strokeColor.card.defaultSolid = rgbGray( 235 ); + colors.card.defaultColor = rgbGray( 0, 0.0578 ); + colors.card.defaultSolid = rgbGray( 235 ); - palette.strokeColor.divider.defaultColor = rgbGray( 0, 0.0803 ); + colors.divider.defaultColor = rgbGray( 0, 0.0803 ); - palette.strokeColor.surface.defaultColor = rgbGray( 117, 0.40 ); - palette.strokeColor.surface.flyout = rgbGray( 0, 0.0578 ); + colors.surface.defaultColor = rgbGray( 117, 0.40 ); + colors.surface.flyout = rgbGray( 0, 0.0578 ); - palette.strokeColor.focus.outer = rgbGray( 0, 0.8956 ); - palette.strokeColor.focus.inner = rgbGray( 255 ); + colors.focus.outer = rgbGray( 0, 0.8956 ); + colors.focus.inner = rgbGray( 255 ); + } - // Background: + { + auto& colors = palette.background; - palette.background.card.defaultColor = rgbGray( 255, 0.70 ); - palette.background.card.secondary = rgbGray( 246, 0.50 ); - palette.background.card.tertiary = rgbGray( 255 ); + colors.card.defaultColor = rgbGray( 255, 0.70 ); + colors.card.secondary = rgbGray( 246, 0.50 ); + colors.card.tertiary = rgbGray( 255 ); - palette.background.overlay.defaultColor = rgbGray( 0, 0.30 ); - - palette.background.layer.alt = rgbGray( 255 ); - - palette.background.flyout.defaultColor = rgbGray( 252, 0.85 ); - - palette.background.solid.base = rgbGray( 243 ); - palette.background.solid.secondary = rgbGray( 238 ); - palette.background.solid.tertiary = rgbGray( 249 ); - palette.background.solid.quaternary = rgbGray( 255 ); + colors.overlay.defaultColor = rgbGray( 0, 0.30 ); + colors.layer.alt = rgbGray( 255 ); + colors.flyout.defaultColor = rgbGray( 252, 0.85 ); + colors.solid.base = rgbGray( 243 ); + colors.solid.secondary = rgbGray( 238 ); + colors.solid.tertiary = rgbGray( 249 ); + colors.solid.quaternary = rgbGray( 255 ); + } // Shadow: @@ -133,101 +140,106 @@ QskFluent2Theme::QskFluent2Theme( QskSkin::ColorScheme colorScheme, // ### should actually be drawn twice with different values: shadow.dialog = { QskShadowMetrics( 0, 21, QPointF( 0, 2 ) ), rgbGray( 0, 0.1474 ) }; } - else if( colorScheme == QskSkin::DarkScheme ) + else { - // Fill color: + { + auto& colors = palette.fillColor; - palette.fillColor.text.primary = rgbGray( 255 ); - palette.fillColor.text.secondary = rgbGray( 255, 0.786 ); - palette.fillColor.text.tertiary = rgbGray( 255, 0.5442 ); - palette.fillColor.text.disabled = rgbGray( 255, 0.3628 ); + colors.text.primary = rgbGray( 255 ); + colors.text.secondary = rgbGray( 255, 0.786 ); + colors.text.tertiary = rgbGray( 255, 0.5442 ); + colors.text.disabled = rgbGray( 255, 0.3628 ); - palette.fillColor.accentText.primary = accentColors[ AccentLight3 ]; - palette.fillColor.accentText.secondary = accentColors[ AccentLight3 ]; - palette.fillColor.accentText.tertiary = accentColors[ AccentLight2 ]; - palette.fillColor.accentText.disabled = rgbGray( 255, 0.3628 ); + colors.accentText.primary = accentColors[ AccentLight3 ]; + colors.accentText.secondary = accentColors[ AccentLight3 ]; + colors.accentText.tertiary = accentColors[ AccentLight2 ]; + colors.accentText.disabled = rgbGray( 255, 0.3628 ); - palette.fillColor.textOnAccent.primary = rgbGray( 0 ); - palette.fillColor.textOnAccent.secondary = rgbGray( 0, 0.50 ); - palette.fillColor.textOnAccent.disabled = rgbGray( 255, 0.5302 ); - palette.fillColor.textOnAccent.selectedText = rgbGray( 255 ); + colors.textOnAccent.primary = rgbGray( 0 ); + colors.textOnAccent.secondary = rgbGray( 0, 0.50 ); + colors.textOnAccent.disabled = rgbGray( 255, 0.5302 ); + colors.textOnAccent.selectedText = rgbGray( 255 ); - palette.fillColor.control.defaultColor = rgbGray( 255, 0.0605 ); - palette.fillColor.control.secondary = rgbGray( 255, 0.0837 ); - palette.fillColor.control.tertiary = rgbGray( 255, 0.0326 ); - palette.fillColor.control.inputActive = rgbGray( 30, 0.70 ); - palette.fillColor.control.disabled = rgbGray( 255, 0.0419 ); + colors.control.defaultColor = rgbGray( 255, 0.0605 ); + colors.control.secondary = rgbGray( 255, 0.0837 ); + colors.control.tertiary = rgbGray( 255, 0.0326 ); + colors.control.inputActive = rgbGray( 30, 0.70 ); + colors.control.disabled = rgbGray( 255, 0.0419 ); - palette.fillColor.controlStrong.defaultColor = rgbGray( 255, 0.5442 ); - palette.fillColor.controlStrong.disabled = rgbGray( 255, 0.2465 ); + colors.controlStrong.defaultColor = rgbGray( 255, 0.5442 ); + colors.controlStrong.disabled = rgbGray( 255, 0.2465 ); - palette.fillColor.subtle.secondary = rgbGray( 255, 0.0605 ); - palette.fillColor.subtle.tertiary = rgbGray( 255, 0.0419 ); - palette.fillColor.subtle.disabled = Qt::transparent; + colors.subtle.secondary = rgbGray( 255, 0.0605 ); + colors.subtle.tertiary = rgbGray( 255, 0.0419 ); + colors.subtle.disabled = Qt::transparent; - palette.fillColor.controlSolid.defaultColor = rgbGray( 69 ); + colors.controlSolid.defaultColor = rgbGray( 69 ); - palette.fillColor.controlAlt.secondary = rgbGray( 0, 0.10 ); - palette.fillColor.controlAlt.tertiary = rgbGray( 255, 0.0419 ); - palette.fillColor.controlAlt.quaternary = rgbGray( 255, 0.0698 ); - palette.fillColor.controlAlt.disabled = Qt::transparent; + colors.controlAlt.secondary = rgbGray( 0, 0.10 ); + colors.controlAlt.tertiary = rgbGray( 255, 0.0419 ); + colors.controlAlt.quaternary = rgbGray( 255, 0.0698 ); + colors.controlAlt.disabled = Qt::transparent; - palette.fillColor.accent.defaultColor = accentColors[ AccentLight2 ]; - palette.fillColor.accent.secondary = QskRgb::toTransparentF( accentColors[ AccentLight2 ], 0.90 ); - palette.fillColor.accent.tertiary = QskRgb::toTransparentF( accentColors[ AccentLight2 ], 0.80 ); - palette.fillColor.accent.disabled = rgbGray( 255, 0.1581 ); - palette.fillColor.accent.selectedTextBackground = accentColors[ AccentBase ]; + colors.accent.defaultColor = accentColors[ AccentLight2 ]; + colors.accent.secondary = toTransparentF( accentColors[ AccentLight2 ], 0.90 ); + colors.accent.tertiary = toTransparentF( accentColors[ AccentLight2 ], 0.80 ); + colors.accent.disabled = rgbGray( 255, 0.1581 ); + colors.accent.selectedTextBackground = accentColors[ AccentBase ]; + } - // Elevation: + { + auto& colors = palette.elevation; - palette.elevation.control.border = { rgbGray( 255, 0.093 ), rgbGray( 255, 0.0698 ) }; - palette.elevation.circle.border = { rgbGray( 255, 0.093 ), rgbGray( 255, 0.0698 ) }; + colors.control.border = { rgbGray( 255, 0.093 ), rgbGray( 255, 0.0698 ) }; + colors.circle.border = { rgbGray( 255, 0.093 ), rgbGray( 255, 0.0698 ) }; - palette.elevation.textControl.border = { rgbGray( 255, 0.08 ), palette.fillColor.text.secondary }; + colors.textControl.border = { rgbGray( 255, 0.08 ), palette.fillColor.text.secondary }; - palette.elevation.textControl.borderFocused = { rgbGray( 255, 0.08 ), rgbGray( 255, 0.08 ) }; - palette.elevation.accentControl.border = { rgbGray( 255, 0.08 ), rgbGray( 0, 0.14 ) }; + colors.textControl.borderFocused = { rgbGray( 255, 0.08 ), rgbGray( 255, 0.08 ) }; + colors.accentControl.border = { rgbGray( 255, 0.08 ), rgbGray( 0, 0.14 ) }; + } - // Stroke color: + { + auto& colors = palette.strokeColor; - palette.strokeColor.control.defaultColor = rgbGray( 255, 0.0698 ); - palette.strokeColor.control.secondary = rgbGray( 255, 0.093 ); - palette.strokeColor.control.onAccentDefault = rgbGray( 255, 0.08 ); - palette.strokeColor.control.onAccentSecondary = rgbGray( 0, 0.14 ); - palette.strokeColor.control.onAccentTertiary = rgbGray( 0, 0.2169 ); - palette.strokeColor.control.onAccentDisabled = rgbGray( 0, 0.20 ); + colors.control.defaultColor = rgbGray( 255, 0.0698 ); + colors.control.secondary = rgbGray( 255, 0.093 ); + colors.control.onAccentDefault = rgbGray( 255, 0.08 ); + colors.control.onAccentSecondary = rgbGray( 0, 0.14 ); + colors.control.onAccentTertiary = rgbGray( 0, 0.2169 ); + colors.control.onAccentDisabled = rgbGray( 0, 0.20 ); - palette.strokeColor.controlStrong.defaultColor = rgbGray( 255, 0.5442 ); - palette.strokeColor.controlStrong.disabled = rgbGray( 255, 0.1581 ); + colors.controlStrong.defaultColor = rgbGray( 255, 0.5442 ); + colors.controlStrong.disabled = rgbGray( 255, 0.1581 ); - palette.strokeColor.card.defaultColor = rgbGray( 255, 0.0578 ); - palette.strokeColor.card.defaultSolid = rgbGray( 235 ); + colors.card.defaultColor = rgbGray( 255, 0.0578 ); + colors.card.defaultSolid = rgbGray( 235 ); - palette.strokeColor.divider.defaultColor = rgbGray( 255, 0.0837 ); + colors.divider.defaultColor = rgbGray( 255, 0.0837 ); - palette.strokeColor.surface.defaultColor = rgbGray( 117, 0.40 ); - palette.strokeColor.surface.flyout = rgbGray( 0, 0.20 ); + colors.surface.defaultColor = rgbGray( 117, 0.40 ); + colors.surface.flyout = rgbGray( 0, 0.20 ); - palette.strokeColor.focus.outer = rgbGray( 255 ); - palette.strokeColor.focus.inner = rgbGray( 0, 0.70 ); + colors.focus.outer = rgbGray( 255 ); + colors.focus.inner = rgbGray( 0, 0.70 ); + } - // Background: + { + auto& colors = palette.background; - palette.background.card.defaultColor = rgbGray( 255, 0.0512 ); - palette.background.card.secondary = rgbGray( 255, 0.0326 ); - palette.background.card.tertiary = rgbGray( 255 ); // not set in Figma + colors.card.defaultColor = rgbGray( 255, 0.0512 ); + colors.card.secondary = rgbGray( 255, 0.0326 ); + colors.card.tertiary = rgbGray( 255 ); // not set in Figma - palette.background.overlay.defaultColor = rgbGray( 0, 0.30 ); - - palette.background.layer.alt = rgbGray( 255, 0.0538 ); - - palette.background.flyout.defaultColor = rgbGray( 44, 0.96 ); - - palette.background.solid.base = rgbGray( 32 ); - palette.background.solid.secondary = rgbGray( 28 ); - palette.background.solid.tertiary = rgbGray( 40 ); - palette.background.solid.quaternary = rgbGray( 44 ); + colors.overlay.defaultColor = rgbGray( 0, 0.30 ); + colors.layer.alt = rgbGray( 255, 0.0538 ); + colors.flyout.defaultColor = rgbGray( 44, 0.96 ); + colors.solid.base = rgbGray( 32 ); + colors.solid.secondary = rgbGray( 28 ); + colors.solid.tertiary = rgbGray( 40 ); + colors.solid.quaternary = rgbGray( 44 ); + } // Shadow: