Пример #1
0
 public bool IrSiguienteCaracter(bool moverSeleccion, TipoAvance TipoAvance)
 {
     if (TipoAvance == TipoAvance.AvanzarPorDocumento)
     {//Ir al principio del documento
         Parrafo ultimoParrafo = _documentoEdicion.ObtenerUltimoParrafo();
         IndicarPosicion(ultimoParrafo.ID, ultimoParrafo.Longitud, moverSeleccion);
     }
     else if (TipoAvance == TipoAvance.AvanzarPorParrafos)
     {
         if (parrafoSeleccionado.Siguiente != null)
         {
             IndicarPosicion(parrafoSeleccionado.Siguiente.ID, 0, moverSeleccion);
         }
         else
         {
             IndicarPosicion(parrafoSeleccionado.ID, parrafoSeleccionado.Longitud, moverSeleccion);
         }
     }
     else
     {
         if (posicionInsercion == parrafoSeleccionado.Longitud)
         {
             if (parrafoSeleccionado.Siguiente == null)
             {
                 return(false);
             }
             IndicarPosicion(parrafoSeleccionado.Siguiente.ID, 0, moverSeleccion);
         }
         else
         {
             IndicarPosicion(parrafoSeleccionado.ID, SiguientePosicion(TipoAvance), moverSeleccion);
         }
     }
     return(true);
 }
Пример #2
0
        int SiguientePosicion(TipoAvance tipo)
        {
            //if (anteriorFormato != null)
            //{
            //    parrafoSeleccionado.SimplificarFormato();
            //    anteriorFormato = null;
            //}
            switch (tipo)
            {
            case TipoAvance.AvanzarPorCaracteres:
                return(posicionInsercion + 1);

            case TipoAvance.AvanzarPorPalabras:
                return(parrafoSeleccionado.ObtenerSiguientePalabra(posicionInsercion));

            default:
                throw new NotImplementedException();
            }
        }
Пример #3
0
 public bool IrAnteriorCaracter(bool moverSeleccion, TipoAvance TipoAvance)
 {
     if (TipoAvance == TipoAvance.AvanzarPorDocumento)
     {
         IndicarPosicion(_documentoEdicion.ObtenerPrimerParrafo().ID, 0, moverSeleccion);
     }
     else if (TipoAvance == TipoAvance.AvanzarPorParrafos)
     {
         if (posicionInsercion == 0)
         {
             if (parrafoSeleccionado.Anterior != null)
             {
                 IndicarPosicion(parrafoSeleccionado.Anterior.ID, 0, moverSeleccion);
             }
             else
             {
                 IndicarPosicion(parrafoSeleccionado.ID, 0, moverSeleccion);
             }
         }
         else
         {
             IndicarPosicion(parrafoSeleccionado.ID, 0, moverSeleccion);
         }
     }
     else
     {
         if (posicionInsercion == 0)
         {
             if (parrafoSeleccionado.Anterior == null)
             {
                 return(false);                                      //no se puede borrar antes del primer párrafo.
             }
             IndicarPosicion(parrafoSeleccionado.Anterior.ID, parrafoSeleccionado.Anterior.Longitud, moverSeleccion);
         }
         else
         {
             IndicarPosicion(parrafoSeleccionado.ID, AnteriorPosicion(TipoAvance), moverSeleccion);
         }
     }
     return(true);
 }
Пример #4
0
 public void IrSiguienteCaracter(bool moverSeleccion, TipoAvance tipoAvance)
 {
     lock (this)
     {
         if (tipoAvance == TipoAvance.AvanzarPorLineas)
         {
             Posicion posicion = ObtenerPosicion();
             Posicion nueva    = posicion.ObtenerFinLinea();
             CambiarPosicion(nueva, moverSeleccion);
         }
         else if (tipoAvance == TipoAvance.AvanzarPorPaginas)
         {
             IrPaginaSiguiente(moverSeleccion);
         }
         else
         {
             conttexto.IrSiguienteCaracter(moverSeleccion, tipoAvance);
         }
         EnActualizarPresentacion(false);
     }
 }