def test_hide_of_expanded_dropdown(self, _init_pygame, default_ui_manager, _display_surface_return_none): menu = UIDropDownMenu(options_list=['eggs', 'flour', 'sugar'], starting_option='eggs', relative_rect=pygame.Rect(10, 10, 200, 30), manager=default_ui_manager) menu.process_event( pygame.event.Event( pygame.USEREVENT, { 'user_type': pygame_gui.UI_BUTTON_PRESSED, 'ui_element': menu.menu_states['closed'].open_button })) menu.update(0.01) assert menu.visible == 1 assert menu.current_state == menu.menu_states['expanded'] menu.hide() menu.update(0.01) assert menu.visible == 0 assert menu.current_state == menu.menu_states['closed'] assert menu.menu_states["closed"].visible == 0 assert menu.menu_states["closed"].selected_option_button.visible == 0 assert menu.menu_states["closed"].open_button.visible == 0
def test_process_event(self, _init_pygame, default_ui_manager, _display_surface_return_none): menu = UIDropDownMenu(options_list=['eggs', 'flour', 'sugar'], starting_option='eggs', relative_rect=pygame.Rect(100, 100, 200, 30), manager=default_ui_manager) # process a mouse button down event menu.process_event( pygame.event.Event( pygame_gui.UI_BUTTON_PRESSED, {'ui_element': menu.menu_states['closed'].open_button})) assert menu.current_state.should_transition menu.update(0.01) assert not menu.current_state.should_transition menu.process_event( pygame.event.Event( pygame_gui.UI_BUTTON_PRESSED, {'ui_element': menu.menu_states['expanded'].close_button})) assert menu.current_state.should_transition menu.update(0.01) assert not menu.current_state.should_transition menu.process_event( pygame.event.Event(pygame_gui.UI_BUTTON_PRESSED, { 'ui_element': menu.menu_states['closed'].selected_option_button })) assert menu.current_state.should_transition menu.update(0.01) assert not menu.current_state.should_transition menu.process_event( pygame.event.Event(pygame_gui.UI_SELECTION_LIST_NEW_SELECTION, { 'ui_element': menu.menu_states['expanded'].options_selection_list })) confirm_drop_down_changed_event_fired = False for event in pygame.event.get(): if (event.type == pygame_gui.UI_DROP_DOWN_MENU_CHANGED and event.ui_element == menu): confirm_drop_down_changed_event_fired = True assert confirm_drop_down_changed_event_fired