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); }
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(); } }
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); }
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); } }