90 lines
1.9 KiB
C++
90 lines
1.9 KiB
C++
// Copyright (C) 2020 Jérôme Leclercq
|
|
// This file is part of the "Nazara Engine - Platform module"
|
|
// For conditions of distribution and use, see copyright notice in Config.hpp
|
|
|
|
#include <Nazara/Platform/EventHandler.hpp>
|
|
#include <memory>
|
|
#include <Nazara/Platform/Debug.hpp>
|
|
|
|
namespace Nz
|
|
{
|
|
inline EventHandler::EventHandler(const EventHandler& other) :
|
|
HandledObject(other)
|
|
{
|
|
}
|
|
|
|
inline void EventHandler::Dispatch(const WindowEvent& event)
|
|
{
|
|
OnEvent(this, event);
|
|
|
|
switch (event.type)
|
|
{
|
|
case WindowEventType::GainedFocus:
|
|
OnGainedFocus(this);
|
|
break;
|
|
|
|
case WindowEventType::KeyPressed:
|
|
OnKeyPressed(this, event.key);
|
|
break;
|
|
|
|
case WindowEventType::KeyReleased:
|
|
OnKeyReleased(this, event.key);
|
|
break;
|
|
|
|
case WindowEventType::LostFocus:
|
|
OnLostFocus(this);
|
|
break;
|
|
|
|
case WindowEventType::MouseButtonDoubleClicked:
|
|
OnMouseButtonDoubleClicked(this, event.mouseButton);
|
|
break;
|
|
|
|
case WindowEventType::MouseButtonPressed:
|
|
OnMouseButtonPressed(this, event.mouseButton);
|
|
break;
|
|
|
|
case WindowEventType::MouseButtonReleased:
|
|
OnMouseButtonReleased(this, event.mouseButton);
|
|
break;
|
|
|
|
case WindowEventType::MouseEntered:
|
|
OnMouseEntered(this);
|
|
break;
|
|
|
|
case WindowEventType::MouseLeft:
|
|
OnMouseLeft(this);
|
|
break;
|
|
|
|
case WindowEventType::MouseMoved:
|
|
OnMouseMoved(this, event.mouseMove);
|
|
break;
|
|
|
|
case WindowEventType::MouseWheelMoved:
|
|
OnMouseWheelMoved(this, event.mouseWheel);
|
|
break;
|
|
|
|
case WindowEventType::Moved:
|
|
OnMoved(this, event.position);
|
|
break;
|
|
|
|
case WindowEventType::Quit:
|
|
OnQuit(this);
|
|
break;
|
|
|
|
case WindowEventType::Resized:
|
|
OnResized(this, event.size);
|
|
break;
|
|
|
|
case WindowEventType::TextEntered:
|
|
OnTextEntered(this, event.text);
|
|
break;
|
|
|
|
case WindowEventType::TextEdited:
|
|
OnTextEdited(this, event.edit);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
#include <Nazara/Platform/DebugOff.hpp>
|