🏡 index : quine-global-labs/mirror-kde-plasma-desktop.git

/*
    SPDX-FileCopyrightText: 2025 Vlad Zahorodnii <vlad.zahorodnii@kde.org>

    SPDX-License-Identifier: GPL-2.0-or-later
*/

#pragma once

#include <QQuickItem>

class SplitItem : public QQuickItem
{
    Q_OBJECT
    Q_PROPERTY(QQuickItem *first READ firstItem WRITE setFirstItem NOTIFY firstItemChanged)
    Q_PROPERTY(QQuickItem *second READ secondItem WRITE setSecondItem NOTIFY secondItemChanged)
    Q_PROPERTY(qreal shutter READ shutter WRITE setShutter NOTIFY shutterChanged)

public:
    explicit SplitItem(QQuickItem *parent = nullptr);

    QQuickItem *firstItem() const;
    void setFirstItem(QQuickItem *item);

    QQuickItem *secondItem() const;
    void setSecondItem(QQuickItem *item);

    qreal shutter() const;
    void setShutter(qreal shutter);

Q_SIGNALS:
    void firstItemChanged();
    void secondItemChanged();
    void shutterChanged();

protected:
    QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) override;

private:
    QPointer<QQuickItem> m_firstItem;
    QPointer<QQuickItem> m_secondItem;
    qreal m_shutter = 0.0;
};