/** crée le label associée à l'icone (nom de l'icone) **/ public TextBlock creerLabel(Icone icone) { // création label : nom de l'icone TextBlock labelIcone = new TextBlock(); labelIcone.SetValue(TextBlock.TextProperty, icone.NomIcone); // police du label labelIcone.FontFamily = new FontFamily("Segoe UI"); labelIcone.Foreground = new SolidColorBrush(Colors.Black); labelIcone.FontSize = 24; // positionnement du label labelIcone.TextAlignment = TextAlignment.Center; labelIcone.VerticalAlignment = VerticalAlignment.Center; labelIcone.HorizontalAlignment = HorizontalAlignment.Center; labelIcone.TextWrapping = TextWrapping.Wrap; // labelIcone.SetValue(TextBlock.FontWeightProperty, "Bold"); //labelIcone.SetValue(TextBlock.ForegroundProperty, "Black"); labelIcone.SetValue(TextBlock.FontSizeProperty, 24); return(labelIcone); }
// pageGrille(numPage) retourne un tableau contenant les icones de la page numPage dans l'ordre public Icone[] pageGrille() { Icone[] pageGrille = new Icone[this.nbCasesGrille()]; for (int i = 0; i < this.nbCasesGrille(); i++) { pageGrille[i] = Icone.IconeVide(); } //vérification : la page demandée existe-t-elle ? if (numGrille < this.nbPagesGrille()) { // index min et max de la page numPage int indexMin = numGrille * this.nbCasesGrille(); int indexMax = indexMin + this.nbCasesGrille() - 1; foreach (int key in icones.Keys) { if (key >= indexMin && key <= indexMax) { pageGrille[key % nbCasesGrille()] = this.icones[key]; } } } return(pageGrille); }
//événement qui gère le click sur un bouton //affiche l'icone double clickée sur le bouton private void choixPositionIcone(object sender, RoutedEventArgs e) { if (this.choixPosition) // si l'utilisateur est en train d'ajouter une nouvelle icone { // mémorise le bouton et le nom de fichier de l'image sélectionnée this.b = sender as Button; //this.nom = image.Name.Replace("é", "."); // icone : icone correspondant au bouton cliqué this.indexNouvelleIcone = (int)b.Tag; Icone icone0 = g.pageGrille()[this.indexNouvelleIcone]; // Si il y a déjà une icone dans la case : if (!(icone0.EstVide())) { // Message message.Text = "Il y a déjà une icône sur cet emplacement. Veuillez choisir un emplacement libre."; messageBox.Visibility = Visibility.Visible; } // Sinon : click sur icone vide, l'icone peut être ajoutée else { // affiche la boite de dialogue permettant à l'utilisateur d'entrer le nom de l'icone message.Text = "Veuillez attribuer un nom à l'icone."; nomIcone.Visibility = Visibility.Visible; Valider.Visibility = Visibility.Visible; } } }
public static Icone IconeVide() { Icone icone = new Icone(); icone.vide = true; return(icone); }
// Insère l'Icone icone à la case index public void addIcone(Icone icone, int index) { if (this.icones.ContainsKey(index)) { this.icones.Remove(index); } this.icones.Add(index, icone); }
public void CreepageSuivante() { numGrille++; if (this.numGrille == this.nbPagesGrille() - 1) { int ind = this.numGrille * nbCasesGrille() + 1; this.addIcone(Icone.IconeVide(), ind); } }
// ajout de l'icone (attribut de classe) dans la grille de la page d'accueil private void ajouterIcone(String nomIcone) { Icone iconeAjout = new Icone(nomIcone, this.nom, 64); //création de la page associée à l'icone MainPage.Configuration.ajouterPiece(iconeAjout, indexNouvelleIcone, this.g.NumGrille); //this.choixPosition = false; this.Frame.Navigate(typeof(GestionIcones)); }
private void ajouterEquip(object sender, RoutedEventArgs e) { int indexClick = (int)b.Tag; Icone icone = g.pageGrille()[indexClick]; if (icone.Navigation != null) { MainPage.Configuration.arbre.PageCourante = icone.Navigation.PageFils; this.Frame.Navigate(typeof(GestionIcones2)); } }
/**affichage de l'icone dans la grille grid * Icone icone : icone à afficher * Button bouton : bouton où l'afficher * **/ public void afficherIcone(Icone icone, Button bouton) { Image image = creerImage(icone, bouton); TextBlock labelIcone = creerLabel(icone); ajouterImageBouton(bouton, image, labelIcone); Brush boutonActif = new SolidColorBrush(theme.Couleur.CouleurBoutonActif); bouton.SetValue(Button.BackgroundProperty, boutonActif); }
// Attribue le gestionnaire d'évenement IconeClick à tous les boutons de la grille private void attribueHandler() { foreach (Button bouton in this.listeBoutons) { int indexClick = (int)bouton.Tag; Icone icone = grille.pageGrille()[indexClick]; if (!(icone.EstVide())) { bouton.Click += IconeClick; } } }
private void attribueHandler() { foreach (Button bouton in this.listeBoutons) { int indexClick = (int)bouton.Tag; Icone icone = g.pageGrille()[indexClick]; if (!(icone.EstVide())) { bouton.Click += Menu; } bouton.Click += choixPositionIcone; } }
// private void IconeClick(object sender, RoutedEventArgs e) { Button boutonClick = sender as Button; // icone : icone correspondant au bouton cliqué int indexClick = (int)boutonClick.Tag; Icone icone = grille.pageGrille()[indexClick]; // Si icone de navigation : changement de page if (icone.Navigation != null) { configuration.arbre.PageCourante = icone.Navigation.PageFils; this.Frame.Navigate(typeof(MainPage)); } if (icone.Action != null) { } }
/**A partir de l'icone, crée l'image adapté à la taille du Bouton**/ public Image creerImage(Icone icone, Button bouton) { // creation de l'image Image image = new Image(); BitmapImage SourceBi = new BitmapImage(); SourceBi.UriSource = icone.Uri; image.Source = SourceBi; // empeche l'icone de depasser du contour du bouton double hauteur = bouton.Height; double largeur = bouton.Width; image.SetValue(Image.HeightProperty, 0.5 * hauteur); image.SetValue(Image.WidthProperty, 0.5 * hauteur); return(image); }
private void enleverIcone2(object sender, RoutedEventArgs e) { if (!choixPosition) { Options2.Visibility = Visibility.Collapsed; Supprimer2.IsEnabled = false; ChangerNom2.IsEnabled = false; // icone : icone correspondant au bouton cliqué this.indexNouvelleIcone = (int)b.Tag; this.icone = g.pageGrille()[this.indexNouvelleIcone]; if (!(icone.EstVide())) { // retire l'icone de la grille et la remplace par une icone vide g.pageGrille()[this.indexNouvelleIcone] = Icone.IconeVide(); MainPage.Configuration.enleverEquip(this.pageCourante, indexNouvelleIcone, this.g.NumGrille); this.Frame.Navigate(typeof(GestionIcones)); } } }
private void changerNomIcone2(object sender, RoutedEventArgs e) { if (!choixPosition) { Options2.Visibility = Visibility.Collapsed; Supprimer2.IsEnabled = false; ChangerNom2.IsEnabled = false; // mémorise l'index de l'icone à créer (ou changer de nom) this.indexNouvelleIcone = (int)b.Tag; this.icone = g.pageGrille()[this.indexNouvelleIcone]; if (!this.icone.EstVide()) // click sur icone existante : on peut changer son nom { // Message message2.Text = "Veuillez attribuer un nom à l'icone."; nomIcone2.Visibility = Visibility.Visible; Valider2.Visibility = Visibility.Visible; } } }
public void ajouterPiece(Icone icone, int index, int numPage) { // Piece piece = new Piece(icone.NomIcone); //Piece piece = new Piece(icone.NomIcone); // on associe une nouvelle page à l'icone et on l'ajoute à l'arbre Vue pagePiece = new Vue(icone.NomIcone); icone.Navigation = new Navigation(pagePiece); icone.Action = (Action)null; // arbre.ajouterVue(arbre.Racine, pagePiece); //arbre.ajouterVue(arbre.Racine, pagePiece); // ajoute une icone (associee à la pièce) à la grille de la page d'accueil + à la liste Configuration.pieces ajouterIcone(arbre.Racine, icone, index, numPage); //Pieces.Add(piece); }
public void ajouterEquipement(Vue pagePiece, Icone icone, int index, int numPage) { // Equipement equip = new Equipement(icone.nomIcone); Vue pageEquip = new Vue(icone.NomIcone); // ajoute une page (associée à l'équipement) à l'arbre // Arbre a = Arbre.arbreVue(pagePiece); // on trouve la pièce dans l'arbre global grâce à la Vue pagePiece de la pièce dans laquelle on souhaite mettre l'équipement // ajoute une page (associée à l'équipement) à l'arbre //Arbre a = Arbre.arbreVue(pagePiece); // on trouve la pièce dans l'arbre global grâce à la Vue pagePiece de la pièce dans laquelle on souhaite mettre l'équipement //a.Fils.Add(new Arbre(pageEquip)); // on ajoute l'équipement à la liste des fils de la Vue pagePiece arbre.ajouterVue(pagePiece, pageEquip); // ajoute une icone (associee à l'equipement) a la grille de la page de la piece + à la liste Configuration.equipements pagePiece.ajouterIcone(icone, index, numPage); // on ajoute l'icone à la grille de la Vue de la pièce //Equipements.Add(equipmt); // on ajoute l'équipement à la liste globale des équipements // ajoute l'équipement à la liste des équipements de la pièce associée // piece.addDevice(equipmt); }
public void ajouterIcone(Icone icone, int index, int numPage) { this.grille.addIcone(icone, index, numPage); }
// Insère l'Icone icone à la case index de la page numPage public void addIcone(Icone icone, int index, int numPage) { int i = nbCasesGrille() * numPage + index; this.addIcone(icone, i); }
// ajouter une icone à la grille de la page public void ajouterIcone(Icone icone, int index) { this.grille.addIcone(icone, index); }
public void ajouterAction(Vue pageEquip, Vue pageAction, Equipement equipmt, Action action, Icone icone, int index) { // ajoute une icone (associee à l'action) a la grille de la page de l'equipement + + à la liste Configuration.actions pageEquip.ajouterIcone(icone, index); // on ajoute l'icone à la grille de la Vue de l'équipement Actions.Add(action); // on ajoute l'équipement à la liste globale des équipements // ajoute l'action à la liste des action de l'équipement associé equipmt.addAction(action); }
// ajouter une icone à la grille de la page à partir de l'index et le numéro de page de la grille public void ajouterIcone(Vue page, Icone icone, int index, int numPage) { page.ajouterIcone(icone, index, numPage); }