Author: kevans
Date: Sat Mar  3 18:25:50 2018
New Revision: 330346
URL: https://svnweb.freebsd.org/changeset/base/330346

Log:
  lualoader: Shift menu+brand even for logo=none with customized pos

Modified:
  head/stand/lua/drawer.lua

Modified: head/stand/lua/drawer.lua
==============================================================================
--- head/stand/lua/drawer.lua   Sat Mar  3 18:13:14 2018        (r330345)
+++ head/stand/lua/drawer.lua   Sat Mar  3 18:25:50 2018        (r330346)
@@ -43,7 +43,6 @@ local fbsd_logo_v
 local orb_color
 local orb
 local none
-local none_shifted = false
 
 local function menuEntryName(drawing_menu, entry)
        local name_handler = drawer.menu_name_handlers[entry.entry_type]
@@ -57,15 +56,6 @@ local function menuEntryName(drawing_menu, entry)
        return entry.name
 end
 
-local function shiftBrandText(shift)
-       drawer.brand_position.x = drawer.brand_position.x + shift.x
-       drawer.brand_position.y = drawer.brand_position.y + shift.y
-       drawer.menu_position.x = drawer.menu_position.x + shift.x
-       drawer.menu_position.y = drawer.menu_position.y + shift.y
-       drawer.box_pos_dim.x = drawer.box_pos_dim.x + shift.x
-       drawer.box_pos_dim.y = drawer.box_pos_dim.y + shift.y
-end
-
 fbsd_logo = {
 "  ______               ____   _____ _____  ",
 " |  ____|             |  _ \\ / ____|  __ \\ ",
@@ -208,6 +198,8 @@ drawer.brand_position = {x = 2, y = 1}
 drawer.logo_position = {x = 46, y = 4}
 drawer.menu_position = {x = 5, y = 10}
 drawer.frame_size = {w = 42, h = 13}
+drawer.default_shift = {x = 0, y = 0}
+drawer.shift = drawer.default_shift
 
 drawer.branddefs = {
        -- Indexed by valid values for loader_brand in loader.conf(5). Valid
@@ -299,6 +291,9 @@ function drawer.drawmenu(menudef)
        local x = drawer.menu_position.x
        local y = drawer.menu_position.y
 
+       x = x + drawer.shift.x
+       y = y + drawer.shift.y
+
        -- print the menu and build the alias table
        local alias_table = {}
        local entry_num = 0
@@ -358,6 +353,9 @@ function drawer.drawbox()
        local tr = framespec.top_right
        local br = framespec.bottom_right
 
+       x = x + drawer.shift.x
+       y = y + drawer.shift.y
+
        screen.setcursor(x, y); printc(tl)
        screen.setcursor(x, y + h); printc(bl)
        screen.setcursor(x + w, y); printc(tr)
@@ -419,6 +417,9 @@ function drawer.drawbrand()
        if graphic == nil then
                graphic = fbsd_logo
        end
+
+       x = x + drawer.shift.x
+       y = y + drawer.shift.y
        drawer.draw(x, y, graphic)
 end
 
@@ -434,13 +435,7 @@ function drawer.drawlogo()
        -- Lookup
        local logodef = drawer.logodefs[logo]
 
-       if logodef ~= nil and logodef.graphic == none then
-               -- centre brand and text if no logo
-               if not none_shifted then
-                       shiftBrandText(logodef.shift)
-                       none_shifted = true
-               end
-       elseif logodef == nil or logodef.graphic == nil or
+       if logodef == nil or logodef.graphic == nil or
            (not colored and logodef.requires_color) then
                -- Choose a sensible default
                if colored then
@@ -449,10 +444,21 @@ function drawer.drawlogo()
                        logodef = drawer.logodefs["orbbw"]
                end
        end
-       if logodef.shift ~= nil then
+
+       if logodef ~= nil and logodef.graphic == none then
+               drawer.shift = logodef.shift
+       else
+               drawer.shift = drawer.default_shift
+       end
+
+       x = x + drawer.shift.x
+       y = y + drawer.shift.y
+
+       if logdef ~= nil and logodef.shift ~= nil then
                x = x + logodef.shift.x
                y = y + logodef.shift.y
        end
+
        drawer.draw(x, y, logodef.graphic)
 end
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to