La démo "DLR Console" de Silverlight 1.1 Alpha et les Key Mappings Français...

Si vous avez déjà tenté de jouer avec la démo DLR Console fournie avec Silverlight 1.1 Alpha (code source), vous avez sans doute remarqué quelques petits soucis au niveau de la saisie du code au clavier... Et pour cause !

Cette application est entièrement écrite en Python - oui, c'est une application écrite en langage dynamique et qui tourne dans le DLR elle-même - et puisque pour le moment, nous ne disposons pas de contrôles genre TextBox ou RichTextBox en Silverlight, son auteur a contourné le problème en interprêtant les codes touches et en renvoyant les caractères correspondants.

Ca marche a priori assez bien pour les key mappings US, mais avec un Windows en Français, c'est la cata.

J'ai passé un peu de temps ce matin à adapter ce sample à un Windows Français, et je vous partage les modifs à effectuer. Il vous suffira d'aller éditer le source DLRConsole.py, de plonger vers la ligne 903 ou démarre la fonction make_pkeys et de remplacer les valeurs comme suit :

    def make_pkeys(self):
# we don't need to detect platform as the platformKeyCodes that
# we're interested appear to be distinct sets on windows and mac
# with no overlap so we just support both of them.
#
# windows_code = mac_code = values
pkeys = {}
pkeys[186] = pkeys[41] = '$','£'
pkeys[187] = pkeys[24] = '=','+'
pkeys[188] = pkeys[43] = ',', '?'
pkeys[189] = pkeys[27] = '-', '_'
pkeys[190] = pkeys[47] = ';', '.'
pkeys[191] = pkeys[44] = ':', '/'
pkeys[192] = pkeys[50] = 'ù', '%'
pkeys[219] = pkeys[33] = ')', '°'
pkeys[220] = pkeys[42] = '*', 'µ'
pkeys[221] = pkeys[30] = '^', '¨'
pkeys[222] = pkeys[39] = "²", ''
pkeys[223] = pkeys[40] = "!", "§"
pkeys[226] = pkeys[41] = '<', '>'

Voilà.

Et pour moi, ça signifie de pouvoir faire des démos de cette application pendant le Tour de France Silverlight sans déclencher le fou rire dans la salle, contrairement à ce qui s'est passé à Lille la semaine dernière. Avec mes remerciements à nos amis Lillois pour leur patience et leur bonne humeur ;)

PS : Je n'ai fait l'adaptation que pour les key mapping sur Windows. Pas encore pris le temps de le faire depuis mon Mac... Better be warned.