code: def draw(self, surface):
          
          offset = 0
          i = 0
          ol, ot = self.screen_topleft_offset
          first = self.options and self.options[0]
          last = self.options and self.options[-1]
          for o in self.options:
              indent = o.get('padding_col', 0)
  
              # padding above the line
              if o != first and o.get('padding_line', 0):
                  offset += o['padding_line']
  
              font = o.get('font', self._font)
              if i == self.option and self.focus_color:
                  clr = self.focus_color
              else:
                  clr = self.color
              text = o['label']
              ren = font.render(text, 1, clr)
              if ren.get_width() > self.width:
                  self.width = ren.get_width()
              o['label_rect'] = pygame.Rect(
                  (ol + self.x + indent, ot + self.y + offset),
                  (ren.get_width(), ren.get_height()),
              )
              surface.blit(ren, (self.x + indent, self.y + offset))
              offset += font.get_height()
  
              # padding below the line
              if o != last and o.get('padding_line', 0):
                  offset += o['padding_line']
  
              i += 1
docs: Blit the menu to a surface.