public Medicion MedirEspacioLineas(IGraficador _GraficadorConsultas) { if (!espacioLineas.HasValue) { espacioLineas = _GraficadorConsultas.MedirEspacioLineas(this); } return(espacioLineas.Value); }
public Medicion MedirBaseTexto(IGraficador _GraficadorConsultas) { if (!baseTexto.HasValue) { baseTexto = _GraficadorConsultas.MedirBaseTexto(this); } return(baseTexto.Value); }
public SWPGenericControl(IGraficador graficadorConsultas) : base() { _documento = new Documento(); escritorio = new Escritorio(_documento, graficadorConsultas); escritorio.ActualizarPresentacion += new EventHandler(contpresentacion_ActualizarPresentacion); escritorio.Dimensiones = new TamBloque(new Medicion(50, Unidad.Milimetros), new Medicion(50, Unidad.Milimetros)); }
public Medicion MedirAltoTexto(IGraficador _GraficadorConsultas) { if (!altoTexto.HasValue) { altoTexto = _GraficadorConsultas.MedirAltoTexto(this); } return(altoTexto.Value); }
public Punto Dibujar(IGraficador g, Punto posicionInicial, Seleccion seleccion, AvanceBloques avance, Medicion anchoLinea, bool incluirEspacioAnterior, bool incluirEspacioPosterior) { List <Bloque> lista = new List <Bloque>(avance.ObtenerBloquesDe(this)); bool esultimalinea = EsUltimaLineaParrafo; Medicion espacioanterior = EsPrimeraLineaParrafo?(incluirEspacioAnterior ? (Parrafo.Formato.ObtenerEspacioAnterior()) : Medicion.Cero):Medicion.Cero; Medicion espacioposterior = EsUltimaLineaParrafo?(incluirEspacioPosterior?(Parrafo.Formato.ObtenerEspacioPosterior()):Medicion.Cero):Medicion.Cero; Medicion altolinea = AltoLinea - espacioposterior; Medicion deltacalc = ObtenerDeltaAlineacion(anchoLinea); AlineacionParrafo alineacion = Parrafo.Formato.ObtenerAlineacionHorizontal(); Punto posicion = new Punto(posicionInicial.X, posicionInicial.Y); for (int i = 0; i < 2; i++) { Medicion deltax; if (alineacion == AlineacionParrafo.Centro || alineacion == AlineacionParrafo.Derecha) { deltax = posicion.X + deltacalc; } else { deltax = posicion.X; } Punto pt = posicion; int posbase = Inicio; Medicion altobase = AltoBase; Bloque ultb = new Bloque(0, Parrafo.Formato.ObtenerFormatoTexto()); foreach (Bloque b in lista) { ultb = b; if (b.Cantidad == 0) { continue; } Estilo e = new Estilo(b); Medicion baset = e.MedirAlto(); string total = Parrafo.ObtenerSubCadena(posbase, b.Cantidad); TamBloque tb = e.Medir(total); Punto posdibujo = new Punto(deltax, posicion.Y + (altolinea - baset) - altobase); Dibujar(g, posdibujo, seleccion, e, posbase, b.Cantidad, total, i); posbase += b.Cantidad; deltax += tb.Ancho; } if (seleccion != null && EsUltimaLineaParrafo && seleccion.Contiene(Parrafo, Inicio + Cantidad)) { Estilo e = new Estilo(ultb); Medicion baset = e.MedirAlto(); Estilo sel = e.Clonar(); sel.ColorFondo = new BrochaSolida(new ColorDocumento(0, 0, 0)); sel.ColorLetra = new BrochaSolida(new ColorDocumento(255, 255, 255)); Punto posdibujo = new Punto(deltax, posicion.Y + (altolinea - baset) - altobase); DibujarConTam(sel, g, posdibujo, " ", "", i); } } return(new Punto(posicion.X, posicion.Y + AltoLinea)); }
public Punto DibujarFondo(IGraficador graficos, Punto posicionbase, string texto, string anteriortexto) { if (!string.IsNullOrEmpty(anteriortexto)) { posicionbase.X += GraficadorConsultas.MedirUnion(Letra, anteriortexto, texto); } TamBloque b = Medir(texto); graficos.RellenarRectangulo(ColorFondo, posicionbase, b); return(new Punto(posicionbase.X + b.Ancho, posicionbase.Y)); }
private Punto DibujarConTam(Estilo e, IGraficador graficos, Punto posicionbase, string texto, string anteriortexto, int numpasada) { if (numpasada == 0) { return(e.DibujarFondo(graficos, posicionbase, texto, "")); } else { return(e.DibujarConTam(graficos, posicionbase, texto, anteriortexto)); } }
private void Dibujar(Estilo e, IGraficador graficos, Punto posicionbase, string texto, int numpasada) { if (numpasada == 0) { e.DibujarFondo(graficos, posicionbase, texto, ""); } else { e.Dibujar(graficos, posicionbase, texto); } }
public void DibujarCursor(IGraficador graficador, Posicion posicion) { Lapiz lp = new Lapiz() { Ancho = new Medicion(0.5, Unidad.Milimetros), Brocha = new BrochaSolida(new ColorDocumento(127, 0, 0)) }; Posicion pos = posicion; Punto punto2 = new Punto(pos.PosicionPagina.X, pos.PosicionPixelY + pos.AltoLinea); graficador.DibujarLinea(lp, pos.PosicionPagina + PosicionInicioDibujo, punto2 + PosicionInicioDibujo); }
public void DibujarPaginas(IGraficador generador, out Punto InicioCursor, out Punto FinCursor) { lock (this) { _documento.DibujarPagina(generador, Punto.Origen, 0, conttexto.ObtenerSeleccion()); Posicion pos = _documento.ObtenerPosicionCursor(0, conttexto.ObtenerParrafoSeleccionado(), conttexto.ObtenerPosicionInsercion()); _documento.CompletarPixels(pos); InicioCursor = new Punto(pos.PosicionPixelX, pos.PosicionPixelY); FinCursor = new Punto(pos.PosicionPixelX, pos.PosicionPixelY + pos.AltoLinea); } //e.Graphics.DrawLine(Pens.Black, new PointF(pos.PosicionPixelX, pos.PosicionPixelY), new PointF(pos.PosicionPixelX, pos.PosicionPixelY + pos.AltoLinea)); }
public Escritorio(Documento _documento, IGraficador graficadorConsultas) { if (graficadorConsultas == null) { throw new Exception("Debe indicarse un objeto graficador para efectuar consultas"); } ColorFondo = new SWPEditor.Dominio.TextoFormato.ColorDocumento(50, 25, 25); _graficadorConsultas = graficadorConsultas; AsegurarGraficador(); ContPresentarDocumento controlador = new ContPresentarDocumento(_documento); EspacioEntrePaginas = new Medicion(10, Unidad.Milimetros); ControlDocumento = controlador; EsquinaSuperior = new Punto(Medicion.Cero, Medicion.Cero); }
public void Dibujar(IGraficador g, Punto esquinaSuperior, ListaLineas _Lineas, Seleccion seleccion, AvanceBloques avance) { CompletarLineas(); Punto pt = esquinaSuperior; pt.X += Margen.Izquierdo; pt.Y += Margen.Superior; Medicion anchoPagina = ObtenerAnchoLineas(); int lim = LineaInicio + Cantidad; for (int numlinea = LineaInicio; numlinea < lim; numlinea++) { Linea l = _Lineas.Obtener(numlinea); pt = l.Dibujar(g, pt, seleccion, avance, anchoPagina, true, true); } }
public void Dibujar(IGraficador graf, DocumentoImpreso documento, Posicion posicion, Seleccion seleccion, bool dibujarCursor) { Pagina p = documento.ObtenerPagina(IDPagina); if (p == null) { return; } graf.RellenarRectangulo(BrochaSolida.Blanco, new Punto(Medicion.Cero, Medicion.Cero) + PosicionInicioDibujo, p.Dimensiones); graf.DibujarRectangulo(Lapiz.Negro, new Punto(Medicion.Cero, Medicion.Cero) + PosicionInicioDibujo, p.Dimensiones); documento.DibujarPagina(graf, new Punto(Medicion.Cero, Medicion.Cero) + PosicionInicioDibujo, IDPagina, seleccion); if (dibujarCursor) { if (IDPagina == posicion.IndicePagina && seleccion == null) { DibujarCursor(graf, posicion); } } }
public bool PrintNextPage(IGraficador graficador) { if (!numpagina.HasValue) { numpagina = 0; } bool resultado = true; if (_documento.EsUltimaPagina(numpagina.Value)) { resultado = false; } _documento.DibujarPagina(graficador, new Punto(Medicion.Cero, Medicion.Cero), numpagina.Value, null); numpagina++; if (!resultado) { ImpresionCompleta = true; } return(resultado); }
public void Dibujar(IGraficador graficador, Seleccion seleccion, bool dibujarCursor) { AsegurarGraficador(); Posicion pos = ControlDocumento.ObtenerPosicion(); AsegurarVisibilidad(pos); Medicion inicio = Medicion.Cero - EsquinaSuperior.Y; Medicion derecha = Medicion.Cero - EsquinaSuperior.X; int i = PaginaSuperior; IEnumerable <Pagina> pags = _Documento.ObtenerDesde(PaginaSuperior); graficador.RellenarRectangulo(fondo, Punto.Origen, Dimensiones); foreach (Pagina p in pags) { LienzoPagina l = new LienzoPagina(i, new Punto(derecha, inicio)); l.Dibujar(graficador, _Documento, pos, seleccion, dibujarCursor); if (inicio > Dimensiones.Alto + EsquinaSuperior.Y) { return; } inicio += p.Dimensiones.Alto + EspacioEntrePaginas; i++; } }
public void Dibujar(IGraficador graficos, Punto posicionbase, string texto) { //TamBloque b=Medir(texto); //graficos.RellenarRectangulo(ColorFondo, posicionbase, b); graficos.DibujarTexto(posicionbase, Letra, ColorLetra, texto); }
private void Dibujar(IGraficador g, Punto posicion, Seleccion seleccion, Estilo estiloBase, int Inicio, int Cantidad, string subcadena, int contador) { try { string tot = subcadena;//Parrafo.ObtenerSubCadena(Inicio, Cantidad); if (seleccion != null) { Parrafo inicial = seleccion.ObtenerParrafoInicial(); Parrafo final = seleccion.ObtenerParrafoFinal(); Estilo e = estiloBase; Estilo sel = estiloBase.Clonar(); sel.ColorFondo = new BrochaSolida(new ColorDocumento(0, 0, 0)); sel.ColorLetra = new BrochaSolida(new ColorDocumento(255, 255, 255)); string c1 = null, c2 = null; //for (int contador = 0; contador <= 1; contador++) { int ini = seleccion.ObtenerPosicionInicial(); int fin = seleccion.ObtenerPosicionFinal(); Punto possiguiente = posicion; if (inicial == Parrafo) { if (final == Parrafo) { ini -= Inicio; fin -= Inicio; if (ini < 0) { ini = 0; } if (ini > Cantidad) { ini = Cantidad; } if (fin < 0) { fin = 0; } if (fin > Cantidad) { fin = Cantidad; } c1 = c1 ?? tot.Substring(0, ini); c2 = c2 ?? tot.Substring(ini, fin - ini); possiguiente = DibujarConTam(e, g, possiguiente, c1, null, contador); possiguiente = DibujarConTam(sel, g, possiguiente, c2, c1, contador); possiguiente = DibujarConTam(e, g, possiguiente, tot.Substring(fin, Cantidad - fin), c2, contador); } else { ini -= Inicio; if (ini < 0) { ini = 0; } if (ini > Cantidad) { ini = Cantidad; } c1 = c1 ?? tot.Substring(0, ini); possiguiente = DibujarConTam(e, g, possiguiente, c1, null, contador); possiguiente = DibujarConTam(sel, g, possiguiente, tot.Substring(ini, Cantidad - ini), c1, contador); } } else { if (final == Parrafo) { fin -= Inicio; if (fin < 0) { fin = 0; } if (fin > Cantidad) { fin = Cantidad; } c1 = c1 ?? tot.Substring(0, fin); possiguiente = DibujarConTam(sel, g, possiguiente, c1, null, contador); possiguiente = DibujarConTam(e, g, possiguiente, tot.Substring(fin, Cantidad - fin), c1, contador); } else { if (inicial.EsSiguiente(Parrafo) && !final.EsSiguiente(Parrafo)) { Dibujar(sel, g, possiguiente, tot, contador); } else { Dibujar(e, g, possiguiente, tot, contador); } } } } } else { //for (int contador = 0; contador <= 1; contador++) { Dibujar(estiloBase, g, posicion, tot, contador); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace, "Error"); throw ex; } }
public void DrawDesktop(IGraficador graficador, bool dibujarSeleccion, bool dibujarCursor) { escritorio.Dibujar(graficador, dibujarSeleccion?_ControlDocumento.ObtenerSeleccion():null, dibujarCursor); }
public void DibujarPagina(IGraficador g, Punto esquinaSuperior, int numpagina, Seleccion seleccion) { AvanceBloques av = new AvanceBloques(_Lineas.Obtener(_Paginas.Obtener(numpagina).LineaInicio)); _Paginas.Obtener(numpagina).Dibujar(g, esquinaSuperior, _Lineas, seleccion, av); }