controls/QskBox.cpp

Source code

/******************************************************************************
 * QSkinny - Copyright (C) 2016 Uwe Rathmann
 * This file may be used under the terms of the QSkinny License, Version 1.0
 *****************************************************************************/

#include "QskBox.h"
#include "QskMargins.h"

QSK_SUBCONTROL( QskBox, Panel )

QskBox::QskBox( QQuickItem* parent )
    : QskBox( true, parent )
{
}

QskBox::QskBox( bool hasPanel, QQuickItem* parent )
    : Inherited( parent )
    , m_hasPanel( hasPanel )
{
}

QskBox::~QskBox()
{
}

void QskBox::setPanel( bool on )
{
    if ( on != m_hasPanel )
    {
        m_hasPanel = on;

        resetImplicitSize();
        polish();
        update();
    }
}

bool QskBox::hasPanel() const
{
    return m_hasPanel;
}

void QskBox::setPadding( qreal padding )
{
    setPadding( QskMargins( padding ) );
}

void QskBox::setPadding( const QMarginsF& padding )
{
    const auto pd = QskMargins().expandedTo( padding );

    if ( setPaddingHint( Panel, pd ) )
        Q_EMIT paddingChanged( pd );
}

void QskBox::resetPadding()
{
    if ( resetPaddingHint( Panel ) )
        Q_EMIT paddingChanged( paddingHint( Panel ) );
}

QMarginsF QskBox::padding() const
{
    return paddingHint( Panel );
}

QRectF QskBox::layoutRectForSize( const QSizeF& size ) const
{
    if ( m_hasPanel )
        return subControlContentsRect( size, Panel );

    return Inherited::layoutRectForSize( size );
}

#include "moc_QskBox.cpp"

Updated on 28 July 2023 at 14:02:29 CEST