guix-commits
[Top][All Lists]
Advanced

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



reply via email to

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