#pragma once

#include "ButtonEvent.hpp"
#include <cstddef>

class ButtonEventDispatcher {

private:
	static constexpr size_t capacity = 4;
	void (*callbackFuncPtr[capacity])(const ButtonEvent& e);
public:
    typedef void (*callbackPtr_t)(const ButtonEvent& e);

	ButtonEventDispatcher();
	void Dispatch(const ButtonEvent& e) const;
	void RegisterButtonHandler(callbackPtr_t cb);
	void UnregisterButtonHandler(callbackPtr_t cb);
};