예제 #1
0
        public void QuitarSeleccion()
        {
            Seleccion s = conttexto.ObtenerSeleccion();

            conttexto.IndicarPosicion(s.ObtenerParrafoInicial().ID, s.ObtenerPosicionInicial(), false);
            EnActualizarPresentacion(false);
        }
예제 #2
0
 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;
     }
 }