/*
    SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org>

    SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/

#ifndef OKTETA_ABSTRACTWHEELCONTROLLER_HPP
#define OKTETA_ABSTRACTWHEELCONTROLLER_HPP

class QWheelEvent;

namespace Okteta {

class AbstractWheelController
{
protected:
    explicit AbstractWheelController(AbstractWheelController* parent);

public:
    AbstractWheelController(const AbstractWheelController&) = delete;
    AbstractWheelController(AbstractWheelController&&) = delete;

    virtual ~AbstractWheelController();

    AbstractWheelController& operator=(const AbstractWheelController&) = delete;
    AbstractWheelController& operator=(AbstractWheelController&&) = delete;

public: // API to be implemented
    [[nodiscard]]
    virtual bool handleWheelEvent(QWheelEvent* wheelEvent);

protected:
    AbstractWheelController* const mParent;
};

}

#endif
