Exemple #1
0
 public void Deserialize(FormulaControl control, DataStore data)
 {
     DeserializeDefault(control);
     brush.Deserialize(control, data);
     control.Formula = Formula;
     control.Scale   = Scale;
 }
Exemple #2
0
        public Value_Formula(DataStore dataStore, FormulaControl formula)
        {
            InitializeComponent();

            cont = formula;

            data = dataStore;

            positionselector.SetData(cont);
            positionselector.LoadData();

            effectselector.SetData(cont);
            effectselector.LoadData();

            brushselector.SetData(cont, data, true);
            brushselector.LoadData(cont.Background);
            brushselector.ChangedBrush -= Brushselector_ChangedBrush;
            brushselector.ChangedBrush += Brushselector_ChangedBrush;
            FormulaText.Text            = cont.Formula;

            cont.HorizontalAlignment = HorizontalAlignment.Stretch;
            cont.VerticalAlignment   = VerticalAlignment.Stretch;

            TB_Size.Text = "" + cont.Scale;
        }
Exemple #3
0
 public void Serialize(FormulaControl control, DataStore data)
 {
     SerializeDefault(control);
     brush.Serialize(control, control.Background, data);
     Formula = control.Formula;
     Scale   = control.Scale;
 }
Exemple #4
0
        public static async Task <string> GenerateImage(string formula)
        {
            string Build()
            {
                var control = new FormulaControl
                {
                    Formula      = formula
                    , Background = Brushes.White
                };

                control.Measure(new Size(300, 300));
                control.Arrange(new Rect(new Size(300, 300)));

                var bmp = new RenderTargetBitmap(300, 300, 96, 96, PixelFormats.Pbgra32);

                bmp.Render(control);

                var image = ImageCrop.AutoCrop(Convert(bmp));
                var file  = @"test.png";

                image.Save(file, ImageFormat.Png);
                return(file);
            }

            return(await Task.Factory.StartNew
                       (Build, CancellationToken.None, TaskCreationOptions.None, _StaTaskScheduler));
        }
Exemple #5
0
        public FormulaControl CreateControl(DataStore data)
        {
            FormulaControl control = new FormulaControl();

            Deserialize(control, data);

            return(control);
        }
Exemple #6
0
        /// <summary>
        /// Transforms equation object into a tex representation
        /// </summary>
        /// <param name="c">block collection</param>
        public void ToDocument(BlockCollection c)
        {
            List l = new List();

            l.Margin      = new System.Windows.Thickness(50.0d, 0, 0, 0);
            l.MarkerStyle = System.Windows.TextMarkerStyle.None;
            foreach (IDocument a in this.Get(listName))
            {
                if (a is Texte)
                {
                    Texte t = a as Texte;
                    if (t.IsTexMode)
                    {
                        t.InsertIntoDocument(l);
                    }
                    else
                    {
                        ListItem li = new ListItem(new Paragraph(new Run(t.ToString())));
                        l.ListItems.Add(li);
                    }
                }
                else if (a is Arithmetic)
                {
                    ListItem li = new ListItem();
                    li.TextAlignment = System.Windows.TextAlignment.Center;
                    FormulaControl fc = new FormulaControl();
                    fc.Formula = a.ToTex();
                    li.Blocks.Add(new BlockUIContainer(fc));
                    l.ListItems.Add(li);
                }
                else
                {
                    a.InsertIntoDocument(l);
                }
            }
            c.Add(l);
        }
Exemple #7
0
 public Formula_Serialization(FormulaControl control, DataStore data)
 {
     Serialize(control, data);
 }
Exemple #8
0
        public static void DeserializeCustomControls(DataStore data, Canvas canvas, int pos)
        {
            for (int i = 0; i < data.pages[pos].CustomControls.Count; i++)
            {
                if (data.pages[pos].CustomControls[i] is WebPage_Serialization)
                {
                    WebPage_Serialization ser = (WebPage_Serialization)data.pages[pos].CustomControls[i];

                    WebPage_Control web = ser.CreateControl(data);

                    canvas.Children.Add(web);
                }
                else if (data.pages[pos].CustomControls[i] is PieChart_Serialization)
                {
                    PieChart_Serialization ser = (PieChart_Serialization)data.pages[pos].CustomControls[i];

                    PieChart cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is CartesianChart_Serialization)
                {
                    CartesianChart_Serialization ser = (CartesianChart_Serialization)data.pages[pos].CustomControls[i];

                    CartesianChart cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is Model_Serialization)
                {
                    Model_Serialization ser = (Model_Serialization)data.pages[pos].CustomControls[i];

                    HelixViewport3D cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is Barcode_Serialization)
                {
                    Barcode_Serialization ser = (Barcode_Serialization)data.pages[pos].CustomControls[i];

                    Barcode cont = ser.CreateControl();

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is Button_Serialization)
                {
                    Button_Serialization ser = (Button_Serialization)data.pages[pos].CustomControls[i];

                    CButton cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is Formula_Serialization)
                {
                    Formula_Serialization ser = (Formula_Serialization)data.pages[pos].CustomControls[i];

                    FormulaControl cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is InkCanvas_Serialization)
                {
                    InkCanvas_Serialization ser = (InkCanvas_Serialization)data.pages[pos].CustomControls[i];

                    InkCanvas_Control cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is AnswerButton_Serialization)
                {
                    AnswerButton_Serialization ser = (AnswerButton_Serialization)data.pages[pos].CustomControls[i];

                    AnswerButton cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is ContentViewer_Serialization)
                {
                    ContentViewer_Serialization ser = (ContentViewer_Serialization)data.pages[pos].CustomControls[i];

                    ContentViewer cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is Gallery_Serialization)
                {
                    Gallery_Serialization ser = (Gallery_Serialization)data.pages[pos].CustomControls[i];

                    Gallery cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is ComboBox_Serialization)
                {
                    ComboBox_Serialization ser = (ComboBox_Serialization)data.pages[pos].CustomControls[i];

                    ComboBox_Control cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is ScalableImage_Serialization)
                {
                    ScalableImage_Serialization ser = (ScalableImage_Serialization)data.pages[pos].CustomControls[i];

                    ScalableImage cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is MediaPlayerController_Serialization)
                {
                    MediaPlayerController_Serialization ser = (MediaPlayerController_Serialization)data.pages[pos].CustomControls[i];

                    MediaPlayerController_Control cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
                else if (data.pages[pos].CustomControls[i] is ToggleButton_Serialization)
                {
                    ToggleButton_Serialization ser = (ToggleButton_Serialization)data.pages[pos].CustomControls[i];

                    ToggleButton_Control cont = ser.CreateControl(data);

                    canvas.Children.Add(cont);
                }
            }
        }
Exemple #9
0
        public static void SerializeCustomControls(DataStore data, Canvas canvas, int pos)
        {
            List <FrameworkElement> dsl = new List <FrameworkElement>();

            data.pages[pos].CustomControls.Clear();
            for (int i = 0; i < canvas.Children.Count; i++)
            {
                if (canvas.Children[i] is WebPage_Control)
                {
                    WebPage_Control wbc = (WebPage_Control)canvas.Children[i];
                    Debug.WriteLine("Webpage control serializing");

                    data.pages[pos].CustomControls.Add(new WebPage_Serialization(wbc, data));
                    dsl.Add(wbc);
                }
                else if (canvas.Children[i] is PieChart)
                {
                    PieChart cont = (PieChart)canvas.Children[i];
                    Debug.WriteLine("PieChart control serializing");

                    data.pages[pos].CustomControls.Add(new PieChart_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is CartesianChart)
                {
                    CartesianChart cont = (CartesianChart)canvas.Children[i];
                    Debug.WriteLine("PieChart control serializing");

                    data.pages[pos].CustomControls.Add(new CartesianChart_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is HelixViewport3D)
                {
                    HelixViewport3D cont = (HelixViewport3D)canvas.Children[i];
                    Debug.WriteLine("HelixViewport3D control serializing");

                    data.pages[pos].CustomControls.Add(new Model_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is Barcode)
                {
                    Barcode cont = (Barcode)canvas.Children[i];
                    Debug.WriteLine("Barcode control serializing");

                    data.pages[pos].CustomControls.Add(new Barcode_Serialization(cont));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is CButton)
                {
                    CButton cont = (CButton)canvas.Children[i];
                    Debug.WriteLine("Button control serializing");

                    data.pages[pos].CustomControls.Add(new Button_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is FormulaControl)
                {
                    FormulaControl cont = (FormulaControl)canvas.Children[i];
                    Debug.WriteLine("Formula control serializing");

                    data.pages[pos].CustomControls.Add(new Formula_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is InkCanvas_Control)
                {
                    InkCanvas_Control cont = (InkCanvas_Control)canvas.Children[i];
                    Debug.WriteLine("InkCanvas Control serializing");

                    data.pages[pos].CustomControls.Add(new InkCanvas_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is AnswerButton)
                {
                    AnswerButton cont = (AnswerButton)canvas.Children[i];
                    Debug.WriteLine("Answer button Control serializing");

                    data.pages[pos].CustomControls.Add(new AnswerButton_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is ContentViewer)
                {
                    ContentViewer cont = (ContentViewer)canvas.Children[i];
                    Debug.WriteLine("Content viewer Control serializing");

                    data.pages[pos].CustomControls.Add(new ContentViewer_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is Gallery)
                {
                    Gallery cont = (Gallery)canvas.Children[i];
                    Debug.WriteLine("Gallery Control serializing");

                    data.pages[pos].CustomControls.Add(new Gallery_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is ComboBox_Control)
                {
                    ComboBox_Control cont = (ComboBox_Control)canvas.Children[i];
                    Debug.WriteLine("ComboBox Control serializing");

                    data.pages[pos].CustomControls.Add(new ComboBox_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is ScalableImage)
                {
                    ScalableImage cont = (ScalableImage)canvas.Children[i];
                    Debug.WriteLine("Scalable Image serializing");

                    data.pages[pos].CustomControls.Add(new ScalableImage_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is MediaPlayerController_Control)
                {
                    MediaPlayerController_Control cont = (MediaPlayerController_Control)canvas.Children[i];
                    Debug.WriteLine("MediaPlayerController_Control serializing");

                    data.pages[pos].CustomControls.Add(new MediaPlayerController_Serialization(cont, data));
                    dsl.Add(cont);
                }
                else if (canvas.Children[i] is ToggleButton_Control)
                {
                    ToggleButton_Control cont = (ToggleButton_Control)canvas.Children[i];
                    Debug.WriteLine("MediaPlayerController_Control serializing");

                    data.pages[pos].CustomControls.Add(new ToggleButton_Serialization(cont, data));
                    dsl.Add(cont);
                }
            }

            for (int i = 0; i < dsl.Count; i++)
            {
                canvas.Children.Remove(dsl[i]);
            }

            dsl.Clear();
        }
Exemple #10
0
        public void AddLevel5Control(Point p)
        {
            switch (ControlTag)
            {
            case 51:
            {
                Barcode con = new Barcode("Good Teacher", Class.Enumerators.BarcodeType.Barcode_Type.QRCode);

                con.Width  = 128;
                con.Height = 128;

                Panel.SetZIndex(con, 3);

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 52:
            {
                Barcode con = new Barcode("001234567890", Class.Enumerators.BarcodeType.Barcode_Type.EAN13);

                con.Width  = 256;
                con.Height = 128;

                Panel.SetZIndex(con, 3);

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.RefreshBarcode();

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 53:
            {
                Barcode con = new Barcode("55123457", Class.Enumerators.BarcodeType.Barcode_Type.EAN8);

                con.Width  = 192;
                con.Height = 96;

                Panel.SetZIndex(con, 3);

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.RefreshBarcode();

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 54:
            {
                Barcode con = new Barcode("Good Teacher", Class.Enumerators.BarcodeType.Barcode_Type.Code128);

                con.Width  = 384;
                con.Height = 192;

                Panel.SetZIndex(con, 3);

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.RefreshBarcode();

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 55:
            {
                Barcode con = new Barcode("0123456789", Class.Enumerators.BarcodeType.Barcode_Type.Codabar);

                con.Width  = 384;
                con.Height = 192;

                Panel.SetZIndex(con, 3);

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.RefreshBarcode();

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;


            case 56:
            {
                FormulaControl con = new FormulaControl();

                con.Formula = "\\int_0^{\\infty}{x^{2n} e^{-a x^2} dx} = \\frac{2n-1}{2a} \\int_0^{\\infty}{x^{2(n-1)} e^{-a x^2} dx} = \\frac{(2n-1)!!}{2^{n+1}} \\sqrt{\\frac{\\pi}{a^{2n+1}}}";

                Panel.SetZIndex(con, 2);


                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));


                con.Width  = con.DesiredSize.Width;
                con.Height = con.DesiredSize.Height;

                con.Background = new SolidColorBrush(Colors.Transparent);

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 57:
            {
                InkCanvas_Control con = new InkCanvas_Control();

                Panel.SetZIndex(con, 5);


                con.Width  = 600;
                con.Height = 400;

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.ControlPanelBack = new LinearGradientBrush(Color.FromRgb(162, 162, 162), Color.FromRgb(230, 230, 230), 90);

                con.Name = "ID_" + data.pages[SelectedPosition].LastID++;

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;

            case 58:
            {
                ScalableImage con = new ScalableImage();

                Panel.SetZIndex(con, 5);

                con.M_Img.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Controls/image.png"));


                con.Width  = 500;
                con.Height = 400;

                con.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Canvas.SetLeft(con, p.X - con.DesiredSize.Width / 2);
                Canvas.SetTop(con, p.Y - con.DesiredSize.Height / 2);

                con.ControlPanelBack = new LinearGradientBrush(Colors.White, Color.FromRgb(236, 240, 241), 90);

                con.Name = "ID_" + data.pages[SelectedPosition].LastID++;

                AddEvents(con);
                DesignCanvas.Children.Add(con);
            }
            break;
            }
        }