<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _draw_visible_area(self, painter):
 """ Draw the visible area. This method does not take folded blocks into account. :type painter: QtGui.QPainter """

        if self.editor.visible_blocks:
            start = self.editor.visible_blocks[0][-1]
            end = self.editor.visible_blocks[-1][-1]
            rect = QtCore.QRect()
            rect.setX(0)
            rect.setY(start.blockNumber() * self.get_marker_height())
            rect.setWidth(self.sizeHint().width())
            rect.setBottom(end.blockNumber() * self.get_marker_height())
            if self.editor.background.lightness() < 128:
                c = self.editor.background.darker(150)
            else:
                c = self.editor.background.darker(110)
            c.setAlpha(128)
            painter.fillRect(rect, c)