QskProgressBar improved
This commit is contained in:
parent
c9717a9d33
commit
27a95ee60f
@ -161,7 +161,7 @@ void QskMaterialSkin::initCommonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskControl;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Control | Padding, 4 );
|
||||
|
||||
@ -176,7 +176,7 @@ void QskMaterialSkin::initBoxHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskBox;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setGradient( Q::Panel, pal.baseColor );
|
||||
setBoxShape( Q::Panel, 4 );
|
||||
@ -188,7 +188,7 @@ void QskMaterialSkin::initPopupHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskPopup;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setSkinHint( Q::Overlay | QskAspect::Style, true );
|
||||
|
||||
@ -203,7 +203,7 @@ void QskMaterialSkin::initTextLabelHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTextLabel;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setSkinHint( Q::Text | Alignment, Qt::AlignCenter );
|
||||
setColor( Q::Text, pal.textColor );
|
||||
@ -223,7 +223,7 @@ void QskMaterialSkin::initTextInputHints()
|
||||
setSkinHint( Q::Text | Alignment,
|
||||
static_cast< int >( Qt::AlignLeft | Qt::AlignTop ) );
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setColor( Q::Text, pal.textColor );
|
||||
setColor( Q::PanelSelected, pal.accentColor );
|
||||
@ -239,13 +239,22 @@ void QskMaterialSkin::initTextInputHints()
|
||||
void QskMaterialSkin::initProgressBarHints()
|
||||
{
|
||||
using namespace QskAspect;
|
||||
using namespace QskRgbValue;
|
||||
using Q = QskProgressBar;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setGradient( Q::Groove, Qt::white );
|
||||
setMetric( Q::Groove | Size, 10 );
|
||||
for ( auto subControl : { Q::Groove, Q::Bar } )
|
||||
{
|
||||
setMetric( subControl | Size, 5 );
|
||||
setMargins( subControl | Padding, 0 );
|
||||
|
||||
setBoxShape( subControl, 0 );
|
||||
setBoxBorderMetrics( subControl, 0 );
|
||||
}
|
||||
|
||||
setGradient( Q::Groove, Grey );
|
||||
setMetric( Q::Groove | Size, 5 );
|
||||
setGradient( Q::Bar, pal.accentColor );
|
||||
}
|
||||
|
||||
@ -254,7 +263,7 @@ void QskMaterialSkin::initFocusIndicatorHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskFocusIndicator;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Q::Panel | Padding, 5 );
|
||||
setBoxShape( Q::Panel, 4 );
|
||||
@ -268,7 +277,7 @@ void QskMaterialSkin::initSeparatorHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskSeparator;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
for ( auto placement : { Horizontal, Vertical } )
|
||||
{
|
||||
@ -286,7 +295,7 @@ void QskMaterialSkin::initPageIndicatorHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskPageIndicator;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
for ( auto subControl : { Q::Bullet, Q::Highlighted } )
|
||||
{
|
||||
@ -316,7 +325,7 @@ void QskMaterialSkin::initPushButtonHints()
|
||||
using namespace QskRgbValue;
|
||||
using Q = QskPushButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMetric( Q::Panel | MinimumWidth, qskDpiScaled( 75.0 ) );
|
||||
setMetric( Q::Panel | MinimumHeight, qskDpiScaled( 23.0 ) );
|
||||
@ -377,7 +386,7 @@ void QskMaterialSkin::initDialogButtonHints()
|
||||
using namespace QskRgbValue;
|
||||
using Q = QskDialogButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMetric( Q::Panel | MinimumWidth, 30 );
|
||||
setMetric( Q::Panel | MinimumHeight, 16 );
|
||||
@ -430,7 +439,7 @@ void QskMaterialSkin::initDialogButtonBoxHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskDialogButtonBox;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setGradient( Q::Panel, pal.baseColor );
|
||||
setBoxShape( Q::Panel, 0 );
|
||||
@ -443,7 +452,7 @@ void QskMaterialSkin::initSliderHints()
|
||||
using namespace QskRgbValue;
|
||||
using Q = QskSlider;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
const qreal dim = 30;
|
||||
|
||||
@ -466,7 +475,6 @@ void QskMaterialSkin::initSliderHints()
|
||||
|
||||
setBoxShape( subControl, 0 );
|
||||
setBoxBorderMetrics( subControl, 0 );
|
||||
setGradient( subControl, QskGradient() );
|
||||
}
|
||||
|
||||
setGradient( Q::Groove, Grey );
|
||||
@ -488,7 +496,7 @@ void QskMaterialSkin::initSliderHints()
|
||||
|
||||
// should be transparent, but the current renderer doesn't "cut out" the background
|
||||
setGradient( Q::Handle, pal.accentColor );
|
||||
setGradient( Q::Pressed | Q::Handle, pal.accentColor );
|
||||
setGradient( Q::Handle | Q::Pressed, pal.accentColor );
|
||||
|
||||
for ( auto state : { NoState, Q::Pressed, Q::Pressed | Q::Hovered } )
|
||||
{
|
||||
@ -515,7 +523,7 @@ void QskMaterialSkin::initTabButtonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTabButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMetric( Q::Panel | MinimumWidth, 30 );
|
||||
setMetric( Q::Panel | MinimumHeight, 16 );
|
||||
@ -594,7 +602,7 @@ void QskMaterialSkin::initTabViewHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTabView;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setBoxShape( Q::Page, 0 );
|
||||
setBoxBorderMetrics( Q::Page, 0 );
|
||||
@ -609,7 +617,7 @@ void QskMaterialSkin::initInputPanelHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskInputPanelBox;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setBoxShape( Q::Panel, 0 );
|
||||
setBoxBorderMetrics( Q::Panel, 0 );
|
||||
@ -622,7 +630,7 @@ void QskMaterialSkin::initVirtualKeyboardHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskVirtualKeyboard;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// key panel
|
||||
setMargins( Q::ButtonPanel | Margin, 2 );
|
||||
@ -651,7 +659,7 @@ void QskMaterialSkin::initScrollViewHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskScrollView;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMetric( Q::Panel | Spacing, 2 );
|
||||
|
||||
@ -696,7 +704,7 @@ void QskMaterialSkin::initListViewHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskListView;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// padding for each cell
|
||||
setMargins( Q::Cell | Padding, QskMargins( 4, 8 ) );
|
||||
@ -713,7 +721,7 @@ void QskMaterialSkin::initSubWindowHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskSubWindow;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// Panel
|
||||
|
||||
|
@ -132,7 +132,7 @@ QskSquiekSkin::~QskSquiekSkin()
|
||||
|
||||
void QskSquiekSkin::setSeparator( QskAspect::Aspect aspect )
|
||||
{
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
QskGradient gradient( QskGradient::Vertical, pal.lighter110, pal.darker125 );
|
||||
|
||||
@ -150,7 +150,7 @@ void QskSquiekSkin::setButton(
|
||||
#if 1
|
||||
// Buttons shift ???
|
||||
#endif
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
QskBoxBorderColors borderColors;
|
||||
|
||||
@ -211,7 +211,7 @@ void QskSquiekSkin::setPanel( QskAspect::Aspect aspect, PanelStyle style )
|
||||
|
||||
void QskSquiekSkin::setTab( QskAspect::Aspect aspect )
|
||||
{
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setGradient( aspect,
|
||||
QskGradient( QskGradient::Vertical, pal.lighter125, pal.lighter150 ) );
|
||||
@ -287,7 +287,7 @@ void QskSquiekSkin::initCommonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskControl;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Control | Padding, 4 );
|
||||
|
||||
@ -315,7 +315,7 @@ void QskSquiekSkin::initTextLabelHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTextLabel;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setSkinHint( Q::Text | Alignment, Qt::AlignCenter );
|
||||
setColor( Q::Text, pal.themeForeground );
|
||||
@ -339,7 +339,7 @@ void QskSquiekSkin::initTextInputHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTextInput;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setSkinHint( Q::Text | Alignment,
|
||||
static_cast< int >( Qt::AlignLeft | Qt::AlignTop ) );
|
||||
@ -387,12 +387,15 @@ void QskSquiekSkin::initProgressBarHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskProgressBar;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setGradient( Q::Groove, Qt::white );
|
||||
setMetric( Q::Groove | Size, 10 );
|
||||
setMetric( Q::Groove | Size, 8 );
|
||||
setMargins( Q::Groove | Padding, 0 );
|
||||
setGradient( Q::Groove, pal.darker200 );
|
||||
setBoxShape( Q::Groove, 4 );
|
||||
|
||||
setGradient( Q::Bar, pal.highlighted );
|
||||
setBoxShape( Q::Bar, 4 );
|
||||
}
|
||||
|
||||
void QskSquiekSkin::initFocusIndicatorHints()
|
||||
@ -400,7 +403,7 @@ void QskSquiekSkin::initFocusIndicatorHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskFocusIndicator;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Q::Panel | Padding, 5 );
|
||||
setBoxBorderMetrics( Q::Panel, 2 );
|
||||
@ -425,7 +428,7 @@ void QskSquiekSkin::initPageIndicatorHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskPageIndicator;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
for ( auto subControl : { Q::Bullet, Q::Highlighted } )
|
||||
{
|
||||
@ -452,7 +455,7 @@ void QskSquiekSkin::initPushButtonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskPushButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// Panel
|
||||
|
||||
@ -494,7 +497,7 @@ void QskSquiekSkin::initDialogButtonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskDialogButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// panel
|
||||
setMetric( Q::Panel | MinimumWidth, qskDpiScaled( 75.0 ) );
|
||||
@ -522,7 +525,7 @@ void QskSquiekSkin::initDialogButtonBoxHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskDialogButtonBox;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setBoxBorderColors( Q::Panel, pal.theme );
|
||||
setGradient( Q::Panel, pal.lighter135 );
|
||||
@ -535,7 +538,7 @@ void QskSquiekSkin::initTabButtonHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskTabButton;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMetric( Q::Panel | MinimumWidth, 30 );
|
||||
setMetric( Q::Panel | MinimumHeight, 16 );
|
||||
@ -593,7 +596,7 @@ void QskSquiekSkin::initSliderHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskSlider;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
const qreal dim = 40;
|
||||
|
||||
@ -687,7 +690,7 @@ void QskSquiekSkin::initInputPredictionBar()
|
||||
using namespace QskAspect;
|
||||
using Q = QskInputPredictionBar;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Q::Panel | Padding, 5 );
|
||||
setPanel( Q::Panel, Flat );
|
||||
@ -705,7 +708,7 @@ void QskSquiekSkin::initVirtualKeyboardHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskVirtualKeyboard;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
setMargins( Q::Panel | Padding, 5 );
|
||||
setMetric( Q::Panel | Spacing, 5 );
|
||||
@ -778,7 +781,7 @@ void QskSquiekSkin::initListViewHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskListView;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
// padding for each cell
|
||||
setMargins( Q::Cell | Padding, QskMargins( 4, 8 ) );
|
||||
@ -795,7 +798,7 @@ void QskSquiekSkin::initSubWindowHints()
|
||||
using namespace QskAspect;
|
||||
using Q = QskSubWindow;
|
||||
|
||||
const ColorPalette& pal = m_data->palette;
|
||||
const auto& pal = m_data->palette;
|
||||
|
||||
const qreal radius = 5.0;
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "QskProgressBarSkinlet.h"
|
||||
#include "QskProgressBar.h"
|
||||
#include "QskIntervalF.h"
|
||||
#include "QskBoxBorderMetrics.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
@ -122,8 +123,16 @@ QSGNode* QskProgressBarSkinlet::updateBarNode(
|
||||
|
||||
QRectF QskProgressBarSkinlet::barRect( const QskProgressBar* bar ) const
|
||||
{
|
||||
auto rect = bar->subControlRect( QskProgressBar::Groove );
|
||||
rect = bar->innerBox( QskProgressBar::Groove, rect );
|
||||
const auto subControl = QskProgressBar::Groove;
|
||||
|
||||
auto rect = bar->subControlRect( subControl );
|
||||
|
||||
const auto borderMetrics = bar->boxBorderMetricsHint( subControl );
|
||||
|
||||
auto m = bar->marginsHint( subControl | QskAspect::Padding );
|
||||
m += 0.5 * borderMetrics.toAbsolute( rect.size() ).widths();
|
||||
|
||||
rect = rect.marginsRemoved( m );
|
||||
|
||||
const auto intv = qskBarInterval( bar );
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user