Merge pull request #2524 from Hzj-jie/master2

Add characters in menu items to indicate sub menus
pull/2534/head
Frans de Jonge 7 years ago committed by GitHub
commit bec5f46245

@ -27,6 +27,7 @@ local util = require("ffi/util")
local logger = require("logger")
local Blitbuffer = require("ffi/blitbuffer")
local _ = require("gettext")
local getMenuText = require("util").getMenuText
--[[
Widget that displays a shortcut icon for menu item
@ -169,8 +170,7 @@ function MenuItem:init()
local state_button_width = self.state_size.w or 0
local my_text = self.text and ""..self.text or ""
local w = RenderText:sizeUtf8Text(0, self.dimen.w, self.face,
""..my_text, true, self.bold).x
local w = RenderText:sizeUtf8Text(0, self.dimen.w, self.face, my_text, true, self.bold).x
if w + mandatory_w + state_button_width >= self.content_width then
if Device:hasKeyboard() then
self.active_key_events.ShowItemDetail = {
@ -599,7 +599,7 @@ function Menu:init()
if self.path_items then
self:refreshPath()
else
self:updateItems(1)
self:updateItems()
end
end
@ -650,7 +650,7 @@ function Menu:updateItems(select_number)
show_parent = self.show_parent,
state = self.item_table[i].state,
state_size = self.state_size or {},
text = self.item_table[i].text,
text = getMenuText(self.item_table[i]),
mandatory = self.item_table[i].mandatory,
bold = self.item_table.current == i or self.item_table[i].bold == true,
face = self.cface,
@ -726,7 +726,7 @@ function Menu:switchItemTable(new_title, new_item_table, itemnumber)
end
self.item_table = new_item_table
self:updateItems(1)
self:updateItems()
end
function Menu:onSelectByShortCut(_, keyevent)
@ -802,7 +802,7 @@ function Menu:onNextPage()
end
if self.page < self.page_num then
self.page = self.page + 1
self:updateItems(1)
self:updateItems()
elseif self.page == self.page_num then
-- on the last page, we check if we're on the last item
local end_position = #self.item_table % self.perpage
@ -813,7 +813,7 @@ function Menu:onNextPage()
self:updateItems(end_position)
end
self.page = 1
self:updateItems(1)
self:updateItems()
end
return true
end
@ -824,25 +824,25 @@ function Menu:onPrevPage()
elseif self.page == 1 then
self.page = self.page_num
end
self:updateItems(1)
self:updateItems()
return true
end
function Menu:onFirstPage()
self.page = 1
self:updateItems(1)
self:updateItems()
return true
end
function Menu:onLastPage()
self.page = self.page_num
self:updateItems(1)
self:updateItems()
return true
end
function Menu:onGotoPage(page)
self.page = page
self:updateItems(1)
self:updateItems()
return true
end

@ -20,6 +20,7 @@ local Font = require("ui/font")
local util = require("ffi/util")
local _ = require("gettext")
local Blitbuffer = require("ffi/blitbuffer")
local getMenuText = require("util").getMenuText
--[[
TouchMenuItem widget
@ -78,7 +79,7 @@ function TouchMenuItem:init()
item_checked and checked_widget or unchecked_widget
},
TextWidget:new{
text = self.item.text or self.item.text_func(),
text = getMenuText(self.item),
fgcolor = item_enabled ~= false and Blitbuffer.COLOR_BLACK or Blitbuffer.COLOR_GREY,
face = self.face,
},

@ -266,4 +266,17 @@ function util.splitFileNameSuffix(file)
return string.gsub(file, "(.*)%.(.*)", "%1"), string.gsub(file, ".*%.", "")
end
function util.getMenuText(item)
local text
if item.text_func then
text = item.text_func()
else
text = item.text
end
if item.sub_item_table ~= nil then
text = text .. " \226\150\184"
end
return text
end
return util

Loading…
Cancel
Save