def DoInsertDockRow(panes, dock_direction, dock_layer, dock_row):
    """
    This is an internal function that inserts a new dock
    row by incrementing all existing dock row values by one.

    :param `panes`: a list of :class:`AuiPaneInfo`;
    :param integer `dock_direction`: the :class:`AuiDockInfo` docking direction to analyze;
    :param integer `dock_layer`: the :class:`AuiDockInfo` layer to analyze;
    :param integer `dock_row`: the :class:`AuiDockInfo` row to analyze.
    """
    for pane in panes:
        if (not pane.IsFloating() and pane.dock_direction == dock_direction and
            pane.dock_layer == dock_layer and pane.dock_row >= dock_row):
            pane.dock_row += 1
    return panes
