guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

18/26: gurses: Populate the choices box in forms.


From: John Darrington
Subject: 18/26: gurses: Populate the choices box in forms.
Date: Sun, 22 Jan 2017 12:09:25 +0000 (UTC)

jmd pushed a commit to branch wip-installer
in repository guix.

commit 3b47940b223ccc61e6e4726ed3bfa64c911560fc
Author: John Darrington <address@hidden>
Date:   Thu Jan 19 08:27:13 2017 +0100

    gurses: Populate the choices box in forms.
    
    * gurses/form.scm (make-form): Populate the choices box.
---
 gurses/form.scm |   20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/gurses/form.scm b/gurses/form.scm
index a92a00b..25ed4ff 100644
--- a/gurses/form.scm
+++ b/gurses/form.scm
@@ -128,12 +128,24 @@ label eq? to N"
                         (lambda (x)
                            (match x
                                   ((symbol label (? list? things))
-                                   (make-field symbol label
-                                               (apply max
+                                   (let ((width (apply max
                                                       (map (lambda (x)
                                                              (string-length x))
-                                                           things))
-                                               things #f "" 0))
+                                                           things))))
+                                   (make-field symbol label width things
+                                               (let ((p
+                                                      (newwin (+ 2 (length 
things))
+                                                              (+ 2 width) 0 0 
#:panel #t)))
+                                                 (box p 0 0)
+                                                 (let loop ((ll things)
+                                                            (y 0))
+                                                   (if (not (null? ll))
+                                                       (begin
+                                                         (addstr p (car ll)
+                                                                 #:y (1+ y) 
#:x 1)
+                                                         (loop (cdr ll) (1+ 
y)))))
+                                                 p)
+                                               "" 0)))
                                   ((symbol label (? integer? size))
                                    (make-field symbol label size #f #f "" 0))))
                         items)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]