func (eventManager *EventManager) RunWindowFocusEvent(focused bool) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(WindowFocusEventResponder); ok {
			val.OnWindowFocus(focused)
		}
	}
}
RunWindowFocusEvent simulates a window focus event, triggering the
expected response from the EventManager's objects.
package paunch
type EventManager struct {
	Objects []interface{}
}
func NewEventManager() *EventManager {
	return &EventManager{make([]interface{}, 0)}
}
func (eventManager *EventManager) RunKeyEvent(key Key, action Action) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(KeyboardEventResponder); ok {
			val.OnKeyboard(key, action)
		}
	}
}
func (eventManager *EventManager) RunMouseButtonEvent(button MouseButton, action Action, x, y float64) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(MouseButtonEventResponder); ok {
			val.OnMouseButton(button, action, x, y)
		}
	}
}
func (eventManager *EventManager) RunMousePositionEvent(x, y float64) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(MousePositionEventResponder); ok {
			val.OnMousePosition(x, y)
		}
	}
}
func (eventManager *EventManager) RunMouseEnterWindowEvent(x, y float64, entered bool) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(MouseEnterWindowResponder); ok {
			val.OnMouseEnterWindow(x, y, entered)
		}
	}
}
func (eventManager *EventManager) RunScrollEvent(xOffset, yOffset float64) {
	for i := range eventManager.Objects {
		if val, ok := eventManager.Objects[i].(ScrollResponder); ok {
			val.OnScroll(xOffset, yOffset)
		}
	}
}