Exemplo n.º 1
0
        /// <summary>
        /// Permet de valider la sauvegarde ou de revenir à l'état précédent.
        /// Permet également d'entrer le prochain caractère ou d'effacer le dernier pour donner le nom de la sauvegarde.
        /// Les caractères autorisés sont les espaces, les lettres minuscules et majuscules et les chiffres.
        /// </summary>
        /// <param name="e"> L'objet détaillant l'évènement </param>
        /// <returns> Vrai si aucune action n'a été déclenchée </returns>
        public override bool KeyPressed(KeyPressEventArgs e)
        {
            var fetching = true;

            // Annuler la sauvegarde
            if (e.KeyChar == InputHandler.EscapeCode)
            {
                fetching = false;
                Form.SetState(_state);
            }
            // Finaliser la sauvegarde
            else if (e.KeyChar == InputHandler.EnterCode)
            {
                fetching = false;
                GameSave.Add(_name);
                Form.SetState(_state);
            }
            // Effacer la dernière lettre
            else if (e.KeyChar == 8 && _name.Length > 0)
            {
                fetching = false;
                _name    = _name.Substring(0, _name.Length - 1);
            }
            // Caractères autorisés
            else if (((e.KeyChar >= 97 && e.KeyChar <= 124) ||        // Minuscules
                      (e.KeyChar >= 65 && e.KeyChar <= 90) ||         // Majuscules
                      (e.KeyChar >= 48 && e.KeyChar <= 57) ||         // Chiffres (du pavé numérique)
                      e.KeyChar == 32) && _name.Length < MaxSizeName) // Espace
            {
                fetching = false;
                _name   += e.KeyChar;
            }
            _nameText = new Text(_name, 30);

            return(fetching);
        }