示例#1
0
        private List <Draws> UngroupFigures(Draws drw)
        {
            List <Draws> par = new List <Draws>();

            par.Add(drw);
            return(UngroupFigures(par));
        }
示例#2
0
 public void SetItemColor(Color color)
 {
     if (DrawsList.Count > 0)
     {
         Draws drw = (Draws)DrawsList[0];
         drw.Fill.Color = color;
     }
 }
示例#3
0
        public FillProps(Draws drw)
        {
            //Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
            InitializeComponent();
            // -------------------------------------------------------------------
            cbColor.Items.Clear();
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColor.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            cbColorPattern.Items.Clear();
            cbColorPattern.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColorPattern.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColorPattern.Text = DrawUtils.GetColorNameFromIndex(LastPatternColorIndex);
            // -------------------------------------------------------------------
            cbPattern.Items.Clear();
            cbPattern.Items.AddRange(DrawUtils.GetAllPatternNames()); // получение всех имён доступных паттернов
            cbPattern.SelectedIndex = 1;
            // -------------------------------------------------------------------
            if (drw != null)
            {
                fill.Assign(drw.Fill);
            }
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(fill.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(fill.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            Index = DrawUtils.ColorToIndex(fill.PatternColor);
            if (Index < 0)
            {
                DrawUtils.AddCustomColor(fill.PatternColor);
                cbColorPattern.Items.Insert(cbColorPattern.Items.Count - 1, "Мой цвет");
                Index = cbColorPattern.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColorPattern.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - fill.Alpha;
            lbTrasparent.Text  = String.Format(CultureInfo.InvariantCulture, "{0}",
                                               (int)(tbTrasparent.Value / 255.0 * 100.0)) +
                                 " %";
            // -------------------------------
            cbPattern.SelectedIndex = fill.PatternIndex;
            cbColorPattern.Enabled  = (cbPattern.SelectedIndex > 1);
        }
示例#4
0
 public ScriptProps(Draws drw, string text, string[] errors)
 {
     InitializeComponent();
     this.drw          = drw;
     tbScriptText.Text = text;
     lbScriptErrors.Items.Clear();
     if (errors != null)
     {
         lbScriptErrors.Items.AddRange(errors);
     }
 }
示例#5
0
        private void miAddFigureNode_Click(object sender, EventArgs e)
        {
            Draws drw = (Draws)cmsFigPopup.Tag;

            if (drw != null)
            {
                FileChanged = true;
                drw.InsertFigureNode(SelMrkPnt);
                this.Refresh();
            }
        }
示例#6
0
        private void miDeleteFigureNode_Click(object sender, EventArgs e)
        {
            Draws drw = (Draws)cmsFigPopup.Tag;

            if (drw != null)
            {
                FileChanged = true;
                drw.DeleteFigureNode(markerIndex);
                this.Refresh();
            }
        }
示例#7
0
 private void miEndChangeNodes_Click(object sender, EventArgs e)
 {
     if (SelList.Count == 1)
     {
         Draws drw = (Draws)SelList[0];
         if (drw.NodeChanging)
         {
             drw.NodeChanging = false;
             this.Refresh();
         }
     }
 }
示例#8
0
 private void miBeginChangeNodes_Click(object sender, EventArgs e)
 {
     if (SelList.Count == 1)
     {
         Draws drw = (Draws)SelList[0];
         if (!drw.NodeChanging)
         {
             drw.NodeChanging = true;
             DoSelectObjMode();
             this.Refresh();
         }
     }
 }
示例#9
0
 private void miScriptEdit_Click(object sender, EventArgs e)
 {
     if (SelList.Count == 1)
     {
         Draws drw = (Draws)SelList[0];
         using (ScriptProps form =
                    new ScriptProps(drw, drw.ScriptOnDoubleClick, drw.ScriptErrors()))
         {
             if (form.ShowDialog(this) == DialogResult.OK)
             {
                 FileChanged             = true;
                 drw.ScriptOnDoubleClick = form.GetEditedText();
             }
         }
     }
 }
示例#10
0
        private void drawBox_DoubleClick(object sender, EventArgs e)
        {
            Draws drw = DrawsList.PointInFigure(LstPnt);

            if (drw != null)
            {  // элемент был выбран мышкой
                using (EditText form = new EditText(drw.Text.Caption))
                {
                    if (form.ShowDialog(this) == DialogResult.OK)
                    {
                        drw.Text.Caption = form.Caption;
                        FileChanged      = true;
                        this.Refresh();
                    }
                }
            }
        }
示例#11
0
        private void miStrokeChange_Click(object sender, EventArgs e)
        {
            Draws d = (Draws)cmsFigPopup.Tag;

            using (StrokeProps form = new StrokeProps(d))
            {
                if (SelList.Count > 0)
                {
                    form.Stroke = new Stroke();
                    form.Stroke.Assign(d.Stroke);
                }
                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    FileChanged = true;
                    foreach (Draws drw in SelList)
                    {
                        drw.Stroke.Assign(form.Stroke);
                    }
                    this.Refresh();
                }
            }
        }
示例#12
0
        public StrokeProps(Draws drw)
        {
            InitializeComponent();
            // -------------------------------------------------------------------
            cbPattern.Items.Clear();
            cbPattern.Items.AddRange(DrawUtils.GetPenPatternNames()); // получение всех имён доступных типов линий
            cbPattern.SelectedIndex = 1;
            // -------------------------------------------------------------------
            cbWidth.Items.Clear();
            for (int i = 1; i < 61; i++)
            {
                cbWidth.Items.Add(i.ToString());
            }
            // -------------------------------------------------------------------
            cbColor.Items.Clear();
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColor.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            stroke.Assign(drw.Stroke);
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(stroke.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(stroke.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - stroke.Alpha;
            lbTrasparent.Text  = String.Format("{0} %", (int)(tbTrasparent.Value / 255.0 * 100.0));
            // -------------------------------
            cbWidth.SelectedIndex = (int)stroke.Width - 1;
            // -------------------------------
            if (stroke.DashStyle == DashStyle.Custom)
            {
                cbPattern.SelectedIndex = 0;
            }
            else
            {
                cbPattern.SelectedIndex = (int)stroke.DashStyle + 1;
            }
            // -------------------------------------------------------------------
            cbLineJoin.Items.Clear();
            // получение всех имён доступных типов соединений линий
            cbLineJoin.Items.AddRange(DrawUtils.GetLineJoinNames());
            cbLineJoin.SelectedIndex = (int)stroke.LineJoin;
            // -------------------------------------------------------------------
            cbStartCap.Items.Clear();
            // получение всех имён доступных типов окончаний линий
            cbStartCap.Items.AddRange(DrawUtils.GetLineCapNames());
            cbStartCap.SelectedIndex = (int)stroke.StartCap;
            // -------------------------------------------------------------------
            cbEndCap.Items.Clear();
            // получение всех имён доступных типов окончаний линий
            cbEndCap.Items.AddRange(DrawUtils.GetLineCapNames());
            cbEndCap.SelectedIndex = (int)stroke.EndCap;
        }
示例#13
0
        public TextProps(Draws drw)
        {
            InitializeComponent();
            FontFamily[] ffam = FontFamily.Families;
            cbFont.Items.Clear();
            foreach (FontFamily ff in ffam)
            {
                cbFont.Items.Add(ff.Name);
            }
            // -------------------------------------------------------------------
            cbFont.SelectedIndex = cbFont.Items.IndexOf(cbFont.Text);
            cbColor.Items.Clear();
            // получение всех имён доступных цветов
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames());
            // добавление пункта выбора цвета
            cbColor.Items.Add("Выбор цвета...");
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            text.Assign(drw.Text);
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(text.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(text.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - text.Alpha;
            lbTrasparent.Text  = String.Format("{0} %",
                                               (int)(tbTrasparent.Value / 255.0 * 100.0));
            // -------------------------------
            cbFont.Text = text.FontName;
            // -------------------------------
            cbSize.Text = text.FontSize.ToString();
            // -------------------------------
            if (text.Bold && text.Italic)
            {
                cbStyle.SelectedIndex = 3;
            }
            else if (text.Bold)
            {
                cbStyle.SelectedIndex = 2;
            }
            else if (text.Italic)
            {
                cbStyle.SelectedIndex = 1;
            }
            else
            {
                cbStyle.SelectedIndex = 0;
            }
            // -------------------------------
            cbUnderline.Checked = text.Underline;
            // -------------------------------
            cbSrikeout.Checked = text.Strikeout;
            // -------------------------------
            cbHorizontal.SelectedIndex = (int)(text.Alignment);
            cbVertical.SelectedIndex   = (int)(text.LineAlignment);
            cbVerticalText.Checked     = text.Vertical;
        }
示例#14
0
 private void drawBox_MouseDown(object sender, MouseEventArgs e)
 {
     FstPnt = new PointF(e.X, e.Y);
     LstPnt = FstPnt;
     if (!tsbSelObj.Checked)
     {
         SelList.Clear();
     }
     if (tsbSelObj.Checked || (e.Button == MouseButtons.Right))
     {
         Draws drw = DrawsList.PointInFigure(FstPnt);
         if (drw != null)
         { // элемент был выбран мышкой
             markerIndex = drw.MarkerIndex;
             if (markerIndex >= 0)
             {
                 foreach (Draws d in SelList)
                 {
                     d.MarkerIndex = markerIndex;                          // раздача всем остальным
                 }
             }
             if (controlPressed)
             {
                 if (SelList.IndexOf(drw) >= 0)
                 {                          // удаление из списка уже выделенного элемента
                     if (SelList.Count > 1) // последний элемент при Ctrl не убирается
                     {
                         drw.Selected = false; SelList.Remove(drw);
                     }
                 }
                 else
                 {
                     SelList.Add(drw);  // добавление к списку
                 }
             }
             else
             {
                 if (!SelList.FigureInList(drw))
                 {
                     SelList.Clear();  // очистка списков
                     SelList.Add(drw); // выделение одного элемента
                 }
             }
             this.Refresh();
         }
         else
         {
             SelList.Clear();        // очистка списков
             drawBox.Capture = true; // захват мышки
         }
     }
     // вызов контекстного меню
     if ((e.Button == MouseButtons.Right))
     {
         if (SelList.Count > 0)
         {
             Draws drw = DrawsList.PointInFigure(FstPnt);
             bool  ModifyFiguresNode = (drw != null) && drw.NodeChanging;
             if (drw != null)
             {
                 markerIndex = drw.MarkerIndex; SelMrkPnt = e.Location;
             }
             else
             {
                 markerIndex = 0;
             }
             miAddFigureNode.Visible = ModifyFiguresNode && (drw.MarkerIndex == 0);
             if (drw is Polygones)
             {
                 miDeleteFigureNode.Visible = ModifyFiguresNode && (drw.MarkerIndex < 0) &&
                                              (((Polygones)drw).Points.Count > 2);
             }
             else
             {
                 miDeleteFigureNode.Visible = false;
             }
             miBeginChangeNodes.Visible = (SelList.Count == 1) && (drw is Polygones) &&
                                          drw.CanNodeChanging() && !drw.NodeChanging;
             miEndChangeNodes.Visible = (SelList.Count == 1) && (drw is Polygones) && drw.NodeChanging;
             miGroupFigures.Enabled   = (SelList.Count > 1);
             miUngroupFigures.Enabled = drw is Groups;
             cmsFigPopup.Tag          = drw;
             cmsFigPopup.Show(drawBox, e.Location);
         }
         else
         {
             cmsBkgPopup.Show(drawBox, e.Location);
         }
     }
 }
示例#15
0
 public void AddFigure(Draws drw)
 {
     list.Add(drw);
 }