public override EquationBase Split(EquationContainer newParent) { EquationBase result = ActiveChild.Split(this); CalculateSize(); return(result); }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position, SignCompositeSymbol symbol, bool useUpright) { EquationBase equation = null; switch (position) { case Position.None: equation = new SignSimple(equationParent, symbol, useUpright); break; case Position.Bottom: equation = new SignBottom(equationParent, symbol, useUpright); break; case Position.BottomAndTop: equation = new SignBottomTop(equationParent, symbol, useUpright); break; case Position.Sub: equation = new SignSub(equationParent, symbol, useUpright); break; case Position.SubAndSuper: equation = new SignSubSuper(equationParent, symbol, useUpright); break; } return(equation); }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position) { CompositeBase equation = null; switch (position) { case Position.Bottom: equation = new CompositeBottom(equationParent); break; case Position.Top: equation = new CompositeTop(equationParent); break; case Position.BottomAndTop: equation = new CompositeBottomTop(equationParent); break; case Position.Sub: equation = new CompositeSub(equationParent); break; case Position.Super: equation = new CompositeSuper(equationParent); break; case Position.SubAndSuper: equation = new CompositeSubSuper(equationParent); break; } equation.ChangeMainEquationSize(1.3); return(equation); }
public LeftRightBracket(EquationContainer parent, BracketSignType leftBracketType, BracketSignType rightBracketType) : base(parent) { bracketSign = new BracketSign(this, leftBracketType); bracketSign2 = new BracketSign(this, rightBracketType); childEquations.AddRange(new EquationBase[] { insideEq, bracketSign, bracketSign2 }); }
public SignSimple(EquationContainer parent, SignCompositeSymbol symbol, bool useUpright) : base(parent) { ActiveChild = mainEquation = new RowContainer(this); sign = new StaticSign(this, symbol, useUpright); childEquations.AddRange(new EquationBase[] { mainEquation, sign }); }
public Box(EquationContainer parent, BoxType boxType) : base(parent) { this.boxType = boxType; ActiveChild = insideEq = new RowContainer(this); childEquations.Add(insideEq); }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position) { CompositeBase equation = null; switch (position) { case Position.Bottom: equation = new CompositeBottom(equationParent); break; case Position.Top: equation = new CompositeTop(equationParent); break; case Position.BottomAndTop: equation = new CompositeBottomTop(equationParent); break; case Position.Sub: equation = new CompositeSub(equationParent); break; case Position.Super: equation = new CompositeSuper(equationParent); break; case Position.SubAndSuper: equation = new CompositeSubSuper(equationParent); break; } equation.ChangeMainEquationSize(1.3); return equation; }
public SquareRoot(EquationContainer parent) : base(parent) { radicalSign = new RadicalSign(this); ActiveChild = insideEquation = new RowContainer(this); childEquations.Add(insideEquation); childEquations.Add(radicalSign); }
FormattedText secondSign; //only used by certain decorations #endregion Fields #region Constructors public DecorationDrawing(EquationContainer parent, DecorationType decorationType) : base(parent) { this.decorationType = decorationType; IsStatic = true; CreateDecorations(); DetermineHeight(); }
public DivMathWithOuterBase(EquationContainer parent) : base(parent) { outerEquation = new RowContainer(this); outerEquation.HAlignment = Editor.HAlignment.Right; //insideEquation.HAlignment = Editor.HAlignment.Right; childEquations.Add(outerEquation); }
public DivMath(EquationContainer parent) : base(parent) { divMathSign = new DivMathSign(this); ActiveChild = insideEquation = new RowContainer(this); childEquations.Add(insideEquation); childEquations.Add(divMathSign); }
public DecorationDrawing(EquationContainer parent, DecorationType decorationType) : base(parent) { this.decorationType = decorationType; IsStatic = true; CreateDecorations(); DetermineHeight(); }
public EquationRow(EquationContainer parent) : base(parent) { TextEquation textEq = new TextEquation(this); ActiveChild = textEq; AddChild(textEq); CalculateSize(); }
public DivTriangle(EquationContainer parent, bool isFixed) : base(parent) { this.isFixed = isFixed; divTriangleSign = new DivTriangleSign(this); ActiveChild = insideEquation = new RowContainer(this); childEquations.Add(insideEquation); childEquations.Add(divTriangleSign); }
public void AdjustCarets() { vCaret.Location = ActiveChild.GetVerticalCaretLocation(); vCaret.CaretLength = ActiveChild.GetVerticalCaretLength(); EquationContainer innerMost = ((RowContainer)ActiveChild).GetInnerMostEquationContainer(); hCaret.Location = innerMost.GetHorizontalCaretLocation(); hCaret.CaretLength = innerMost.GetHorizontalCaretLength(); }
public CompositeSub(EquationContainer parent) : base(parent) { SubLevel++; bottomRowContainer = new RowContainer(this); bottomRowContainer.FontFactor = SubFontFactor; bottomRowContainer.ApplySymbolGap = false; childEquations.AddRange(new EquationBase[] { mainRowContainer, bottomRowContainer }); }
public RowContainer(EquationContainer parent, double lineSpaceFactor = 0) : base(parent) { EquationRow newLine = new EquationRow(this); AddLine(newLine); Height = newLine.Height; Width = newLine.Width; this.lineSpaceFactor = lineSpaceFactor; }
public CompositeTop(EquationContainer parent) : base(parent) { SubLevel++; topRowContainer = new RowContainer(this); topRowContainer.FontFactor = SubFontFactor; topRowContainer.ApplySymbolGap = false; childEquations.AddRange(new EquationBase[] { mainRowContainer, topRowContainer }); }
public CompositeBottom(EquationContainer parent) : base(parent) { this.SubLevel++; bottomRowContainer = new RowContainer(this); bottomRowContainer.FontFactor = SubFontFactor; bottomRowContainer.ApplySymbolGap = false; childEquations.AddRange(new EquationBase[] { mainRowContainer, bottomRowContainer }); }
public CompositeSubSuper(EquationContainer parent) : base(parent) { SubLevel++; subRow = new RowContainer(this); superRow = new RowContainer(this); superRow.FontFactor = subRow.FontFactor = SubFontFactor; superRow.ApplySymbolGap = subRow.ApplySymbolGap = false; childEquations.AddRange(new EquationBase[] { mainRowContainer, subRow, superRow }); }
public nRoot(EquationContainer parent) : base(parent) { radicalSign = new RadicalSign(this); ActiveChild = insideEquation = new RowContainer(this); nthRootEquation = new RowContainer(this); nthRootEquation.ApplySymbolGap = false; nthRootEquation.FontFactor = SubFontFactor; childEquations.AddRange(new EquationBase[] { insideEquation, radicalSign, nthRootEquation }); }
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 CompositeBottomTop(EquationContainer parent) : base(parent) { SubLevel++; bottomRow = new RowContainer(this); topRow = new RowContainer(this); topRow.FontFactor = bottomRow.FontFactor = SubFontFactor; topRow.ApplySymbolGap = bottomRow.ApplySymbolGap = false; childEquations.AddRange(new EquationBase[] { mainRowContainer, bottomRow, topRow }); }
public Decorated(EquationContainer parent, DecorationType decorationType, Position decorationPosition) : base(parent) { ActiveChild = rowContainer = new RowContainer(this); this.decorationType = decorationType; this.decorationPosition = decorationPosition; decoration = new DecorationDrawing(this, decorationType); this.childEquations.Add(rowContainer); this.childEquations.Add(decoration); }
public HorizontalBracket(EquationContainer parent, HorizontalBracketSignType signType) : base(parent) { topEquation = new RowContainer(this); bottomEquation = new RowContainer(this); bracketSign = new HorizontalBracketSign(this, signType); childEquations.Add(topEquation); childEquations.Add(bracketSign); childEquations.Add(bottomEquation); }
public DoubleArrowBarBracket(EquationContainer parent) : base(parent) { ExtraHeight = FontSize * 0.2; MidSpace = FontSize * 0.5; leftArrowSign = new BracketSign(this, BracketSignType.LeftAngle); rightArrowSign = new BracketSign(this, BracketSignType.RightAngle); ActiveChild = leftEquation = new RowContainer(this); rightEquation = new RowContainer(this); childEquations.AddRange(new EquationBase[] { leftEquation, leftArrowSign, rightArrowSign, rightEquation }); }
public MatrixEquation(EquationContainer parent, int rows, int columns) : base(parent) { this.rows = rows; this.columns = columns; for (int i = 0; i < columns * rows; i++) { childEquations.Add(new RowContainer(this)); } ActiveChild = childEquations.First(); }
public SignBottom(EquationContainer parent, SignCompositeSymbol symbol, bool useUpright) : base(parent) { ActiveChild = mainEquation = new RowContainer(this); SubLevel++; bottomEquation = new RowContainer(this); bottomEquation.ApplySymbolGap = false; sign = new StaticSign(this, symbol, useUpright); bottomEquation.FontFactor = SubFontFactor; childEquations.AddRange(new EquationBase[] { mainEquation, bottomEquation, sign }); }
public StaticSign(EquationContainer parent, SignCompositeSymbol symbol, bool useItalic) : base(parent) { integralSignItalic = useItalic; Symbol = symbol; DetermineSignString(); DetermineFontType(); DetermineFontSizeFactor(); DetermineMargin(); ReformatSign(); }
public static EquationBase CreateEquation(EquationContainer equationParent, DivisionType divType) { EquationBase equation = null; switch (divType) { case DivisionType.DivRegular: equation = new DivRegular(equationParent); break; case DivisionType.DivRegularSmall: equation = new DivRegularSmall(equationParent); break; case DivisionType.DivDoubleBar: equation = new DivDoubleBar(equationParent); break; case DivisionType.DivTripleBar: equation = new DivTripleBar(equationParent); break; case DivisionType.DivHoriz: equation = new DivHorizontal(equationParent); break; case DivisionType.DivHorizSmall: equation = new DivHorizSmall(equationParent); break; case DivisionType.DivMath: equation = new DivMath(equationParent); break; case DivisionType.DivMathWithTop: equation = new DivMathWithTop(equationParent); break; case DivisionType.DivSlanted: equation = new DivSlanted(equationParent); break; case DivisionType.DivSlantedSmall: equation = new DivSlantedSmall(equationParent); break; case DivisionType.DivMathInverted: equation = new DivMathInverted(equationParent); break; case DivisionType.DivInvertedWithBottom: equation = new DivMathWithBottom(equationParent); break; case DivisionType.DivTriangleFixed: equation = new DivTriangle(equationParent, true); break; case DivisionType.DivTriangleExpanding: equation = new DivTriangle(equationParent, false); break; } return equation; }
public EquationBase(EquationContainer parent) { this.ParentEquation = parent; if (parent != null) { SubLevel = parent.SubLevel; fontSize = parent.fontSize; ApplySymbolGap = parent.ApplySymbolGap; r = (byte)(parent.r + 15); g = (byte)(parent.r + 15); b = (byte)(parent.r + 15); } debugBrush = new SolidColorBrush(Color.FromArgb(100, r, g, b)); debugBrush.Freeze(); boxPen.Freeze(); }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position) { EquationBase equation = null; switch (position) { case Position.Bottom: equation = new CompositeBottom(equationParent); break; case Position.Top: equation = new CompositeTop(equationParent); break; case Position.BottomAndTop: equation = new CompositeBottomTop(equationParent); break; } return equation; }
public Arrow(EquationContainer parent, ArrowType arrowType, Position equationPosition) : base(parent) { this.arrowType = arrowType; this.equationPosition = equationPosition; SubLevel++; ApplySymbolGap = false; ActiveChild = rowContainer1 = new RowContainer(this); rowContainer1.FontFactor = SubFontFactor; this.childEquations.Add(rowContainer1); CreateDecorations(); if (equationPosition == Position.BottomAndTop) { rowContainer2 = new RowContainer(this); rowContainer2.FontFactor = SubFontFactor; childEquations.Add(rowContainer2); } }
protected DivBase(EquationContainer parent, bool isSmall = false) : base(parent) { if (isSmall) { SubLevel++; } ActiveChild = topEquation = new RowContainer(this); bottomEquation = new RowContainer(this); if (isSmall) { topEquation.FontFactor = SubFontFactor; bottomEquation.FontFactor = SubFontFactor; topEquation.ApplySymbolGap = false; bottomEquation.ApplySymbolGap = false; } childEquations.AddRange(new EquationBase[] { topEquation, bottomEquation }); }
protected DivBase(EquationContainer parent, bool isSmall = false) : base(parent) { if (isSmall) { SubLevel++; } ActiveChild = topEquation = new RowContainer(this); bottomEquation = new RowContainer(this); if (isSmall) { topEquation.FontFactor = SubFontFactor; bottomEquation.FontFactor = SubFontFactor; topEquation.ApplySymbolGap = false; bottomEquation.ApplySymbolGap = false; } childEquations.AddRange(new EquationBase[] { topEquation, bottomEquation}); }
FormattedText signText2; //used by certain brackets #endregion Fields #region Constructors public BracketSign(EquationContainer parent, BracketSignType entityType) : base(parent) { this.SignType = entityType; IsStatic = true; if (new[] {BracketSignType.LeftRound, BracketSignType.LeftCurly, BracketSignType.LeftAngle, BracketSignType.LeftCeiling, BracketSignType.LeftFloor, BracketSignType.LeftSquare, BracketSignType.LeftSquareBar}.Contains(entityType)) { leftPaddingFactor = 0.02; rightPaddingFactor = 0; } else if (entityType == BracketSignType.LeftBar || entityType == BracketSignType.LeftDoubleBar || entityType == BracketSignType.RightBar || entityType == BracketSignType.RightDoubleBar) { leftPaddingFactor = 0.06; rightPaddingFactor = 0.06; } }
public BracketSign(EquationContainer parent, BracketSignType entityType) : base(parent) { this.SignType = entityType; IsStatic = true; if (new[] { BracketSignType.LeftRound, BracketSignType.LeftCurly, BracketSignType.LeftAngle, BracketSignType.LeftCeiling, BracketSignType.LeftFloor, BracketSignType.LeftSquare, BracketSignType.LeftSquareBar }.Contains(entityType)) { leftPaddingFactor = 0.02; rightPaddingFactor = 0; } else if (entityType == BracketSignType.LeftBar || entityType == BracketSignType.LeftDoubleBar || entityType == BracketSignType.RightBar || entityType == BracketSignType.RightDoubleBar) { leftPaddingFactor = 0.06; rightPaddingFactor = 0.06; } }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position) { EquationBase equation = null; switch (position) { case Position.Bottom: equation = new CompositeBottom(equationParent); break; case Position.Top: equation = new CompositeTop(equationParent); break; case Position.BottomAndTop: equation = new CompositeBottomTop(equationParent); break; } return(equation); }
public static EquationBase CreateEquation(EquationContainer equationParent, Position position, SignCompositeSymbol symbol, bool useUpright) { EquationBase equation = null; switch (position) { case Position.None: equation = new SignSimple(equationParent, symbol, useUpright); break; case Position.Bottom: equation = new SignBottom(equationParent, symbol, useUpright); break; case Position.BottomAndTop: equation = new SignBottomTop(equationParent, symbol, useUpright); break; case Position.Sub: equation = new SignSub(equationParent, symbol, useUpright); break; case Position.SubAndSuper: equation = new SignSubSuper(equationParent, symbol, useUpright); break; } return equation; }
public HorizontalBracketSign(EquationContainer parent, HorizontalBracketSignType signType) : base(parent) { this.SignType = signType; IsStatic = true; }
public DivMathSign(EquationContainer parent) : base(parent) { IsStatic = true; }
public TextEquation(EquationContainer parent) : base(parent) { CalculateSize(); }
public StaticText(EquationContainer parent) : base(parent) { IsStatic = true; }