private void btnTransform_Click(object sender, EventArgs e) { if (lboxFigures.SelectedIndex != -1) { var transformer = new UserFiguresTransformer(); var tmplist = transformer.TransformOneFigureToPrimitives(FigList, CurrFig); FigList.Clear(); for (int i = 0; i < tmplist.Size(); i++) { FigList.Add(tmplist.Item(i)); } lboxFigures.Items.Clear(); CurrFig = -1; isPressed = false; isMoved = false; isChanged = false; FigList.PrintList(lboxFigures); grRez.Clear(Color.Transparent); grMajor.Clear(Color.Transparent); FigList.DrawAll(grMajor); grRez.DrawImage(Layers[2], 0, 0); btnBack.Enabled = false; } }
private void btnMkUsrFig_Click(object sender, EventArgs e) { isOpenFile = true; string name = Microsoft.VisualBasic.Interaction.InputBox("Creating figure...", "Enter name:"); { if (name != "") { if (!IsExistName(name)) { FileStream fs = new FileStream(Application.StartupPath.ToString() + "\\" + UserFiguresPath + "\\" + name + "." + UserFiguresExtension, FileMode.OpenOrCreate, FileAccess.ReadWrite); userfigsbinser = new MyCustomFiguresBinarySerializer(); var transformer = new UserFiguresTransformer(); var tmplist = transformer.TransformToFullList(FigList); userfigsbinser.SaveFiguresList(fs, tmplist); fs.Close(); for (int i = 0; i < tmplist.Size(); i++) { usrlst.Add(tmplist.Item(i).Copy()); } SourceLists.Add(usrlst); typ = Type.GetType("Lab1.UserFigure"); var nextRB = new RadioButton(); nextRB.Parent = grboxFigures; nextRB.Left = 8; nextRB.Top = StartRBPos; StartRBPos += 27; nextRB.Width = 100; nextRB.Height = 21; nextRB.Text = name; UserNamesList.Add(name); nextRB.CheckedChanged += (a, b) => { try { CurrentList = usrlst; CurrentName = name; FigParams = new Object[] { CurrentName, CurrentList, CurrPen, 0, 0, 0, 0 }; figure = (Figure.Figure)Activator.CreateInstance(typ, FigParams); isChanged = true; isPointer = false; } catch (Exception ee) { MessageBoxException(ee.Message); } }; } else { MessageBoxError("Such name is already exist.", "Error"); } } else { MessageBoxError("Field couldn't be empty.", "Error"); } } isOpenFile = false; }