controls/QskScrollArea.h

Classes

  Name
class QskScrollArea

Source code

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

#ifndef QSK_SCROLL_AREA_H
#define QSK_SCROLL_AREA_H

#include "QskScrollView.h"

class QSK_EXPORT QskScrollArea : public QskScrollView
{
    Q_OBJECT

    Q_PROPERTY( QQuickItem* scrolledItem READ scrolledItem
        WRITE setScrolledItem NOTIFY scrolledItemChanged FINAL)

    Q_PROPERTY( bool itemResizable READ isItemResizable
        WRITE setItemResizable NOTIFY itemResizableChanged FINAL )

    Q_PROPERTY( bool itemFocusClipping READ hasItemFocusClipping
        WRITE setItemFocusClipping FINAL )

    using Inherited = QskScrollView;

  public:
    QskScrollArea( QQuickItem* parent = nullptr );
    ~QskScrollArea() override;

    void setScrolledItem( QQuickItem* );
    QQuickItem* scrolledItem() const;

    void setItemResizable( bool on );
    bool isItemResizable() const;

    void setItemFocusClipping( bool on );
    bool hasItemFocusClipping() const;

  Q_SIGNALS:
    void scrolledItemChanged();
    void itemResizableChanged( bool );

  protected:
    void updateLayout() override;
    QSizeF layoutSizeHint( Qt::SizeHint, const QSizeF& ) const override;

  private:
    void translateItem();
    void adjustItem();

    class PrivateData;
    std::unique_ptr< PrivateData > m_data;
};

#endif

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