From 6df27afcc00230419217ac5864403d207f818d1e Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 18 Oct 2017 20:00:06 +0200 Subject: [PATCH] APIs for setting box hints changed --- examples/automotive/DefaultSkin.cpp | 8 +-- examples/automotive/OtherSkin.cpp | 18 +++---- examples/automotive/SkinFactory.cpp | 9 ++-- examples/rectangles/Box.cpp | 12 ++--- examples/sliders/main.cpp | 10 ++-- examples/tabview/main.cpp | 2 +- examples/thumbnails/main.cpp | 6 +-- src/controls/QskListView.cpp | 1 + src/controls/QskListViewSkinlet.cpp | 3 +- src/controls/QskScrollView.cpp | 2 +- src/controls/QskSkin.cpp | 25 +++++++-- src/controls/QskSkin.h | 11 ++-- src/controls/QskSkinHintTable.cpp | 20 ++++++++ src/controls/QskSkinHintTable.h | 7 --- src/controls/QskSkinRenderer.cpp | 6 +-- src/controls/QskSkinnable.cpp | 22 +++++--- src/controls/QskSkinnable.h | 9 ++-- src/controls/QskSliderSkinlet.cpp | 2 +- src/controls/QskSubWindowSkinlet.cpp | 2 +- src/skins/material/QskMaterialSkin.cpp | 71 +++++++++++++------------- src/skins/squiek/QskSquiekSkin.cpp | 44 ++++++++-------- 21 files changed, 167 insertions(+), 123 deletions(-) diff --git a/examples/automotive/DefaultSkin.cpp b/examples/automotive/DefaultSkin.cpp index 825be784..486e7f74 100644 --- a/examples/automotive/DefaultSkin.cpp +++ b/examples/automotive/DefaultSkin.cpp @@ -102,8 +102,8 @@ void DefaultSkin::initHints() setGradient( SoundControl::CrossHair, m_palette->color3 ); setGradient( SoundControl::Marker, m_palette->color5 ); - setBoxBorder( SoundControl::Marker, 2 ); - setBoxRadius( SoundControl::Marker, 100, Qt::RelativeSize ); + setBoxBorderMetrics( SoundControl::Marker, 2 ); + setBoxShape( SoundControl::Marker, 100, Qt::RelativeSize ); setGradient( QskSeparator::Panel, m_palette->color3 ); setMetric( QskSeparator::Panel | QskAspect::Size, 2 ); @@ -138,8 +138,8 @@ void DefaultSkin::initHints() setGradient( QskSlider::Fill, m_palette->color4.darker( 200 ) ); setMetric( QskSlider::Handle | QskAspect::Size, 24 ); - setBoxBorder( QskSlider::Handle, 0 ); - setBoxRadius( QskSlider::Handle, 100.0, Qt::RelativeSize ); + setBoxBorderMetrics( QskSlider::Handle, 0 ); + setBoxShape( QskSlider::Handle, 100.0, Qt::RelativeSize ); setGradient( QskSlider::Handle, m_palette->color5 ); // handle expanding, when being pressed diff --git a/examples/automotive/OtherSkin.cpp b/examples/automotive/OtherSkin.cpp index bf0599b4..da6a6010 100644 --- a/examples/automotive/OtherSkin.cpp +++ b/examples/automotive/OtherSkin.cpp @@ -79,22 +79,22 @@ void OtherSkin::initHints() setGradient( SoundControl::CrossHair, QColor( "OliveDrab" ).lighter( 120 ) ); setGradient( SoundControl::Marker, QColor( "OliveDrab" ) ); - setBoxBorder( SoundControl::Marker, 2 ); - setBoxRadius( SoundControl::Marker, 100, Qt::RelativeSize ); + setBoxBorderMetrics( SoundControl::Marker, 2 ); + setBoxShape( SoundControl::Marker, 100, Qt::RelativeSize ); setSkinHint( ButtonBar::Indicator | QskAspect::GraphicRole, SkinFactory::Indicator ); setSkinHint( SoundControl::Vehicle | QskAspect::GraphicRole, SkinFactory::Vehicle ); setSkinHint( SoundControl::MarkerControl | QskAspect::GraphicRole, SkinFactory::Vehicle ); - setBoxBorder( QskSeparator::Panel, 0 ); + setBoxBorderMetrics( QskSeparator::Panel, 0 ); setGradient( QskSeparator::Panel, m_palette->color3 ); setMetric( QskSeparator::Panel | QskAspect::Size, 1 ); // -- push buttons setMargins( QskPushButton::Panel | QskAspect::Padding, 8 ); - setBoxBorder( QskPushButton::Panel, 0 ); - setBoxRadius( QskPushButton::Panel, 4 ); + setBoxBorderMetrics( QskPushButton::Panel, 0 ); + setBoxShape( QskPushButton::Panel, 4 ); setGradient( QskPushButton::Panel, m_palette->color1 ); setGradient( QskPushButton::Panel | QskPushButton::Pressed, m_palette->color2 ); @@ -109,8 +109,8 @@ void OtherSkin::initHints() setGradient( SoundControl::Overlay, overlayColor ); // -- slider control buttons - setBoxBorder( SoundControl::SliderControl, 0 ); - setBoxRadius( SoundControl::SliderControl, 4 ); + setBoxBorderMetrics( SoundControl::SliderControl, 0 ); + setBoxShape( SoundControl::SliderControl, 4 ); setGradient( SoundControl::SliderControl, m_palette->color1 ); setGradient( SoundControl::SliderControl | QskPushButton::Pressed, m_palette->color2 ); @@ -133,8 +133,8 @@ void OtherSkin::initHints() setGradient( QskSlider::Fill, m_palette->color3.lighter( 150 ) ); setMetric( QskSlider::Handle | QskAspect::Size, 22 ); - setBoxBorder( QskSlider::Handle, 0 ); - setBoxRadius( QskSlider::Handle, 6 ); + setBoxBorderMetrics( QskSlider::Handle, 0 ); + setBoxShape( QskSlider::Handle, 6 ); setGradient( QskSlider::Handle, m_palette->color3 ); } diff --git a/examples/automotive/SkinFactory.cpp b/examples/automotive/SkinFactory.cpp index 9d747e6f..9248478f 100644 --- a/examples/automotive/SkinFactory.cpp +++ b/examples/automotive/SkinFactory.cpp @@ -48,8 +48,9 @@ QskSkin* SkinFactory::createSkin( const QString& skinName ) skin->setSkinHint( SoundControl::Vehicle | QskAspect::GraphicRole, SkinFactory::Vehicle ); skin->setGradient( SoundControl::Marker, themeColor ); - skin->setBoxBorder( SoundControl::Marker, 1 ); - skin->setBoxRadius( SoundControl::Marker, 6 ); + skin->setBoxBorderMetrics( SoundControl::Marker, 1 ); + skin->setBoxShape( SoundControl::Marker, 6 ); + skin->setColor( QskTextLabel::Text, "PeachPuff" ); skin->setGradient( QskPushButton::Text, themeColor ); @@ -72,8 +73,8 @@ QskSkin* SkinFactory::createSkin( const QString& skinName ) skin->setSkinHint( SoundControl::MarkerControl | QskAspect::GraphicRole, SkinFactory::Indicator ); - skin->setBoxBorder( SoundControl::Marker, 1 ); - skin->setBoxRadius( SoundControl::Marker, 8 ); + skin->setBoxBorderMetrics( SoundControl::Marker, 1 ); + skin->setBoxShape( SoundControl::Marker, 8 ); skin->setGradient( SoundControl::Marker, QColor( "SaddleBrown" ) ); skin->setGradient( SoundControl::CrossHair, QColor( "Sienna" ) ); diff --git a/examples/rectangles/Box.cpp b/examples/rectangles/Box.cpp index 2f946514..e26fcff1 100644 --- a/examples/rectangles/Box.cpp +++ b/examples/rectangles/Box.cpp @@ -11,8 +11,8 @@ Box::Box( QQuickItem* parentItem ): // decoupling the hints from the skin setBoxShapeHint( QskBox::Panel, QskBoxShapeMetrics() ); - setBoxBorderHint( QskBox::Panel, QskBoxBorderMetrics() ); - setBoxBorderColorHint( QskBox::Panel, QskBoxBorderColors() ); + setBoxBorderMetricsHint( QskBox::Panel, QskBoxBorderMetrics() ); + setBoxBorderColorsHint( QskBox::Panel, QskBoxBorderColors() ); setGradientHint( QskBox::Panel, QskGradient() ); } @@ -116,23 +116,23 @@ void Box::setBorderColors( const QColor& left, const QColor& top, const QColor& right, const QColor& bottom ) { QskBoxBorderColors colors( left, top, right, bottom ); - setBoxBorderColorHint( QskBox::Panel, colors ); + setBoxBorderColorsHint( QskBox::Panel, colors ); } void Box::setBorderColor( const QColor& color ) { - setBoxBorderColorHint( QskBox::Panel, color ); + setBoxBorderColorsHint( QskBox::Panel, color ); } void Box::setBorderWidth( qreal left, qreal top, qreal right, qreal bottom ) { - setBoxBorderHint( QskBox::Panel, + setBoxBorderMetricsHint( QskBox::Panel, QskMargins( left, top, right, bottom ) ); } void Box::setBorderWidth( int width ) { - setBoxBorderHint( QskBox::Panel, QskMargins( width ) ); + setBoxBorderMetricsHint( QskBox::Panel, QskMargins( width ) ); } void Box::setGradient( QRgb rgb ) diff --git a/examples/sliders/main.cpp b/examples/sliders/main.cpp index 57f879a6..0c0fb9b3 100644 --- a/examples/sliders/main.cpp +++ b/examples/sliders/main.cpp @@ -49,9 +49,9 @@ public: const Aspect aspect = Panel | placement; setMetric( aspect | Size, h ); - setBoxBorderHint( aspect, 1 ); setBoxShapeHint( aspect, 4 ); - setBoxBorderColorHint( aspect, Grey900 ); + setBoxBorderMetricsHint( aspect, 1 ); + setBoxBorderColorsHint( aspect, Grey900 ); setGradientHint( aspect, Grey400 ); if ( placement == Preserved ) @@ -67,7 +67,7 @@ public: const Aspect aspect = Groove | placement; setMetric( aspect | Size, 4 ); - setBoxBorderHint( aspect, 0 ); + setBoxBorderMetricsHint( aspect, 0 ); setBoxShapeHint( aspect, 1 ); setGradientHint( aspect, Qt::black ); @@ -86,7 +86,7 @@ public: { const Aspect aspect = Handle | placement; - setBoxBorderHint( aspect, 1 ); + setBoxBorderMetricsHint( aspect, 1 ); setBoxShapeHint( aspect, 4 ); const qreal m = 0.5 * qCeil( 0.5 * ( w - h ) ) + 1; @@ -98,7 +98,7 @@ public: for ( auto state : { NoState, Pressed } ) { - setBoxBorderColorHint( aspect | state, Grey600 ); + setBoxBorderColorsHint( aspect | state, Grey600 ); setGradientHint( aspect | state, Blue400 ); } } diff --git a/examples/tabview/main.cpp b/examples/tabview/main.cpp index ff4b6e0e..b6f7d38e 100644 --- a/examples/tabview/main.cpp +++ b/examples/tabview/main.cpp @@ -87,7 +87,7 @@ int main( int argc, char* argv[] ) auto focusIndicator = new QskFocusIndicator(); focusIndicator->setObjectName( "FocusIndicator" ); - focusIndicator->setBoxBorderColorHint( QskFocusIndicator::Panel, Qt::red ); + focusIndicator->setBoxBorderColorsHint( QskFocusIndicator::Panel, Qt::red ); QskWindow window; window.resize( 600, 400 ); diff --git a/examples/thumbnails/main.cpp b/examples/thumbnails/main.cpp index 1ccc1ef1..8d28f342 100644 --- a/examples/thumbnails/main.cpp +++ b/examples/thumbnails/main.cpp @@ -112,16 +112,16 @@ public: using namespace QskAspect; // settings usually done in the skins - setBoxBorderHint( Viewport, 2 ); + setBoxBorderMetricsHint( Viewport, 2 ); setBoxShapeHint( Viewport, 20 ); for ( auto subControl : { HorizontalScrollBar, VerticalScrollBar } ) setMetric( subControl | Size, 20 ); - setBoxBorderHint( VerticalScrollHandle, 1 ); + setBoxBorderMetricsHint( VerticalScrollHandle, 1 ); setBoxShapeHint( VerticalScrollHandle, 8 ); - setBoxBorderHint( HorizontalScrollHandle, 1 ); + setBoxBorderMetricsHint( HorizontalScrollHandle, 1 ); setBoxShapeHint( HorizontalScrollHandle, 8 ); } }; diff --git a/src/controls/QskListView.cpp b/src/controls/QskListView.cpp index 14edea5c..47e6ed7d 100644 --- a/src/controls/QskListView.cpp +++ b/src/controls/QskListView.cpp @@ -172,6 +172,7 @@ void QskListView::keyPressEvent( QKeyEvent* event ) return; int row = selectedRow(); + switch ( event->key() ) { case Qt::Key_Down: diff --git a/src/controls/QskListViewSkinlet.cpp b/src/controls/QskListViewSkinlet.cpp index 2d1edcb6..0246f58c 100644 --- a/src/controls/QskListViewSkinlet.cpp +++ b/src/controls/QskListViewSkinlet.cpp @@ -48,7 +48,7 @@ public: m_rowMin = rowMin; m_rowMax = rowMax; } - + inline int rowMin() const { return m_rowMin; @@ -278,6 +278,7 @@ void QskListViewSkinlet::updateForegroundNodes( node = node->nextSibling(); x += listView->columnWidth( col ); } + y += rowHeight; } diff --git a/src/controls/QskScrollView.cpp b/src/controls/QskScrollView.cpp index 316a4b03..f0b72d54 100644 --- a/src/controls/QskScrollView.cpp +++ b/src/controls/QskScrollView.cpp @@ -183,7 +183,7 @@ QSizeF QskScrollView::scrollableSize() const QRectF QskScrollView::viewContentsRect() const { // This code should be done in the skinlet. TODO ... - const qreal bw = boxBorderHint( Viewport | QskAspect::Border ).widthAt( Qt::TopEdge ); + const qreal bw = boxBorderMetricsHint( Viewport ).widthAt( Qt::TopEdge ); const QRectF r = subControlRect( Viewport ); return r.adjusted( bw, bw, -bw, -bw ); diff --git a/src/controls/QskSkin.cpp b/src/controls/QskSkin.cpp index 8d2ae340..3d7bb155 100644 --- a/src/controls/QskSkin.cpp +++ b/src/controls/QskSkin.cpp @@ -209,9 +209,18 @@ QskGradient QskSkin::gradient( QskAspect::Aspect aspect ) const return m_data->hintTable.gradient( aspect ); } -void QskSkin::setBoxRadius( QskAspect::Aspect aspect, qreal radius, Qt::SizeMode sizeMode ) +void QskSkin::setBoxShape( QskAspect::Aspect aspect, + qreal radius, Qt::SizeMode sizeMode ) { - m_data->hintTable.setBoxShape( aspect, QskBoxShapeMetrics( radius, sizeMode ) ); + m_data->hintTable.setBoxShape( aspect, + QskBoxShapeMetrics( radius, radius, radius, radius, sizeMode ) ); +} + +void QskSkin::setBoxShape( QskAspect::Aspect aspect, qreal topLeft, qreal topRight, + qreal bottomLeft, qreal bottomRight, Qt::SizeMode sizeMode ) +{ + m_data->hintTable.setBoxShape( aspect, + QskBoxShapeMetrics( topLeft, topRight, bottomLeft, bottomRight, sizeMode ) ); } void QskSkin::setBoxShape( QskAspect::Aspect aspect, const QskBoxShapeMetrics& shape ) @@ -224,12 +233,20 @@ QskBoxShapeMetrics QskSkin::boxShape( QskAspect::Aspect aspect ) const return m_data->hintTable.boxShape( aspect ); } -void QskSkin::setBoxBorder( QskAspect::Aspect aspect, const QskBoxBorderMetrics& border ) +void QskSkin::setBoxBorderMetrics( QskAspect::Aspect aspect, + qreal left, qreal top, qreal right, qreal bottom, Qt::SizeMode sizeMode ) +{ + m_data->hintTable.setBoxBorder( aspect, + QskBoxBorderMetrics( left, top, right, bottom, sizeMode ) ); +} + +void QskSkin::setBoxBorderMetrics( + QskAspect::Aspect aspect, const QskBoxBorderMetrics& border ) { m_data->hintTable.setBoxBorder( aspect, border ); } -QskBoxBorderMetrics QskSkin::boxBorder( QskAspect::Aspect aspect ) const +QskBoxBorderMetrics QskSkin::boxBorderMetrics( QskAspect::Aspect aspect ) const { return m_data->hintTable.boxBorder( aspect ); } diff --git a/src/controls/QskSkin.h b/src/controls/QskSkin.h index 4b70559d..a89e5cca 100644 --- a/src/controls/QskSkin.h +++ b/src/controls/QskSkin.h @@ -76,13 +76,18 @@ public: void setGradient( QskAspect::Aspect, const QskGradient& ); QskGradient gradient( QskAspect::Aspect ) const; - void setBoxRadius( QskAspect::Aspect, qreal radius, Qt::SizeMode = Qt::AbsoluteSize ); + void setBoxShape( QskAspect::Aspect, qreal radius, Qt::SizeMode = Qt::AbsoluteSize ); + void setBoxShape( QskAspect::Aspect, qreal topLeft, qreal topRight, + qreal bottomLeft, qreal bottomRight, Qt::SizeMode = Qt::AbsoluteSize ); void setBoxShape( QskAspect::Aspect, const QskBoxShapeMetrics& ); QskBoxShapeMetrics boxShape( QskAspect::Aspect ) const; - void setBoxBorder( QskAspect::Aspect, const QskBoxBorderMetrics& ); - QskBoxBorderMetrics boxBorder( QskAspect::Aspect ) const; + void setBoxBorderMetrics( QskAspect::Aspect, qreal left, qreal top, + qreal right, qreal bottom, Qt::SizeMode = Qt::AbsoluteSize ); + + void setBoxBorderMetrics( QskAspect::Aspect, const QskBoxBorderMetrics& ); + QskBoxBorderMetrics boxBorderMetrics( QskAspect::Aspect ) const; void setBoxBorderColors( QskAspect::Aspect, const QskBoxBorderColors& ); QskBoxBorderColors boxBorderColors( QskAspect::Aspect ) const; diff --git a/src/controls/QskSkinHintTable.cpp b/src/controls/QskSkinHintTable.cpp index b49acc9a..cfa934b9 100644 --- a/src/controls/QskSkinHintTable.cpp +++ b/src/controls/QskSkinHintTable.cpp @@ -94,6 +94,26 @@ const std::unordered_map< QskAspect::Aspect, QVariant >& QskSkinHintTable::hints return dummyHints; } +void QskSkinHintTable::setAnimation( + QskAspect::Aspect aspect, QskAnimationHint animation ) +{ + aspect.setAnimator( true ); + + const QVariant v = QVariant::fromValue( animation ); + + if ( aspect.type() == 0 ) + { + using namespace QskAspect; + + setHint( aspect | Color, v ); + setHint( aspect | Metric, v ); + } + else + { + setHint( aspect, v ); + } +} + void QskSkinHintTable::setHint( QskAspect::Aspect aspect, const QVariant& skinHint ) { if ( m_hints == nullptr ) diff --git a/src/controls/QskSkinHintTable.h b/src/controls/QskSkinHintTable.h index 2d91ee6e..a7f240d6 100644 --- a/src/controls/QskSkinHintTable.h +++ b/src/controls/QskSkinHintTable.h @@ -222,13 +222,6 @@ inline QskBoxBorderColors QskSkinHintTable::boxBorderColors( QskAspect::Aspect a return hint( aspect | Border | Color ).value< QskBoxBorderColors >(); } -inline void QskSkinHintTable::setAnimation( - QskAspect::Aspect aspect, QskAnimationHint animation ) -{ - aspect.setAnimator( true ); - setHint( aspect, QVariant::fromValue( animation ) ); -} - inline QskAnimationHint QskSkinHintTable::animation( QskAspect::Aspect aspect ) const { aspect.setAnimator( true ); diff --git a/src/controls/QskSkinRenderer.cpp b/src/controls/QskSkinRenderer.cpp index 064ede5b..2a454cf8 100644 --- a/src/controls/QskSkinRenderer.cpp +++ b/src/controls/QskSkinRenderer.cpp @@ -203,9 +203,9 @@ QskBoxOptions QskSkinRenderer::boxOptions( const QskSkinnable* skinnable, QskBoxOptions options; - options.shape = skinnable->boxShapeHint( subControl | Shape ).toAbsolute( size ); - options.border = skinnable->boxBorderHint( subControl | Border ).toAbsolute( size ); - options.borderColors = skinnable->boxBorderColorHint( subControl | Border ); + options.shape = skinnable->boxShapeHint( subControl ).toAbsolute( size ); + options.border = skinnable->boxBorderMetricsHint( subControl ).toAbsolute( size ); + options.borderColors = skinnable->boxBorderColorsHint( subControl ); options.fillGradient = skinnable->gradientHint( subControl ); return options; diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index 33024b29..44afecc8 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -241,6 +241,11 @@ qreal QskSkinnable::metric( QskAspect::Aspect aspect, QskSkinHintStatus* status return effectiveHint( aspect | QskAspect::Metric, status ).toReal(); } +void QskSkinnable::setMarginsHint( QskAspect::Aspect aspect, qreal margins ) +{ + m_data->hintTable.setMargins( aspect, QskMargins( margins ) ); +} + void QskSkinnable::setMarginsHint( QskAspect::Aspect aspect, const QMarginsF& margins ) { m_data->hintTable.setMargins( aspect, margins ); @@ -273,33 +278,34 @@ void QskSkinnable::setBoxShapeHint( QskBoxShapeMetrics QskSkinnable::boxShapeHint( QskAspect::Aspect aspect, QskSkinHintStatus* status ) const { - return effectiveHint( aspect | QskAspect::Metric, status ).value< QskBoxShapeMetrics >(); + using namespace QskAspect; + return effectiveHint( aspect | Metric | Shape, status ).value< QskBoxShapeMetrics >(); } -void QskSkinnable::setBoxBorderHint( +void QskSkinnable::setBoxBorderMetricsHint( QskAspect::Aspect aspect, const QskBoxBorderMetrics& border ) { m_data->hintTable.setBoxBorder( aspect, border ); } -QskBoxBorderMetrics QskSkinnable::boxBorderHint( +QskBoxBorderMetrics QskSkinnable::boxBorderMetricsHint( QskAspect::Aspect aspect, QskSkinHintStatus* status ) const { using namespace QskAspect; - return effectiveHint( aspect | Metric, status ).value< QskBoxBorderMetrics >(); + return effectiveHint( aspect | Metric | Border, status ).value< QskBoxBorderMetrics >(); } -void QskSkinnable::setBoxBorderColorHint( +void QskSkinnable::setBoxBorderColorsHint( QskAspect::Aspect aspect, const QskBoxBorderColors& colors ) { m_data->hintTable.setBoxBorderColors( aspect, colors ); } -QskBoxBorderColors QskSkinnable::boxBorderColorHint( +QskBoxBorderColors QskSkinnable::boxBorderColorsHint( QskAspect::Aspect aspect, QskSkinHintStatus* status ) const { using namespace QskAspect; - return effectiveHint( aspect | Color, status ).value< QskBoxBorderColors >(); + return effectiveHint( aspect | Color | Border, status ).value< QskBoxBorderColors >(); } void QskSkinnable::setFontRole( QskAspect::Aspect aspect, int role ) @@ -605,7 +611,7 @@ static inline QMarginsF qskMargins( const QskSkinnable* skinnable, const QMarginsF padding1 = QskSkinRenderer::paddingHint( skinnable->boxShapeHint( aspect | Shape), - skinnable->boxBorderHint( aspect | Border ), + skinnable->boxBorderMetricsHint( aspect | Border ), size, inner ); const QMarginsF padding2 = skinnable->marginsHint( aspect | Padding ); diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index c555ed35..26881238 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -80,6 +80,7 @@ public: void setMetric( QskAspect::Aspect, qreal metric ); qreal metric( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; + void setMarginsHint( QskAspect::Aspect, qreal ); void setMarginsHint( QskAspect::Aspect, const QMarginsF& ); QMarginsF marginsHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; @@ -89,11 +90,11 @@ public: void setBoxShapeHint( QskAspect::Aspect, const QskBoxShapeMetrics& ); QskBoxShapeMetrics boxShapeHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; - void setBoxBorderHint( QskAspect::Aspect, const QskBoxBorderMetrics& ); - QskBoxBorderMetrics boxBorderHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; + void setBoxBorderMetricsHint( QskAspect::Aspect, const QskBoxBorderMetrics& ); + QskBoxBorderMetrics boxBorderMetricsHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; - void setBoxBorderColorHint( QskAspect::Aspect, const QskBoxBorderColors& ); - QskBoxBorderColors boxBorderColorHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; + void setBoxBorderColorsHint( QskAspect::Aspect, const QskBoxBorderColors& ); + QskBoxBorderColors boxBorderColorsHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const; void setFlagHint( QskAspect::Aspect, int flag ); int flagHint( QskAspect::Aspect ) const; diff --git a/src/controls/QskSliderSkinlet.cpp b/src/controls/QskSliderSkinlet.cpp index 61dded3b..4eda17a8 100644 --- a/src/controls/QskSliderSkinlet.cpp +++ b/src/controls/QskSliderSkinlet.cpp @@ -13,7 +13,7 @@ static QMarginsF qskPadding( const QskSlider* slider, QskAspect::Subcontrol subControl ) { return slider->marginsHint( subControl | QskAspect::Padding ) - + slider->boxBorderHint( subControl ).widths(); + + slider->boxBorderMetricsHint( subControl ).widths(); } QskSliderSkinlet::QskSliderSkinlet( QskSkin* skin ): diff --git a/src/controls/QskSubWindowSkinlet.cpp b/src/controls/QskSubWindowSkinlet.cpp index 8be69e35..c7392878 100644 --- a/src/controls/QskSubWindowSkinlet.cpp +++ b/src/controls/QskSubWindowSkinlet.cpp @@ -81,7 +81,7 @@ QSGNode* QskSubWindowSkinlet::updateTitleBarNode( QRectF QskSubWindowSkinlet::titleBarRect( const QskSubWindow* subWindow ) const { - const auto border = subWindow->boxBorderHint( QskSubWindow::Panel | QskAspect::Border ); + const auto border = subWindow->boxBorderMetricsHint( QskSubWindow::Panel ); QRectF rect = subWindow->contentsRect().marginsRemoved( border.widths() ); rect.setHeight( titleBarHeight( subWindow ) ); diff --git a/src/skins/material/QskMaterialSkin.cpp b/src/skins/material/QskMaterialSkin.cpp index 549dd7cd..5480f659 100644 --- a/src/skins/material/QskMaterialSkin.cpp +++ b/src/skins/material/QskMaterialSkin.cpp @@ -196,8 +196,8 @@ void QskMaterialSkin::initFocusIndicatorHints() const ColorPalette& pal = m_data->palette; setMargins( Q::Panel | Padding, 5 ); - setBoxRadius( Q::Panel, 4 ); - setBoxBorder( Q::Panel, 2 ); + setBoxShape( Q::Panel, 4 ); + setBoxBorderMetrics( Q::Panel, 2 ); setBoxBorderColors( Q::Panel, pal.accentColor ); setGradient( Q::Panel, QskGradient() ); } @@ -214,8 +214,8 @@ void QskMaterialSkin::initSeparatorHints() const Aspect aspect = Q::Panel | placement; setMetric( aspect | Size, 4 ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 0 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); setGradient( aspect, pal.baseColor ); } } @@ -232,8 +232,8 @@ void QskMaterialSkin::initPageIndicatorHints() setMetric( subControl | Size, qskDpiScaled( 10 ) ); // circles, without border - setBoxRadius( subControl, 100, Qt::RelativeSize ); - setBoxBorder( subControl | Border, 0 ); + setBoxShape( subControl, 100, Qt::RelativeSize ); + setBoxBorderMetrics( subControl, 0 ); const QColor color = ( subControl == Q::Bullet ) ? pal.lighter150 : pal.accentColor; @@ -243,8 +243,7 @@ void QskMaterialSkin::initPageIndicatorHints() } // no visible background panel - setBoxBorder( Q::Panel | Shape, 0 ); - setBoxBorder( Q::Panel | Border, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); setGradient( Q::Panel, QskGradient() ); setMetric( Q::Panel | Spacing, 3 ); @@ -273,8 +272,8 @@ void QskMaterialSkin::initPushButtonHints() QskBoxBorderColors noBorderColors = borderColors; noBorderColors.setAlpha( 0 ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, QskMargins( 1, 2, 1, 2 ) ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, QskMargins( 1, 2, 1, 2 ) ); setBoxBorderColors( Q::Panel, noBorderColors ); setGradient( Q::Panel, White ); @@ -333,8 +332,8 @@ void QskMaterialSkin::initDialogButtonHints() QskBoxBorderColors noBorderColors = borderColors; noBorderColors.setAlpha( 0 ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, QskMargins( 1, 2, 1, 2 ) ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, QskMargins( 1, 2, 1, 2 ) ); setBoxBorderColors( Q::Panel, noBorderColors ); setGradient( Q::Panel, White ); @@ -372,8 +371,8 @@ void QskMaterialSkin::initDialogButtonBoxHints() const ColorPalette& pal = m_data->palette; setGradient( Q::Panel, pal.baseColor ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 0 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); } void QskMaterialSkin::initSliderHints() @@ -389,8 +388,8 @@ void QskMaterialSkin::initSliderHints() // Panel setMetric( Q::Panel | Size, dim ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 0 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); setGradient( Q::Panel, QskGradient() ); setMargins( Q::Panel | Preserved | Padding, QskMargins( 0.5 * dim, 0 ) ); @@ -403,8 +402,8 @@ void QskMaterialSkin::initSliderHints() setMetric( subControl | Size, 5 ); setMargins( subControl | Padding, 0 ); - setBoxRadius( subControl, 0 ); - setBoxBorder( subControl, 0 ); + setBoxShape( subControl, 0 ); + setBoxBorderMetrics( subControl, 0 ); setGradient( subControl, QskGradient() ); } @@ -415,8 +414,8 @@ void QskMaterialSkin::initSliderHints() // handle - setBoxRadius( Q::Handle, 100, Qt::RelativeSize ); - setBoxBorder( Q::Handle, 4 ); + setBoxShape( Q::Handle, 100, Qt::RelativeSize ); + setBoxBorderMetrics( Q::Handle, 4 ); // handle expanding, when being pressed setMetric( Q::Handle | Size, 0.6 * dim ); @@ -468,11 +467,11 @@ void QskMaterialSkin::initTabButtonHints() // The highlighted button has a accented bar at the bottom/right edge - setBoxRadius( aspect, 0 ); + setBoxShape( aspect, 0 ); QskBoxBorderMetrics border; border.setWidthAt( edge, 3 ); - setBoxBorder( aspect, border ); + setBoxBorderMetrics( aspect, border ); QskBoxBorderColors borderColors( QskRgbValue::White ); setBoxBorderColors( placement, borderColors ); @@ -498,8 +497,8 @@ void QskMaterialSkin::initTabBarHints() using namespace QskAspect; using Q = QskTabBar; - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 0 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); setGradient( Q::Panel, QskGradient() ); } @@ -510,8 +509,8 @@ void QskMaterialSkin::initTabViewHints() const ColorPalette& pal = m_data->palette; - setBoxRadius( Q::Page, 0 ); - setBoxBorder( Q::Page, 0 ); + setBoxShape( Q::Page, 0 ); + setBoxBorderMetrics( Q::Page, 0 ); setGradient( Q::Page, pal.darker150 ); setBoxBorderColors( Q::Page, pal.baseColor ); @@ -528,8 +527,8 @@ void QskMaterialSkin::initInputPanelHints() // key panel setMargins( Q::KeyPanel | Margin, 2 ); - setBoxRadius( Q::KeyPanel, 20.0, Qt::RelativeSize ); - setBoxBorder( Q::KeyPanel, 2 ); + setBoxShape( Q::KeyPanel, 20.0, Qt::RelativeSize ); + setBoxBorderMetrics( Q::KeyPanel, 2 ); setGradient( Q::KeyPanel, pal.darker125 ); setBoxBorderColors( Q::KeyPanel, pal.baseColor ); @@ -548,8 +547,8 @@ void QskMaterialSkin::initInputPanelHints() setColor( Q::KeyGlyph | Q::Disabled, pal.darker200 ); // panel - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 0 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 0 ); setGradient( Q::Panel, pal.darker150 ); setBoxBorderColors( Q::Panel, pal.baseColor ); } @@ -563,8 +562,8 @@ void QskMaterialSkin::initScrollViewHints() setMetric( Q::Panel | Spacing, 2 ); - setBoxRadius( Q::Viewport, 5 ); - setBoxBorder( Q::Viewport, 1 ); + setBoxShape( Q::Viewport, 5 ); + setBoxBorderMetrics( Q::Viewport, 1 ); setGradient( Q::Viewport, QskRgbValue::White ); setBoxBorderColors( Q::Viewport, Qt::black ); @@ -579,8 +578,8 @@ void QskMaterialSkin::initScrollViewHints() for ( auto subControl : { Q::HorizontalScrollHandle, Q::VerticalScrollHandle } ) { - setBoxRadius( subControl, 3 ); - setBoxBorder( subControl, 1 ); + setBoxShape( subControl, 3 ); + setBoxBorderMetrics( subControl, 1 ); setGradient( subControl, pal.accentColor ); setBoxBorderColors( subControl, QskRgbValue::White ); @@ -623,8 +622,8 @@ void QskMaterialSkin::initSubWindowHints() // panel setMargins( Q::Panel | Padding, 10 ); - setBoxRadius( Q::Panel, 0 ); - setBoxBorder( Q::Panel, 2 ); + setBoxShape( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 2 ); setGradient( Q::Panel, pal.baseColor ); QskBoxBorderColors colors; diff --git a/src/skins/squiek/QskSquiekSkin.cpp b/src/skins/squiek/QskSquiekSkin.cpp index 0a65a6b4..4d168745 100644 --- a/src/skins/squiek/QskSquiekSkin.cpp +++ b/src/skins/squiek/QskSquiekSkin.cpp @@ -127,8 +127,8 @@ void QskSquiekSkin::setSeparator( gradient.setOrientation( QskGradient::Horizontal ); setGradient( aspect, gradient ); - setBoxRadius( aspect, 0 ); - setBoxBorder( aspect, 0 ); + setBoxShape( aspect, 0 ); + setBoxBorderMetrics( aspect, 0 ); } void QskSquiekSkin::setButton( @@ -187,8 +187,8 @@ void QskSquiekSkin::setButton( setBoxBorderColors( aspect, borderColors ); setGradient( aspect, gradient ); - setBoxRadius( aspect, 4 ); - setBoxBorder( aspect, border ); + setBoxShape( aspect, 4 ); + setBoxBorderMetrics( aspect, border ); } void QskSquiekSkin::setPanel( QskAspect::Aspect aspect, PanelStyle style ) @@ -220,7 +220,7 @@ void QskSquiekSkin::setTab( QskAspect::Aspect aspect, shape.setRadius( Qt::BottomRightCorner, 0 ); } - setBoxBorder( aspect, border ); + setBoxBorderMetrics( aspect, border ); setBoxShape( aspect, shape ); } @@ -293,8 +293,8 @@ void QskSquiekSkin::initFocusIndicatorHints() const ColorPalette& pal = m_data->palette; setMargins( Q::Panel | Padding, 5 ); - setBoxBorder( Q::Panel, 2 ); - setBoxRadius( Q::Panel, 4 ); + setBoxBorderMetrics( Q::Panel, 2 ); + setBoxShape( Q::Panel, 4 ); setGradient( Q::Panel, Qt::transparent ); setBoxBorderColors( Q::Panel, pal.highlighted ); } @@ -321,8 +321,8 @@ void QskSquiekSkin::initPageIndicatorHints() { setMetric( subControl | Size, qskDpiScaled( 12 ) ); - setBoxBorder( subControl, QskBoxBorderMetrics( 50, Qt::RelativeSize ) ); - setBoxRadius( subControl, 100, Qt::RelativeSize ); + setBoxBorderMetrics( subControl, QskBoxBorderMetrics( 50, Qt::RelativeSize ) ); + setBoxShape( subControl, 100, Qt::RelativeSize ); setGradient( subControl, ( subControl == Q::Bullet ) ? pal.darker150 : pal.lighter150 ); @@ -330,8 +330,8 @@ void QskSquiekSkin::initPageIndicatorHints() } // no visible background panel - setBoxBorder( Q::Panel, 0 ); - setBoxRadius( Q::Panel, 2 ); + setBoxBorderMetrics( Q::Panel, 0 ); + setBoxShape( Q::Panel, 2 ); setGradient( Q::Panel, QskGradient() ); setMetric( Q::Panel | Spacing, 3 ); @@ -416,8 +416,8 @@ void QskSquiekSkin::initDialogButtonBoxHints() setBoxBorderColors( Q::Panel, pal.theme ); setGradient( Q::Panel, pal.lighter135 ); - setBoxBorder( Q::Panel, 0 ); - setBoxRadius( Q::Panel, 2 ); + setBoxBorderMetrics( Q::Panel, 0 ); + setBoxShape( Q::Panel, 2 ); } void QskSquiekSkin::initTabButtonHints() @@ -485,8 +485,8 @@ void QskSquiekSkin::initSliderHints() const auto aspect = Q::Panel | placement; setMetric( aspect | Size, dim ); - setBoxBorder( aspect, 0 ); - setBoxRadius( aspect, 0 ); + setBoxBorderMetrics( aspect, 0 ); + setBoxShape( aspect, 0 ); setGradient( aspect, QskGradient() ); } @@ -504,8 +504,8 @@ void QskSquiekSkin::initSliderHints() setMetric( aspect | Size, 0.3 * dim ); setMargins( aspect | Padding, 0 ); - setBoxBorder( aspect, 0 ); - setBoxRadius( aspect, 0.1 * dim ); + setBoxBorderMetrics( aspect, 0 ); + setBoxShape( aspect, 0.1 * dim ); if ( subControl == Q::Groove ) setGradient( aspect, pal.darker200 ); @@ -521,7 +521,7 @@ void QskSquiekSkin::initSliderHints() Aspect aspect = Q::Handle | placement; setButton( aspect, Raised, 1 ); - setBoxRadius( aspect, 20.0, Qt::RelativeSize ); + setBoxShape( aspect, 20.0, Qt::RelativeSize ); setButton( aspect | Q::Pressed, Sunken, 1 ); setMetric( Q::Handle | Size, 0.75 * dim ); } @@ -593,8 +593,8 @@ void QskSquiekSkin::initScrollViewHints() setMetric( Q::Panel | Spacing, 4 ); - setBoxBorder( Q::Viewport, 2 ); - setBoxRadius( Q::Viewport, 8 ); + setBoxBorderMetrics( Q::Viewport, 2 ); + setBoxShape( Q::Viewport, 8 ); QColor fillColor( Qt::white ); @@ -663,8 +663,8 @@ void QskSquiekSkin::initSubWindowHints() // Panel setMargins( Q::Panel | Padding, 10 ); - setBoxBorder( Q::Panel, 2 ); - setBoxRadius( Q::Panel, 0 ); + setBoxBorderMetrics( Q::Panel, 2 ); + setBoxShape( Q::Panel, 0 ); QskBoxBorderColors borderColors; borderColors.setColorsAt( Qt::TopEdge | Qt::LeftEdge, pal.lighter125 );