From: Amélia Coutard-Sander <git@ameliathe1st.gay>
Date: Sun, 12 Jan 2025 02:52:40 +0000 (+0100)
Subject: Aide visuelle de quelle touche utiliser en mode insertion
X-Git-Url: https://git.ameliathe1st.gay/?a=commitdiff_plain;h=127780f529a946396f7cb60a18b83ada1e14aea9;p=cells.git

Aide visuelle de quelle touche utiliser en mode insertion
---

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