From f616997650ec110a2ed6e0e81449c97861452abf Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 9 Jun 2023 10:34:19 +0200 Subject: [PATCH] windows style: Style dialog --- examples/gallery/dialog/DialogPage.cpp | 4 +++- skins/windows/QskWindowsSkin.cpp | 29 ++++++++++++++++++++++++-- skins/windows/QskWindowsSkin.h | 4 ++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/examples/gallery/dialog/DialogPage.cpp b/examples/gallery/dialog/DialogPage.cpp index 260265ae..bc77a02a 100644 --- a/examples/gallery/dialog/DialogPage.cpp +++ b/examples/gallery/dialog/DialogPage.cpp @@ -37,7 +37,7 @@ namespace , m_type( type ) { setShape( 10 ); - initSizePolicy( QskSizePolicy::Ignored, QskSizePolicy::Ignored ); + initSizePolicy( QskSizePolicy::Preferred, QskSizePolicy::Fixed ); const int index = metaObject()->indexOfEnumerator( "ButtonType" ); setText( metaObject()->enumerator( index ).key( m_type ) ); @@ -84,6 +84,8 @@ DialogPage::DialogPage( QQuickItem* parent ) : Page( Qt::Horizontal, parent ) { auto box = new QskLinearBox( Qt::Horizontal, 2, this ); + box->setSpacing( 20 ); + box->setExtraSpacingAt( Qt::BottomEdge ); for ( int i = 0; i < Button::TypeCount; i++ ) new Button( static_cast< Button::ButtonType >( i ), box ); diff --git a/skins/windows/QskWindowsSkin.cpp b/skins/windows/QskWindowsSkin.cpp index 5f8dfea8..8021a2ed 100644 --- a/skins/windows/QskWindowsSkin.cpp +++ b/skins/windows/QskWindowsSkin.cpp @@ -279,6 +279,11 @@ void Editor::setupComboBox() void Editor::setupDialogButtonBox() { + using Q = QskDialogButtonBox; + + setPadding( Q::Panel, 24 ); + setGradient( Q::Panel, theme.palette.background.fillColor.solidBackground.base ); + setPadding(Q::Panel, 20 ); } void Editor::setupFocusIndicator() @@ -339,6 +344,9 @@ void Editor::setupPageIndicator() void Editor::setupPopup() { + using Q = QskPopup; + + setGradient( Q::Overlay, theme.palette.background.fillColor.smoke.defaultColor ); } void Editor::setupProgressBar() @@ -860,6 +868,23 @@ void Editor::setupSwitchButton() void Editor::setupSubWindow() { + using Q = QskSubWindow; + + setPadding( Q::Panel, { 0, 31, 0, 0 } ); + setBoxShape( Q::Panel, 7 ); + setBoxBorderMetrics( Q::Panel, 1 ); + setBoxBorderColors( Q::Panel, theme.palette.strokeColor.surfaceStroke.defaultColor ); + setGradient( Q::Panel, theme.palette.background.fillColor.layer.alt ); + setShadowMetrics( Q::Panel, theme.shadow.dialog.first ); + setShadowColor( Q::Panel, theme.shadow.dialog.second ); + + setHint( Q::TitleBarPanel | QskAspect::Style, Q::TitleBar | Q::Title ); + setPadding( Q::TitleBarPanel, { 24, 31, 24, 0 } ); + + setFontRole( Q::TitleBarText, QskWindowsSkin::Subtitle ); + setColor( Q::TitleBarText, theme.palette.fillColor.text.primary ); + setAlignment( Q::TitleBarText, Qt::AlignLeft ); + setTextOptions( Q::TitleBarText, Qt::ElideRight, QskTextOptions::NoWrap ); } void Editor::setupVirtualKeyboard() @@ -991,7 +1016,7 @@ QskWindowsTheme::QskWindowsTheme( Theme theme, std::array< QRgb, NumAccentColors palette.background.fillColor.cardBackground.secondary = QskRgb::toTransparentF( 0xffF6F6F6, 0.50 ); palette.background.fillColor.cardBackground.tertiary = 0xffffffff; - palette.background.fillColor.stroke.defaultColor = QskRgb::toTransparentF( 0xff000000, 0.30 ); + palette.background.fillColor.smoke.defaultColor = QskRgb::toTransparentF( 0xff000000, 0.30 ); palette.background.fillColor.layer.defaultColor = QskRgb::toTransparentF( 0xffffffff, 0.50 ); palette.background.fillColor.layer.alt = 0xffffffff; @@ -1133,7 +1158,7 @@ QskWindowsTheme::QskWindowsTheme( Theme theme, std::array< QRgb, NumAccentColors palette.background.fillColor.cardBackground.secondary = QskRgb::toTransparentF( 0xffffffff, 0.0326 ); palette.background.fillColor.cardBackground.tertiary = 0xffffffff; // not set in Figma - palette.background.fillColor.stroke.defaultColor = QskRgb::toTransparentF( 0xff000000, 0.30 ); + palette.background.fillColor.smoke.defaultColor = QskRgb::toTransparentF( 0xff000000, 0.30 ); palette.background.fillColor.layer.defaultColor = QskRgb::toTransparentF( 0xff3A3A3A, 0.30 ); palette.background.fillColor.layer.alt = QskRgb::toTransparentF( 0xffffffff, 0.0538 ); diff --git a/skins/windows/QskWindowsSkin.h b/skins/windows/QskWindowsSkin.h index 72a480f5..9d758f2e 100644 --- a/skins/windows/QskWindowsSkin.h +++ b/skins/windows/QskWindowsSkin.h @@ -244,7 +244,7 @@ class QSK_WINDOWS_EXPORT QskWindowsTheme QRgb tertiary; }; - struct Stroke + struct Smoke { QRgb defaultColor; }; @@ -291,7 +291,7 @@ class QSK_WINDOWS_EXPORT QskWindowsTheme }; CardBackground cardBackground; - Stroke stroke; + Smoke smoke; Layer layer; LayerOnAcrylic layerOnAcrylic; LayerOnAccentAcrylic layerOnAccentAcrylic;