[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))))