guix-commits
[Top][All Lists]
Advanced

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

01/01: installer: form: Factor out maybe-run-modal-popup from form-set-c


From: Danny Milosavljevic
Subject: 01/01: installer: form: Factor out maybe-run-modal-popup from form-set-current-field.
Date: Wed, 5 Jul 2017 04:48:22 -0400 (EDT)

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

commit 02ce0104da8ef40fdb90f2d3d6916b33593d6e30
Author: Danny Milosavljevic <address@hidden>
Date:   Wed Jul 5 10:47:26 2017 +0200

    installer: form: Factor out maybe-run-modal-popup from 
form-set-current-field.
    
    * gurses/form.scm (maybe-run-modal-popup): New variable.
    (form-set-current-field): Use it here.
---
 gurses/form.scm | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/gurses/form.scm b/gurses/form.scm
index 43982f6..26f2a70 100644
--- a/gurses/form.scm
+++ b/gurses/form.scm
@@ -257,16 +257,14 @@ label eq? to N"
   (if (not (panel? win))
       (make-panel! win)))
 
-(define (form-set-current-field form which)
-  (let* ((old-field  (get-current-field form))
-         (popup (field-popup old-field)))
-    (when popup
-          (hide-panel popup)))
-  (form-set-current-item! form which)
+(define (maybe-run-modal-popup form which)
+  "Check whether the field at index WHICH has a popup menu.
+If so, show it, run a modal popup menu, then hide it again.
+Set the field value to the newly selected value."
   (let* ((new-field  (array-ref (form-items form) which))
          (popup (field-popup new-field))
-         (win (form-window form))
-         (menu (field-menu new-field)))
+         (menu (field-menu new-field))
+         (win (form-window form)))
     (when popup
           (ensure-panel! popup)
           (show-panel popup)
@@ -290,6 +288,13 @@ label eq? to N"
                   (doupdate)
                   (loop (getch win))))))))
 
+(define (form-set-current-field form which)
+  (let* ((old-field  (get-current-field form))
+         (popup (field-popup old-field)))
+    (when popup
+          (hide-panel popup)))
+  (form-set-current-item! form which)
+  (maybe-run-modal-popup form which))
 
 (define (form-next-field form)
   (if (< (form-current-item form) (1- (array-length (form-items form))))



reply via email to

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