mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
installer: Limit listbox height.
Fixes: <https://issues.guix.gnu.org/44428>. * gnu/installer/newt.scm (init): Print screen size. * gnu/installer/newt/page.scm (default-listbox-height): New variable. (run-listbox-selection-page): Use it. * gnu/installer/newt/wifi.scm (wifi-listbox-height): Ditto. * gnu/installer/newt/network.scm (run-technology-page): Set the maximum listbox height to 5. * gnu/installer/newt/ethernet.scm (run-ethernet-page): Ditto. * gnu/installer/newt/final.scm (run-config-display-page): Change listbox height. * gnu/installer/newt/partition.scm (run-disk-page): Ditto. * gnu/installer/newt/welcome.scm (display-logo?): New procedure. (run-menu-page): Use it. * gnu/installer/steps.scm (%configuration-file-width): Remove it.
This commit is contained in:
parent
afa77bd228
commit
ae0fe289d3
9 changed files with 24 additions and 12 deletions
|
@ -46,6 +46,7 @@ (define (init)
|
|||
(newt-init)
|
||||
(clear-screen)
|
||||
(set-screen-size!)
|
||||
(syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows))
|
||||
(push-help-line
|
||||
(format #f (G_ "Press <F1> for installation parameters."))))
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ (define (run-ethernet-page)
|
|||
#:title (G_ "Ethernet connection")
|
||||
#:listbox-items services
|
||||
#:listbox-item->text ethernet-service->text
|
||||
#:listbox-height (min (+ (length services) 2) 10)
|
||||
#:listbox-height (min (+ (length services) 2) 5)
|
||||
#:button-text (G_ "Exit")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
|
|
|
@ -40,9 +40,8 @@ (define* (strip-prefix file #:optional (prefix (%installer-target-dir)))
|
|||
file))
|
||||
|
||||
(define* (run-config-display-page #:key locale)
|
||||
(let ((width (%configuration-file-width))
|
||||
(height (nearest-exact-integer
|
||||
(/ (screen-rows) 2))))
|
||||
(let ((width (max 70 (- (screen-columns) 20)))
|
||||
(height (default-listbox-height)))
|
||||
(run-file-textbox-page
|
||||
#:info-text (format #f (G_ "\
|
||||
We're now ready to proceed with the installation! \
|
||||
|
|
|
@ -80,7 +80,7 @@ (define (technology-items)
|
|||
#:title (G_ "Internet access")
|
||||
#:listbox-items items
|
||||
#:listbox-item->text technology->text
|
||||
#:listbox-height (min (+ (length items) 2) 10)
|
||||
#:listbox-height (min (+ (length items) 2) 5)
|
||||
#:button-text (G_ "Exit")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
|
|
|
@ -32,7 +32,9 @@ (define-module (gnu installer newt page)
|
|||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (newt)
|
||||
#:export (draw-info-page
|
||||
#:export (default-listbox-height
|
||||
|
||||
draw-info-page
|
||||
draw-connecting-page
|
||||
run-input-page
|
||||
run-error-page
|
||||
|
@ -168,6 +170,10 @@ (define title
|
|||
(_
|
||||
(values reason argument))))))
|
||||
|
||||
(define (default-listbox-height)
|
||||
"Return the default listbox height."
|
||||
(max 5 (- (screen-rows) 20)))
|
||||
|
||||
(define (draw-info-page text title)
|
||||
"Draw an informative page with the given TEXT as content. Set the title of
|
||||
this page to TITLE."
|
||||
|
@ -339,7 +345,8 @@ (define* (run-listbox-selection-page #:key
|
|||
(info-textbox-width 50)
|
||||
listbox-items
|
||||
listbox-item->text
|
||||
(listbox-height 20)
|
||||
(listbox-height
|
||||
(default-listbox-height))
|
||||
(listbox-default-item #f)
|
||||
(listbox-allow-multiple? #f)
|
||||
(sort-listbox-items? #t)
|
||||
|
|
|
@ -681,7 +681,7 @@ (define (hotkey-action key listbox-item)
|
|||
(G_ "Guided partitioning")
|
||||
(G_ "Manual partitioning"))
|
||||
#:info-textbox-width 76 ;we need a lot of room for INFO-TEXT
|
||||
#:listbox-height 12
|
||||
#:listbox-height (max 5 (- (screen-rows) 30))
|
||||
#:listbox-items (disk-items)
|
||||
#:listbox-item->text cdr
|
||||
#:sort-listbox-items? #f
|
||||
|
|
|
@ -38,6 +38,9 @@ (define logo-height (make-parameter 19))
|
|||
(define info-textbox-width (make-parameter 70))
|
||||
(define options-listbox-height (make-parameter 5))
|
||||
|
||||
(define (display-logo?)
|
||||
(> (screen-rows) 35))
|
||||
|
||||
(define* (run-menu-page title info-text logo
|
||||
#:key
|
||||
listbox-items
|
||||
|
@ -55,7 +58,10 @@ (define (fill-listbox listbox items)
|
|||
items))
|
||||
|
||||
(let* ((logo-textbox
|
||||
(make-textbox -1 -1 (logo-width) (logo-height) 0))
|
||||
(make-textbox -1 -1
|
||||
(if (display-logo?) (logo-width) 0)
|
||||
(if (display-logo?) (logo-height) 0)
|
||||
0))
|
||||
(info-textbox
|
||||
(make-reflowed-textbox -1 -1
|
||||
info-text
|
||||
|
|
|
@ -165,7 +165,8 @@ (define* (fill-wifi-services listbox wifi-services)
|
|||
(define service-name-max-length (make-parameter 20))
|
||||
|
||||
;; Height of the listbox displaying wifi services.
|
||||
(define wifi-listbox-height (make-parameter 20))
|
||||
(define wifi-listbox-height (make-parameter
|
||||
(default-listbox-height)))
|
||||
|
||||
;; Information textbox width.
|
||||
(define info-textbox-width (make-parameter 40))
|
||||
|
|
|
@ -50,7 +50,6 @@ (define-module (gnu installer steps)
|
|||
|
||||
%installer-configuration-file
|
||||
%installer-target-dir
|
||||
%configuration-file-width
|
||||
format-configuration
|
||||
configuration->file))
|
||||
|
||||
|
@ -218,7 +217,6 @@ (define (result-step-done? results step-id)
|
|||
|
||||
(define %installer-configuration-file (make-parameter "/mnt/etc/config.scm"))
|
||||
(define %installer-target-dir (make-parameter "/mnt"))
|
||||
(define %configuration-file-width (make-parameter 79))
|
||||
|
||||
(define (format-configuration steps results)
|
||||
"Return the list resulting from the application of the procedure defined in
|
||||
|
|
Loading…
Reference in a new issue