Beispiel #1
0
        public void AddChildren(IEnumerable <IBlock> inputCharactors, Point caretPoint, string parentId)
        {
            Rect moleculeRect;
            Rect denominatorRect;

            if (null == Molecule)
            {
                moleculeRect = new Rect(Location.X - 2, Location.Y - 4, FontManager.Instance.FontSize + 4, FontManager.Instance.FontSize + 4);
            }
            else
            {
                moleculeRect = new Rect(Location.X - 2, Location.Y - 4, Molecule.GetSize().Width + 4, Molecule.GetSize().Height + 4);
            }

            if (null == Denominator)
            {
                denominatorRect = new Rect(Location.X - 2, Location.Y + FontManager.Instance.FontSize * 1.2 - 2, FontManager.Instance.FontSize + 4, FontManager.Instance.FontSize + 4);
            }
            else
            {
                denominatorRect = new Rect(Location.X - 2, Location.Y + moleculeRect.Height + FontManager.Instance.FontSize * 0.2 - 2, Denominator.GetSize().Width + 4, Denominator.GetSize().Height + 4);
            }

            if (moleculeRect.Contains(caretPoint))
            {
                if (null == Molecule)
                {
                    Molecule          = new BlockNode();
                    Molecule.ParentId = ID;
                }
                Molecule.AddChildren(inputCharactors, caretPoint, parentId);
            }
            else
            {
                if (null == Denominator)
                {
                    Denominator          = new BlockNode();
                    Denominator.ParentId = ID;
                }
                Denominator.AddChildren(inputCharactors, caretPoint, parentId);
            }
        }
Beispiel #2
0
 public void AddChildren(IEnumerable <IBlock> inputCharactors, Point caretPoint, string parentId)
 {
     if (IsIndexContainsCaret(caretPoint))
     {
         if (null == Index)
         {
             Index          = new BlockNode();
             Index.ParentId = ID;
         }
         Index.AddChildren(inputCharactors, caretPoint, parentId);
     }
     if (IsBaseContainsCaret(caretPoint))
     {
         if (null == Base)
         {
             Base          = new BlockNode();
             Base.ParentId = ID;
         }
         Base.AddChildren(inputCharactors, caretPoint, parentId);
     }
 }
Beispiel #3
0
        public void AddChildren(IEnumerable <IBlock> inputCharactors, Point caretPoint, string parentId)
        {
            if (IsRootIndexContains(caretPoint))
            {
                if (null == RootIndex)
                {
                    RootIndex          = new BlockNode();
                    RootIndex.ParentId = ID;
                }
                RootIndex.AddChildren(inputCharactors, caretPoint, parentId);
            }

            if (IsRadicandContains(caretPoint))
            {
                if (null == Radicand)
                {
                    Radicand          = new BlockNode();
                    Radicand.ParentId = ID;
                }
                Radicand.AddChildren(inputCharactors, caretPoint, parentId);
            }
        }