Source code for pygame_menu.events

"""
pygame-menu
https://github.com/ppizarror/pygame-menu

EVENTS
Menu events definition and locals.
"""

from __future__ import annotations

__all__ = [
    # Class
    "MenuAction",
    # Utils
    "is_event",
    # Menu events
    "BACK",
    "CLOSE",
    "EXIT",
    "NONE",
    "RESET",
    # Last menu events
    "MENU_LAST_DISABLE_UPDATE",
    "MENU_LAST_FRAMES",
    "MENU_LAST_JOY_REPEAT",
    "MENU_LAST_MENU_BACK",
    "MENU_LAST_MENU_CLOSE",
    "MENU_LAST_MENUBAR",
    "MENU_LAST_MOUSE_ENTER_MENU",
    "MENU_LAST_MOUSE_ENTER_WINDOW",
    "MENU_LAST_MOUSE_LEAVE_MENU",
    "MENU_LAST_MOUSE_LEAVE_WINDOW",
    "MENU_LAST_MOVE_DOWN",
    "MENU_LAST_MOVE_LEFT",
    "MENU_LAST_MOVE_RIGHT",
    "MENU_LAST_MOVE_UP",
    "MENU_LAST_NONE",
    "MENU_LAST_QUIT",
    "MENU_LAST_SCROLL_AREA",
    "MENU_LAST_SELECTED_WIDGET_BUTTON_UP",
    "MENU_LAST_SELECTED_WIDGET_EVENT",
    "MENU_LAST_SELECTED_WIDGET_FINGER_UP",
    "MENU_LAST_WIDGET_DISABLE_ACTIVE_STATE",
    "MENU_LAST_WIDGET_SELECT",
    "MENU_LAST_WIDGET_SELECT_MOTION",
    # Pygame events
    "PYGAME_QUIT",
    "PYGAME_WINDOWCLOSE",
]

from typing import Any

import pygame.locals as __locals






def is_event(event: Any) -> bool:
    """
    Check if event is pygame_menu event type.

    :param event: Event
    :return: ``True`` if it's an event
    """
    return (
        isinstance(event, MenuAction)
        or str(type(event)) == "<class 'pygame_menu.events.MenuAction'>"
    )


# Events
BACK = MenuAction(0)  # Menu back
CLOSE = MenuAction(1)  # Close Menu
EXIT = MenuAction(3)  # Menu exit program
NONE = MenuAction(4)  # None action. It's the same as 'None'
RESET = MenuAction(5)  # Menu reset

# Pygame events
PYGAME_QUIT = __locals.QUIT
PYGAME_WINDOWCLOSE = -1
if hasattr(__locals, "WINDOWCLOSE"):
    PYGAME_WINDOWCLOSE = __locals.WINDOWCLOSE
elif hasattr(__locals, "WINDOWEVENT_CLOSE"):
    PYGAME_WINDOWCLOSE = __locals.WINDOWEVENT_CLOSE

# Menu last event types. Returned by menu.get_last_update_mode()
MENU_LAST_DISABLE_UPDATE = "DISABLE_UPDATE"
MENU_LAST_FRAMES = "FRAMES"
MENU_LAST_JOY_REPEAT = "JOY_REPEAT"
MENU_LAST_MENU_BACK = "MENU_BACK"
MENU_LAST_MENU_CLOSE = "MENU_CLOSE"
MENU_LAST_MENUBAR = "MENUBAR"
MENU_LAST_MOUSE_ENTER_MENU = "MOUSE_ENTER_MENU"
MENU_LAST_MOUSE_ENTER_WINDOW = "MOUSE_ENTER_WINDOW"
MENU_LAST_MOUSE_LEAVE_MENU = "MOUSE_LEAVE_MENU"
MENU_LAST_MOUSE_LEAVE_WINDOW = "MOUSE_LEAVE_WINDOW"
MENU_LAST_MOVE_DOWN = "MOVE_DOWN"
MENU_LAST_MOVE_LEFT = "MOVE_LEFT"
MENU_LAST_MOVE_RIGHT = "MOVE_RIGHT"
MENU_LAST_MOVE_UP = "MOVE_UP"
MENU_LAST_NONE = "NONE"
MENU_LAST_QUIT = "QUIT"
MENU_LAST_SCROLL_AREA = "SCROLL_AREA"
MENU_LAST_SELECTED_WIDGET_BUTTON_UP = "SELECTED_WIDGET_BUTTON_UP"
MENU_LAST_SELECTED_WIDGET_EVENT = "SELECTED_WIDGET_EVENT"
MENU_LAST_SELECTED_WIDGET_FINGER_UP = "SELECTED_WIDGET_FINGER_UP"
MENU_LAST_WIDGET_DISABLE_ACTIVE_STATE = "WIDGET_DISABLE_ACTIVE_STATE"
MENU_LAST_WIDGET_SELECT = "WIDGET_SELECT"
MENU_LAST_WIDGET_SELECT_MOTION = "WIDGET_SELECT_MOTION"