public DecoratedCharacter(EquationContainer parent, TextEquation previous, CharacterDecorationType cdt, Position position, string sign)
     : base(parent)
 {
     this.Previous = previous;
     this.charFt = textManager.GetFormattedText(previous.Text[previous.CaretIndex - 1].ToString(), previous.GetFormats()[previous.CaretIndex - 1]);
     previous.ConsumeKey(System.Windows.Input.Key.Back);
     Height = FontSize;
     decorations.Add(new CharacterDecorationInfo() { DecorationType = cdt, Position = position, UnicodeString = sign });
     Width = charFt.Width;
 }
Beispiel #2
0
 public DecoratedCharacter(EquationContainer parent, TextEquation previous, CharacterDecorationType cdt, Position position, string sign)
     : base(parent)
 {
     this.Previous = previous;
     this.charFt   = textManager.GetFormattedText(previous.Text[previous.CaretIndex - 1].ToString(), previous.GetFormats()[previous.CaretIndex - 1]);
     previous.ConsumeKey(System.Windows.Input.Key.Back);
     Height = FontSize;
     decorations.Add(new CharacterDecorationInfo()
     {
         DecorationType = cdt, Position = position, UnicodeString = sign
     });
     Width = charFt.Width;
 }
 public void AddDecoration(CharacterDecorationType cdt, Position position, string sign)
 {
     if (cdt == CharacterDecorationType.None)
     {
         var decoArray = (from d in decorations where d.Index == caretIndex - 1 select d).ToArray();
         UndoManager.AddUndoAction(new DecorationAction(this, decoArray) { UndoFlag = false });
         decorations.RemoveAll(x => x.Index == caretIndex - 1);
     }
     else if (!char.IsWhiteSpace(textData[caretIndex - 1]))
     {
         CharacterDecorationInfo cdi = new CharacterDecorationInfo();
         cdi.DecorationType = cdt;
         cdi.Position = position;
         cdi.UnicodeString = sign;
         cdi.Index = caretIndex - 1;
         decorations.Add(cdi);
         UndoManager.AddUndoAction(new DecorationAction(this, new[] { cdi }));
     }
     FormatText();
 }