def blit_static_surfs_on_image(self):
        """Create and blit surfaces on self.image.

        These images never change or move, this is why
        we call them "static". This means we can blit
        them on the background once and for all, instead
        of having to blit them every loop.
        """
        ### blit surfaces on the background representing
        ### this file manager icon plus its name (with
        ### an hyphen)

        ## instantiate objects

        icon_obj = Object2D.from_surface(
            render_layered_icon(
                chars=[chr(ordinal) for ordinal in (33, 34)],
                dimension_name="height",
                dimension_value=30,
                colors=[BLACK, (30, 130, 70)],
                background_width=32,
                background_height=32,
            )
        )

        title_obj = Object2D.from_surface(
            render_text(
                f"{t.file_manager.caption} -",
                font_height=FONT_HEIGHT,
                foreground_color=WINDOW_FG,
                background_color=WINDOW_BG,
                padding=5,
            )
        )

        ## store them in a special set
        app_objs = Set2D((icon_obj, title_obj))

        ## align title midleft with icon midright
        title_obj.rect.midleft = icon_obj.rect.midright

        ## store distance from origin to title obj midright
        ## to use as an offset to position the caption
        ## label
        self.caption_label_offset = title_obj.rect.move(2, 5).midright

        ## now move the objects together, so they sit near
        ## the topleft corner of our background
        app_objs.rect.topleft = (5, 5)

        ## finally, draw them on our background
        app_objs.draw_on_surf(self.image)

        ### draw text objects on background

        ## parameters for objects to be created

        surf_params = [
            (
                t.file_manager.current + ":",
                self.rect.move(5, 40).topleft,
            ),
            (
                t.file_manager.bookmarks,
                self.rect.move(5, 70).topleft,
            ),
            (
                t.file_manager.directory_contents,
                self.rect.move(300, 70).topleft,
            ),
        ]

        ## a temporary container
        temp_container = []

        ## obtain the inverted topleft coordinates of the
        ## file manager as a vector, to use as an offset
        ## when drawing surfaces on the self.image surface
        fileman_offset = -Vector2(self.rect.topleft)

        ## create a surf for each pair of parameters
        ## and blit it on self.image after offsetting it

        for text, topleft in surf_params:

            surf = render_text(
                text,
                font_height=FONT_HEIGHT,
                foreground_color=WINDOW_FG,
                background_color=WINDOW_BG,
                padding=5,
            )

            surf_offset = topleft + fileman_offset

            self.image.blit(surf, surf_offset)

            temp_container.append(surf)

        ### store the midright of the first surface
        ### as a midleft coordinate for the navigation
        ### entry (an entry from the directory
        ### panel object which we'll instantiate in
        ### another method)

        ## retrieve topleft coordinates of first surf
        x, y = surf_params[0][1]

        ## get size of first surf
        surf_width, surf_height = temp_container[0].get_size()

        ## increment x
        x += surf_width

        ## increment y
        y += (surf_height // 2)

        ## finally store the new coordinates
        self.navigation_entry_offset = x, y
Create and blit surfaces on self.image.

        These images never change or move, this is why
        we call them "static". This means we can blit
        them on the background once and for all, instead
        of having to blit them every loop.
        
nodezator/fileman/main.py