summaryrefslogtreecommitdiff
path: root/stand/lua
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2018-08-20 02:08:39 +0000
committerKyle Evans <kevans@FreeBSD.org>2018-08-20 02:08:39 +0000
commitbeacffb30d89c29505f2303d91396e3603f54dd9 (patch)
treeca7aa503e8f9835445d1e25712197fc6c05b7dc7 /stand/lua
parentb060c61dfdbe52d2894ae1e9a91b9ef1423f5b45 (diff)
downloadsrc-test2-beacffb30d89c29505f2303d91396e3603f54dd9.tar.gz
src-test2-beacffb30d89c29505f2303d91396e3603f54dd9.zip
Notes
Diffstat (limited to 'stand/lua')
-rw-r--r--stand/lua/drawer.lua.8179
1 files changed, 179 insertions, 0 deletions
diff --git a/stand/lua/drawer.lua.8 b/stand/lua/drawer.lua.8
new file mode 100644
index 000000000000..4a76895bdddb
--- /dev/null
+++ b/stand/lua/drawer.lua.8
@@ -0,0 +1,179 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+.\"
+.\" Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd August 19, 2018
+.Dt DRAWER.LUA 8
+.Os
+.Sh NAME
+.Nm drawer.lua
+.Nd FreeBSD menu/screen drawer module
+.Sh DESCRIPTION
+.Nm
+contains functionality for drawing and manipulating the menu, logo, and brand
+to the screen.
+.Pp
+Before using the functionality provided by
+.Nm ,
+it must be included with a statement such as the following:
+.Pp
+.Dl local drawer = require("drawer")
+.Ss BRAND DEFINITIONS
+Brand definitions describe a
+.Dq brand ,
+traditionally drawn above the menu.
+The exact position may be controlled by using the
+.Xr loader.conf 5
+variables
+.Va loader_brand_x
+and
+.Va loader_brand_y .
+The following keys may be defined for a brand definition:
+.Bl -tag -width ".Ic Graphic" -offset indent
+.It Ic graphic
+A table of strings containing rows of text to be drawn to the screen.
+.El
+.Ss LOGO DEFINITIONS
+Logo definitions describe a
+.Dq logo ,
+traditionally to the right of the menu.
+The exact position may be controlled by using the
+.Xr loader.conf 5
+variables
+.Va loader_logo_x
+and
+.Va loader_logo_y .
+The following keys may be defined for a logo definition:
+.Bl -tag -width ".Ic requires_color" -offset indent
+.It Ic requires_color
+A boolean describing whether or not this logo definition requires color.
+If it is chosen to be drawn and it requires color on a color-disabled boot,
+.Nm
+will elect to use the default
+.Dq orbbw
+logo rather than the chosen logo.
+.It Ic graphic
+A table of strings containing rows of text to be drawn to the screen.
+.It Ic shift
+A table describing the
+.Va x
+and
+.Va y
+shift that should be applied to all elements should this logo be selected.
+This is typically used for shifting the menu and brand if an empty or minimal
+logo are selected.
+.El
+.Ss CUSTOM BRANDS AND LOGOS
+The brand and logo system is designed to allow brands and logos to be easily
+plugged in.
+When an unrecognized
+.Ev loader_brand
+or
+.Ev loader_logo
+are encountered,
+.Nm
+will attempt to include
+.Pa brand-${loader_brand}.lua
+or
+.Pa logo-${loader_logo}.lua
+respectively.
+These files are expected to call either
+.Fn drawer.addBrand
+or
+.Fn drawer.addLogo
+to add the requested branddef or logodef.
+.Nm
+will attempt to do another lookup for the requested brand or logo before falling
+back to one of the following:
+.Bl -tag -width ".Ic drawer.default_color_logodef" -offset indent
+.It Ic drawer.default_brand
+The default brand to be used if the requested brand cannot be located.
+.It Ic drawer.default_color_logodef
+The default logodef to be used if an invalid logodef is requested and
+.Xr loader 8
+has been configured to allow output of color.
+.It Ic drawer.default_bw_logodef
+The default logodef to be used if either an invalid logodef has been requested,
+or a logodef has been requested that requires color and
+.Xr loader 8
+has been configured to not output color.
+.El
+.Ss FRAME STYLES
+.Nm
+contains the definitions for the different frame styles that may be drawn around
+the menu.
+Frame styles define the characters drawn for horizontal lines, vertical aligns,
+and each of the four corner styles.
+The following keys may be defined for a frame style:
+.Bl -bullet -width ""
+.It
+horizontal
+.It
+vertical
+.It
+top_left
+.It
+bottom_left
+.It
+top_right
+.It
+bottom_right
+.El
+Frame styles are currently defined in the table
+.Ic drawer.frame_styles
+indexed by the name used for
+.Ev loader_menu_frame .
+No API currently exists for manipulating this table indirectly.
+.Ss Exported functions
+The following functions are exported from
+.Nm :
+.Bl -tag -width hook.registerType -offset indent
+.It Fn drawer.addBrand name def
+Add the brand definition described by
+.Fa def
+to the table of known brand definitions, indexed by
+.Fa name .
+.It Fn drawer.addLogo name def
+Add the logo definition described by
+.Fa def
+to the table of known logo definitions, indexed by
+.Fa name .
+.It Fn drawer.drawscreen menudef
+Draws the logo, brand, menu frame, and the current menu as described in
+.Fa menudef ,
+formatted as defined by
+.Xr menu.lua 8 .
+.El
+.Sh SEE ALSO
+.Xr menu.lua 8
+.Sh AUTHORS
+The
+.Nm
+file was originally written by
+.An Pedro Souza Aq Mt pedrosouza@FreeBSD.org .
+Later work and this manual page was done by
+.An Kyle Evans Aq Mt kevans@FreeBSD.org .