コード例 #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="control">component the editor component</param>
        /// <param name="formula">formula the formula for edit</param>
        public FormulaEditorPerformer(IControl control, MathFormulaDrawable formula)
        {
            this.virtualControl = control;
            this.formula        = formula;
            newCursor           = formula;

            /*     keyPressEventHandler = new KeyPressEventHandler(keyPress);
             *   keyUpEventHandler = new KeyEventHandler(keyUp);
             *   keySymbol = this;*/
        }
コード例 #2
0
 /// <summary>
 /// Mouse move event handler in move symbol mode
 /// </summary>
 protected void move()
 {
     DrawCursor();
     if (formulaRectangle.Contains(imagePoint))
     {
         newCursor = formula.GetInsertedObject(imagePoint);
     }
     DrawCursor(oldCursor, false, true);
     if (oldCursor != newCursor)
     {
         oldCursor = newCursor;
     }
     DrawCursor(newCursor, true, true);
 }
コード例 #3
0
        /// <summary>
        /// Sets formula
        /// </summary>
        /// <param name="str"></param>
        /// <param name="sizes"></param>
        public void SetFormula(string str, int[] sizes)
        {
            string s = "";

            if (str != null)
            {
                s = str;
            }
            MathFormula         f    = MathFormula.FromString(sizes, s);
            MathFormulaDrawable form = new MathFormulaDrawable(f, DrawableConverter.Object);

            form.Sizes = sizes;
            formula    = form;
            newCursor  = form;
            DrawFormula();
        }
コード例 #4
0
 /// <summary>
 /// Gets object to insert
 /// </summary>
 /// <param name="p">position of the object</param>
 /// <returns>The object</returns>
 public IInsertedObject GetInsertedObject(Point p)
 {
     for (int i = 0; i < Count; i++)
     {
         MathSymbol      find = this[i];
         IInsertedObject obj  = MathSymbolDrawable.GetInsertedObject(find, p);
         if (obj != null)
         {
             return(obj);
         }
     }
     if (endRectangle.Contains(p))
     {
         return(this);
     }
     return(null);
 }
コード例 #5
0
        /// <summary>
        /// Sets a new editing formula
        /// </summary>
        /// <param name="formula">The formula</param>
        /// <param name="rectangle">The new rectangle of new formula</param>
        public void SetFormula(MathFormulaDrawable formula, Rectangle rectangle)
        {
            this.formula = formula;
            newCursor    = this.formula;
            Rectangle r = formulaRectangle;

            r.X      = rectangle.X;
            r.Y      = rectangle.Y;
            r.Width  = rectangle.Width;
            r.Height = rectangle.Height;
            Point p = pointFormula;

            p.X = r.X + 20;
            p.Y = r.Y + r.Height / 2;
            this.formula.Position = p;
            this.formula.CalculateFullRelativeRectangle();
            this.formula.CalculatePositions();
        }
コード例 #6
0
        /// <summary>
        /// Draws cursor in insert/delete mode
        /// </summary>
        /// <param name="obj">The selected object</param>
        /// <param name="b">The new/old flag</param>
        /// <param name="insert">The insert/delete flag</param>
        protected void DrawCursor(IInsertedObject obj, bool b, bool insert)
        {
            if (obj == null)
            {
                return;
            }
            Rectangle r;

            if (insert)
            {
                r = obj.InsertedRect;
            }
            else
            {
                r = ((IDrawableSymbol)obj).PureDrawable.FullRectangle;
            }
            Image im;

            if (b)
            {
                im = cursorImage;
            }
            else
            {
                im = iBkgnd;
            }
            Graphics g = virtualControl.Graphics;
            Point    p = transPoint;

            dRect.X      = r.X + p.X;
            dRect.Y      = r.Y + p.Y;
            dRect.Width  = r.Width;
            dRect.Height = r.Height;
            sRect.X      = r.X;
            sRect.Y      = r.Y;
            sRect.Width  = r.Width;
            sRect.Height = r.Height;
            g.DrawImage(im, dRect, sRect, GraphicsUnit.Pixel);
            g.Dispose();
        }