aboutsummaryrefslogtreecommitdiff
path: root/modules/textadept/menu.lua
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2012-09-08 22:58:37 -0400
committermitchell <70453897+667e-11@users.noreply.github.com>2012-09-08 22:58:37 -0400
commitd3a9704a353009896bb37cbd7987a82653003f3b (patch)
treead91c80c9ebb017640bf24d5844c19adb217212f /modules/textadept/menu.lua
parent207e513acf22f81998b28a687f32c500a079f369 (diff)
downloadtextadept-d3a9704a353009896bb37cbd7987a82653003f3b.tar.gz
textadept-d3a9704a353009896bb37cbd7987a82653003f3b.zip
Removed `rebuild_command_tables()`; modules/textadept/menu.lua
Diffstat (limited to 'modules/textadept/menu.lua')
-rw-r--r--modules/textadept/menu.lua54
1 files changed, 23 insertions, 31 deletions
diff --git a/modules/textadept/menu.lua b/modules/textadept/menu.lua
index 20737b51..e45992f3 100644
--- a/modules/textadept/menu.lua
+++ b/modules/textadept/menu.lua
@@ -269,6 +269,27 @@ local function read_menu_table(menu, contextmenu)
return gtkmenu
end
+local items, commands
+
+-- Builds the item and commands tables for the filteredlist dialog.
+-- @param menu The menu to read from.
+-- @param title The title of the menu.
+-- @param items The current list of items.
+-- @param commands The current list of commands.
+local function build_command_tables(menu, title, items, commands)
+ for _, menuitem in ipairs(menu) do
+ if menuitem.title then
+ build_command_tables(menuitem, menuitem.title, items, commands)
+ elseif menuitem[1] ~= '' then
+ local label, f = menuitem[1], menuitem[2]
+ if title then label = title..': '..label end
+ items[#items + 1] = label:gsub('_([^_])', '%1')
+ items[#items + 1] = key_shortcuts[get_id(f)] or ''
+ commands[#commands + 1] = f
+ end
+ end
+end
+
---
-- Sets `gui.menubar` from the given table of menus.
-- @param menubar The table of menus to create the menubar from.
@@ -285,6 +306,8 @@ function M.set_menubar(menubar)
_menubar[#_menubar + 1] = gui.menu(read_menu_table(menubar[i]))
end
gui.menubar = _menubar
+ items, commands = {}, {}
+ build_command_tables(M.menubar, nil, items, commands)
end
M.set_menubar(M.menubar)
@@ -300,27 +323,6 @@ function M.set_contextmenu(menu_table)
end
if not NCURSES then M.set_contextmenu(M.context_menu) end
-local items, commands
-
--- Builds the item and commands tables for the filteredlist dialog.
--- @param menu The menu to read from.
--- @param title The title of the menu.
--- @param items The current list of items.
--- @param commands The current list of commands.
-local function build_command_tables(menu, title, items, commands)
- for _, menuitem in ipairs(menu) do
- if menuitem.title then
- build_command_tables(menuitem, menuitem.title, items, commands)
- elseif menuitem[1] ~= '' then
- local label, f = menuitem[1], menuitem[2]
- if title then label = title..': '..label end
- items[#items + 1] = label:gsub('_([^_])', '%1')
- items[#items + 1] = key_shortcuts[get_id(f)] or ''
- commands[#commands + 1] = f
- end
- end
-end
-
local columns = { _L['Command'], _L['Key Command'] }
---
-- Prompts the user with a filteredlist to run menu commands.
@@ -331,16 +333,6 @@ function M.select_command()
if i then keys.run_command(commands[i + 1], type(commands[i + 1])) end
end
----
--- Rebuilds the tables used by `select_command()`.
--- This should be called every time `set_menubar()` is called.
--- @name rebuild_command_tables
-function M.rebuild_command_tables()
- items, commands = {}, {}
- build_command_tables(M.menubar, nil, items, commands)
-end
-M.rebuild_command_tables()
-
local events, events_connect = events, events.connect
events_connect(events.MENU_CLICKED, function(menu_id)