Beispiel #1
0
    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