added last row of keyboard for DXG

DXG has bigger screen, so we have to make sure that we don't have more
than 30 options on screen (or we will run out of shortcuts)
pull/2/merge
Dobrica Pavlinusic 12 years ago
parent a416423798
commit 88d5f578f8

@ -166,6 +166,12 @@ function set_emu_keycodes()
KEY_N = 57 KEY_N = 57
KEY_M = 58 KEY_M = 58
KEY_DOT = 60
KEY_SLASH = 61
KEY_AA = 105 -- right alt
KEY_SYM = 62 -- right shift
KEY_SHIFT = 50 -- left shift KEY_SHIFT = 50 -- left shift
KEY_ALT = 64 -- left alt KEY_ALT = 64 -- left alt
KEY_VPLUS = 95 -- F11 KEY_VPLUS = 95 -- F11

@ -30,11 +30,12 @@ SelectMenu = {
menu_title = "None Titled", menu_title = "None Titled",
no_item_msg = "No items found.", no_item_msg = "No items found.",
item_array = {}, item_array = {},
items = 14, items = 0,
item_shortcuts = { item_shortcuts = {
"Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
"A", "S", "D", "F", "G", "H", "J", "K", "L", "Del", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Del",
"Z", "X", "C", "V", "B", "N", "M", ".", "Sym", "Ent",
}, },
-- state buffer -- state buffer
page = 1, page = 1,
@ -50,6 +51,10 @@ function SelectMenu:new(o)
o.page = 1 o.page = 1
o.current = 1 o.current = 1
o.oldcurrent = 0 o.oldcurrent = 0
-- increase spacing for DXG so we don't have more than 30 shortcuts
if fb.bb:getHeight() == 1200 then
o.spacing = 37
end
return o return o
end end
@ -147,12 +152,12 @@ function SelectMenu:choose(ypos, height)
y = ypos + self.title_H + (self.spacing * c) y = ypos + self.title_H + (self.spacing * c)
-- paint shortcut indications -- paint shortcut indications
if c <= 10 then if c <= 10 or c > 20 then
blitbuffer.paintBorder(fb.bb, 10, y-22, 29, 29, 2, 15) blitbuffer.paintBorder(fb.bb, 10, y-22, 29, 29, 2, 15)
else else
fb.bb:paintRect(10, y-22, 29, 29, 3) fb.bb:paintRect(10, y-22, 29, 29, 3)
end end
if self.item_shortcuts[c] == "Del" then if self.item_shortcuts[c] ~= nil and string.len(self.item_shortcuts[c]) == 3 then
renderUtf8Text(fb.bb, 13, y, self.fface, self.ffhash, renderUtf8Text(fb.bb, 13, y, self.fface, self.ffhash,
self.item_shortcuts[c], true) self.item_shortcuts[c], true)
else else
@ -222,7 +227,7 @@ function SelectMenu:choose(ypos, height)
self.current = 1 self.current = 1
markerdirty = true markerdirty = true
end end
elseif ev.code == KEY_ENTER or ev.code == KEY_FW_PRESS then elseif ev.code == KEY_FW_PRESS then
if self.items == 0 then if self.items == 0 then
return nil return nil
else else
@ -268,6 +273,26 @@ function SelectMenu:choose(ypos, height)
return self:getItemIndexByShortCut("Y", perpage) return self:getItemIndexByShortCut("Y", perpage)
elseif ev.code == KEY_DEL then elseif ev.code == KEY_DEL then
return self:getItemIndexByShortCut("Del", perpage) return self:getItemIndexByShortCut("Del", perpage)
elseif ev.code == KEY_Z then
return self:getItemIndexByShortCut("Z", perpage)
elseif ev.code == KEY_X then
return self:getItemIndexByShortCut("X", perpage)
elseif ev.code == KEY_C then
return self:getItemIndexByShortCut("C", perpage)
elseif ev.code == KEY_V then
return self:getItemIndexByShortCut("V", perpage)
elseif ev.code == KEY_B then
return self:getItemIndexByShortCut("B", perpage)
elseif ev.code == KEY_N then
return self:geTitemIndexByShortCut("N", perpage)
elseif ev.code == KEY_M then
return self:getItemIndexByShortCut("M", perpage)
elseif ev.code == KEY_DOT then
return self:getItemIndexByShortCut(".", perpage)
elseif ev.code == KEY_SYM or ev.code == KEY_SLASH then -- DXG has slash after dot
return self:getItemIndexByShortCut("Sym", perpage)
elseif ev.code == KEY_ENTER then
return self:getItemIndexByShortCut("Ent", perpage)
elseif ev.code == KEY_BACK then elseif ev.code == KEY_BACK then
return nil return nil
end end

Loading…
Cancel
Save