コード例 #1
0
ファイル: FeuilleDessin.cs プロジェクト: istrk33/node-editor
        private void FeuilleDessin_MouseDown(object sender, MouseEventArgs e)
        {
            Outil.selection = Selection(e.Location);
            if (deplacer.Checked)
            {
                Outil.enMouvement = Outil.selection != null;
                if (Outil.selection != null)
                {
                    epaisseur        = Outil.selection.epaisseur;
                    couleurSelection = Outil.selection.couleur;
                }
            }
            else if (supprimer.Checked)
            {
                Outil.enSuppression = Outil.selection != null;
            }
            else
            {
                //SI ON CLIQUE GAUCHE
                if (e.Button == MouseButtons.Left)
                {
                    if (Outil.selection == null)
                    {
                        Noeud noeud =
                            new Noeud
                        {
                            position  = e.Location,
                            taille    = new Size(20, 20),
                            epaisseur = Outil.EpaisseurParDefaut,
                            couleur   = Outil.couleurParDefaut,
                            texte     = Outil.texteNoeud
                        };
                        Outil.mesNoeuds.Add(noeud);

                        Action action = new Action {
                            TypeAction = Type_Action.Créer, Objet = noeud
                        };
                        actionsEffectuées.Push(action);

                        Console.WriteLine(!textChanged);
                        if (!textChanged)
                        {
                            Outil.texteNoeud = Outil.mesNoeuds.Count.ToString();;
                        }
                    }
                    else
                    {
                        Outil.enDessinTrait = true;
                    }
                }
                //CLIC GAUCHE AVEC MENU
                else if (Outil.selection != null)
                {
                    ContextMenuStrip cm = new ContextMenuStrip();
                    foreach (string libel in new string[] { "Supprimer", "Modifier" })
                    {
                        ToolStripMenuItem element = new ToolStripMenuItem(libel);
                        element.Click += elementClick;
                        cm.Items.Add(element);
                    }
                    cm.Show(this, e.Location);
                }
            }
            Refresh();
        }
コード例 #2
0
ファイル: FeuilleDessin.cs プロジェクト: istrk33/node-editor
        private void FeuilleDessin_MouseUp(object sender, MouseEventArgs e)
        {
            //GESTION TRAIT DESSIN
            if (Outil.enDessinTrait)
            {
                //SUR NOEUD EXISTANT
                Noeud fin = Selection(e.Location);
                if (fin != null && !fin.Equals(Outil.selection))
                {
                    Trait intermediaire;
                    Outil.mesTraits.Add(intermediaire = new Trait
                    {
                        source      = Outil.selection,
                        destination = fin
                    });
                    Action action = new Action {
                        TypeAction = Type_Action.Créer, Objet = intermediaire
                    };
                    actionsEffectuées.Push(action);
                }
                //SUR SUR AUCUN NOEUD
                else if (fin == null)
                {
                    Noeud noeudTraitTmp;
                    Outil.mesNoeuds.Add(noeudTraitTmp = new Noeud {
                        position = e.Location, taille = new Size(20, 20), epaisseur = Outil.EpaisseurParDefaut, couleur = Outil.couleurParDefaut, texte = Outil.texteNoeud
                    });

                    Action action = new Action {
                        TypeAction = Type_Action.Créer, Objet = noeudTraitTmp
                    };
                    actionsEffectuées.Push(action);

                    Trait intermediaire;
                    Outil.mesTraits.Add(intermediaire = new Trait {
                        source = Outil.selection, destination = noeudTraitTmp
                    });

                    Action action2 = new Action {
                        TypeAction = Type_Action.Créer, Objet = intermediaire
                    };
                    actionsEffectuées.Push(action2);

                    if (!textChanged)
                    {
                        Outil.texteNoeud = Outil.mesNoeuds.Count.ToString();;
                    }
                }
                Outil.enDessinTrait = false;
            }
            //DEPLACEMENT A LA NOUVELLE POSITION
            else if (Outil.enMouvement)
            {
                Outil.enMouvement         = false;
                Outil.selection.couleur   = couleurSelection;
                Outil.selection.epaisseur = epaisseur;

                Outil.selection = null;
            }
            //SUPPRESSION DE NOEUD
            else if (Outil.enSuppression)
            {
                List <Trait> traitsDuNoeud = new List <Trait>();
                foreach (Trait t in Outil.mesTraits)
                {
                    if (t.source.Equals(Outil.selection) || t.destination.Equals(Outil.selection))
                    {
                        traitsDuNoeud.Add(t);
                    }
                }
                traitsDuNoeud.ForEach(t => Outil.mesTraits.Remove(t));
                Outil.mesNoeuds.Remove(Outil.selection);
            }
            Refresh();
        }