From 127780f529a946396f7cb60a18b83ada1e14aea9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Am=C3=A9lia=20Coutard-Sander?= Date: Sun, 12 Jan 2025 03:52:40 +0100 Subject: [PATCH] Aide visuelle de quelle touche utiliser en mode insertion --- README.txt | 3 ++- bin/modes.ml | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 35611f1..a1e370d 100644 --- a/README.txt +++ b/README.txt @@ -46,7 +46,8 @@ valeur des différentes cases: ESC -> Reviens en mode normal. Tout autre caractère est converti en un type de case, et écrit dans la case actuelle avant de passer à la case de - droite. + droite. (La clé de conversion est indiquée en bas à + gauche.) J'accepterai avec plaisir les contributions utiles envoyées par mail (via git send-mail) à mon adresse personelle (indiquée sur mon site). diff --git a/bin/modes.ml b/bin/modes.ml index dede866..d9641f9 100644 --- a/bin/modes.ml +++ b/bin/modes.ml @@ -252,7 +252,22 @@ and Insert : (Mode with type initer = int) = struct let initial col = { col } - let render st _ = render_world st + let render (EditorState (m, st)) _ = + let module M = (val m) in + render_world (EditorState (m, st)); + let cell_types = + List.init 256 Char.chr |> List.filter_map (fun c -> M.of_char c |> Option.map (fun c' -> (c, c'))) + in + List.iteri + (fun i (c, c') -> + let r, g, b = M.color c' in + let r, g, b = (int_of_char r, int_of_char g, int_of_char b) in + Graphics.set_color (Graphics.rgb r g b); + Graphics.fill_rect (10 + (25 * i)) 10 25 25; + Graphics.set_color (Graphics.rgb 127 127 127); + Graphics.moveto (10 + (25 * i) + 8) 20; + Graphics.draw_string (String.make 1 c)) + cell_types let update (EditorState (m, st)) { col } = let module M = (val m) in -- 2.46.0