Date: Thu, 8 Aug 2013 22:34:00 +0000 (UTC) From: Devin Teske <dteske@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254108 - head/sys/boot/forth Message-ID: <201308082234.r78MY0hF087785@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dteske Date: Thu Aug 8 22:34:00 2013 New Revision: 254108 URL: http://svnweb.freebsd.org/changeset/base/254108 Log: Update legacy static assignments in old code to support dynamic framing, plotting, and alignment coinciding with enhancements in SVN r242667. Modified: head/sys/boot/forth/menu.4th head/sys/boot/forth/menu.4th.8 Modified: head/sys/boot/forth/menu.4th ============================================================================== --- head/sys/boot/forth/menu.4th Thu Aug 8 22:29:35 2013 (r254107) +++ head/sys/boot/forth/menu.4th Thu Aug 8 22:34:00 2013 (r254108) @@ -35,6 +35,8 @@ f_double \ Set frames to double ( \ f_single if you want single frames. 46 constant dot \ ASCII definition of a period (in decimal) + 5 constant menu_default_x \ default column position of timeout +10 constant menu_default_y \ default row position of timeout msg 4 constant menu_timeout_default_x \ default column position of timeout 23 constant menu_timeout_default_y \ default row position of timeout msg 10 constant menu_timeout_default \ default timeout (in seconds) @@ -128,15 +130,19 @@ create init_text8 255 allot : cycle_stateN ( N -- ADDR ) s" cycle_stateN" 11 +c! evaluate ; : init_textN ( N -- C-ADDR ) s" init_textN" 9 +c! evaluate ; -: str_loader_menu_title ( -- C-ADDR/U ) s" loader_menu_title" ; -: str_loader_menu_timeout_x ( -- C-ADDR/U ) s" loader_menu_timeout_x" ; -: str_loader_menu_timeout_y ( -- C-ADDR/U ) s" loader_menu_timeout_y" ; -: str_menu_init ( -- C-ADDR/U ) s" menu_init" ; -: str_menu_timeout_command ( -- C-ADDR/U ) s" menu_timeout_command" ; -: str_menu_reboot ( -- C-ADDR/U ) s" menu_reboot" ; -: str_menu_acpi ( -- C-ADDR/U ) s" menu_acpi" ; -: str_menu_options ( -- C-ADDR/U ) s" menu_options" ; -: str_menu_optionstext ( -- C-ADDR/U ) s" menu_optionstext" ; +: str_loader_menu_frame ( -- C-ADDR/U ) s" loader_menu_frame" ; +: str_loader_menu_title ( -- C-ADDR/U ) s" loader_menu_title" ; +: str_loader_menu_title_align ( -- C-ADDR/U ) s" loader_menu_title_align" ; +: str_loader_menu_x ( -- C-ADDR/U ) s" loader_menu_x" ; +: str_loader_menu_y ( -- C-ADDR/U ) s" loader_menu_y" ; +: str_loader_menu_timeout_x ( -- C-ADDR/U ) s" loader_menu_timeout_x" ; +: str_loader_menu_timeout_y ( -- C-ADDR/U ) s" loader_menu_timeout_y" ; +: str_menu_init ( -- C-ADDR/U ) s" menu_init" ; +: str_menu_timeout_command ( -- C-ADDR/U ) s" menu_timeout_command" ; +: str_menu_reboot ( -- C-ADDR/U ) s" menu_reboot" ; +: str_menu_acpi ( -- C-ADDR/U ) s" menu_acpi" ; +: str_menu_options ( -- C-ADDR/U ) s" menu_options" ; +: str_menu_optionstext ( -- C-ADDR/U ) s" menu_optionstext" ; : str_menu_init[x] ( -- C-ADDR/U ) s" menu_init[x]" ; : str_menu_command[x] ( -- C-ADDR/U ) s" menu_command[x]" ; @@ -441,7 +447,24 @@ create init_text8 255 allot str_loader_menu_title getenv dup -1 = if drop s" Welcome to FreeBSD" then - 24 over 2 / - 9 at-xy type + TRUE ( use default alignment ) + str_loader_menu_title_align getenv dup -1 <> if + 2dup s" left" compare-insensitive 0= if ( 1 ) + 2drop ( c-addr/u ) drop ( bool ) + menuX @ menuY @ 1- + FALSE ( don't use default alignment ) + else ( 1 ) 2dup s" right" compare-insensitive 0= if ( 2 ) + 2drop ( c-addr/u ) drop ( bool ) + menuX @ 42 + 4 - over - menuY @ 1- + FALSE ( don't use default alignment ) + else ( 2 ) 2drop ( c-addr/u ) then ( 1 ) then + else + drop ( getenv cruft ) + then + if ( use default center alignement? ) + menuX @ 19 + over 2 / - menuY @ 1- + then + at-xy type \ If $menu_init is set, evaluate it (allowing for whole menus to be \ constructed dynamically -- as this function could conceivably set @@ -733,8 +756,45 @@ create init_text8 255 allot menu_start 1- menuidx ! \ Initialize the starting index for the menu 0 menurow ! \ Initialize the starting position for the menu - 42 13 2 9 box \ Draw frame (w,h,x,y) - 0 25 at-xy \ Move cursor to the bottom for output + + \ Assign configuration values + str_loader_menu_y getenv dup -1 = if + drop \ no custom row position + menu_default_y + else + \ make sure custom position is a number + ?number 0= if + menu_default_y \ or use default + then + then + menuY ! + str_loader_menu_x getenv dup -1 = if + drop \ no custom column position + menu_default_x + else + \ make sure custom position is a number + ?number 0= if + menu_default_x \ or use default + then + then + menuX ! + + \ Interpret a custom frame type for the menu + TRUE ( draw a box? default yes, but might be altered below ) + str_loader_menu_frame getenv dup -1 = if ( 1 ) + drop \ no custom frame type + else ( 1 ) 2dup s" single" compare-insensitive 0= if ( 2 ) + f_single ( see frames.4th ) + else ( 2 ) 2dup s" double" compare-insensitive 0= if ( 3 ) + f_double ( see frames.4th ) + else ( 3 ) s" none" compare-insensitive 0= if ( 4 ) + drop FALSE \ don't draw a box + ( 4 ) then ( 3 ) then ( 2 ) then ( 1 ) then + if + 42 13 menuX @ 3 - menuY @ 1- box \ Draw frame (w,h,x,y) + then + + 0 25 at-xy \ Move cursor to the bottom for output ; \ Main function. Call this from your `loader.rc' file. @@ -965,10 +1025,7 @@ create init_text8 255 allot menu-erase ; -\ Assign configuration values bullet menubllt ! -10 menuY ! -5 menuX ! \ Initialize our menu initialization state variables 0 init_state1 ! Modified: head/sys/boot/forth/menu.4th.8 ============================================================================== --- head/sys/boot/forth/menu.4th.8 Thu Aug 8 22:29:35 2013 (r254107) +++ head/sys/boot/forth/menu.4th.8 Thu Aug 8 22:34:00 2013 (r254108) @@ -123,6 +123,14 @@ The command to be executed after seconds if a key is not pressed. The default is .Ic boot . +.It Va loader_menu_frame +Sets the desired box style to draw around the boot menu. +Possible values are: +.Dq Li single +.Pq the default , +.Dq Li double , +and +.Dq Li none . .It Va loader_menu_timeout_x Sets the desired column position of the timeout countdown text. Default is 4. @@ -130,9 +138,24 @@ Default is 4. Sets the desired row position of the timeout countdown text. Default is 23. .It Va loader_menu_title -The text to display centered above the menu. +The text to display above the menu. Default is .Dq Li "Welcome to FreeBSD" . +.It Va loader_menu_title_align +Default is to align +.Ic loader_menu_title +centered above the menu. This can be set to +.Dq Li left +or +.Dq Li right +to instead display the title left-or-right justified +.Pq respectively . +.It Va loader_menu_x +Sets the desired column position of the boot menu. +Default is 5. +.It Va loader_menu_y +Sets the desired row position of the boot menu. +Default is 10. .It Va menu_caption[x] The text to be displayed for the numbered menuitem .Dq Li x .
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308082234.r78MY0hF087785>