Example #1
0
    def test_kill(self, _init_pygame, default_ui_manager: IUIManagerInterface,
                  _display_surface_return_none: None):
        window = UIWindow(pygame.Rect(0, 0, 200, 200),
                          window_display_title="Test Window",
                          manager=default_ui_manager)

        assert len(default_ui_manager.get_root_container().elements) == 2
        assert len(default_ui_manager.get_sprite_group().sprites()) == 6
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container(), window,
            window._window_root_container, window.window_element_container,
            window.title_bar, window.close_window_button
        ]
        window.kill()

        confirm_event_fired = False
        event_object_id = None
        for event in pygame.event.get():
            if (event.type == pygame.USEREVENT
                    and event.user_type == pygame_gui.UI_WINDOW_CLOSE
                    and event.ui_element == window):
                confirm_event_fired = True
                event_object_id = event.ui_object_id
        assert confirm_event_fired
        assert event_object_id == 'window'
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container()
        ]
Example #2
0
    def test_kill(self, _init_pygame, default_ui_manager):
        test_container = UIContainer(relative_rect=pygame.Rect(
            10, 10, 300, 300),
                                     manager=default_ui_manager)

        element = UIElement(relative_rect=pygame.Rect(30, 30, 50, 50),
                            manager=default_ui_manager,
                            container=test_container,
                            starting_height=0,
                            layer_thickness=1,
                            anchors={
                                'left': 'left',
                                'right': 'left',
                                'top': 'top',
                                'bottom': 'top'
                            })

        assert len(test_container.elements) == 1
        assert len(default_ui_manager.ui_group.sprites()) == 3
        assert default_ui_manager.ui_group.sprites() == [
            default_ui_manager.get_root_container(), test_container, element
        ]
        element.kill()
        assert len(test_container.elements) == 0
        assert len(default_ui_manager.ui_group.sprites()) == 2
        assert default_ui_manager.ui_group.sprites() == [
            default_ui_manager.get_root_container(), test_container
        ]
Example #3
0
    def test_kill(self, _init_pygame, default_ui_manager: IUIManagerInterface):
        panel = UIPanel(relative_rect=pygame.Rect(50, 50, 150, 400),
                        starting_layer_height=5,
                        manager=default_ui_manager,
                        margins={
                            'left': 10,
                            'right': 10,
                            'top': 5,
                            'bottom': 5
                        })

        button = UIButton(
            relative_rect=pygame.Rect(100, 100, 150, 30),
            text="Test Button",
            tool_tip_text=
            "This is a test of the button's tool tip functionality.",
            manager=default_ui_manager,
            container=panel)

        assert len(default_ui_manager.get_root_container().elements) == 2
        assert len(default_ui_manager.get_sprite_group().sprites()) == 4
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container(), panel,
            panel.get_container(), button
        ]
        panel.kill()
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container()
        ]
Example #4
0
    def test_kill(self, _init_pygame, default_ui_manager: IUIManagerInterface,
                  _display_surface_return_none):
        selection_list = UISelectionList(
            relative_rect=pygame.Rect(0, 0, 50, 80),
            item_list=[
                'item 1', 'item 2', 'item 3', 'item 4', 'item 5', 'item 6',
                'item 7', 'item 8', 'item 9', 'item 10', 'item 11', 'item 12',
                'item 13', 'item 14', 'item 15', 'item 16'
            ],
            manager=default_ui_manager,
            allow_multi_select=True)

        assert len(default_ui_manager.get_root_container().elements) == 2
        assert len(default_ui_manager.get_sprite_group().sprites()) == 13

        selection_list_sprites = [
            default_ui_manager.get_root_container(), selection_list,
            selection_list.list_and_scroll_bar_container,
            selection_list.item_list_container, selection_list.scroll_bar,
            selection_list.scroll_bar.button_container,
            *selection_list.item_list_container.elements,
            selection_list.scroll_bar.top_button,
            selection_list.scroll_bar.bottom_button,
            selection_list.scroll_bar.sliding_button
        ]
        assert default_ui_manager.get_sprite_group().sprites(
        ) == selection_list_sprites
        selection_list.kill()
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        empty_ui_sprites = [default_ui_manager.get_root_container()]
        assert default_ui_manager.get_sprite_group().sprites(
        ) == empty_ui_sprites
Example #5
0
    def test_add_element(self, _init_pygame, default_ui_manager: IUIManagerInterface,
                         _display_surface_return_none):
        container = UIContainer(pygame.Rect(100, 100, 200, 200), manager=default_ui_manager)

        button = UIButton(relative_rect=pygame.Rect(0, 0, 50, 50), text="",
                          manager=default_ui_manager)
        default_ui_manager.get_root_container().remove_element(button)
        container.add_element(button)
        assert len(container.elements) == 1
    def test_is_window_at_top(self, _init_pygame, default_ui_manager,
                              _display_surface_return_none):
        stack = UIWindowStack((800, 600),
                              default_ui_manager.get_root_container())
        window = UIWindow(pygame.Rect(100, 100, 200, 200),
                          window_display_title="Test Window",
                          manager=default_ui_manager,
                          element_id='test_window')
        window_2 = UIWindow(pygame.Rect(50, 50, 200, 200),
                            window_display_title="Test Window",
                            manager=default_ui_manager,
                            element_id='test_window')
        window_3 = UIWindow(pygame.Rect(0, 0, 200, 200),
                            window_display_title="Test Window",
                            manager=default_ui_manager,
                            element_id='test_window')
        stack.add_new_window(window)
        stack.add_new_window(window_2)
        stack.add_new_window(window_3)
        stack.move_window_to_front(window)
        stack.move_window_to_front(window_3)
        stack.move_window_to_front(window_2)

        assert stack.is_window_at_top(window_2) is True
        assert stack.is_window_at_top(window) is False
        assert stack.is_window_at_top(window_3) is False
    def test_add_window(self, _init_pygame, default_ui_manager,
                        _display_surface_return_none):
        stack = UIWindowStack((800, 600), default_ui_manager.get_root_container())
        window = UIWindow(pygame.Rect(100, 100, 200, 200), window_display_title="Test Window",
                          manager=default_ui_manager, element_id='test_window')
        stack.add_new_window(window)

        assert len(stack.stack) == 1
Example #8
0
    def test_find_valid_position_off_left(self, _init_pygame, default_ui_manager: UIManager):
        tool_tip = UITooltip(html_text="A tip about tools.",
                             hover_distance=(0, 10),
                             manager=default_ui_manager)

        found_position = tool_tip.find_valid_position(pygame.math.Vector2(1.0, 300.0))

        root_window_rect = default_ui_manager.get_root_container().rect

        assert found_position is True and bool(root_window_rect.contains(tool_tip.rect)) is True
Example #9
0
    def test_kill(self, _init_pygame, default_ui_manager: IUIManagerInterface,
                  _display_surface_return_none):
        scroll_bar = UIHorizontalSlider(relative_rect=pygame.Rect(100, 100, 200, 30),
                                        start_value=50,
                                        value_range=(0, 100),
                                        manager=default_ui_manager)

        assert len(default_ui_manager.get_root_container().elements) == 2
        assert len(default_ui_manager.get_sprite_group().sprites()) == 6
        assert default_ui_manager.get_sprite_group().sprites() == [default_ui_manager.get_root_container(),
                                                                   scroll_bar,
                                                                   scroll_bar.button_container,
                                                                   scroll_bar.left_button,
                                                                   scroll_bar.right_button,
                                                                   scroll_bar.sliding_button]
        scroll_bar.kill()
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        assert default_ui_manager.get_sprite_group().sprites() == [default_ui_manager.get_root_container()]
    def test_kill(self, _init_pygame, default_ui_manager: IUIManagerInterface,
                  _display_surface_return_none):
        scroll_bar = UIVerticalScrollBar(relative_rect=pygame.Rect(100, 100, 30, 150),
                                         visible_percentage=0.7,
                                         manager=default_ui_manager)

        assert len(default_ui_manager.get_root_container().elements) == 2
        assert len(default_ui_manager.get_sprite_group().sprites()) == 6
        scroll_bar_sprites = [default_ui_manager.get_root_container(),
                              scroll_bar,
                              scroll_bar.button_container,
                              scroll_bar.top_button,
                              scroll_bar.bottom_button,
                              scroll_bar.sliding_button]
        assert default_ui_manager.get_sprite_group().sprites() == scroll_bar_sprites
        scroll_bar.kill()
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        empty_sprites = [default_ui_manager.get_root_container()]
        assert default_ui_manager.get_sprite_group().sprites() == empty_sprites
Example #11
0
 def test_creation(self, _init_pygame, default_ui_manager,
                   _display_surface_return_none):
     UIWindowStack((800, 600), default_ui_manager.get_root_container())
Example #12
0
    def test_kill(self, _init_pygame: None, default_ui_manager: UIManager,
                  _display_surface_return_none):
        default_ui_manager.preload_fonts([{
            'name': 'fira_code',
            'html_size': 4.5,
            'style': 'bold'
        }, {
            'name': 'fira_code',
            'html_size': 4.5,
            'style': 'regular'
        }, {
            'name': 'fira_code',
            'html_size': 2,
            'style': 'regular'
        }, {
            'name': 'fira_code',
            'html_size': 2,
            'style': 'italic'
        }, {
            'name': 'fira_code',
            'html_size': 6,
            'style': 'bold'
        }, {
            'name': 'fira_code',
            'html_size': 6,
            'style': 'regular'
        }, {
            'name': 'fira_code',
            'html_size': 6,
            'style': 'bold_italic'
        }, {
            'name': 'fira_code',
            'html_size': 4,
            'style': 'bold'
        }, {
            'name': 'fira_code',
            'html_size': 4,
            'style': 'italic'
        }, {
            'name': 'fira_code',
            'html_size': 2,
            'style': 'bold'
        }, {
            'name': 'fira_code',
            'html_size': 2,
            'style': 'bold_italic'
        }])
        text_box = UITextBox(
            html_text=''
            '<font color=regular_text><font color=#E784A2 size=4.5><br><b><u>Lorem</u><br><br><br>'
            'ipsum dolor sit amet</b></font>,'
            ' <b><a href="test">consectetur</a></b> adipiscing elit. in a flibb de dib do '
            'rub a la clob slip the perry tin fo glorp yip dorp'
            'skorp si pork flum de dum be dung, slob be robble glurp destination flum kin slum. '
            'Ram slim gordo, fem tulip squirrel slippers save socks certainly.<br>'
            'Vestibulum in <i>commodo me</i> tellus in nisi finibus a sodales.<br>Vestibulum'
            '<font size=2>hendrerit mi <i>sed nulla</i> scelerisque</font>, posuere ullamcorper '
            'sem pulvinar.'
            'Nulla at pulvinar a odio, a dictum dolor.<br>Maecenas at <font size=6><b>tellus a'
            'tortor. a<br>'
            'In <i>bibendum</i> orci et velit</b> gravida lacinia.<br><br>'
            'In hac a habitasse to platea dictumst.<br>'
            '<font color=#4CD656 size=4>Vivamus I interdum mollis lacus nec porttitor.<br>Morbi '
            'accumsan, lectus at '
            'tincidunt to dictum, neque <font color=#879AF6>erat tristique erat</font>, '
            'sed a tempus for <b>nunc</b> dolor in nibh.<br>'
            'Suspendisse in viverra dui <i>fringilla dolor laoreet</i>, sit amet on pharetra a ante '
            'sollicitudin.</font></font>'
            '<br><br>'
            '<b>consectetur</b> adipiscing elit. in a<br>'
            'Vestibulum in <i>commodo me</i> tellus in nisi finibus a sodales.<br>'
            'Vestibulum <font size=2>hendrerit mi <i>sed nulla</i> scelerisque</font>, '
            'posuere ullamcorper sem pulvinar. '
            'Nulla at pulvinar a odio, a dictum dolor.<br>'
            'Maecenas at <font size=6><b>tellus a tortor. a<br>'
            'In <i>bibendum</i> orci et velit</b> gravida lacinia.<br><br>'
            'In hac a habitasse to platea dictumst.<br>'
            '<font color=#4CD656 size=4>Vivamus I interdum mollis lacus nec porttitor.<br>Morbi '
            'accumsan, lectus at'
            'tincidunt to dictum, neque <font color=#879AF6>erat tristique erat</font>, '
            'sed a tempus for <b>nunc</b> dolor in nibh.<br>'
            'Suspendisse in viverra dui <i>fringilla dolor laoreet</i>, sit amet on pharetra a ante '
            'sollicitudin.</font></font>',
            relative_rect=pygame.Rect(100, 100, 200, 300),
            manager=default_ui_manager)

        assert len(default_ui_manager.get_root_container().elements) == 3
        assert len(default_ui_manager.get_sprite_group().sprites()) == 7
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container(), text_box,
            text_box.scroll_bar, text_box.scroll_bar.button_container,
            text_box.scroll_bar.top_button, text_box.scroll_bar.bottom_button,
            text_box.scroll_bar.sliding_button
        ]
        text_box.kill()
        assert len(default_ui_manager.get_root_container().elements) == 0
        assert len(default_ui_manager.get_sprite_group().sprites()) == 1
        assert default_ui_manager.get_sprite_group().sprites() == [
            default_ui_manager.get_root_container()
        ]