example improved

This commit is contained in:
Uwe Rathmann 2019-02-27 06:17:10 +01:00
parent f0ad71fb7c
commit 4e00c73f92
2 changed files with 27 additions and 10 deletions

View File

@ -74,7 +74,7 @@ class MySkin : public QskSkin
}
void initToggleButtonHints(
qreal width, qreal height, qreal radius,
bool raised, qreal width, qreal height, qreal radius,
QRgb baseColor, QRgb baseTextColor,
QRgb foregroundColor, QRgb foregroundTextColor )
{
@ -115,19 +115,33 @@ class MySkin : public QskSkin
}
setGradient( Q::Panel, baseColor );
setBoxBorderColors( Q::Panel, QColor( baseColor ).dark( 120 ) );
if ( raised )
{
setBoxBorderMetrics( Q::Panel, 3 );
auto light = QColor( baseColor ).light( 110 );
auto dark = QColor( baseColor ).dark( 120 );
setBoxBorderColors( Q::Panel,
QskBoxBorderColors( light, light, dark, dark ) );
}
else
{
setBoxBorderMetrics( Q::Panel, 1 );
setBoxBorderColors( Q::Panel, QColor( baseColor ).dark( 120 ) );
}
setGradient( Q::Cursor, foregroundColor );
setBoxBorderColors( Q::Cursor, QColor( foregroundColor ).dark( 120 ) );
setBoxBorderMetrics( Q::Cursor, 1 );
for( auto subControl : { Q::Panel, Q::Cursor } )
{
setMetric( subControl | MinimumWidth, width );
setMetric( subControl | MinimumHeight, height );
setMargins( subControl | Padding, -4 );
//setMargins( subControl | Padding, +2 );
setBoxShape( subControl, radius );
setBoxBorderMetrics( subControl, 1 );
}
setMargins( Q::CheckedPanel | Padding, 10 );
@ -170,9 +184,9 @@ class MySkin1 : public MySkin
setGraphicFilter( GraphicRoleNormal, QskRgbValue::Crimson );
setGraphicFilter( GraphicRoleInverted, QskRgbValue::Gold );
initFocusIndicatorHints( 2, 3, 6, Teal );
initFocusIndicatorHints( 2, 3, 6, DarkBlue );
initBoxHints( 2, 8, DarkCyan, LightCyan );
initToggleButtonHints( 150, 120, 6,
initToggleButtonHints( false, 150, 120, 6,
AliceBlue, Black, CornflowerBlue, White );
}
@ -194,8 +208,8 @@ class MySkin2 : public MySkin
initFocusIndicatorHints( 2, 6, 6, Crimson );
initBoxHints( 4, 30, LightPink, MistyRose );
initToggleButtonHints( 130, 100, 40,
Linen, Black, HotPink, White );
initToggleButtonHints( true, 130, 100, 40,
LightPink, Black, HotPink, White );
}
QskAnimationHint animator() const override

View File

@ -53,14 +53,16 @@ class ContentBox : public QskBox
{
auto button = new MyToggleButton( layout );
button->setSizePolicy( QskSizePolicy::MinimumExpanding, QskSizePolicy::MinimumExpanding );
button->setSizePolicy( QskSizePolicy::MinimumExpanding,
QskSizePolicy::MinimumExpanding );
button->setTextAt( 0, "On" );
button->setTextAt( 1, "Off" );
}
{
auto button = new MyToggleButton( layout );
button->setSizePolicy( QskSizePolicy::MinimumExpanding, QskSizePolicy::MinimumExpanding );
button->setSizePolicy( QskSizePolicy::MinimumExpanding,
QskSizePolicy::MinimumExpanding );
button->setIconAt( 0, "image://shapes/Ring/Khaki" );
button->setIconAt( 1, "image://shapes/Diamond/Khaki" );
}
@ -82,6 +84,7 @@ class Window : public QskWindow
box->setMargins( 20 );
box->addItem( button, Qt::AlignRight );
box->addSpacer( 10 );
box->addItem( new ContentBox() );
connect( button, &MyToggleButton::toggled,