source: show all files in navigator

We still don't have up/down arrow keys. And we still don't have the
ability to filter filenames by typing.
This commit is contained in:
Kartik K. Agaram 2022-09-17 23:53:57 -07:00
parent d1db41b7b8
commit 9013eaa637
1 changed files with 31 additions and 5 deletions

View File

@ -53,28 +53,54 @@ function add_hotkey_to_menu(s)
end
function source.draw_file_navigator()
if File_navigation.num_lines == nil then
File_navigation.num_lines = source.num_lines_for_file_navigator()
end
App.color(Menu_background_color)
love.graphics.rectangle('fill', 0,Menu_status_bar_height, App.screen.width, File_navigation.num_lines * Editor_state.line_height)
local x,y = 5, Menu_status_bar_height
for i,filename in ipairs(File_navigation.candidates) do
if filename == 'source' then
App.color(Menu_border_color)
love.graphics.line(Menu_cursor-10,2, Menu_cursor-10,Menu_status_bar_height-2)
end
add_file_to_menu(filename, i == File_navigation.index)
x,y = add_file_to_menu(x,y, filename, i == File_navigation.index)
if Menu_cursor >= App.screen.width - 5 then
break
end
end
end
function add_file_to_menu(s, cursor_highlight)
function source.num_lines_for_file_navigator()
local result = 1
local x = 5
for i,filename in ipairs(File_navigation.candidates) do
local width = App.width(to_text(filename))
if x + width > App.screen.width - 5 then
result = result+1
x = 5 + width
else
x = x + width + 30
end
end
return result
end
function add_file_to_menu(x,y, s, cursor_highlight)
local s_text = to_text(s)
local width = App.width(s_text)
if x + width > App.screen.width - 5 then
y = y + Editor_state.line_height
x = 5
end
if cursor_highlight then
App.color(Menu_highlight_color)
love.graphics.rectangle('fill', Menu_cursor-5,5-2, width+5*2,Editor_state.line_height+2*2)
love.graphics.rectangle('fill', x-5,y-2, width+5*2,Editor_state.line_height+2*2)
end
App.color(Menu_command_color)
App.screen.draw(s_text, Menu_cursor,5)
Menu_cursor = Menu_cursor + width + 30
App.screen.draw(s_text, x,y)
x = x + width + 30
return x,y
end
function keychord_pressed_on_file_navigator(chord, key)