Custom EventListener Implementation

I have an idea to create a custom event object and eventlistneer for my game. I know there is logic that can process two key combinations such as Up arrow + left arrow because in my game i want diagonal movement. But cant you just make a custom event listener or edit the already existing eventkeyboardlistner so that it accepts parameters of 2 EventKeyboard::Keycode since the initial function only accepts one keycode. also:

the parameter for onkeypressed are (EventKeyboard::KeyCode, Event* event ) why isnt the event* an event keyboard* because then you could take advantage of the iskeypressed which is a boolean field in the eventkeyboard

I’m not sure what the purpose of having an event that would have 2 keycodes would be. Would it not just be easier and better to use the existing EventKeyboard and just remember which keys are down? For example, use some bool variables if you want to track specific keys or a vector if you want to track every key.

Also, the event being sent to onKeyPressed is an EventKeyboard. You can cast it like (EventKeyboard*)event, but _isPressed is private, so you can’t access it anyway. But this doesn’t matter, because you can infer the value from which event is being called. If the event is onKeyDown, then _isPressed will be true. If the event is onKeyReleased, then _isPressed will be false.