code: def _create_window_frame(self, editor_buffer):
          
          @Condition
          def wrap_lines():
              return self.editor.wrap_lines
  
          window = Window(
              self._create_buffer_control(editor_buffer),
              allow_scroll_beyond_bottom=True,
              scroll_offsets=ScrollOffsets(
                  left=0, right=0,
                  top=(lambda: self.editor.scroll_offset),
                  bottom=(lambda: self.editor.scroll_offset)),
              wrap_lines=wrap_lines,
              left_margins=[ConditionalMargin(
                      margin=NumberedMargin(
                          display_tildes=True,
                          relative=Condition(lambda: self.editor.relative_number)),
                      filter=Condition(lambda: self.editor.show_line_numbers))],
              cursorline=Condition(lambda: self.editor.cursorline),
              cursorcolumn=Condition(lambda: self.editor.cursorcolumn),
              colorcolumns=(
                  lambda: [ColorColumn(pos) for pos in self.editor.colorcolumn]),
              ignore_content_width=True,
              ignore_content_height=True,
              get_line_prefix=partial(self._get_line_prefix, editor_buffer.buffer))
  
          return HSplit([
              window,
              VSplit([
                  WindowStatusBar(self.editor, editor_buffer),
                  WindowStatusBarRuler(self.editor, window, editor_buffer.buffer),
              ], width=Dimension()),  # Ignore actual status bar width.
          ]), window
docs: Create a Window for the buffer, with underneat a status bar.