diff --git a/src/controls/QskBox.cpp b/src/controls/QskBox.cpp index 0ab2c332..0af35c43 100644 --- a/src/controls/QskBox.cpp +++ b/src/controls/QskBox.cpp @@ -4,7 +4,6 @@ *****************************************************************************/ #include "QskBox.h" -#include "QskSkinlet.h" QSK_SUBCONTROL( QskBox, Panel ) @@ -19,7 +18,7 @@ QskBox::~QskBox() QRectF QskBox::layoutRect() const { - return innerBox( Panel, effectiveSkinlet()->subControlRect( this, Panel ) ); + return innerBox( Panel, subControlRect( Panel ) ); } QSizeF QskBox::contentsSizeHint() const diff --git a/src/controls/QskScrollView.cpp b/src/controls/QskScrollView.cpp index df12755e..3e7955b8 100644 --- a/src/controls/QskScrollView.cpp +++ b/src/controls/QskScrollView.cpp @@ -4,7 +4,6 @@ *****************************************************************************/ #include "QskScrollView.h" -#include "QskScrollViewSkinlet.h" #include "QskPanGestureRecognizer.h" #include "QskFlickAnimator.h" #include "QskGesture.h" @@ -184,14 +183,14 @@ QRectF QskScrollView::viewContentsRect() const { // Border/Padding const int bw = metric( Viewport | QskAspect::Border ); - const QRectF r = effectiveSkinlet()->subControlRect( this, Viewport ); + const QRectF r = subControlRect( Viewport ); return r.adjusted( bw, bw, -bw, -bw ); } QRectF QskScrollView::gestureRect() const { - return effectiveSkinlet()->subControlRect( this, Viewport ); + return subControlRect( Viewport ); } void QskScrollView::geometryChangeEvent( QskGeometryChangeEvent* event ) @@ -204,12 +203,9 @@ void QskScrollView::geometryChangeEvent( QskGeometryChangeEvent* event ) void QskScrollView::mousePressEvent( QMouseEvent* event ) { - const QskScrollViewSkinlet* skinlet = - static_cast< const QskScrollViewSkinlet* >( effectiveSkinlet() ); - - if ( skinlet->subControlRect( this, VerticalScrollBar ).contains( event->pos() ) ) + if ( subControlRect( VerticalScrollBar ).contains( event->pos() ) ) { - const QRectF handleRect = skinlet->subControlRect( this, VerticalScrollHandle ); + const QRectF handleRect = subControlRect( VerticalScrollHandle ); if ( handleRect.contains( event->pos() ) ) { @@ -235,9 +231,9 @@ void QskScrollView::mousePressEvent( QMouseEvent* event ) return; } - if ( skinlet->subControlRect( this, HorizontalScrollBar ).contains( event->pos() ) ) + if ( subControlRect( HorizontalScrollBar ).contains( event->pos() ) ) { - const QRectF handleRect = skinlet->subControlRect( this, HorizontalScrollHandle ); + const QRectF handleRect = subControlRect( HorizontalScrollHandle ); if ( handleRect.contains( event->pos() ) ) { @@ -279,8 +275,7 @@ void QskScrollView::mouseMoveEvent( QMouseEvent* event ) if ( m_data->isScrolling == Qt::Horizontal ) { const qreal dx = event->x() - m_data->scrollPressPos; - const qreal w = effectiveSkinlet()->subControlRect( - this, HorizontalScrollBar ).width(); + const qreal w = subControlRect( HorizontalScrollBar ).width(); pos.rx() += dx / w * m_data->scrollableSize.width(); m_data->scrollPressPos = event->x(); @@ -288,8 +283,7 @@ void QskScrollView::mouseMoveEvent( QMouseEvent* event ) else if ( m_data->isScrolling == Qt::Vertical ) { const qreal dy = event->y() - m_data->scrollPressPos; - const qreal h = effectiveSkinlet()->subControlRect( - this, VerticalScrollBar ).height(); + const qreal h = subControlRect( VerticalScrollBar ).height(); pos.ry() += dy / h * m_data->scrollableSize.height(); m_data->scrollPressPos = event->y(); diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index 08e59cae..e329df2f 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -767,6 +767,11 @@ QskAspect::Subcontrol QskSkinnable::effectiveSubcontrol( return subControl; } +QRectF QskSkinnable::subControlRect( QskAspect::Subcontrol subControl ) const +{ + return effectiveSkinlet()->subControlRect( this, subControl ); +} + QskControl* QskSkinnable::controlCast() { return qskIsControl( this ) diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index f5a55014..d3591516 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -113,6 +113,8 @@ public: QRectF innerBox( QskAspect::Aspect, const QRectF& outerBox ) const; QRectF outerBox( QskAspect::Aspect, const QRectF& innerBox ) const; + QRectF subControlRect( QskAspect::Subcontrol ) const; + virtual const QskSkinlet* effectiveSkinlet() const; QskSkin* effectiveSkin() const; diff --git a/src/controls/QskSlider.cpp b/src/controls/QskSlider.cpp index 6162f34f..744abcee 100644 --- a/src/controls/QskSlider.cpp +++ b/src/controls/QskSlider.cpp @@ -5,7 +5,6 @@ #include "QskSlider.h" #include "QskAspect.h" -#include "QskSkinlet.h" #include "QskAnimationHint.h" #include @@ -119,7 +118,7 @@ QSizeF QskSlider::handleSize() const QRectF QskSlider::handleRect() const { - return effectiveSkinlet()->subControlRect( this, QskSlider::Handle ); + return subControlRect( QskSlider::Handle ); } void QskSlider::mousePressEvent( QMouseEvent* event ) @@ -160,7 +159,7 @@ void QskSlider::mouseMoveEvent( QMouseEvent* event ) #endif } - const auto r = effectiveSkinlet()->subControlRect( this, Scale ); + const auto r = subControlRect( Scale ); qreal newValue; diff --git a/src/controls/QskSubWindow.cpp b/src/controls/QskSubWindow.cpp index 1ab4508e..8093968b 100644 --- a/src/controls/QskSubWindow.cpp +++ b/src/controls/QskSubWindow.cpp @@ -5,7 +5,6 @@ #include "QskSubWindow.h" #include "QskAspect.h" -#include "QskSkinlet.h" #include "QskSkin.h" #include "QskFunctions.h" @@ -121,7 +120,7 @@ bool QskSubWindow::testWindowButton( WindowButton button ) const QRectF QskSubWindow::titleBarRect() const { - return effectiveSkinlet()->subControlRect( this, QskSubWindow::TitleBar ); + return subControlRect( QskSubWindow::TitleBar ); } bool QskSubWindow::event( QEvent* event ) @@ -134,7 +133,7 @@ bool QskSubWindow::event( QEvent* event ) QRectF QskSubWindow::layoutRect() const { - return innerBox( Panel, effectiveSkinlet()->subControlRect( this, Panel ) ); + return innerBox( Panel, subControlRect( Panel ) ); } void QskSubWindow::updateLayout() diff --git a/src/controls/QskSubWindowArea.cpp b/src/controls/QskSubWindowArea.cpp index 2ee6985c..620de113 100644 --- a/src/controls/QskSubWindowArea.cpp +++ b/src/controls/QskSubWindowArea.cpp @@ -6,7 +6,6 @@ #include "QskSubWindowArea.h" #include "QskSubWindow.h" #include "QskGradient.h" -#include "QskSkinlet.h" #include "QskFunctions.h" #include "QskEvent.h" diff --git a/src/controls/QskTabView.cpp b/src/controls/QskTabView.cpp index 685cf5a3..09839565 100644 --- a/src/controls/QskTabView.cpp +++ b/src/controls/QskTabView.cpp @@ -9,7 +9,6 @@ #include "QskStackBox.h" #include "QskStackBoxAnimator.h" #include "QskAspect.h" -#include "QskSkinlet.h" #include "QskAnimationHint.h" QSK_SUBCONTROL( QskTabView, TabBar ) @@ -224,10 +223,8 @@ bool QskTabView::event( QEvent* event ) void QskTabView::updateLayout() { - const QskSkinlet* skinlet = effectiveSkinlet(); - - m_data->tabBar->setGeometry( skinlet->subControlRect( this, TabBar ) ); - m_data->stackBox->setGeometry( skinlet->subControlRect( this, Page ) ); + m_data->tabBar->setGeometry( subControlRect( TabBar ) ); + m_data->stackBox->setGeometry( subControlRect( Page ) ); } #include "moc_QskTabView.cpp"