[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/03: installer: Simplify implementation of all the other network pages
From: |
Danny Milosavljevic |
Subject: |
03/03: installer: Simplify implementation of all the other network pages. |
Date: |
Fri, 7 Jul 2017 01:26:44 -0400 (EDT) |
dannym pushed a commit to branch wip-installer-2
in repository guix.
commit a71101e0ec030dc4b6b47dc2dcdc458914a86fd6
Author: Danny Milosavljevic <address@hidden>
Date: Fri Jul 7 07:22:16 2017 +0200
installer: Simplify implementation of all the other network pages.
* gnu/system/installer/ping.scm (ping-page-mouse-handler): Delete variable.
(ping-page-key-handler): Delete variable.
(ping-page-activate-focused-item): New variable. Export it.
* gnu/system/installer/network.scm (make-network-page): Use it here.
* gnu/system/installer/wireless.scm (wireless-page-mouse-handler): Delete
variable.
(wireless-page-key-handler): Delete variable.
(wireless-page-activate-focused-item): New variable.
(make-wireless-page): Use it here.
---
gnu/system/installer/network.scm | 5 ++--
gnu/system/installer/ping.scm | 55 +++++++++++----------------------------
gnu/system/installer/wireless.scm | 41 +++++++----------------------
3 files changed, 26 insertions(+), 75 deletions(-)
diff --git a/gnu/system/installer/network.scm b/gnu/system/installer/network.scm
index 2403112..17cafbe 100644
--- a/gnu/system/installer/network.scm
+++ b/gnu/system/installer/network.scm
@@ -42,7 +42,7 @@
(zero? (system* "dhclient" interface)))
-(define (make-network-page parent title)
+(define (make-network-page parent title)
(make-page (page-surface parent)
title
network-page-refresh
@@ -122,8 +122,7 @@
"Ping"
ping-page-refresh
0
- ping-page-key-handler
- ping-page-mouse-handler)))
+ #:activator ping-page-activate-focused-item)))
(page-enter next)))
('continue
;; Cancel the timer
diff --git a/gnu/system/installer/ping.scm b/gnu/system/installer/ping.scm
index a013527..36e92d1 100644
--- a/gnu/system/installer/ping.scm
+++ b/gnu/system/installer/ping.scm
@@ -30,8 +30,7 @@
#:export (substitute-is-reachable?)
#:export (ping-page-refresh)
- #:export (ping-page-key-handler)
- #:export (ping-page-mouse-handler))
+ #:export (ping-page-activate-focused-item))
(include "i18n.scm")
@@ -52,54 +51,30 @@
(continue ,(M_ "_Continue") #t)
(cancel ,(M_ "Canc_el") #t)))
-(define (ping-page-mouse-handler page device-id x y z button-state)
- 'ignored)
-
-(define (ping-page-key-handler page ch)
+(define (ping-page-activate-focused-item page)
(let ((nav (page-datum page 'navigation))
(test-window (page-datum page 'test-window)))
-
- (cond
- ((buttons-key-matches-symbol? nav ch 'cancel)
+ (match (buttons-selected-symbol nav)
+ ('cancel
;; Close the menu and return
- (page-leave))
-
- ((eq? ch KEY_RIGHT)
- (buttons-select-next nav))
-
- ((eq? ch #\tab)
- (cond
- ((eqv? (buttons-selected nav) (1- (buttons-n-buttons nav)))
- (buttons-unselect-all nav))
-
- (else
- (buttons-select-next nav))))
-
- ((eq? ch KEY_LEFT)
- (buttons-select-prev nav))
-
- ((eq? ch KEY_UP)
- (buttons-unselect-all nav))
-
- ((buttons-key-matches-symbol? nav ch 'continue)
+ (page-leave)
+ 'handled)
+ ('continue
(delwin (page-datum page 'test-window))
- (page-leave))
+ (page-leave)
+ 'handled)
- ((buttons-key-matches-symbol? nav ch 'test)
+ ('test
(let* ()
- (if (zero?
- (window-pipe test-window "ping" "ping" "-c" "3"
+ (if (zero? (window-pipe test-window "ping" "ping" "-c" "3"
(uri-host
(string->uri
(car %default-substitute-urls)))))
-
- (addstr test-window
- (G_ "Test successful. Network is working."))
- (addstr test-window
- (G_ "Test failed. No servers reached.")))
-
- (refresh* test-window)))) #f))
+ (addstr test-window (G_ "Test successful. Network is working."))
+ (addstr test-window (G_ "Test failed. No servers reached.")))
+ (refresh* test-window)
+ 'handled)))))
(define (ping-page-refresh page)
(when (not (page-initialised? page))
diff --git a/gnu/system/installer/wireless.scm
b/gnu/system/installer/wireless.scm
index 28825bb..1c0ec92 100644
--- a/gnu/system/installer/wireless.scm
+++ b/gnu/system/installer/wireless.scm
@@ -42,8 +42,7 @@
title
wireless-page-refresh
0
- wireless-page-key-handler
- wireless-page-mouse-handler)))
+ #:activator wireless-page-activate-focused-item)))
(page-set-datum! page 'ifce interface)
page))
@@ -51,36 +50,13 @@
(define my-buttons `((cancel ,(M_ "Canc_el") #t)))
-(define (wireless-page-mouse-handler page device-id x y z button-state)
- 'ignored)
-
-(define (wireless-page-key-handler page ch)
+(define (wireless-page-activate-focused-item page)
(let ((nav (page-datum page 'navigation))
(menu (page-datum page 'menu))
(test-window (page-datum page 'test-window)))
(cond
- ((eq? ch KEY_RIGHT)
- (buttons-select-next nav))
-
- ((eq? ch #\tab)
- (cond
- ((eqv? (buttons-selected nav) (1- (buttons-n-buttons nav)))
- (buttons-unselect-all nav))
-
- (else
- (buttons-select-next nav))))
-
- ((eq? ch KEY_LEFT)
- (buttons-select-prev nav))
-
- ((eq? ch KEY_UP)
- (buttons-unselect-all nav))
-
- ((buttons-key-matches-symbol? nav ch 'cancel)
- (page-leave))
-
- ((select-key? ch)
+ ((menu-active menu)
(let ((ap (menu-get-current-item menu))
(ifce (page-datum page 'ifce)))
(if (assq-ref ap 'encryption)
@@ -94,11 +70,12 @@
(and (zero? (system* "ip" "link" "set" ifce "up"))
(zero? (system* "iw" "dev" ifce "connect" (assq-ref ap
'essid)))
(dhclient ifce))
- (page-leave))))))
-
- (std-menu-key-handler menu ch)
-
- #f))
+ (page-leave)))))
+ (else
+ (match (buttons-selected-symbol nav)
+ ('cancel
+ (page-leave)
+ 'handled))))))
(define (wireless-page-refresh page)
(when (not (page-initialised? page))