Files
KDDockWidgets/src/EventFilterInterface.h
2022-08-05 16:49:00 +01:00

84 lines
2.0 KiB
C++

/*
This file is part of KDDockWidgets.
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company
<info@kdab.com> Author: Sérgio Martins <sergio.martins@kdab.com>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
Contact KDAB at <info@kdab.com> for commercial licensing options.
*/
#pragma once
#include <memory>
QT_BEGIN_NAMESPACE
class QMouseEvent;
class QEvent;
QT_END_NAMESPACE
namespace KDDockWidgets {
class Window;
class View;
class EventFilterInterface
{
public:
virtual ~EventFilterInterface();
/// @brief Override to handle expose events for a certain window
virtual bool onExposeEvent(std::shared_ptr<Window>)
{
return false;
}
/// @brief Override to handle when a view receives a mouse press event
virtual bool onMouseButtonPress(View *, QMouseEvent *)
{
return false;
}
/// @brief Override to handle when a view receives a mouse press event
virtual bool onMouseButtonRelease(View *, QMouseEvent *)
{
return false;
}
/// @brief Override to handle when a view receives a mouse press event
virtual bool onMouseButtonMove(View *, QMouseEvent *)
{
return false;
}
/// @brief Override to handle when a view receives a mouse double click event
virtual bool onMouseDoubleClick(View *, QMouseEvent *)
{
return false;
}
/// @brief Provided for convenience, aggregates all other overloads
/// receives all mouse event types, if you return true here then the specialized counterparts
/// won't be called Example, if true is returned here for a mouse press, then
/// onMouseButtonPress() won't be called
virtual bool onMouseEvent(View *, QMouseEvent *)
{
return false;
}
/// @brief Override to handle drag enter, drag leave, drag move and drop events
virtual bool onDnDEvent(View *, QEvent *)
{
return false;
}
/// @brief Override to handle a move event
virtual bool onMoveEvent(View *)
{
return false;
}
};
}