aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/installer/newt/welcome.scm58
1 files changed, 27 insertions, 31 deletions
diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm
index 8ed9f68918..3a0e45e198 100644
--- a/gnu/installer/newt/welcome.scm
+++ b/gnu/installer/newt/welcome.scm
@@ -26,20 +26,14 @@
#:use-module (newt)
#:export (run-welcome-page))
-;; Margin between screen border and newt root window.
-(define margin-left (make-parameter 3))
-(define margin-top (make-parameter 3))
-
;; Expected width and height for the logo.
-(define logo-width (make-parameter 50))
-(define logo-height (make-parameter 23))
+(define logo-width (make-parameter 43))
+(define logo-height (make-parameter 19))
-(define (nearest-exact-integer x)
- "Given a real number X, return the nearest exact integer, with ties going to
-the nearest exact even integer."
- (inexact->exact (round x)))
+(define info-textbox-width (make-parameter 70))
+(define options-listbox-height (make-parameter 5))
-(define* (run-menu-page title logo
+(define* (run-menu-page title info-text logo
#:key
listbox-items
listbox-item->text)
@@ -55,30 +49,27 @@ we want this page to occupy all the screen space available."
(cons key item)))
items))
- (let* ((windows
- (make-window (margin-left)
- (margin-top)
- (- (screen-columns) (* 2 (margin-left)))
- (- (screen-rows) (* 2 (margin-top)))
- title))
- (logo-textbox
- (make-textbox (nearest-exact-integer
- (- (/ (screen-columns) 2)
- (+ (/ (logo-width) 2) (margin-left))))
- (margin-top) (logo-width) (logo-height) 0))
- (text (set-textbox-text logo-textbox
- (read-all logo)))
+ (let* ((logo-textbox
+ (make-textbox -1 -1 (logo-width) (logo-height) 0))
+ (info-textbox
+ (make-reflowed-textbox -1 -1
+ info-text
+ (info-textbox-width)))
(options-listbox
- (make-listbox (margin-left)
- (+ (logo-height) (margin-top))
- (- (screen-rows) (+ (logo-height)
- (* (margin-top) 4)))
+ (make-listbox -1 -1
+ (options-listbox-height)
(logior FLAG-BORDER FLAG-RETURNEXIT)))
(keys (fill-listbox options-listbox listbox-items))
+ (grid (vertically-stacked-grid
+ GRID-ELEMENT-COMPONENT logo-textbox
+ GRID-ELEMENT-COMPONENT info-textbox
+ GRID-ELEMENT-COMPONENT options-listbox))
(form (make-form)))
- (set-listbox-width options-listbox (- (screen-columns)
- (* (margin-left) 4)))
- (add-components-to-form form logo-textbox options-listbox)
+
+ (set-textbox-text logo-textbox (read-all logo))
+
+ (add-form-to-grid grid form #t)
+ (make-wrapped-grid-window grid title)
(receive (exit-reason argument)
(run-form form)
@@ -102,6 +93,11 @@ the page. Ask the user to choose between manual installation, graphical
installation and reboot."
(run-menu-page
(G_ "GNU GuixSD install")
+ (G_ "Welcome to GNU GuixSD installer!
+
+Please note that the present graphical installer is still under heavy \
+development, so you might want to fallback to the classical installer by \
+pressing CTRL-ALT-F3.")
logo
#:listbox-items
`((,(G_ "Install using the unguided shell based process")