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(); }
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(); }